Bug fix for NATURAL JOIN, Split manual sections and more statistic variables
This commit is contained in:
parent
b31d076879
commit
61fd6baf4b
364
Docs/manual.texi
364
Docs/manual.texi
@ -148,7 +148,8 @@ version see the relevant distribution.
|
||||
* Function Index:: SQL command, type and function index
|
||||
* Concept Index:: Concept Index
|
||||
|
||||
@detailmenu --- The Detailed Node Listing ---
|
||||
@detailmenu
|
||||
--- The Detailed Node Listing ---
|
||||
|
||||
General Information About MySQL
|
||||
|
||||
@ -482,6 +483,15 @@ MyISAM table formats
|
||||
* Dynamic format:: Dynamic table characteristics
|
||||
* Compressed format:: Compressed table characteristics
|
||||
|
||||
BDB or Berkeley_db tables
|
||||
|
||||
* BDB overview::
|
||||
* BDB install::
|
||||
* BDB start::
|
||||
* BDB characteristic::
|
||||
* BDB TODO::
|
||||
* BDB errors::
|
||||
|
||||
MySQL Tutorial
|
||||
|
||||
* Connecting-disconnecting:: Connecting to and disconnecting from the server
|
||||
@ -806,6 +816,11 @@ MySQL internals
|
||||
* MySQL threads:: MySQL threads
|
||||
* MySQL full-text search:: MySQL full-text search
|
||||
|
||||
Credits
|
||||
|
||||
* developers::
|
||||
* Contributors::
|
||||
|
||||
MySQL change history
|
||||
|
||||
* News-3.23.x:: Changes in release 3.23.x (Recommended; beta)
|
||||
@ -1287,7 +1302,7 @@ mysql> SELECT author_name FROM biblio_db.author_list;
|
||||
@end example
|
||||
|
||||
SQL statements may be written in uppercase or lowercase. When this manual
|
||||
shows an SQL statement, uppercase is used for particular keywords if those
|
||||
shows a SQL statement, uppercase is used for particular keywords if those
|
||||
keywords are under discussion (to emphasize them) and lowercase is used for
|
||||
the rest of the statement. For example, you might see the following in a
|
||||
discussion of the @code{SELECT} statement:
|
||||
@ -1975,6 +1990,8 @@ Apart from the following links, you can find and download a lot of
|
||||
@item @uref{http://www.4t2.com/mysql. German MySQL maling list}
|
||||
Information about the German MySQL mailing list.
|
||||
|
||||
@item @uref{http://www.bitmover.com:8888//home/bk/mysql, MySQL bitkeeper repository}
|
||||
|
||||
@item @uref{http://www.analysisandsolutions.com/code/mybasic.htm}@*
|
||||
Beginners @strong{MySQL} Tutorial on how to install and set up
|
||||
@strong{MySQL} on a Windows machine.
|
||||
@ -2409,7 +2426,7 @@ A Contact Database using @strong{MySQL} and PHP.
|
||||
Web based interface and Community Calender with PHP.
|
||||
|
||||
@item @uref{http://www.odbsoft.com/cook/sources.htm}@*
|
||||
Perl package to generate html from an SQL table structure and for generating
|
||||
Perl package to generate html from a SQL table structure and for generating
|
||||
SQL statements from an html form.
|
||||
|
||||
@item @uref{http://www.gusnet.cx/proj/telsql/}@*
|
||||
@ -9113,7 +9130,9 @@ Log updates to @code{file.#} where @code{#} is a unique number if not given.
|
||||
@xref{Update log}.
|
||||
|
||||
@item --log-long-format
|
||||
Log some extra information to update log.
|
||||
Log some extra information to update log. If you are using
|
||||
@code{--log-slow-queries} then queries that are not using indexes are logged
|
||||
to the slow query log.
|
||||
|
||||
@item --low-priority-updates
|
||||
Table-modifying operations (@code{INSERT}/@code{DELETE}/@code{UPDATE})
|
||||
@ -10413,7 +10432,7 @@ In @strong{MySQL} Version 3.23 you can, however, use:
|
||||
The following discussion only concerns you if you are running a @strong{MySQL}
|
||||
version earlier than Version 3.23:
|
||||
|
||||
If you have an SQL program in a text file that contains @samp{--} comments
|
||||
If you have a SQL program in a text file that contains @samp{--} comments
|
||||
you should use:
|
||||
|
||||
@example
|
||||
@ -14539,7 +14558,7 @@ statement, @strong{MySQL} reports the table structure using the equivalent
|
||||
@node Functions, CREATE DATABASE, Column types, Reference
|
||||
@section Functions for Use in @code{SELECT} and @code{WHERE} Clauses
|
||||
|
||||
A @code{select_expression} or @code{where_definition} in an SQL statement
|
||||
A @code{select_expression} or @code{where_definition} in a SQL statement
|
||||
can consist of any expression using the functions described below.
|
||||
|
||||
An expression that contains @code{NULL} always produces a @code{NULL} value
|
||||
@ -19763,6 +19782,7 @@ The status variables listed above have the following meaning:
|
||||
@item @code{Connections} @tab Number of connection attempts to the @strong{MySQL} server.
|
||||
@item @code{Created_tmp_disk_tables} @tab Number of implicit temporary tables on disk that have been created while executing statements.
|
||||
@item @code{Created_tmp_tables} @tab Number of implicit temporary tables in memory that have been created while executing statements.
|
||||
@item @code{Created_tmp_files} @tab How many temporary files @code{mysqld} have created.
|
||||
@item @code{Delayed_insert_threads} @tab Number of delayed insert handler threads in use.
|
||||
@item @code{Delayed_writes} @tab Number of rows written with @code{INSERT DELAYED}.
|
||||
@item @code{Delayed_errors} @tab Number of rows written with @code{INSERT DELAYED} for which some error occurred (probably @code{duplicate key}).
|
||||
@ -19804,6 +19824,7 @@ have..
|
||||
@item @code{Questions} @tab Number of queries sent to the server.
|
||||
@item @code{Slow_launch_threads} @tab Number of threads that have taken more than @code{slow_launch_time} to connect.
|
||||
@item @code{Slow_queries} @tab Number of queries that has taken more than @code{long_query_time}. @xref{Slow query log}.
|
||||
@item @code{Sort_merge_passes} @tab Number of merges the sort has to do. If this value is large you should consider increasing @code{sort_buffer}.
|
||||
@item @code{Sort_range} @tab Number of sorts that where done with ranges.
|
||||
@item @code{Sort_rows} @tab Number of sorted rows.
|
||||
@item @code{Sort_scan} @tab Number of sorts that where done by scanning the table.
|
||||
@ -19824,9 +19845,16 @@ If @code{key_reads} is big, then your @code{key_cache} is probably too
|
||||
small. The cache hit rate can be calculated with
|
||||
@code{key_reads}/@code{key_read_requests}.
|
||||
@item
|
||||
If @code{Handler_read_rnd} is big, then you have a probably a lot of queries
|
||||
that requires @strong{MySQL} to scan whole tables or you have joins that doesn't use
|
||||
keys properly.
|
||||
If @code{Handler_read_rnd} is big, then you have a probably a lot of
|
||||
queries that requires @strong{MySQL} to scan whole tables or you have
|
||||
joins that doesn't use keys properly.
|
||||
@item
|
||||
If @code{Created_tmp_tables} or @code{Sort_merge_passes} are high then
|
||||
your @code{mysqld} @code{sort_buffer} variables is probably too small.
|
||||
@item
|
||||
@code{Created_tmp_files} doesn't count the files needed to handle temporary
|
||||
tables.
|
||||
@item
|
||||
@end itemize
|
||||
|
||||
@node SHOW VARIABLES, SHOW PROCESSLIST, SHOW STATUS, SHOW
|
||||
@ -22128,6 +22156,18 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
|
||||
@node BDB, , HEAP, Table types
|
||||
@section BDB or Berkeley_db tables
|
||||
|
||||
@menu
|
||||
* BDB overview::
|
||||
* BDB install::
|
||||
* BDB start::
|
||||
* BDB characteristic::
|
||||
* BDB TODO::
|
||||
* BDB errors::
|
||||
@end menu
|
||||
|
||||
@node BDB overview, BDB install, BDB, BDB
|
||||
@subsection Overview over BDB tables
|
||||
|
||||
Berkeley DB (@uref{http://www.sleepycat.com}) has provided
|
||||
@strong{MySQL} with a transaction safe table handler. This will survive
|
||||
crashes and also provides @code{COMMIT} and @code{ROLLBACK} on
|
||||
@ -22138,6 +22178,9 @@ will need Berkeley DB 3.1.14 or newer which can be downloaded from
|
||||
Sleepycat's download page at
|
||||
@uref{http://www.sleepycat.com/download.html}.
|
||||
|
||||
@node BDB install, BDB start, BDB overview, BDB
|
||||
@subsection Installing BDB
|
||||
|
||||
To install Berkeley DB first uncompress the @code{BDB} distribution
|
||||
and follow the instructions in the README provided in the distiribution
|
||||
directory. Basically what you need to do is:
|
||||
@ -22165,6 +22208,9 @@ Even if Berkeley DB is in itself very tested and reliably, the
|
||||
@strong{MySQL} interface is still very alpha, but we are actively
|
||||
improving and optimizing it to get it this stable real soon.
|
||||
|
||||
@node BDB start, BDB characteristic, BDB install, BDB
|
||||
@subsection BDB startup options
|
||||
|
||||
If you are running with @code{AUTOCOMMIT=0} then your changes in @code{BDB}
|
||||
tables will not be updated until you execute @code{COMMIT}. Instead of commit
|
||||
you can execute @code{ROLLBACK} to forget your changes. @xref{COMMIT}.
|
||||
@ -22191,7 +22237,8 @@ Normally you should start mysqld with @code{--bdb-recover} if you intend
|
||||
to use BDB tables. This may however give you problems when you try to
|
||||
start mysqld if the BDB log files are corrupted. @xref{Starting server}.
|
||||
|
||||
Some characteristic of @code{BDB} tables:
|
||||
@node BDB characteristic, BDB TODO, BDB start, BDB
|
||||
@subsection Some characteristic of @code{BDB} tables
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@ -22243,22 +22290,32 @@ to rotate and remove old logs when using @code{BDB} tables than using other tabl
|
||||
types.
|
||||
@end itemize
|
||||
|
||||
Some things that we have to fix in the near future:
|
||||
@node BDB TODO, BDB errors, BDB characteristic, BDB
|
||||
@subsection Some things we need to fix for BDB in the near future
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Remove the requirement that @code{BDB} tables must have a primary key. This
|
||||
will be fixed by having an automatic hidden auto_increment column for
|
||||
the tables without a primary key.
|
||||
@item
|
||||
@code{LOCK TABLES} should work as for other @strong{MySQL} tables.
|
||||
@item
|
||||
@code{ALTER TABLE} doesn't yet work.
|
||||
@item
|
||||
@code{SHOW TABLE STATUS} doesn't yet provide that much information for BDB
|
||||
tables.
|
||||
@item
|
||||
Optimize performance.
|
||||
@end itemize
|
||||
|
||||
@node BDB errors, , BDB TODO, BDB
|
||||
@subsection Errors you may get when using BDB tables
|
||||
|
||||
If you are running in not @code{auto_commit} mode and delete a table you
|
||||
are using you may get the following error messages in the @strong{MySQL}
|
||||
error file:
|
||||
|
||||
@example
|
||||
001119 23:43:56 bdb: Missing log fileid entry
|
||||
001119 23:43:56 bdb: txn_abort: Log undo failed for LSN: 1 3644744: Invalid
|
||||
@end example
|
||||
|
||||
This is not fatal but we don't recommend you to delete tables you are
|
||||
using in not @code{auto_commit} mode.
|
||||
|
||||
@cindex tutorial
|
||||
@cindex terminal monitor, defined
|
||||
@cindex monitor, terminal
|
||||
@ -22402,7 +22459,7 @@ This query illustrates several things about @code{mysql}:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
A command normally consists of an SQL statement followed by a semicolon.
|
||||
A command normally consists of a SQL statement followed by a semicolon.
|
||||
(There are some exceptions where a semicolon is not needed. @code{QUIT},
|
||||
mentioned earlier, is one of them. We'll get to others later.)
|
||||
|
||||
@ -23942,7 +23999,7 @@ mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";
|
||||
Because a regular expression pattern matches if it occurs anywhere in the
|
||||
value, it is not necessary in the previous query to put a wild card on either
|
||||
side of the pattern to get it to match the entire value like it would be if
|
||||
you used an SQL pattern.
|
||||
you used a SQL pattern.
|
||||
|
||||
To find names containing exactly five characters, use @samp{^} and @samp{$}
|
||||
to match the beginning and end of the name, and five instances of @samp{.}
|
||||
@ -24669,7 +24726,7 @@ default character set in use to the client. The client will switch to
|
||||
use this character set for this connection.
|
||||
|
||||
One should use @code{mysql_real_escape_string()} when escaping strings
|
||||
for an SQL query. @code{mysql_real_escape_string()} is identical to the
|
||||
for a SQL query. @code{mysql_real_escape_string()} is identical to the
|
||||
old @code{mysql_escape_string()} function, except that it takes the MYSQL
|
||||
connection handle as the first parameter.
|
||||
|
||||
@ -27508,7 +27565,7 @@ results. We would have used PHP or mod_perl instead but they were
|
||||
not available at that time.
|
||||
|
||||
For graphical data we wrote a simple tool in @code{C} that can produce
|
||||
GIFs based on the result of an SQL query (with some processing of the
|
||||
GIFs based on the result of a SQL query (with some processing of the
|
||||
result). This is also dynamically executed from the Perl script that
|
||||
parses the @code{HTML} files.
|
||||
|
||||
@ -27868,7 +27925,7 @@ If you have problems due to insufficient memory in the client, use the
|
||||
retrieve the result set.
|
||||
|
||||
Using @code{mysql} is very easy; Just start it as follows
|
||||
@code{mysql database} or @code{mysql --user=user_name --password=your_password database}. Type an SQL statement, end it with @samp{;}, @samp{\g} or @samp{\G}
|
||||
@code{mysql database} or @code{mysql --user=user_name --password=your_password database}. Type a SQL statement, end it with @samp{;}, @samp{\g} or @samp{\G}
|
||||
and press return/enter.
|
||||
|
||||
@cindex command line options
|
||||
@ -27913,7 +27970,7 @@ Print the output of a query (rows) vertically. Without this option you
|
||||
can also force this output by ending your statements with @code{\G}.
|
||||
@cindex force option
|
||||
@item -f, --force
|
||||
Continue even if we get an SQL error.
|
||||
Continue even if we get a SQL error.
|
||||
@cindex no-named-commands option
|
||||
@item -g, --no-named-commands
|
||||
Named commands are disabled. Use \* form only, or use named commands
|
||||
@ -28015,7 +28072,7 @@ ego (\G) Send command to mysql server; Display result vertically
|
||||
print (\p) Print current command
|
||||
quit (\q) Quit mysql
|
||||
rehash (\#) Rebuild completion hash
|
||||
source (\.) Execute an SQL script file. Takes a file name as an argument
|
||||
source (\.) Execute a SQL script file. Takes a file name as an argument
|
||||
status (\s) Get status information from the server
|
||||
use (\u) Use another database. Takes database name as argument
|
||||
@end example
|
||||
@ -28216,7 +28273,7 @@ meaning as the corresponding clauses for @code{LOAD DATA INFILE}.
|
||||
@item -F, --flush-logs
|
||||
Flush log file in the @strong{MySQL} server before starting the dump.
|
||||
@item -f, --force,
|
||||
Continue even if we get an SQL error during a table dump.
|
||||
Continue even if we get a SQL error during a table dump.
|
||||
@item -h, --host=..
|
||||
Dump data from the @strong{MySQL} server on the named host. The default host
|
||||
is @code{localhost}.
|
||||
@ -30038,7 +30095,7 @@ functions. Consult this file to see how UDF calling conventions work.
|
||||
For each function that you want to use in SQL statements, you should define
|
||||
corresponding C (or C++) functions. In the discussion below, the name
|
||||
``xxx'' is used for an example function name. To distinquish between SQL and
|
||||
C/C++ usage, @code{XXX()} (uppercase) indicates an SQL function call, and
|
||||
C/C++ usage, @code{XXX()} (uppercase) indicates a SQL function call, and
|
||||
@code{xxx()} (lowercase) indicates a C/C++ function call.
|
||||
|
||||
The C/C++ functions that you write to implement the inferface for
|
||||
@ -30082,7 +30139,7 @@ The deinitialization function for @code{xxx()}. It should deallocate any
|
||||
memory allocated by the initialization function.
|
||||
@end table
|
||||
|
||||
When an SQL statement invokes @code{XXX()}, @strong{MySQL} calls the
|
||||
When a SQL statement invokes @code{XXX()}, @strong{MySQL} calls the
|
||||
initialization function @code{xxx_init()} to let it perform any required
|
||||
setup, such as argument checking or memory allocation. If @code{xxx_init()}
|
||||
returns an error, the SQL statement is aborted with an error message and the
|
||||
@ -32659,7 +32716,7 @@ backup. To get a consistent backup, do a @code{LOCK TABLES} on the
|
||||
relevant tables. @xref{LOCK TABLES, , @code{LOCK TABLES}}. You only need a
|
||||
read lock; this allows other threads to continue to query the tables while
|
||||
you are making a copy of the files in the database directory. If you want to
|
||||
make an SQL level backup of a table, you can use @code{SELECT INTO OUTFILE}.
|
||||
make a SQL level backup of a table, you can use @code{SELECT INTO OUTFILE}.
|
||||
|
||||
Another way to backup a database is to use the @code{mysqldump} program:
|
||||
@xref{mysqldump}.
|
||||
@ -33231,11 +33288,11 @@ Returns the error number for the most recently invoked @strong{MySQL} function.
|
||||
Returns the error message for the most recently invoked @strong{MySQL} function.
|
||||
|
||||
@item @strong{mysql_real_escape_string()} @tab
|
||||
Escapes special characters in a string for use in an SQL statement taking
|
||||
Escapes special characters in a string for use in a SQL statement taking
|
||||
into account the current charset of the connection.
|
||||
|
||||
@item @strong{mysql_escape_string()} @tab
|
||||
Escapes special characters in a string for use in an SQL statement.
|
||||
Escapes special characters in a string for use in a SQL statement.
|
||||
|
||||
@item @strong{mysql_fetch_field()} @tab
|
||||
Returns the type of the next table field.
|
||||
@ -33316,13 +33373,13 @@ Checks whether or not the connection to the server is working, reconnecting
|
||||
as necessary.
|
||||
|
||||
@item @strong{mysql_query()} @tab
|
||||
Executes an SQL query specified as a null-terminated string.
|
||||
Executes a SQL query specified as a null-terminated string.
|
||||
|
||||
@item @strong{mysql_real_connect()} @tab
|
||||
Connects to a @strong{MySQL} server.
|
||||
|
||||
@item @strong{mysql_real_query()} @tab
|
||||
Executes an SQL query specified as a counted string.
|
||||
Executes a SQL query specified as a counted string.
|
||||
|
||||
@item @strong{mysql_reload()} @tab
|
||||
Tells the server to reload the grant tables.
|
||||
@ -33743,7 +33800,7 @@ None.
|
||||
Creates the database named by the @code{db} parameter.
|
||||
|
||||
This function is deprecated. It is preferable to use @code{mysql_query()}
|
||||
to issue an SQL @code{CREATE DATABASE} statement instead.
|
||||
to issue a SQL @code{CREATE DATABASE} statement instead.
|
||||
|
||||
@subsubheading Return values
|
||||
|
||||
@ -33836,7 +33893,7 @@ mysql_debug("d:t:O,/tmp/client.trace");
|
||||
Drops the database named by the @code{db} parameter.
|
||||
|
||||
This function is deprecated. It is preferable to use @code{mysql_query()}
|
||||
to issue an SQL @code{DROP DATABASE} statement instead.
|
||||
to issue a SQL @code{DROP DATABASE} statement instead.
|
||||
|
||||
@subsubheading Return values
|
||||
|
||||
@ -34870,6 +34927,7 @@ The specified group in the option file may contain the following options:
|
||||
@item @code{debug} @tab Debug options.
|
||||
@item @code{host} @tab Default host name.
|
||||
@item @code{init-command} @tab Command to execute when connecting to @strong{MySQL} server. Will automatically be re-executed when reconnecting.
|
||||
@item @code{interactive-timeout} @tab Same as specifying @code{CLIENT_INTERACTIVE} to @code{mysql_real_connect()}. @xref{mysql_real_connect}.
|
||||
@item @code{password} @tab Default password.
|
||||
@item @code{pipe} @tab Use named pipes to connect to a @strong{MySQL} server on NT.
|
||||
@item @code{port} @tab Default port number.
|
||||
@ -35045,11 +35103,14 @@ of the following flags in very special circumstances:
|
||||
|
||||
@multitable @columnfractions .25 .7
|
||||
@item @strong{Flag name} @tab @strong{Flag meaning}
|
||||
@item @code{CLIENT_FOUND_ROWS} @tab Return the number of found (matched) rows, not the number of affected rows.
|
||||
@item @code{CLIENT_NO_SCHEMA} @tab Don't allow the @code{db_name.tbl_name.col_name} syntax. This is for ODBC; It causes the parser to generate an error if you use that syntax, which is useful for trapping bugs in some ODBC programs.
|
||||
@item @code{CLIENT_COMPRESS} @tab Use compression protocol.
|
||||
@item @code{CLIENT_ODBC} @tab The client is an ODBC client. This changes
|
||||
@code{mysqld} to be more ODBC-friendly.
|
||||
@item @code{CLIENT_COMPRESS} @tab Use compression protocol.
|
||||
@item @code{CLIENT_FOUND_ROWS} @tab Return the number of found (matched) rows, not the number of affected rows.
|
||||
@item @code{CLIENT_IGNORE_SPACE} $tab Allow spaces after function names. Makes all functions names reserved words.
|
||||
@item @code{CLIENT_INTERACTIVE} @tab Allow @code{interactive_timeout} seconds (instead of @code{wait_timeout} seconds) of inactivity before closing the connection.
|
||||
@item @code{CLIENT_NO_SCHEMA} @tab Don't allow the @code{db_name.tbl_name.col_name} syntax. This is for ODBC; It causes the parser to generate an error if you use that syntax, which is useful for trapping bugs in some ODBC programs.
|
||||
@item @code{CLIENT_ODBC} @tab The client is an ODBC client. This changes
|
||||
@item @code{CLIENT_SSL} @tab Use SSL (encrypted protocol).
|
||||
@end multitable
|
||||
@end itemize
|
||||
|
||||
@ -35137,7 +35198,7 @@ try reconnecting to the server before giving up.
|
||||
|
||||
Encodes the string in @code{from} to an escaped SQL string, taking into
|
||||
account the current charset of the connection, that can be sent to the
|
||||
server in an SQL statement, places the result in @code{to}, and adds a
|
||||
server in a SQL statement, places the result in @code{to}, and adds a
|
||||
terminating null byte. Characters encoded are @code{NUL} (ASCII 0),
|
||||
@samp{\n}, @samp{\r}, @samp{\}, @samp{'}, @samp{"} and Control-Z
|
||||
(@pxref{Literals}).
|
||||
@ -35236,7 +35297,7 @@ Asks the @strong{MySQL} server to reload the grant tables. The
|
||||
connected user must have the @strong{reload} privilege.
|
||||
|
||||
This function is deprecated. It is preferable to use @code{mysql_query()}
|
||||
to issue an SQL @code{FLUSH PRIVILEGES} statement instead.
|
||||
to issue a SQL @code{FLUSH PRIVILEGES} statement instead.
|
||||
|
||||
@subsubheading Return values
|
||||
|
||||
@ -35806,9 +35867,9 @@ Installation instructions for @strong{MySQL} Perl support are given in
|
||||
@multitable @columnfractions .3 .7
|
||||
@item @code{connect} @tab Establishes a connection to a database server.
|
||||
@item @code{disconnect} @tab Disconnects from the database server.
|
||||
@item @code{prepare} @tab Prepares an SQL statement for execution.
|
||||
@item @code{prepare} @tab Prepares a SQL statement for execution.
|
||||
@item @code{execute} @tab Executes prepared statements.
|
||||
@item @code{do} @tab Prepares and executes an SQL statement.
|
||||
@item @code{do} @tab Prepares and executes a SQL statement.
|
||||
@item @code{quote} @tab Quotes string or @code{BLOB} values to be inserted.
|
||||
@item @code{fetchrow_array} @tab Fetches the next row as an array of fields.
|
||||
@item @code{fetchrow_arrayref} @tab Fetches next row as a reference array of fields.
|
||||
@ -35941,7 +36002,7 @@ $rc = $dbh->disconnect;
|
||||
@findex DBI->prepare()
|
||||
@findex prepare() DBI method
|
||||
@item prepare($statement)
|
||||
Prepares an SQL statement for execution by the database engine
|
||||
Prepares a SQL statement for execution by the database engine
|
||||
and returns a statement handle @code{($sth)} which you can use to invoke
|
||||
the @code{execute} method.
|
||||
Typically you handle @code{SELECT} statements (and @code{SELECT}-like statements
|
||||
@ -35972,7 +36033,7 @@ $rv = $sth->execute
|
||||
@findex DBI->do()
|
||||
@findex do() DBI method
|
||||
@item do($statement)
|
||||
The @code{do} method prepares and executes an SQL statement and returns the
|
||||
The @code{do} method prepares and executes a SQL statement and returns the
|
||||
number of rows affected. If no rows are affected, @code{do} returns
|
||||
@code{"0E0"}, which Perl treats as zero but regards as true. This method is
|
||||
generally used for non-@code{SELECT} statements which cannot be prepared in
|
||||
@ -37867,15 +37928,15 @@ and "post-processing" on both fields, records and operations.
|
||||
@itemize @bullet
|
||||
|
||||
@item @uref{http://www.mysql.com/Downloads/Contrib/mod_mysql_include_1.0.tar.gz, mod_mysql_include_1.0.tar.gz}
|
||||
Apache module to include HTML from MySQL queries into your pages, and run update queries.
|
||||
Originally written to implement a simple fast low-overhead banner-rotation system.
|
||||
By Sasha Pachev.
|
||||
Apache module to include HTML from MySQL queries into your pages, and
|
||||
run update queries. Originally written to implement a simple fast
|
||||
low-overhead banner-rotation system. By Sasha Pachev.
|
||||
|
||||
@item @uref{http://www.odbsoft.com/cook/sources.htm}
|
||||
This package has various functions for generating html code from an SQL
|
||||
This package has various functions for generating html code from a SQL
|
||||
table structure and for generating SQL statements (Select, Insert,
|
||||
Update, Delete) from an html form. You can build a complete forms
|
||||
interface to an SQL database (query, add, update, delete) without any
|
||||
interface to a SQL database (query, add, update, delete) without any
|
||||
programming! By Marc Beneteau, @email{marc@@odbsoft.com}.
|
||||
|
||||
@item @uref{http://www.mysql.com/Downloads/Contrib/sqlhtml.tar.gz, sqlhtml.tar.gz}
|
||||
@ -38050,7 +38111,7 @@ By Steve Shreeve.
|
||||
|
||||
@itemize @bullet
|
||||
@item @uref{http://www.mysql.com/Downloads/Contrib/emacs-sql-mode.tar.gz, emacs-sql-mode.tar.gz}
|
||||
Raw port of an SQL mode for XEmacs. Supports completion. Original by
|
||||
Raw port of a SQL mode for XEmacs. Supports completion. Original by
|
||||
Peter D. Pezaris @email{pez@@atlantic2.sbi.com} and partial
|
||||
@strong{MySQL} port by David Axmark.
|
||||
|
||||
@ -38186,26 +38247,35 @@ interested in.
|
||||
@end itemize
|
||||
|
||||
@page
|
||||
@cindex contributors, list of
|
||||
@cindex credits
|
||||
@node Credits, News, Contrib, Top
|
||||
@appendix Contributors to MySQL
|
||||
@appendix Credits
|
||||
|
||||
Contributors to the @strong{MySQL} distribution are listed below, in
|
||||
somewhat random order:
|
||||
The following persons have helped us make MySQL what it's today
|
||||
|
||||
@cindex developers, list of
|
||||
@menu
|
||||
* developers::
|
||||
* Contributors::
|
||||
@end menu
|
||||
|
||||
@node developers, Contributors, Credits, Credits
|
||||
@appendixsubsec Delevopers at MySQL AB
|
||||
|
||||
Developers that are or has been employed by MySQL AB to work on MySQL.
|
||||
(In about the order they started to work with us)
|
||||
|
||||
@table @asis
|
||||
@item Michael (Monty) Widenius
|
||||
Has written the following parts of @strong{MySQL}:
|
||||
@itemize @bullet
|
||||
@item
|
||||
All the main code in @code{mysqld}.
|
||||
Most the main code in @code{mysqld}.
|
||||
@item
|
||||
New functions for the string library.
|
||||
@item
|
||||
Most of the @code{mysys} library.
|
||||
@item
|
||||
The @code{ISAM} and @code{MyISAM} libraries (B-tree index file
|
||||
The @code{ISAM},@code{MyISAM} and @code{MERGE} libraries (B-tree index file
|
||||
handlers with index compression and different record formats).
|
||||
@item
|
||||
The @code{HEAP} library. A memory table system with our superior full dynamic
|
||||
@ -38221,24 +38291,23 @@ also Unireg, a curses-based application tool with many utilities.
|
||||
Porting of @code{mSQL} tools like @code{msqlperl}, @code{DBD}/@code{DBI} and
|
||||
@code{DB2mysql}.
|
||||
@item
|
||||
Most parts of crash-me and the @strong{MySQL} benchmarks.
|
||||
Most parts of crash-me and the foundation for the @strong{MySQL} benchmarks.
|
||||
@end itemize
|
||||
|
||||
@item David Axmark
|
||||
@itemize @bullet
|
||||
@item
|
||||
Coordinator and main writer for the @strong{Reference Manual}, including
|
||||
enhancements to @code{texi2html}. Also automatic website updating from
|
||||
this manual.
|
||||
Coordinator and intial main writer for the @strong{Reference Manual},
|
||||
including enhancements to @code{texi2html}. Also automatic website
|
||||
updating from this manual.
|
||||
@item
|
||||
Autoconf, Automake and @code{libtool} support.
|
||||
Inital Autoconf, Automake and @code{libtool} support.
|
||||
@item
|
||||
The licensing stuff.
|
||||
@item
|
||||
Parts of all the text files. (Nowadays only the @file{README} is
|
||||
left. The rest ended up in the manual.)
|
||||
@item
|
||||
Our Mail master.
|
||||
@item
|
||||
Lots of testing of new features.
|
||||
@item
|
||||
Our in-house ``free'' software lawyer.
|
||||
@ -38251,6 +38320,125 @@ only some parts of @code{mysys} are left.
|
||||
Someone for Monty to call in the middle of the night when he just got
|
||||
that new feature to work. :-)
|
||||
@end itemize
|
||||
|
||||
@item Jani Tolonen
|
||||
@itemize @bullet
|
||||
@item
|
||||
@code{mysqlimport}
|
||||
@item
|
||||
A lot of extensions to the @code{mysql} client.
|
||||
@item
|
||||
@code{procedure analyse}
|
||||
@end itemize
|
||||
|
||||
@item Sinisa Milivojevic
|
||||
@itemize @bullet
|
||||
@item
|
||||
Compression (with @code{zlib}) to the client/server protocol.
|
||||
@item
|
||||
Perfect hashing for the lexical analyzer phase.
|
||||
@item
|
||||
The MySQLGUI client.
|
||||
@item
|
||||
Maintainer of mysql++.
|
||||
@end itemize
|
||||
|
||||
@item Tõnu Samual
|
||||
@itemize @bullet
|
||||
@item
|
||||
Our security expert.
|
||||
@item
|
||||
Vio interface (foundation for the the encrypted client/server protocol).
|
||||
@item
|
||||
@code{RAID} support for @code{MyISAM} tables.
|
||||
@end itemize
|
||||
|
||||
@item Sasha Pachev
|
||||
@itemize @bullet
|
||||
@item
|
||||
Replication.
|
||||
@item
|
||||
@code{SHOW TABLE CREATE}.
|
||||
@item
|
||||
mod_mysql_include
|
||||
@item
|
||||
cgi++
|
||||
@item
|
||||
mysql-bench
|
||||
@end itemize
|
||||
|
||||
@item Matt Wagner
|
||||
@itemize @bullet
|
||||
@item
|
||||
@strong{MySQL} test suite
|
||||
@item
|
||||
Our web master.
|
||||
@end itemize
|
||||
|
||||
@item Miguel Solórzano
|
||||
@itemize @bullet
|
||||
Winmysqladmin
|
||||
@end itemize
|
||||
|
||||
@item Timothy Smith
|
||||
@itemize @bullet
|
||||
@item
|
||||
Dynamic character support.
|
||||
@item
|
||||
Responsible for @strong{MySQL} configure.
|
||||
@end itemize
|
||||
|
||||
@item Sergei A. Golubchick
|
||||
@itemize @bullet
|
||||
@item
|
||||
Text search
|
||||
@item
|
||||
Added keys to the @code{MERGE} library.
|
||||
@end itemize
|
||||
|
||||
@item Jeremy Cole
|
||||
@itemize @bullet
|
||||
@item
|
||||
Proofreading and editing this fine manual.
|
||||
@item
|
||||
@code{ALTER TABLE ... ORDER BY}
|
||||
@end itemize
|
||||
|
||||
@item John Dean
|
||||
@itemize @bullet
|
||||
@item
|
||||
The new @strong{MySQL} GUI client.
|
||||
@end itemize
|
||||
|
||||
@item Indrek Sitan
|
||||
@itemize @bullet
|
||||
Desinger/programmer of our web interface.
|
||||
@end itemize
|
||||
@end table
|
||||
|
||||
The following non developers are also working in/with MySQL AB
|
||||
|
||||
@table @asis
|
||||
@item
|
||||
Hans Kierkegaard ; Resonsible for MySQL license handling.
|
||||
@item
|
||||
Antti Halonen ; Sales manager
|
||||
@item
|
||||
Jonas Norrman ; Handles licensing questions sent to @email{info@@mysql.com}.
|
||||
@item
|
||||
Erik Granberg ; Handles MySQL partners (and a lot of other stuff)
|
||||
@item
|
||||
Allan Larsson (The BOSS for TCX DataKonsult AB).
|
||||
@end table
|
||||
|
||||
@cindex contributors, list of
|
||||
@node Contributors, , developers, Credits
|
||||
@appendixsubsec Contributors to MySQL
|
||||
|
||||
Contributors to the @strong{MySQL} distribution are listed below, in
|
||||
somewhat random order:
|
||||
|
||||
@table @asis
|
||||
@item Paul DuBois
|
||||
Help with making the Reference Manual correct and understandable. That
|
||||
includes rewriting Monty's and David's attempts at English into English
|
||||
@ -38260,10 +38448,6 @@ The initial port to Win32/NT.
|
||||
@item Kim Aldale
|
||||
Helped to rewrite Monty's and David's early attempts at English into
|
||||
English.
|
||||
@item Allan Larsson (The BOSS for TCX DataKonsult AB)
|
||||
For all the time he has allowed Monty to spend on this ``maybe useful''
|
||||
tool (@strong{MySQL}). Dedicated user (and bug finder) of Unireg &
|
||||
@strong{MySQL}.
|
||||
@item Per Eric Olsson
|
||||
For more or less constructive criticism and real testing of the dynamic
|
||||
record format.
|
||||
@ -38273,7 +38457,7 @@ Win32 port with Borland compiler. @code{mysqlshutdown.exe} and
|
||||
@item David J. Hughes
|
||||
For the effort to make a shareware SQL database. We at TcX started with
|
||||
@code{mSQL}, but found that it couldn't satisfy our purposes so instead we
|
||||
wrote an SQL interface to our application builder Unireg. @code{mysqladmin}
|
||||
wrote a SQL interface to our application builder Unireg. @code{mysqladmin}
|
||||
and @code{mysql} are programs that were largely influenced by their
|
||||
@code{mSQL} counterparts. We have put a lot of effort into making the
|
||||
@strong{MySQL} syntax a superset of @code{mSQL}. Many of the APIs ideas are
|
||||
@ -38308,6 +38492,8 @@ incredible help we got in managing the @strong{MySQL} mailing lists.
|
||||
Monty).
|
||||
@item Tim Bunce, Alligator Descartes
|
||||
For the @code{DBD} (Perl) interface.
|
||||
@item Tim Bunce
|
||||
Author of @code{mysqlhotcopy}.
|
||||
@item Andreas Koenig @email{a.koenig@@mind.de}
|
||||
For the Perl interface to @strong{MySQL}.
|
||||
@item Eugene Chan @email{eugene@@acenet.com.sg}
|
||||
@ -38409,19 +38595,15 @@ The @file{libmysql.dll} library.
|
||||
Mysqlmanager, a Win32 GUI tool for administrating @strong{MySQL}.
|
||||
@item Curt Sampson @email{cjs@@portal.ca}
|
||||
Porting of MIT-pthreads to NetBSD/Alpha and NetBSD 1.3/i386.
|
||||
@item Sinisa Milivojevic @email{sinisa@@coresinc.com}
|
||||
Compression (with @code{zlib}) to the client/server protocol.
|
||||
Perfect hashing for the lexical analyzer phase.
|
||||
@item Antony T. Curtis @email{antony.curtis@@olcs.net}
|
||||
Porting of @strong{MySQL} to OS/2.
|
||||
@item Martin Ramsch @email{m.ramsch@@computer.org}
|
||||
Examples in the @strong{MySQL} Tutorial.
|
||||
@item Tim Bunce
|
||||
Author of @code{mysqlhotcopy}.
|
||||
@item Steve Harvey
|
||||
For making @code{mysqlaccess} more secure.
|
||||
@item Jeremy Cole @email{jeremy@@spaceapes.com}
|
||||
Proofreading and editing this fine manual.
|
||||
@item Konark IA-64 Centre of Persistent Systems Private Limited
|
||||
@uref{http://www.pspl.co.in/konark/}. Help with the Win64 port of the
|
||||
@strong{MySQL} server.
|
||||
@item Valueclick Inc.
|
||||
For sponsoring the optimize section in this manual.
|
||||
@end table
|
||||
@ -38470,9 +38652,6 @@ Simple billing/license/support/copyright issues.
|
||||
ODBC and VisualC++ interface questions.
|
||||
@item Randy Harmon @email{rjharmon@@uptimecomputers.com}
|
||||
@code{DBD}, Linux, some SQL syntax questions.
|
||||
@item Konark IA-64 Centre of Persistent Systems Private Limited
|
||||
@uref{http://www.pspl.co.in/konark/}. Help with the Win64 port of the
|
||||
@strong{MySQL} server.
|
||||
@end table
|
||||
|
||||
@node News, Bugs, Credits, Top
|
||||
@ -38544,6 +38723,20 @@ though, so Version 3.23 is not released as a stable version yet.
|
||||
@appendixsubsec Changes in release 3.23.28
|
||||
@itemize @bullet
|
||||
@item
|
||||
One can now specify @code{interactive-timeout} in the option file that
|
||||
is read by @code{mysql_options()}. This makes it possible to force
|
||||
programs that runs for a long time (like @code{mysqlhotcopy}) to use
|
||||
@code{interactive_timeout} instead of @code{wait_timeout}.
|
||||
@item
|
||||
We now always print when the query was made and who made it in the 'slow
|
||||
query log'. If you are using @code{--log-long-format} then also queries
|
||||
that are not using indexes are printed.
|
||||
@item
|
||||
Fixed problem in @code{LEFT JOIN} which caused all columns in reference
|
||||
table to be NULL.
|
||||
@item
|
||||
Fixed problem when using @code{NATURAL JOIN} without keys.
|
||||
@item
|
||||
Fixed bug when using a multi-part keys where the first part was of type
|
||||
@code{TEXT} or @code{BLOB}.
|
||||
@item
|
||||
@ -38574,9 +38767,12 @@ Fixed fatal bug in @code{CREATE TEMPORARY TABLE ...SELECT ...}.
|
||||
@item
|
||||
Fixed problem with @code{CREATE TABLE .. SELECT NULL}.
|
||||
@item
|
||||
Added status variables @code{large_file_support},@code{net_read_timeout},
|
||||
Added variables @code{large_file_support},@code{net_read_timeout},
|
||||
@code{net_write_timeout} and @code{query_buffer_size} to @code{SHOW VARIABLES}.
|
||||
@item
|
||||
Added status variables @code{created_tmp_files} and @code{sort_merge_passes}
|
||||
to @code{SHOW STATUS}.
|
||||
@item
|
||||
Fixed bug where we didn't allow an index name after the
|
||||
@code{FOREIGN KEY} definition.
|
||||
@item
|
||||
@ -41654,7 +41850,7 @@ New portable benchmark suite with @code{DBD}, with test results from
|
||||
@code{mSQL} 2.0.3, @strong{MySQL}, PostgreSQL 6.2.1 and Solid server 2.2.
|
||||
@item
|
||||
@code{crash-me} is now included with the benchmarks; This is a Perl program
|
||||
designed to find as many limits as possible in an SQL server. Tested with
|
||||
designed to find as many limits as possible in a SQL server. Tested with
|
||||
@code{mSQL}, PostgreSQL, Solid and @strong{MySQL}.
|
||||
@item
|
||||
Fixed bug in range-optimizer that crashed @strong{MySQL} on some queries.
|
||||
@ -42920,7 +43116,7 @@ Because @strong{MySQL} allows you to work with table types that doesn't
|
||||
support transactions (and thus can't @code{rollback} data) some things
|
||||
behaves a little different in @strong{MySQL} than in other SQL servers:
|
||||
(This is just to ensure that @strong{MySQL} never need to do a rollback
|
||||
for an SQL command). This may be a little akward at times as column
|
||||
for a SQL command). This may be a little akward at times as column
|
||||
values must be checked in the application, but this will actually give
|
||||
you a nice speed increase as it allows @strong{MySQL} to do some
|
||||
optimizations that otherwice would be very hard to do.
|
||||
|
@ -187,7 +187,7 @@ extern char *get_charsets_dir(char *buf);
|
||||
extern ulong _my_cache_w_requests,_my_cache_write,_my_cache_r_requests,
|
||||
_my_cache_read;
|
||||
extern ulong _my_blocks_used,_my_blocks_changed;
|
||||
extern uint my_file_opened,my_stream_opened;
|
||||
extern ulong my_file_opened,my_stream_opened, my_tmp_file_created;
|
||||
extern my_bool key_cache_inited;
|
||||
|
||||
/* Point to current my_message() */
|
||||
|
@ -684,8 +684,8 @@ mysql_free_result(MYSQL_RES *result)
|
||||
static const char *default_options[]=
|
||||
{"port","socket","compress","password","pipe", "timeout", "user",
|
||||
"init-command", "host", "database", "debug", "return-found-rows",
|
||||
"ssl_key" ,"ssl_cert" ,"ssl_ca" ,"ssl_capath",
|
||||
"character-set-dir", "default-character-set",
|
||||
"ssl-key" ,"ssl-cert" ,"ssl-ca" ,"ssl-capath",
|
||||
"character-set-dir", "default-character-set", "interactive-timeout",
|
||||
NullS
|
||||
};
|
||||
|
||||
@ -815,6 +815,9 @@ static void mysql_read_default_options(struct st_mysql_options *options,
|
||||
my_free(options->charset_name,MYF(MY_ALLOW_ZERO_PTR));
|
||||
options->charset_name = my_strdup(opt_arg, MYF(MY_WME));
|
||||
break;
|
||||
case 19: /* Interactive-timeout */
|
||||
options->client_flag|=CLIENT_INTERACTIVE;
|
||||
break;
|
||||
default:
|
||||
DBUG_PRINT("warning",("unknown option: %s",option[0]));
|
||||
}
|
||||
|
@ -170,5 +170,7 @@ File create_temp_file(char *to, const char *dir, const char *prefix,
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (file >= 0)
|
||||
thread_safe_increment(my_tmp_file_created,&THR_LOCK_open);
|
||||
DBUG_RETURN(file);
|
||||
}
|
||||
|
@ -30,7 +30,7 @@
|
||||
my_string home_dir=0,my_progname=0;
|
||||
char NEAR curr_dir[FN_REFLEN]= {0},
|
||||
NEAR home_dir_buff[FN_REFLEN]= {0};
|
||||
uint my_stream_opened=0,my_file_opened=0;
|
||||
ulong my_stream_opened=0,my_file_opened=0, my_tmp_file_created=0;
|
||||
int NEAR my_umask=0664, NEAR my_umask_dir=0777;
|
||||
#ifndef THREAD
|
||||
int NEAR my_errno=0;
|
||||
|
@ -292,7 +292,7 @@ $dbh->do("drop table crash_q");
|
||||
report("truncate","truncate_table",
|
||||
"create table crash_q (a integer, b integer,c CHAR(10))",
|
||||
"truncate crash_q",
|
||||
"drop table crash_q1");
|
||||
"drop table crash_q");
|
||||
|
||||
if ($dbh->do("create table crash_q (a integer, b integer,c CHAR(10))") &&
|
||||
$dbh->do("create table crash_q1 (a integer, b integer,c CHAR(10) not null)"))
|
||||
|
@ -1,4 +1,4 @@
|
||||
#This file is automaticly generated by crash-me 1.50
|
||||
#This file is automaticly generated by crash-me 1.51
|
||||
|
||||
NEG=yes # update of column= -column
|
||||
Need_cast_for_null=no # Need to cast NULL for arithmetic
|
||||
@ -31,12 +31,12 @@ comment_--=yes # -- as comment (ANSI)
|
||||
comment_/**/=yes # /* */ as comment
|
||||
comment_//=no # // as comment (ANSI)
|
||||
compute=no # Compute
|
||||
connections=30 # Simultaneous connections (installation default)
|
||||
connections=101 # Simultaneous connections (installation default)
|
||||
constraint_check=no # Column constraints
|
||||
constraint_check_table=no # Table constraints
|
||||
constraint_null=yes # NULL constraint (SyBase style)
|
||||
crash_me_safe=yes # crash me safe
|
||||
crash_me_version=1.50 # crash me version
|
||||
crash_me_version=1.51 # crash me version
|
||||
create_default=yes # default value for column
|
||||
create_default_func=no # default value function for column
|
||||
create_if_not_exists=yes # create table if not exists
|
||||
@ -315,7 +315,7 @@ intersect=no # intersect
|
||||
intersect_all=no # intersect all
|
||||
intersect_all_incompat=no # intersect all (incompatible lists)
|
||||
intersect_incompat=no # intersect (incompatible lists)
|
||||
join_tables=31 # tables in join
|
||||
join_tables=63 # tables in join
|
||||
left_outer_join=yes # left outer join
|
||||
left_outer_join_using=yes # left outer join using
|
||||
like_with_column=yes # column LIKE column
|
||||
@ -327,7 +327,7 @@ max_char_size=255 # max char() size
|
||||
max_column_name=64 # column name length
|
||||
max_columns=3398 # Columns in table
|
||||
max_conditions=85660 # OR and AND in WHERE
|
||||
max_expressions=859 # simple expressions
|
||||
max_expressions=1837 # simple expressions
|
||||
max_index=32 # max index
|
||||
max_index_length=500 # index length
|
||||
max_index_name=64 # index name length
|
||||
@ -337,7 +337,7 @@ max_index_varchar_part_length=255 # index varchar part length
|
||||
max_row_length=65534 # max table row length (without blobs)
|
||||
max_row_length_with_null=65502 # table row length with nulls (without blobs)
|
||||
max_select_alias_name=+512 # select alias name length
|
||||
max_stack_expression=859 # stacked expressions
|
||||
max_stack_expression=1837 # stacked expressions
|
||||
max_table_alias_name=+512 # table alias name length
|
||||
max_table_name=64 # table name length
|
||||
max_text_size=1048543 # max text or blob size
|
||||
@ -361,7 +361,7 @@ null_in_index=yes # null in index
|
||||
null_in_unique=yes # null in unique index
|
||||
null_num_expr=yes # Is 1+NULL = NULL
|
||||
odbc_left_outer_join=yes # left outer join odbc style
|
||||
operating_system=Linux 2.2.14-my-SMP i686 # crash-me tested on
|
||||
operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
|
||||
order_by=yes # Order by
|
||||
order_by_alias=yes # Order by alias
|
||||
order_by_function=yes # Order by function
|
||||
@ -380,7 +380,7 @@ quote_with_"=yes # Allows ' and " as string markers
|
||||
remember_end_space=no # Remembers end space in char()
|
||||
remember_end_space_varchar=no # Remembers end space in varchar()
|
||||
rename_table=yes # rename table
|
||||
repeat_string_size=1048576 # return string size from function
|
||||
repeat_string_size=1047552 # return string size from function
|
||||
right_outer_join=yes # right outer join
|
||||
rowid=auto_increment # Type for row id
|
||||
select_constants=yes # Select constants
|
||||
@ -389,7 +389,7 @@ select_limit2=yes # SELECT with LIMIT #,#
|
||||
select_string_size=1048565 # constant string size in SELECT
|
||||
select_table_update=no # Update with sub select
|
||||
select_without_from=yes # SELECT without FROM
|
||||
server_version=MySQL 3.23.25 beta debug # server version
|
||||
server_version=MySQL 3.23.28 gamma # server version
|
||||
simple_joins=yes # ANSI SQL simple joins
|
||||
storage_of_float=round # Storage of float values
|
||||
subqueries=no # subqueries
|
||||
@ -398,6 +398,7 @@ table_name_case=no # case independent table names
|
||||
table_wildcard=yes # Select table_name.*
|
||||
tempoary_table=yes # temporary tables
|
||||
transactions=no # transactions
|
||||
truncate_table=yes # truncate
|
||||
type_extra_abstime=no # Type abstime
|
||||
type_extra_bfile=no # Type bfile
|
||||
type_extra_blob=yes # Type blob
|
||||
@ -512,5 +513,6 @@ union_all_incompat=no # union all (incompatible lists)
|
||||
union_incompat=no # union (incompatible lists)
|
||||
unique_in_create=yes # unique in create table
|
||||
unique_null_in_create=yes # unique null in create
|
||||
user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
|
||||
views=no # views
|
||||
where_string_size=1048540 # constant string size in where
|
||||
|
@ -1,4 +1,4 @@
|
||||
#This file is automaticly generated by crash-me 1.50
|
||||
#This file is automaticly generated by crash-me 1.51
|
||||
|
||||
NEG=yes # update of column= -column
|
||||
Need_cast_for_null=no # Need to cast NULL for arithmetic
|
||||
@ -31,12 +31,12 @@ comment_--=yes # -- as comment (ANSI)
|
||||
comment_/**/=yes # /* */ as comment
|
||||
comment_//=no # // as comment (ANSI)
|
||||
compute=no # Compute
|
||||
connections=30 # Simultaneous connections (installation default)
|
||||
connections=101 # Simultaneous connections (installation default)
|
||||
constraint_check=no # Column constraints
|
||||
constraint_check_table=no # Table constraints
|
||||
constraint_null=yes # NULL constraint (SyBase style)
|
||||
crash_me_safe=yes # crash me safe
|
||||
crash_me_version=1.50 # crash me version
|
||||
crash_me_version=1.51 # crash me version
|
||||
create_default=yes # default value for column
|
||||
create_default_func=no # default value function for column
|
||||
create_if_not_exists=yes # create table if not exists
|
||||
@ -315,7 +315,7 @@ intersect=no # intersect
|
||||
intersect_all=no # intersect all
|
||||
intersect_all_incompat=no # intersect all (incompatible lists)
|
||||
intersect_incompat=no # intersect (incompatible lists)
|
||||
join_tables=31 # tables in join
|
||||
join_tables=63 # tables in join
|
||||
left_outer_join=yes # left outer join
|
||||
left_outer_join_using=yes # left outer join using
|
||||
like_with_column=yes # column LIKE column
|
||||
@ -327,7 +327,7 @@ max_char_size=255 # max char() size
|
||||
max_column_name=64 # column name length
|
||||
max_columns=3398 # Columns in table
|
||||
max_conditions=85660 # OR and AND in WHERE
|
||||
max_expressions=859 # simple expressions
|
||||
max_expressions=1837 # simple expressions
|
||||
max_index=32 # max index
|
||||
max_index_length=500 # index length
|
||||
max_index_name=64 # index name length
|
||||
@ -337,7 +337,7 @@ max_index_varchar_part_length=255 # index varchar part length
|
||||
max_row_length=65534 # max table row length (without blobs)
|
||||
max_row_length_with_null=65502 # table row length with nulls (without blobs)
|
||||
max_select_alias_name=+512 # select alias name length
|
||||
max_stack_expression=859 # stacked expressions
|
||||
max_stack_expression=1837 # stacked expressions
|
||||
max_table_alias_name=+512 # table alias name length
|
||||
max_table_name=64 # table name length
|
||||
max_text_size=1048543 # max text or blob size
|
||||
@ -361,7 +361,7 @@ null_in_index=yes # null in index
|
||||
null_in_unique=yes # null in unique index
|
||||
null_num_expr=yes # Is 1+NULL = NULL
|
||||
odbc_left_outer_join=yes # left outer join odbc style
|
||||
operating_system=Linux 2.2.14-my-SMP i686 # crash-me tested on
|
||||
operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
|
||||
order_by=yes # Order by
|
||||
order_by_alias=yes # Order by alias
|
||||
order_by_function=yes # Order by function
|
||||
@ -380,7 +380,7 @@ quote_with_"=yes # Allows ' and " as string markers
|
||||
remember_end_space=no # Remembers end space in char()
|
||||
remember_end_space_varchar=no # Remembers end space in varchar()
|
||||
rename_table=yes # rename table
|
||||
repeat_string_size=1048576 # return string size from function
|
||||
repeat_string_size=1047552 # return string size from function
|
||||
right_outer_join=yes # right outer join
|
||||
rowid=auto_increment # Type for row id
|
||||
select_constants=yes # Select constants
|
||||
@ -389,7 +389,7 @@ select_limit2=yes # SELECT with LIMIT #,#
|
||||
select_string_size=1048565 # constant string size in SELECT
|
||||
select_table_update=no # Update with sub select
|
||||
select_without_from=yes # SELECT without FROM
|
||||
server_version=MySQL 3.23.25 beta debug # server version
|
||||
server_version=MySQL 3.23.28 gamma # server version
|
||||
simple_joins=yes # ANSI SQL simple joins
|
||||
storage_of_float=round # Storage of float values
|
||||
subqueries=no # subqueries
|
||||
@ -398,6 +398,7 @@ table_name_case=no # case independent table names
|
||||
table_wildcard=yes # Select table_name.*
|
||||
tempoary_table=yes # temporary tables
|
||||
transactions=no # transactions
|
||||
truncate_table=yes # truncate
|
||||
type_extra_abstime=no # Type abstime
|
||||
type_extra_bfile=no # Type bfile
|
||||
type_extra_blob=yes # Type blob
|
||||
@ -512,5 +513,6 @@ union_all_incompat=no # union all (incompatible lists)
|
||||
union_incompat=no # union (incompatible lists)
|
||||
unique_in_create=yes # unique in create table
|
||||
unique_null_in_create=yes # unique null in create
|
||||
user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
|
||||
views=no # views
|
||||
where_string_size=1048540 # constant string size in where
|
||||
|
@ -716,6 +716,8 @@ static int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
|
||||
volatile bool *killed= ¤t_thd->killed;
|
||||
DBUG_ENTER("merge_buffers");
|
||||
|
||||
statistic_increment(filesort_merge_passes, &LOCK_status);
|
||||
|
||||
count=error=0;
|
||||
offset=param->sort_length-param->ref_length;
|
||||
maxcount=(ulong) (param->keys/((uint) (Tb-Fb) +1));
|
||||
|
@ -160,6 +160,10 @@ void kill_one_thread(THD *thd, ulong id);
|
||||
#define OPTION_QUICK OPTION_BEGIN*2
|
||||
#define OPTION_QUOTE_SHOW_CREATE OPTION_QUICK*2
|
||||
|
||||
/* The following is set when parsing the query */
|
||||
#define OPTION_NO_INDEX_USED OPTION_QUOTE_SHOW_CREATE*2
|
||||
#define OPTION_NO_GOOD_INDEX_USED OPTION_NO_INDEX_USED*2
|
||||
|
||||
#define RAID_BLOCK_SIZE 1024
|
||||
|
||||
/* BINLOG_DUMP options */
|
||||
@ -445,6 +449,7 @@ extern ulong refresh_version,flush_version, thread_id,query_id,opened_tables,
|
||||
delayed_insert_threads, delayed_insert_writes,
|
||||
delayed_rows_in_use,delayed_insert_errors;
|
||||
extern ulong filesort_rows, filesort_range_count, filesort_scan_count;
|
||||
extern ulong filesort_merge_passes;
|
||||
extern ulong select_range_check_count, select_range_count, select_scan_count;
|
||||
extern ulong select_full_range_join_count,select_full_join_count;
|
||||
extern uint test_flags,select_errors,mysql_port,ha_open_options;
|
||||
@ -615,6 +620,7 @@ inline bool add_group_to_list(Item *item,bool asc)
|
||||
inline void mark_as_null_row(TABLE *table)
|
||||
{
|
||||
table->null_row=1;
|
||||
table->status|=STATUS_NULL_ROW;
|
||||
bfill(table->null_flags,table->null_bytes,255);
|
||||
}
|
||||
|
||||
|
@ -222,6 +222,7 @@ ulong query_id=1L,long_query_count,long_query_time,aborted_threads,
|
||||
delayed_queue_size,delayed_insert_threads,delayed_insert_writes,
|
||||
delayed_rows_in_use,delayed_insert_errors,flush_time;
|
||||
ulong filesort_rows, filesort_range_count, filesort_scan_count;
|
||||
ulong filesort_merge_passes;
|
||||
ulong select_range_check_count, select_range_count, select_scan_count;
|
||||
ulong select_full_range_join_count,select_full_join_count;
|
||||
ulong specialflag=0,opened_tables=0,created_tmp_tables=0,
|
||||
@ -2517,6 +2518,7 @@ struct show_var_st status_vars[]= {
|
||||
{"Connections", (char*) &thread_id, SHOW_LONG_CONST},
|
||||
{"Created_tmp_disk_tables", (char*) &created_tmp_disk_tables,SHOW_LONG},
|
||||
{"Created_tmp_tables", (char*) &created_tmp_tables, SHOW_LONG},
|
||||
{"Created_tmp_files", (char*) &my_tmp_file_created, SHOW_LONG},
|
||||
{"Delayed_insert_threads", (char*) &delayed_insert_threads, SHOW_LONG},
|
||||
{"Delayed_writes", (char*) &delayed_insert_writes, SHOW_LONG},
|
||||
{"Delayed_errors", (char*) &delayed_insert_errors, SHOW_LONG},
|
||||
@ -2551,6 +2553,7 @@ struct show_var_st status_vars[]= {
|
||||
{"Slave_running", (char*) &slave_running, SHOW_BOOL},
|
||||
{"Slow_launch_threads", (char*) &slow_launch_threads, SHOW_LONG},
|
||||
{"Slow_queries", (char*) &long_query_count, SHOW_LONG},
|
||||
{"Sort_merge_passes", (char*) &filesort_merge_passes, SHOW_LONG},
|
||||
{"Sort_range", (char*) &filesort_range_count, SHOW_LONG},
|
||||
{"Sort_rows", (char*) &filesort_rows, SHOW_LONG},
|
||||
{"Sort_scan", (char*) &filesort_scan_count, SHOW_LONG},
|
||||
|
@ -1783,6 +1783,8 @@ int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds)
|
||||
DBUG_RETURN(1);
|
||||
tmp->fix_length_and_dec(); // Update cmp_type
|
||||
tmp->const_item_cache=0;
|
||||
/* Mark field used for table cache */
|
||||
t1->field[i]->query_id=t2->field[j]->query_id=thd->query_id;
|
||||
cond_and->list.push_back(tmp);
|
||||
if ((tmp_map=t1->field[i]->part_of_key))
|
||||
{
|
||||
|
@ -35,21 +35,21 @@ int generate_table(THD *thd, TABLE_LIST *table_list,
|
||||
thd->proc_info="generate_table";
|
||||
|
||||
if(global_read_lock)
|
||||
{
|
||||
if(thd->global_read_lock)
|
||||
{
|
||||
if(thd->global_read_lock)
|
||||
{
|
||||
my_error(ER_TABLE_NOT_LOCKED_FOR_WRITE,MYF(0),
|
||||
table_list->real_name);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
pthread_mutex_lock(&LOCK_open);
|
||||
while (global_read_lock && ! thd->killed ||
|
||||
thd->version != refresh_version)
|
||||
{
|
||||
(void) pthread_cond_wait(&COND_refresh,&LOCK_open);
|
||||
}
|
||||
pthread_mutex_unlock(&LOCK_open);
|
||||
my_error(ER_TABLE_NOT_LOCKED_FOR_WRITE,MYF(0),
|
||||
table_list->real_name);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
pthread_mutex_lock(&LOCK_open);
|
||||
while (global_read_lock && ! thd->killed ||
|
||||
thd->version != refresh_version)
|
||||
{
|
||||
(void) pthread_cond_wait(&COND_refresh,&LOCK_open);
|
||||
}
|
||||
pthread_mutex_unlock(&LOCK_open);
|
||||
}
|
||||
|
||||
|
||||
/* If it is a temporary table, close and regenerate it */
|
||||
@ -173,14 +173,16 @@ int mysql_delete(THD *thd,TABLE_LIST *table_list,COND *conds,ha_rows limit,
|
||||
}
|
||||
|
||||
/* If running in safe sql mode, don't allow updates without keys */
|
||||
if ((thd->options & OPTION_SAFE_UPDATES) && !table->quick_keys &&
|
||||
limit == HA_POS_ERROR)
|
||||
if (!table->quick_keys)
|
||||
{
|
||||
delete select;
|
||||
send_error(&thd->net,ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE);
|
||||
DBUG_RETURN(1);
|
||||
thd->options|=OPTION_NO_INDEX_USED;
|
||||
if ((thd->options & OPTION_SAFE_UPDATES) && limit == HA_POS_ERROR)
|
||||
{
|
||||
delete select;
|
||||
send_error(&thd->net,ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
|
||||
(void) table->file->extra(HA_EXTRA_NO_READCHECK);
|
||||
if (options & OPTION_QUICK)
|
||||
(void) table->file->extra(HA_EXTRA_QUICK);
|
||||
|
@ -825,7 +825,9 @@ bool do_command(THD *thd)
|
||||
/* If not reading from backup and if the query took too long */
|
||||
if (!thd->user_time)
|
||||
{
|
||||
if ((ulong) (thd->start_time - thd->time_after_lock) > long_query_time)
|
||||
if ((ulong) (thd->start_time - thd->time_after_lock) > long_query_time ||
|
||||
((thd->options & (OPTION_NO_INDEX_USED | OPTION_NO_GOOD_INDEX_USED)) &&
|
||||
(specialflag & SPECIAL_LONG_LOG_FORMAT)))
|
||||
{
|
||||
long_query_count++;
|
||||
mysql_slow_log.write(thd, thd->query, thd->query_length, start_of_query);
|
||||
|
@ -2420,6 +2420,7 @@ make_join_readinfo(JOIN *join,uint options)
|
||||
/* These init changes read_record */
|
||||
if (tab->use_quick == 2)
|
||||
{
|
||||
join->thd->options|=OPTION_NO_GOOD_INDEX_USED;
|
||||
tab->read_first_record= join_init_quick_read_record;
|
||||
statistic_increment(select_range_check_count, &LOCK_status);
|
||||
}
|
||||
@ -2434,6 +2435,7 @@ make_join_readinfo(JOIN *join,uint options)
|
||||
}
|
||||
else
|
||||
{
|
||||
join->thd->options|=OPTION_NO_INDEX_USED;
|
||||
statistic_increment(select_scan_count, &LOCK_status);
|
||||
}
|
||||
}
|
||||
@ -2445,6 +2447,7 @@ make_join_readinfo(JOIN *join,uint options)
|
||||
}
|
||||
else
|
||||
{
|
||||
join->thd->options|=OPTION_NO_INDEX_USED;
|
||||
statistic_increment(select_full_join_count, &LOCK_status);
|
||||
}
|
||||
}
|
||||
@ -4234,7 +4237,7 @@ join_read_key(JOIN_TAB *tab)
|
||||
TABLE *table= tab->table;
|
||||
|
||||
if (cmp_buffer_with_ref(tab) ||
|
||||
(table->status & (STATUS_GARBAGE | STATUS_NO_PARENT)))
|
||||
(table->status & (STATUS_GARBAGE | STATUS_NO_PARENT | STATUS_NULL_ROW)))
|
||||
{
|
||||
if (tab->ref.key_err)
|
||||
{
|
||||
@ -4252,6 +4255,7 @@ join_read_key(JOIN_TAB *tab)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
table->null_row=0;
|
||||
return table->status ? -1 : 0;
|
||||
}
|
||||
|
||||
|
@ -100,15 +100,17 @@ int mysql_update(THD *thd,TABLE_LIST *table_list,List<Item> &fields,
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
/* If running in safe sql mode, don't allow updates without keys */
|
||||
if ((thd->options & OPTION_SAFE_UPDATES) && !table->quick_keys &&
|
||||
limit == HA_POS_ERROR)
|
||||
if (!table->quick_keys)
|
||||
{
|
||||
delete select;
|
||||
table->time_stamp=save_time_stamp;
|
||||
send_error(&thd->net,ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE);
|
||||
DBUG_RETURN(1);
|
||||
thd->options|=OPTION_NO_INDEX_USED;
|
||||
if ((thd->options & OPTION_SAFE_UPDATES) && limit == HA_POS_ERROR)
|
||||
{
|
||||
delete select;
|
||||
table->time_stamp=save_time_stamp;
|
||||
send_error(&thd->net,ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if we are modifying a key that we are used to search with */
|
||||
if (select && select->quick)
|
||||
used_key_is_modified= (!select->quick->unique_key_range() &&
|
||||
|
@ -161,3 +161,4 @@ typedef struct st_lex_user {
|
||||
#define STATUS_NO_PARENT 4 /* Parent record wasn't found */
|
||||
#define STATUS_NOT_READ 8 /* Record isn't read */
|
||||
#define STATUS_UPDATED 16 /* Record is updated by formula */
|
||||
#define STATUS_NULL_ROW 32 /* table->null_row is set */
|
||||
|
@ -62,3 +62,6 @@ set-variable = key_buffer=256M
|
||||
set-variable = sort_buffer=256M
|
||||
set-variable = read_buffer=2M
|
||||
set-variable = write_buffer=2M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
|
@ -62,3 +62,6 @@ set-variable = key_buffer=128M
|
||||
set-variable = sort_buffer=128M
|
||||
set-variable = read_buffer=2M
|
||||
set-variable = write_buffer=2M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
|
@ -61,3 +61,6 @@ set-variable = key_buffer=20M
|
||||
set-variable = sort_buffer=20M
|
||||
set-variable = read_buffer=2M
|
||||
set-variable = write_buffer=2M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
|
@ -55,3 +55,6 @@ set-variable = sort_buffer=8M
|
||||
[myisamchk]
|
||||
set-variable = key_buffer=8M
|
||||
set-variable = sort_buffer=8M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
|
Loading…
x
Reference in New Issue
Block a user