diff options
author | unknown <monty@narttu.mysql.fi> | 2000-10-11 00:48:03 +0300 |
---|---|---|
committer | unknown <monty@narttu.mysql.fi> | 2000-10-11 00:48:03 +0300 |
commit | f4d7717ceaabc8948c4517dab603f1103222a176 (patch) | |
tree | c6677bb9b8f4eee0143a25aa5b5b345004edc2ff | |
parent | dbde9337c201b7a53357d3904c7f0ac5b046ed85 (diff) | |
download | mariadb-git-f4d7717ceaabc8948c4517dab603f1103222a176.tar.gz |
Portability fixes
Docs/manual.texi:
Update for Access 2000
extra/perror.c:
Added --silent
include/my_pthread.h:
Patch for windows
scripts/safe_mysqld.sh:
Fix of bug in --patch
sql/sql_lex.cc:
Allow numbers of type 1e1
sql/sql_string.h:
Safety fix
sql/sql_table.cc:
Portability fix
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
-rw-r--r-- | BitKeeper/etc/logging_ok | 3 | ||||
-rw-r--r-- | Docs/manual.texi | 4 | ||||
-rw-r--r-- | extra/perror.c | 18 | ||||
-rw-r--r-- | include/my_pthread.h | 6 | ||||
-rw-r--r-- | mysys/my_init.c | 1 | ||||
-rw-r--r-- | scripts/safe_mysqld.sh | 2 | ||||
-rw-r--r-- | sql/sql_lex.cc | 8 | ||||
-rw-r--r-- | sql/sql_string.h | 16 | ||||
-rw-r--r-- | sql/sql_table.cc | 4 |
9 files changed, 38 insertions, 24 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 2d75ea486ef..f5cbc2ff8bf 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1,2 +1 @@ -monty@tramp.mysql.fi -monty@donna.mysql.com +monty@narttu.mysql.fi diff --git a/Docs/manual.texi b/Docs/manual.texi index 4c056d1ff90..4d1360f503a 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -30180,6 +30180,10 @@ with these, change the columns to @code{DATETIME}. In some cases, Access may generate illegal SQL queries that @strong{MySQL} can't understand. You can fix this by selecting @code{"Query|SQLSpecific|Pass-Through"} from the Access menu. +@item +If you have in Access a column defined as BYTE, Access will try to export this +as @code(TINYINT} instead of @code{TINYINT UNSIGNED}. This will give you +problems if you have values > 127 in the column! @end itemize @cindex ADO program diff --git a/extra/perror.c b/extra/perror.c index 699aac392a1..af8f77e19be 100644 --- a/extra/perror.c +++ b/extra/perror.c @@ -17,7 +17,7 @@ /* Return error-text for system error messages and nisam messages */ -#define PERROR_VERSION "2.4" +#define PERROR_VERSION "2.5" #include <global.h> #include <my_sys.h> @@ -31,6 +31,7 @@ static struct option long_options[] = {"help", no_argument, 0, '?'}, {"info", no_argument, 0, 'I'}, {"all", no_argument, 0, 'a'}, + {"silent", no_argument, 0, 's'}, {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {0, 0, 0, 0} @@ -41,7 +42,7 @@ typedef struct ha_errors { const char *msg; } HA_ERRORS; -static int verbose=0,print_all_codes=0; +static int verbose=1,print_all_codes=0; static HA_ERRORS ha_errlist[]= { @@ -79,7 +80,8 @@ static void usage(void) { print_version(); puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n"); - printf("Usage: %s [OPTIONS] [ERRORCODES]\n",my_progname); + printf("Print a description for a system error code or a error code from\na MyISAM/ISAM table handler\n"); + printf("Usage: %s [OPTIONS] [ERRORCODE [ERRORCODE...]]\n",my_progname); printf("\n\ -?, --help Displays this help and exits.\n\ -I, --info Synonym for the above."); @@ -88,7 +90,8 @@ static void usage(void) -a, --all Print all the error messages and the number."); #endif printf("\n\ - -v, --verbose Print info about various stages.\n\ + -s, --silent Only print the error message\n\ + -v, --verbose Print error code and message (default).\n\ -V, --version Displays version information and exits.\n"); } @@ -97,7 +100,7 @@ static int get_options(int *argc,char ***argv) { int c,option_index; - while ((c=getopt_long(*argc,*argv,"avVI?",long_options, + while ((c=getopt_long(*argc,*argv,"asvVI?",long_options, &option_index)) != EOF) { switch (c) { @@ -109,6 +112,9 @@ static int get_options(int *argc,char ***argv) case 'v': verbose=1; break; + case 's': + verbose=0; + break; case 'V': print_version(); exit(0); @@ -183,7 +189,7 @@ int main(int argc,char *argv[]) { found=1; if (verbose) - printf("%3d = %s\n",code,msg); + printf("Error code %3d: %s\n",code,msg); else puts(msg); } diff --git a/include/my_pthread.h b/include/my_pthread.h index 2ecd4e20482..07c0c3e502e 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -91,9 +91,9 @@ void pthread_exit(unsigned A); /* was #define pthread_exit(A) ExitThread(A)*/ #define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF) #define pthread_getspecific(A) (TlsGetValue(A)) #define my_pthread_getspecific(T,A) ((T) TlsGetValue(A)) -#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(A)) -#define my_pthread_setspecific_ptr(T,V) TlsSetValue(T,V) -#define pthread_setspecific(A,B) TlsSetValue(A,B) +#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V)) +#define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V))) +#define pthread_setspecific(A,B) (!TlsSetValue((A),(B))) #else #define pthread_key(T,V) __declspec(thread) T V #define pthread_key_create(A,B) pthread_dummy(0) diff --git a/mysys/my_init.c b/mysys/my_init.c index 4e7d1b6b2db..ee70191c571 100644 --- a/mysys/my_init.c +++ b/mysys/my_init.c @@ -167,6 +167,7 @@ void my_end(int infoflag) if (have_tcpip); WSACleanup( ); #endif /* __WIN__ */ + my_init_done=0; } /* my_end */ #ifdef __WIN__ diff --git a/scripts/safe_mysqld.sh b/scripts/safe_mysqld.sh index f2478c086f7..ee9f40ed5dd 100644 --- a/scripts/safe_mysqld.sh +++ b/scripts/safe_mysqld.sh @@ -26,7 +26,7 @@ parse_arguments() { --datadir=*) DATADIR=`echo "$arg" | sed -e "s;--datadir=;;"` ;; --pid-file=*) pid_file=`echo "$arg" | sed -e "s;--pid-file=;;"` ;; --socket=*) MYSQL_UNIX_PORT=`echo "$arg" | sed -e "s;--socket=;;"` ;; - --port=*) MYSQL_TCP_PORT=`echo "$arg" | sed -e "s;--socket=;;"` ;; + --port=*) MYSQL_TCP_PORT=`echo "$arg" | sed -e "s;--port=;;"` ;; --log=*) log=`echo "$arg" | sed -e "s;--log=;;"` ;; --err-log=*) err_log=`echo "$arg" | sed -e "s;--err-log=;;"` ;; --basedir=*) MY_BASEDIR_VERSION=`echo "$arg" | sed -e "s;--basedir=;;"` ;; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 50c9ab852c1..ca36cb9f205 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -526,7 +526,8 @@ int yylex(void *arg) } if (c == 'e' || c == 'E') { - if ((c=(yyGet())) == '+' || c == '-') + // The following test is written this way to allow numbers of type 1e1 + if (isdigit(yyPeek()) || (c=(yyGet())) == '+' || c == '-') { // Allow 1E+10 if (isdigit(yyPeek())) // Number must have digit after sign { @@ -628,7 +629,8 @@ int yylex(void *arg) yyUnget(); // Fix for next loop } while (isdigit(c=yyGet())) ; // Incomplete real or int number - if ((c == 'e' || c == 'E') && (yyPeek() == '+' || yyPeek() == '-')) + if ((c == 'e' || c == 'E') && + (yyPeek() == '+' || yyPeek() == '-' || isdigit(yyPeek()))) { // Real number yyUnget(); c= '.'; // Fool next test @@ -647,7 +649,7 @@ int yylex(void *arg) if (c == 'e' || c == 'E') { c = yyGet(); - if (c != '-' && c != '+') + if (c != '-' && c != '+' && !isdigit(c)) { // No exp sig found state= STATE_CHAR; break; diff --git a/sql/sql_string.h b/sql/sql_string.h index 8711cf314ad..45c82b82dd0 100644 --- a/sql/sql_string.h +++ b/sql/sql_string.h @@ -100,16 +100,16 @@ public: bool set(ulonglong num); bool set(double num,uint decimals=2); inline void free() + { + if (alloced) { - if (alloced) - { - alloced=0; - Alloced_length=0; - my_free(Ptr,MYF(0)); - Ptr=0; - } + alloced=0; + Alloced_length=0; + my_free(Ptr,MYF(0)); + Ptr=0; + str_length=0; /* Safety */ } - + } inline bool alloc(uint32 arg_length) { if (arg_length < Alloced_length) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 3cb40d7d9ed..2d52aa5ff5a 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -867,10 +867,12 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, } if ((table->table->db_stat & HA_READ_ONLY) && open_for_modify) { + char buff[FN_REFLEN + MYSQL_ERRMSG_SIZE]; net_store_data(packet, table_name); net_store_data(packet, operator_name); net_store_data(packet, "error"); - net_store_data(packet, ER(ER_OPEN_AS_READONLY)); + sprintf(buff, ER(ER_OPEN_AS_READONLY), table_name); + net_store_data(packet, buff); close_thread_tables(thd); if (my_net_write(&thd->net, (char*) thd->packet.ptr(), packet->length())) |