diff options
-rw-r--r-- | Docs/manual.texi | 84 | ||||
-rw-r--r-- | include/mysql_com.h | 4 | ||||
-rw-r--r-- | libmysqld/Makefile.am | 1 | ||||
-rw-r--r-- | mysys/mf_dirname.c | 5 | ||||
-rw-r--r-- | scripts/explain_log.sh | 2 | ||||
-rw-r--r-- | scripts/mysql_install_db.sh | 12 | ||||
-rw-r--r-- | sql/sql_parse.cc | 21 | ||||
-rw-r--r-- | sql/sql_show.cc | 7 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 2 | ||||
-rw-r--r-- | vio/vio.c | 18 | ||||
-rw-r--r-- | vio/viosocket.c | 32 |
11 files changed, 48 insertions, 140 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 107dd7e4b82..f651e5cdd78 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -1756,13 +1756,6 @@ PHP: A server-side HTML-embedded scripting language. The Midgard Application Server; a powerful Web development environment based on MySQL and PHP. -@item @uref{http://www.smartworker.org} -SmartWorker is a platform for Web application development. - -@item @uref{http://xsp.lentus.se/} -XSP: e(X)tendible (S)erver (P)ages and is a HTML embedded tag language -written in Java (previously known as XTAGS). - @cindex dbServ @item @uref{http://www.dbServ.de/} dbServ is an extension to a web server to integrate database output into @@ -1784,28 +1777,12 @@ ForwardSQL: HTML interface to manipulate MySQL databases. @item @uref{http://www.daa.com.au/~james/www-sql/} WWW-SQL: Display database information. -@item @uref{http://www.minivend.com/minivend/} -Minivend: A Web shopping cart. - @item @uref{http://www.heitml.com/} HeiTML: A server-side extension of HTML and a 4GL language at the same time. -@item @uref{http://www.metahtml.com/} -Metahtml: A Dynamic Programming Language for WWW Applications. - -@item @uref{http://www.binevolve.com/} -VelocityGen for Perl and Tcl. - @item @uref{http://hawkeye.net/} Hawkeye Internet Server Suite. -@item @uref{http://www.fastflow.com/} -Network Database Connection For Linux - -@item @uref{http://www.wdbi.net/} -WDBI: Web browser as a universal front end to databases which supports -MySQL well. - @item @uref{http://www.webgroove.com/} WebGroove Script: HTML compiler and server-side scripting language. @@ -1818,18 +1795,9 @@ How to use MySQL with ColdFusion on Solaris. @item @uref{http://calistra.com/MySQL/} Calistra's ODBC MySQL Administrator. -@cindex Webmerger -@item @uref{http://www.webmerger.com} -Webmerger - This CGI tool interprets files and generates dynamic output -based on a set of simple tags. Ready-to-run drivers for MySQL and -PostgreSQL through ODBC. - @item @uref{http://phpclub.net/} PHPclub - Tips and tricks for PHP. -@item @uref{http://www.penguinservices.com/scripts} -MySQL and Perl Scripts. - @item @uref{http://www.widgetchuck.com} The Widgetchuck; Web Site Tools and Gadgets @@ -1846,12 +1814,6 @@ and selectable table content reviewing. @item @uref{http://www.omnis-software.com/products/studio/studio.html} OMNIS Studio is a rapid application development (RAD) tool. - -@cindex Web+ -@item @uref{http://www.webplus.com} -talentsoft Web+ 4.6 - a powerful and comprehensive development language for -use in creating web-based client/server applications without writing -complicated, low-level, and time-consuming CGI programs. @end table @subheading Database Design Tools with MySQL Support @@ -1921,9 +1883,6 @@ qpopmysql - A patch to allow POP3 authentication from a MySQL database. There's also a link to Paul Khavkine's patch for Procmail to allow any MTA to deliver to users in a MySQL database. -@item @uref{http://www.pbc.ottawa.on.ca} -Visual Basic class generator for Active X. - @item @uref{http://www.essencesw.com/Software/mysqllib.html} New Client libraries for the Mac OS Classic (Macintosh). @@ -1986,9 +1945,6 @@ A consulting company which mentions MySQL in the right company. PMP Computer Solutions. Database developers using MySQL and @code{mSQL}. -@item @uref{http://www.aewa.org/} -Airborne Early Warning Association. - @item @uref{http://www.dedserius.com/y2kmatrix/} Y2K tester. @end table @@ -2008,11 +1964,11 @@ EasySQL: An ODBC-like driver manager. @item @uref{http://www.lightlink.com/hessling/rexxsql.html} A REXX interface to SQL databases. -@item @uref{http://www.mytcl.cx/} -Tcl interface based on tcl-sql with many bugfixes. +@c @item @uref{http://www.mytcl.cx/} +@c Tcl interface based on tcl-sql with many bugfixes. @item @uref{http://www.binevolve.com/~tdarugar/tcl-sql/} -Tcl interface. +Tcl interface for MySQL. @item @uref{http://www.contrib.andrew.cmu.edu/~shadow/sql.html} SQL Reference Page with a lot of interesting links. @@ -2029,12 +1985,6 @@ Little6 Inc., An online contract and job finding site that is powered by MySQL, PHP3, and Linux. @c Added 990521 -@c EMAIL: nh@delec.com (Hillbrecht Nicole) -@item @uref{http://www.delec.com/is/products/prep/examples/BookShelf/index.html} -DELECis - A tool that makes it very easy to create an automatically generated -table documentation. They have used MySQL as an example. - -@c Added 990521 @c EMAIL: info@worldrecords.com (Jim Rota) @item @uref{http://www.worldrecords.com} World Records - A search engine for information about music that uses @@ -2056,32 +2006,13 @@ Basic telephone database using @code{DBI}/@code{DBD}. @item @uref{http://tecfa.unige.ch/guides/java/staf2x/ex/jdbc/coffee-break} JDBC examples by Daniel K. Schneider. -@item @uref{http://www.spade.com/linux/howto/PostgreSQL-HOWTO-41.html} -SQL BNF - @item @uref{http://www.ooc.com/} Object Oriented Concepts Inc; CORBA applications with examples in source. -@item @uref{http://www.pbc.ottawa.on.ca/} -DBWiz; Includes an example of how to manage cursors in VB. - -@cindex Pluribus -@item @uref{http://keilor.cs.umass.edu/pluribus/} -Pluribus is a free search engine that learns to improve -the quality of its results over time. Pluribus works by recording -which pages a user prefers among those returned for a query. A user -votes for a page by selecting it; Pluribus then uses that knowledge -to improve the quality of the results when someone else submits the -same (or similar) query. Uses PHP and MySQL. - @c EMAIL: paul@sword.damocles.com (Paul Bannister) @item @uref{http://www.stopbit.com/} Stopbit - A technology news site using MySQL and PHP. -@item @uref{http://www.linuxsupportline.com/~kalendar/} -KDE based calendar manager - The calendar manager has both single user -(file based) and multi-user (MySQL database) support. - @item @uref{http://www.penguinservices.com/scripts} Online shopping cart system. @@ -2099,9 +2030,6 @@ as BLOBs. All other information is stored on the shared MySQL server. @subheading General Database Links @table @asis -@item @uref{http://www.pcslink.com/~ej/dbweb.html} -Database Jump Site - @item @uref{http://black.hole-in-the.net/guy/webdb/} Homepage of the webdb-l (Web Databases) mailing list. @@ -2111,10 +2039,6 @@ Perl @code{DBI}/@code{DBD} modules homepage. @item @uref{http://www.student.uni-koeln.de/cygwin/} Cygwin tools. Unix on top of Windows. -@item @uref{http://dbasecentral.com/} -dbasecentral.com; Development and distribution of powerful and easy-to-use -database applications and systems. - @cindex Tek-Tips forums @cindex forums, Tek-Tips @item @uref{http://www.tek-tips.com/} @@ -45801,8 +45725,6 @@ support MySQL} @item @uref{http://online.dn.ru, Internet information server} -@item @uref{http://www.stopbit.com, A technology news site} - @item @uref{http://www.worldnetla.net, WorldNet Communications - An Internet Services Provider} @item @uref{http://www.netizen.com.au/, Netizen: Australian-based Web consultancy} diff --git a/include/mysql_com.h b/include/mysql_com.h index 6cb1aa21df2..a89425ae279 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -172,8 +172,8 @@ unsigned long my_net_read(NET *net); /* The following function is not meant for normal usage */ struct sockaddr; -int my_connect(my_socket s, const struct sockaddr *name, uint namelen, - uint timeout); +int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, + unsigned int timeout); struct rand_struct { unsigned long seed1,seed2,max_value; diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am index c3cce4cc9b8..f0e0ad2728e 100644 --- a/libmysqld/Makefile.am +++ b/libmysqld/Makefile.am @@ -57,6 +57,7 @@ sqlsources = convert.cc derror.cc field.cc field_conv.cc filesort.cc \ EXTRA_DIST = lib_vio.c libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources) +libmysqld_a_SOURCES= # automake misses these sql_yacc.cc sql_yacc.h: $(top_srcdir)/sql/sql_yacc.yy diff --git a/mysys/mf_dirname.c b/mysys/mf_dirname.c index fb5d77d8ab8..a9d91963480 100644 --- a/mysys/mf_dirname.c +++ b/mysys/mf_dirname.c @@ -83,7 +83,7 @@ char *convert_dirname(char *to, const char *from, const char *from_end) #if FN_LIBCHAR != '/' || defined(FN_C_BEFORE_DIR_2) { - while (*from && *from != end) + for (; *from && from != from_end; from++) { if (*from == '/') *to++= FN_LIBCHAR; @@ -94,8 +94,9 @@ char *convert_dirname(char *to, const char *from, const char *from_end) *to++= FN_C_AFTER_DIR; #endif else - *to++= *from++; + *to++= *from; } + *to=0; } #else /* This is ok even if to == from, becasue we need to cut the string */ diff --git a/scripts/explain_log.sh b/scripts/explain_log.sh index d7f6bb97b40..c4a4ef21568 100644 --- a/scripts/explain_log.sh +++ b/scripts/explain_log.sh @@ -279,7 +279,7 @@ sub RunQuery { if (defined $row->{$_}) { #if (($_ eq 'type' ) and ($row->{$_} eq 'ALL')) { if ($row->{type} eq 'ALL') { - push (@{$Param->{ALL}}, "$row->{$_} $_ $Param->{DB} $Param->{Query}"); + push (@{$Param->{ALL}}, "$Param->{Query}"); #print ">> $row->{$_} $_ $Param->{DB} $Param->{Query}\n"; } $Param->{IdxUseCount} ++; diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index 9b0cfd4eb66..c99126cdf53 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -232,14 +232,14 @@ then c_u="$c_u )" c_u="$c_u comment='Users and global privileges';" - i_u="INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE',NULL,NULL,NULL); - INSERT INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE',NULL,NULL,NULL); + i_u="INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE','','',''); + INSERT INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE','','',''); - REPLACE INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE',NULL,NULL,NULL); - REPLACE INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE',NULL,NULL,NULL); + REPLACE INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE','','',''); + REPLACE INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','NONE','','',''); - INSERT INTO user VALUES ('localhost','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','NONE',NULL,NULL,NULL); - INSERT INTO user VALUES ('$hostname','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','NONE',NULL,NULL,NULL);" + INSERT INTO user VALUES ('localhost','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','NONE','','',''); + INSERT INTO user VALUES ('$hostname','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','NONE','','','');" fi if test ! -f $mdata/func.frm diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 35f32d50f46..cdf6cb8e7f1 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -633,6 +633,7 @@ pthread_handler_decl(handle_bootstrap,arg) length--; buff[length]=0; thd->current_tablenr=0; + thd->query_length=length; thd->query= thd->memdup(buff,length+1); thd->query_id=query_id++; mysql_parse(thd,thd->query,length); @@ -692,19 +693,18 @@ int mysql_table_dump(THD* thd, char* db, char* tbl_name, int fd) thd->free_list = 0; thd->query = tbl_name; - if((error = mysqld_dump_create_info(thd, table, -1))) - { - my_error(ER_GET_ERRNO, MYF(0)); - goto err; - } + thd->query_length=strlen(tbl_name); + if ((error = mysqld_dump_create_info(thd, table, -1))) + { + my_error(ER_GET_ERRNO, MYF(0)); + goto err; + } net_flush(&thd->net); if ((error = table->file->dump(thd,fd))) my_error(ER_GET_ERRNO, MYF(0)); err: - close_thread_tables(thd); - DBUG_RETURN(error); } @@ -872,6 +872,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, thd->free_list=0; table_list.name=table_list.real_name=thd->strdup(packet); thd->query=fields=thd->strdup(strend(packet)+1); + thd->query_length=strlen(thd->query); mysql_log.write(thd,command,"%s %s",table_list.real_name,fields); remove_escape(table_list.real_name); // This can't have wildcards @@ -2052,9 +2053,9 @@ mysql_execute_command(void) goto error; res = mysql_table_grant(thd,tables,lex->users_list, lex->columns, lex->grant, lex->sql_command == SQLCOM_REVOKE); - if(!res) + if (!res) { - mysql_update_log.write(thd, thd->query,thd->query_length); + mysql_update_log.write(thd, thd->query, thd->query_length); if (mysql_bin_log.is_open()) { Query_log_event qinfo(thd, thd->query); @@ -2074,7 +2075,7 @@ mysql_execute_command(void) lex->sql_command == SQLCOM_REVOKE); if (!res) { - mysql_update_log.write(thd, thd->query,thd->query_length); + mysql_update_log.write(thd, thd->query, thd->query_length); if (mysql_bin_log.is_open()) { Query_log_event qinfo(thd, thd->query); diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 438d6b7eed6..5a9777e24a4 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -759,17 +759,16 @@ mysqld_dump_create_info(THD *thd, TABLE *table, int fd) convert->convert((char*) packet->ptr(), packet->length()); if (fd < 0) { - if(my_net_write(&thd->net, (char*)packet->ptr(), packet->length())) + if (my_net_write(&thd->net, (char*)packet->ptr(), packet->length())) DBUG_RETURN(-1); VOID(net_flush(&thd->net)); } else { - if(my_write(fd, (const byte*) packet->ptr(), packet->length(), - MYF(MY_WME))) + if (my_write(fd, (const byte*) packet->ptr(), packet->length(), + MYF(MY_WME))) DBUG_RETURN(-1); } - DBUG_RETURN(0); } diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 8a4c219adb0..7d084f5878e 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -3335,7 +3335,7 @@ require_list_element: SUBJECT_SYM TEXT_STRING } | CIPHER_SYM TEXT_STRING { - LEX *lex=lex; + LEX *lex=Lex; if (lex->ssl_cipher) { net_printf(&lex->thd->net,ER_DUP_ARGUMENT, "CHIPER"); diff --git a/vio/vio.c b/vio/vio.c index 15a12bb958d..95d318ba118 100644 --- a/vio/vio.c +++ b/vio/vio.c @@ -38,26 +38,10 @@ #include <sys/ioctl.h> #endif -#if defined(__EMX__) +#if defined(__EMX__) || defined(OS2) #define ioctlsocket ioctl #endif /* defined(__EMX__) */ -#if defined(MSDOS) || defined(__WIN__) -#ifdef __WIN__ -#undef errno -#undef EINTR -#undef EAGAIN -#define errno WSAGetLastError() -#define EINTR WSAEINTR -#define EAGAIN WSAEINPROGRESS -#endif /* __WIN__ */ -#define O_NONBLOCK 1 /* For emulation of fcntl() */ -#endif -#ifndef EWOULDBLOCK -#define EWOULDBLOCK EAGAIN -#endif - - /* * Helper to fill most of the Vio* with defaults. */ diff --git a/vio/viosocket.c b/vio/viosocket.c index 60272db3171..aacfab42810 100644 --- a/vio/viosocket.c +++ b/vio/viosocket.c @@ -39,23 +39,23 @@ #include <sys/ioctl.h> #endif -#if defined(__EMX__) + +#if !defined(MSDOS) && !defined(__WIN__) && !defined(HAVE_BROKEN_NETINET_INCLUDES) && !defined(__BEOS__) +#include <netinet/ip.h> +#if !defined(alpha_linux_port) +#include <netinet/tcp.h> +#endif +#endif + +#if defined(__EMX__) || defined(OS2) #define ioctlsocket ioctl #endif /* defined(__EMX__) */ #if defined(MSDOS) || defined(__WIN__) -#ifdef __WIN__ -#undef errno -#undef EINTR -#undef EAGAIN -#define errno WSAGetLastError() -#define EINTR WSAEINTR -#define EAGAIN WSAEINPROGRESS -#endif /* __WIN__ */ #define O_NONBLOCK 1 /* For emulation of fcntl() */ #endif #ifndef EWOULDBLOCK -#define EWOULDBLOCK EAGAIN +#define SOCKET_EWOULDBLOCK SOCKET_EAGAIN #endif #ifndef __WIN__ @@ -76,7 +76,7 @@ void vio_delete(Vio* vio) int vio_errno(Vio *vio __attribute__((unused))) { - return errno; /* On Win32 this mapped to WSAGetLastError() */ + return socket_errno; /* On Win32 this mapped to WSAGetLastError() */ } @@ -129,7 +129,7 @@ int vio_write(Vio * vio, const gptr buf, int size) #ifndef DBUG_OFF if (r < 0) { - DBUG_PRINT("vio_error", ("Got error on write: %d",errno)); + DBUG_PRINT("vio_error", ("Got error on write: %d",socket_errno)); } #endif /* DBUG_OFF */ DBUG_PRINT("exit", ("%d", r)); @@ -242,8 +242,8 @@ int vio_keepalive(Vio* vio, my_bool set_keep_alive) my_bool vio_should_retry(Vio * vio __attribute__((unused))) { - int en = errno; - return en == EAGAIN || en == EINTR || en == EWOULDBLOCK; + int en = socket_errno; + return en == SOCKET_EAGAIN || en == SOCKET_EINTR || en == SOCKET_EWOULDBLOCK; } @@ -271,7 +271,7 @@ int vio_close(Vio * vio) } if (r) { - DBUG_PRINT("vio_error", ("close() failed, error: %d",errno)); + DBUG_PRINT("vio_error", ("close() failed, error: %d",socket_errno)); /* FIXME: error handling (not critical for MySQL) */ } vio->type= VIO_CLOSED; @@ -310,7 +310,7 @@ my_bool vio_peer_addr(Vio * vio, char *buf) if (getpeername(vio->sd, (struct sockaddr *) (& (vio->remote)), &addrLen) != 0) { - DBUG_PRINT("exit", ("getpeername, error: %d", errno)); + DBUG_PRINT("exit", ("getpeername, error: %d", socket_errno)); DBUG_RETURN(1); } my_inet_ntoa(vio->remote.sin_addr,buf); |