summaryrefslogtreecommitdiff
path: root/Docs
diff options
context:
space:
mode:
authorunknown <monty@tik.mysql.fi>2001-07-30 22:49:39 +0300
committerunknown <monty@tik.mysql.fi>2001-07-30 22:49:39 +0300
commit811532f56fc551a799ffad4ddf3aba5e96f4978d (patch)
treef52b5e515c7b21c634840fe9e92119ce2a7d7700 /Docs
parentc6318e4731ca7a185b74a39ac6fa0e6993677b70 (diff)
downloadmariadb-git-811532f56fc551a799ffad4ddf3aba5e96f4978d.tar.gz
Fixed optimizer bug in ORDER BY where some ORDER BY parts where ignored.
Extended default arguments to be up to 4095 characters Docs/manual.texi: Update lof LOCK TABLES mysql-test/r/order_by.result: Test for optimizer bug in ORDER BY mysql-test/t/order_by.test: Test for optimizer bug in ORDER BY mysys/default.c: Extended default arguments to be up to 4095 characters sql/sql_select.cc: Fixed optimizer bug in ORDER BY
Diffstat (limited to 'Docs')
-rw-r--r--Docs/manual.texi1081
1 files changed, 51 insertions, 1030 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 8b5052aa19c..7602409709f 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -146,1009 +146,6 @@ distribution for that version.
* Function Index:: SQL command, type and function index
* Concept Index:: Concept Index
-@detailmenu
- --- The Detailed Node Listing ---
-
-General Information About MySQL
-
-* MySQL and MySQL AB::
-* MySQL Information Sources::
-* Licensing and Support::
-* Compatibility::
-* Comparisons::
-* TODO::
-
-MySQL, MySQL AB, and Open Source
-
-* What-is:: What is @strong{MySQL}?
-* What is MySQL AB:: What is @strong{MySQL AB}?
-* Manual-info:: About this manual
-* Manual conventions:: Conventions used in this manual
-* History:: History of @strong{MySQL}
-* Features:: The main features of @strong{MySQL}
-* Stability:: How stable is @strong{MySQL}?
-* Table size::
-* Year 2000 compliance:: Year 2000 compliance
-
-MySQL Information Sources
-
-* MySQL-Books::
-* General-SQL::
-* Useful Links::
-* Questions::
-
-MySQL Mailing Lists
-
-* Mailing-list:: The @strong{MySQL} mailing lists
-* Asking questions:: Asking questions or reporting bugs
-* Bug reports:: How to report bugs or problems
-* Answering questions:: Guidelines for answering questions on the mailing list
-
-MySQL Licensing and Support
-
-* Licensing policy:: @strong{MySQL} licensing policy
-* Copyright:: Copyrights used by @strong{MySQL}
-* Licensing examples:: Example licensing situations
-* Cost:: @strong{MySQL} licensing and support costs
-* Support:: Types of commercial support
-
-Copyrights Used by MySQL
-
-* Copyright changes:: Possible future copyright changes
-
-Example Licensing Situations
-
-* Products that use MySQL:: Selling products that use @strong{MySQL}
-* ISP:: ISP @strong{MySQL} services
-* Web server:: Running a web server using @strong{MySQL}.
-
-MySQL Licensing and Support Costs
-
-* Payment information:: Payment information
-* Contact information:: Contact information
-
-Types of Commercial Support
-
-* Basic email support:: Basic email support
-* Extended email support:: Extended email support
-* Login support:: Login support
-* Extended login support:: Extended login support
-* Telephone support:: Telephone support
-* Table handler support:: Support for other table handlers
-
-How Standards-compatible Is MySQL?
-
-* Extensions to ANSI:: @strong{MySQL} extensions to ANSI SQL92
-* Differences from ANSI:: @strong{MySQL} differences compared to ANSI SQL92
-* ANSI mode:: Running @strong{MySQL} in ANSI mode
-* Missing functions:: Functionality missing from @strong{MySQL}
-* Standards:: What standards does @strong{MySQL} follow?
-* Commit-rollback:: How to cope without @code{COMMIT}-@code{ROLLBACK}
-* Bugs::
-
-Functionality Missing from MySQL
-
-* Missing Sub-selects:: Sub-selects
-* Missing SELECT INTO TABLE:: @code{SELECT INTO TABLE}
-* Missing Transactions:: Transactions
-* Missing Triggers:: Triggers
-* Missing Foreign Keys:: Foreign Keys
-* Broken Foreign KEY::
-* Missing Views:: Views
-* Missing comments:: @samp{--} as the start of a comment
-
-Foreign Keys
-
-* Broken Foreign KEY:: Reasons NOT to use foreign keys constraints
-
-How MySQL Compares to Other Databases
-
-* Compare mSQL:: How @strong{MySQL} compares to @code{mSQL}
-* Protocol differences::
-* Compare PostgreSQL:: How @strong{MySQL} compares with PostgreSQL
-* MySQL-PostgreSQL features::
-
-How MySQL Compares to @code{mSQL}
-
-* Using mSQL tools:: How to convert @code{mSQL} tools for @strong{MySQL}
-
-How @code{mSQL} and MySQL Client/Server Communications Protocols Differ
-
-* Syntax differences::
-
-How MySQL Compares to PostgreSQL
-
-* MySQL-PostgreSQL goals:: MySQL and PostgreSQL development strategies
-
-Featurevise Comparison of MySQL and PostgreSQL
-
-* MySQL-PostgreSQL benchmarks::
-
-MySQL and the future (The TODO)
-
-* TODO MySQL 4.0:: Things that should be in Version 4.0
-* TODO future:: Things that must be done in the near future
-* TODO sometime:: Things that have to be done sometime
-* TODO unplanned:: Some things we don't have any plans to do
-
-Installing MySQL
-
-* Getting MySQL:: How to get @strong{MySQL}
-* Which OS:: Operating systems supported by @strong{MySQL}
-* Which version:: Which @strong{MySQL} version to use
-* Many versions:: How and when updates are released
-* Installation layouts:: Installation layouts
-* Installing binary:: Installing a @strong{MySQL} binary distribution
-* Installing source:: Installing a @strong{MySQL} source distribution
-* Installing source tree:: Installing @strong{MySQL} from development source tree
-* Compilation problems:: Problems compiling?
-* MIT-pthreads:: MIT-pthreads notes
-* Perl support:: Perl installation comments
-* Source install system issues:: System-specific issues
-* Windows:: Windows notes
-* OS/2:: OS/2 notes
-* MySQL binaries:: MySQL binaries
-* Post-installation:: Post-installation setup and testing
-* Installing many servers:: Installing many servers on the same machine
-* Upgrade:: Upgrading/Downgrading MySQL
-
-Installing a MySQL Binary Distribution
-
-* Linux-RPM:: Linux RPM files
-* Building clients:: Building client programs
-* Binary install system issues:: System-specific issues
-
-System-specific Issues
-
-* Binary notes-Linux:: Linux notes for binary distribution
-* Binary notes-HP-UX:: HP-UX notes for binary distribution
-
-Installing a MySQL Source Distribution
-
-* Quick install:: Quick installation overview
-* Applying patches:: Applying patches
-* configure options:: Typical @code{configure} options
-
-Perl Installation Comments
-
-* Perl installation:: Installing Perl on Unix
-* ActiveState Perl:: Installing ActiveState Perl on Windows
-* Windows Perl:: Installing the @strong{MySQL} Perl distribution on Windows
-* Perl support problems:: Problems using the Perl @code{DBI}/@code{DBD} interface
-
-System-specific Issues
-
-* Solaris:: Solaris notes
-* Solaris 2.7:: Solaris 2.7 / 2.8 notes
-* Solaris x86:: Solaris x86 notes
-* SunOS:: SunOS 4 notes
-* Linux:: Linux notes (all Linux versions)
-* Alpha-DEC-UNIX:: Alpha-DEC-UNIX notes
-* Alpha-DEC-OSF1:: Alpha-DEC-OSF1 notes
-* SGI-Irix:: SGI-Irix notes
-* FreeBSD:: FreeBSD notes
-* NetBSD:: NetBSD notes
-* OpenBSD:: OpenBSD 2.5 notes
-* BSDI:: BSD/OS notes
-* SCO:: SCO notes
-* SCO Unixware:: SCO Unixware 7.0 notes
-* IBM-AIX:: IBM-AIX notes
-* HP-UX 10.20:: HP-UX 10.20 notes
-* HP-UX 11.x:: HP-UX 11.x notes
-* Mac OS X:: Mac OS X notes
-* BEOS:: BeOS Notes
-
-Linux Notes (All Linux Versions)
-
-* Linux-x86:: Linux-x86 notes
-* Linux-RedHat50:: RedHat 5.0 notes
-* Linux-RedHat51:: RedHat 5.1 notes
-* Linux-SPARC:: Linux-SPARC notes
-* Linux-Alpha:: Linux-Alpha notes
-* MKLinux:: MkLinux notes
-* Qube2:: Qube2 Linux notes
-* Linux-Ia64:: Linux-Ia64 notes
-
-OpenBSD Notes
-
-* OpenBSD 2.5:: OpenBSD 2.5 Notes
-* OpenBSD 2.8:: OpenBSD 2.8 Notes
-
-BSD/OS Notes
-
-* BSDI2:: BSD/OS 2.x notes
-* BSDI3:: BSD/OS 3.x notes
-* BSDI4:: BSD/OS 4.x notes
-
-Mac OS X Notes
-
-* Mac OS X Public Data::
-* Mac OS X Server::
-
-Windows Notes
-
-* Windows installation:: Installing @strong{MySQL} on Windows
-* Win95 start:: Starting @strong{MySQL} on Win95 / Win98
-* NT start:: Starting @strong{MySQL} on NT / Win2000
-* Windows running:: Running @strong{MySQL} on Windows
-* Windows and SSH:: Connecting to a remote @strong{MySQL} from Windows with SSH
-* Windows symbolic links:: Splitting data across different disks under Win32
-* Windows compiling:: Compiling MySQL clients on Windows.
-* Windows vs Unix:: @strong{MySQL}-Windows compared to Unix @strong{MySQL}
-
-Post-installation Setup and Testing
-
-* mysql_install_db:: Problems running @code{mysql_install_db}
-* Starting server:: Problems starting the @strong{MySQL} server
-* Automatic start:: Starting and stopping @strong{MySQL} automatically
-* Command-line options:: Command-line options
-* Option files:: Option files
-
-Upgrading/Downgrading MySQL
-
-* Upgrading-from-3.22:: Upgrading from a 3.22 version to 3.23
-* Upgrading-from-3.21:: Upgrading from a 3.21 version to 3.22
-* Upgrading-from-3.20:: Upgrading from a 3.20 version to 3.21
-* Upgrading-to-arch:: Upgrading to another architecture
-
-The MySQL Access Privilege System
-
-* General security:: General security
-* Security:: How to make @strong{MySQL} secure against crackers
-* Privileges options::
-* What Privileges:: What the privilege system does
-* User names:: @strong{MySQL} user names and passwords
-* Connecting:: Connecting to the @strong{MySQL} server
-* Password security:: Keeping your password secure
-* Privileges provided:: Privileges provided by @strong{MySQL}
-* Privileges:: How the privilege system works
-* Connection access:: Access control, stage 1: Connection verification
-* Request access:: Access control, stage 2: Request verification
-* Privilege changes:: When privilege changes take effect
-* Default privileges:: Setting up the initial @strong{MySQL} privileges
-* Adding users:: Adding new users to @strong{MySQL}
-* Passwords:: How to set up passwords
-* Access denied:: Causes of @code{Access denied} errors
-
-MySQL Language Reference
-
-* Literals:: Literals: How to write strings and numbers
-* Variables:: User variables
-* Column types:: Column types
-* Functions:: Functions
-* CREATE DATABASE:: @code{CREATE DATABASE} syntax
-* DROP DATABASE:: @code{DROP DATABASE} syntax
-* CREATE TABLE:: @code{CREATE TABLE} syntax
-* ALTER TABLE:: @code{ALTER TABLE} syntax
-* RENAME TABLE:: @code{RENAME TABLE} syntax
-* DROP TABLE:: @code{DROP TABLE} syntax
-* OPTIMIZE TABLE:: @code{OPTIMIZE TABLE} syntax
-* CHECK TABLE:: @code{CHECK TABLE} syntax
-* BACKUP TABLE:: @code{BACKUP TABLE} syntax
-* RESTORE TABLE:: @code{RESTORE TABLE} syntax
-* ANALYZE TABLE:: @code{ANALYZE TABLE} syntax
-* REPAIR TABLE:: @code{REPAIR TABLE} syntax
-* DELETE:: @code{DELETE} syntax
-* TRUNCATE:: @code{TRUNCATE} syntax
-* SELECT:: @code{SELECT} syntax
-* JOIN:: @code{JOIN} syntax
-* INSERT:: @code{INSERT} syntax
-* REPLACE:: @code{REPLACE} syntax
-* LOAD DATA:: @code{LOAD DATA INFILE} syntax
-* UPDATE:: @code{UPDATE} syntax
-* USE:: @code{USE} syntax
-* FLUSH:: @code{FLUSH} syntax (clearing caches)
-* KILL:: @code{KILL} syntax
-* SHOW:: @code{SHOW} syntax (Get information about tables, columns, ...)
-* EXPLAIN:: @code{EXPLAIN} syntax (Get information about a @code{SELECT})
-* DESCRIBE:: @code{DESCRIBE} syntax (Get information about names of columns)
-* COMMIT:: @code{BEGIN/COMMIT/ROLLBACK} syntax
-* LOCK TABLES:: @code{LOCK TABLES/UNLOCK TABLES} syntax
-* SET OPTION:: @code{SET OPTION} syntax
-* SET TRANSACTION:: @code{SET TRANSACTION} syntax
-* GRANT:: @code{GRANT} and @code{REVOKE} syntax
-* CREATE INDEX:: @code{CREATE INDEX} syntax
-* DROP INDEX:: @code{DROP INDEX} syntax
-* Comments:: Comment syntax
-* CREATE FUNCTION:: @code{CREATE FUNCTION} syntax
-* Reserved words:: Is @strong{MySQL} picky about reserved words?
-
-Literals: How to Write Strings and Numbers
-
-* String syntax:: Strings
-* Number syntax:: Numbers
-* Hexadecimal values:: Hexadecimal values
-* NULL values:: @code{NULL} values
-* Legal names:: Database, Table, Index, Column, and Alias Names
-
-Database, Table, Index, Column, and Alias Names
-
-* Name case sensitivity:: Case sensitivity in names
-
-Column Types
-
-* Storage requirements:: Column type storage requirements
-* Numeric types:: Numeric types
-* Date and time types:: Date and time types
-* String types:: String types
-* Choosing types:: Choosing the right type for a column
-* Indexes:: Column indexes
-* Multiple-column indexes:: Multiple-column indexes
-* Other-vendor column types:: Using column types from other database engines
-
-Date and Time Types
-
-* Y2K issues:: Y2K issues and date types
-* DATETIME:: The @code{DATETIME}, @code{DATE} and @code{TIMESTAMP} types
-* TIME:: The @code{TIME} type
-* YEAR:: The @code{YEAR} type
-
-String Types
-
-* CHAR:: The @code{CHAR} and @code{VARCHAR} types
-* BLOB:: The @code{BLOB} and @code{TEXT} types
-* ENUM:: The @code{ENUM} type
-* SET:: The @code{SET} type
-
-Functions for Use in @code{SELECT} and @code{WHERE} Clauses
-
-* Grouping functions:: Grouping functions
-* Arithmetic functions:: Normal arithmetic operations
-* Bit functions:: Bit functions
-* Logical functions:: Logical operations
-* Comparison functions:: Comparison operators
-* String comparison functions:: String comparison functions
-* Casts:: Cast operators
-* Control flow functions:: Control flow functions
-* Mathematical functions:: Mathematical functions
-* String functions:: String functions
-* Date and time functions:: Date and time functions
-* Miscellaneous functions:: Miscellaneous functions
-* Group by functions:: Functions for @code{GROUP BY} clause
-
-@code{CREATE TABLE} Syntax
-
-* Silent column changes:: Silent column changes
-
-@code{INSERT} Syntax
-
-* INSERT SELECT::
-* INSERT DELAYED::
-
-@code{SHOW} Syntax
-
-* SHOW DATABASE INFO::
-* SHOW TABLE STATUS::
-* SHOW STATUS::
-* SHOW VARIABLES::
-* SHOW LOGS::
-* SHOW PROCESSLIST::
-* SHOW GRANTS::
-* SHOW CREATE TABLE::
-
-MySQL Table Types
-
-* MyISAM:: MyISAM tables
-* MERGE:: MERGE tables
-* ISAM:: ISAM tables
-* HEAP:: HEAP tables
-* InnoDB:: InnoDB tables
-* BDB:: BDB or Berkeley_db tables
-
-MyISAM Tables
-
-* Key space:: Space needed for keys
-* MyISAM table formats:: MyISAM table formats
-* MyISAM table problems::
-
-MyISAM Table Formats
-
-* Static format:: Static (Fixed-length) table characteristics
-* Dynamic format:: Dynamic table characteristics
-* Compressed format:: Compressed table characteristics
-
-MyISAM table problems.
-
-* Corrupted MyISAM tables::
-* MyISAM table close::
-
-InnoDB Tables
-
-* InnoDB overview:: InnoDB tables overview
-* InnoDB start:: InnoDB startup options
-* InnoDB init:: Creating InnoDB table space.
-* Using InnoDB tables:: Creating InnoDB tables
-* Adding and removing:: Adding and removing InnoDB data and log files
-* Backing up:: Backing up and recovering an InnoDB database
-* Moving:: Moving an InnoDB database to another machine
-* InnoDB transaction model:: InnoDB transaction model.
-* Implementation:: Implementation of multiversioning
-* Table and index:: Table and index structures
-* File space management:: File space management and disk i/o
-* Error handling:: Error handling
-* InnoDB restrictions:: Some restrictions on InnoDB tables
-* InnoDB contact information:: InnoDB contact information.
-
-Creating InnoDB table space
-
-* Error creating InnoDB::
-
-Backing up and recovering an InnoDB database
-
-* InnoDB checkpoints::
-
-InnoDB transaction model
-
-* InnoDB consistent read::
-* InnoDB locking reads::
-* InnoDB Next-key locking::
-* InnoDB Locks set::
-* InnoDB Deadlock detection::
-
-Table and index structures
-
-* InnoDB physical structure::
-* InnoDB Insert buffering::
-* InnoDB Adaptive hash::
-* InnoDB Physical record::
-
-File space management and disk i/o
-
-* InnoDB Disk i/o::
-* InnoDB File space::
-* InnoDB File Defragmenting::
-
-BDB or Berkeley_DB Tables
-
-* BDB overview:: Overview of BDB Tables
-* BDB install:: Installing BDB
-* BDB start:: BDB startup options
-* BDB characteristic:: Some characteristic of @code{BDB} tables:
-* BDB TODO:: Some things we need to fix for BDB in the near future:
-* BDB portability:: Operating systems supported by @strong{BDB}
-* BDB errors:: Errors You May Get When Using BDB Tables
-
-MySQL Tutorial
-
-* Connecting-disconnecting:: Connecting to and disconnecting from the server
-* Entering queries:: Entering queries
-* Database use:: Creating and using a database
-* Getting information:: Getting information about databases and tables
-* Examples:: Examples
-* Batch mode:: Using @code{mysql} in batch mode
-* Twin:: Queries from twin project
-
-Creating and Using a Database
-
-* Creating database:: Creating a database
-* Creating tables:: Creating a table
-* Loading tables:: Loading data into a table
-* Retrieving data:: Retrieving information from a table
-
-Retrieving Information from a Table
-
-* Selecting all:: Selecting all data
-* Selecting rows:: Selecting particular rows
-* Selecting columns:: Selecting particular columns
-* Sorting rows:: Sorting rows
-* Date calculations:: Date calculations
-* Working with NULL:: Working with @code{NULL} values
-* Pattern matching:: Pattern matching
-* Counting rows:: Counting rows
-* Multiple tables::
-
-Examples of Common Queries
-
-* example-Maximum-column:: The maximum value for a column
-* example-Maximum-row:: The row holding the maximum of a certain column
-* example-Maximum-column-group:: Maximum of column per group
-* example-Maximum-column-group-row:: The rows holding the group-wise maximum of a certain field
-* example-user-variables:: Using user variables
-* example-Foreign keys:: Using foreign keys
-* Searching on two keys::
-* Calculating days::
-
-Queries from Twin Project
-
-* Twin pool:: Find all non-distributed twins
-* Twin event:: Show a table on twin pair status
-
-MySQL Server Functions
-
-* Languages:: What languages are supported by @strong{MySQL}?
-
-What Languages Are Supported by MySQL?
-
-* Character sets:: The character set used for data and sorting
-* Adding character set:: Adding a new character set
-* Character arrays:: The character definition arrays
-* String collating:: String collating support
-* Multi-byte characters:: Multi-byte character support
-
-Replication in MySQL
-
-* Replication Intro:: Introduction
-* Replication Implementation:: Replication Implementation Overview
-* Replication HOWTO:: HOWTO
-* Replication Features:: Replication Features
-* Replication Options:: Replication Options in my.cnf
-* Replication SQL:: SQL Commands related to replication
-* Replication FAQ:: Frequently Asked Questions about replication
-* Replication Problems:: Troubleshooting Replication.
-
-MySQL Full-text Search
-
-* Fulltext Fine-tuning::
-* Fulltext Features to Appear in MySQL 4.0::
-* Fulltext TODO::
-
-Getting Maximum Performance from MySQL
-
-* Optimize Basics:: Optimization overview
-* System:: System/Compile time and startup parameter tuning
-* Data size:: Get your data as small as possible
-* MySQL indexes:: How @strong{MySQL} uses indexes
-* Query Speed:: Speed of queries that access or update data
-* Tips:: Other optimization tips
-* Benchmarks:: Using your own benchmarks
-* Design:: Design choices
-* Design Limitations:: MySQL design limitations/tradeoffs
-* Portability:: Portability
-* Internal use:: What have we used MySQL for?
-
-System/Compile Time and Startup Parameter Tuning
-
-* Compile and link options:: How compiling and linking affects the speed of MySQL
-* Disk issues:: Disk issues
-* Symbolic links:: Using Symbolic Links
-* Server parameters:: Tuning server parameters
-* Table cache:: How MySQL opens and closes tables
-* Creating many tables:: Drawbacks of creating large numbers of tables in the same database
-* Open tables:: Why so many open tables?
-* Memory use:: How MySQL uses memory
-* Internal locking:: How MySQL locks tables
-* Table locking:: Table locking issues
-* DNS::
-
-Using Symbolic Links
-
-* Symbolic links to database::
-* Symbolic links to tables::
-
-Speed of Queries that Access or Update Data
-
-* Estimating performance:: Estimating query performance
-* SELECT speed:: Speed of @code{SELECT} queries
-* Where optimizations:: How MySQL optimizes @code{WHERE} clauses
-* DISTINCT optimization:: How MySQL Optimizes @code{DISTINCT}
-* LEFT JOIN optimization:: How MySQL optimizes @code{LEFT JOIN}
-* LIMIT optimization:: How MySQL optimizes @code{LIMIT}
-* Insert speed:: Speed of @code{INSERT} queries
-* Update speed:: Speed of @code{UPDATE} queries
-* Delete speed:: Speed of @code{DELETE} queries
-
-MySQL Utilites
-
-* Programs:: What do the executables do?
-* mysqld-max:: mysqld-max, An extended mysqld server
-* safe_mysqld:: safe_mysqld, the wrapper around mysqld
-* mysqld_multi:: Program for managing multiple @strong{MySQL} servers
-* mysql:: The command line tool
-* mysqladmin:: Administering a @strong{MySQL} server
-* mysqldump:: Dumping the structure and data from @strong{MySQL} databases and tables
-* mysqlhotcopy:: Copying @strong{MySQL} Databases and Tables
-* mysqlimport:: Importing data from text files
-* perror:: Displaying error messages
-* mysqlshow:: Showing databases, tables and columns
-* myisampack:: The @strong{MySQL} compressed read-only table generator
-
-Maintaining a MySQL Installation
-
-* Table maintenance:: Table maintenance and crash recovery
-* Using mysqlcheck:: Using mysqlcheck for maintenance and recovery
-* Maintenance regimen:: Setting up a table maintenance regimen
-* Table-info:: Getting information about a table
-* Crash recovery:: Using @code{myisamchk} for crash recovery
-* Log file maintenance:: Log file maintenance
-
-Using @code{myisamchk} for Table Maintenance and Crash Recovery
-
-* myisamchk syntax:: @code{myisamchk} invocation syntax
-* myisamchk memory:: @code{myisamchk} memory usage
-
-@code{myisamchk} Invocation Syntax
-
-* myisamchk general options::
-* myisamchk check options::
-* myisamchk repair options::
-* myisamchk other options::
-
-Using @code{myisamchk} for Crash Recovery
-
-* Check:: How to check tables for errors
-* Repair:: How to repair tables
-* Optimization:: Table optimization
-
-Adding New Functions to MySQL
-
-* Adding UDF:: Adding a new user-definable function
-* Adding native function:: Adding a new native function
-
-Adding a New User-definable Function
-
-* UDF calling sequences:: UDF calling sequences
-* UDF arguments:: Argument processing
-* UDF return values:: Return values and error handling
-* UDF compiling:: Compiling and installing user-definable functions
-
-Adding New Procedures to MySQL
-
-* procedure analyse:: Procedure analyse
-* Writing a procedure:: Writing a procedure.
-
-MySQL ODBC Support
-
-* Installing MyODBC:: How to install MyODBC
-* ODBC administrator:: How to fill in the various fields in the ODBC administrator program
-* MyODBC connect parameters::
-* ODBC Problems:: How to report problems with @strong{MySQL} ODBC
-* MyODBC clients:: Programs known to work with @strong{MyODBC}
-* ODBC and last_insert_id:: How to get the value of an @code{AUTO_INCREMENT} column in ODBC
-* MyODBC bug report:: Reporting problems with MyODBC
-
-Using MySQL with Some Common Programs
-
-* Apache:: Using @strong{MySQL} with Apache
-* Borland C++::
-
-Problems and Common Errors
-
-* What is crashing:: How to determine what is causing problems
-* Crashing:: What to do if @strong{MySQL} keeps crashing
-* Link errors:: Problems when linking with the @strong{MySQL} client library
-* Common errors:: Some common errors when using @strong{MySQL}
-* Full disk:: How @strong{MySQL} handles a full disk
-* Multiple sql commands:: How to run SQL commands from a text file
-* Temporary files:: Where @strong{MySQL} stores temporary files
-* Problems with mysql.sock:: How to protect @file{/tmp/mysql.sock}
-* Changing MySQL user:: How to run @strong{MySQL} as a normal user
-* Resetting permissions:: How to reset a forgotten password.
-* File permissions :: Problems with file permissions
-* Not enough file handles:: File not found
-* Using DATE:: Problems using @code{DATE} columns
-* Timezone problems:: Timezone problems
-* Case sensitivity:: Case sensitivity in searches
-* Problems with NULL:: Problems with @code{NULL} values
-* Problems with alias:: Problems with @code{alias}
-* Deleting from related tables:: Deleting rows from related tables
-* No matching rows:: Solving problems with no matching rows
-* ALTER TABLE problems:: Problems with @code{ALTER TABLE}.
-* Change column order:: How to change the order of columns in a table
-* Temporary table problems::
-
-Some Common Errors When Using MySQL
-
-* Error Access denied:: @code{Access denied} Error
-* Gone away:: @code{MySQL server has gone away} error
-* Can not connect to server:: @code{Can't connect to [local] MySQL server} error
-* Blocked host:: @code{Host '...' is blocked} error
-* Too many connections:: @code{Too many connections} error
-* Non-transactional tables:: @code{Some non-transactional changed tables couldn't be rolled back} Error
-* Out of memory:: @code{Out of memory} error
-* Packet too large:: @code{Packet too large} error
-* Communication errors:: Communication errors / Aborted connection
-* Full table:: @code{The table is full} error
-* Cannot create:: @code{Can't create/write to file} Error
-* Commands out of sync:: @code{Commands out of sync} error in client
-* Ignoring user:: @code{Ignoring user} error
-* Cannot find table:: @code{Table 'xxx' doesn't exist} error
-* Cannot initialize character set::
-
-Solving Some Common Problems with MySQL
-
-* Log Replication:: Database replication with update log
-* Backup:: Database backups
-* Multiple servers:: Running multiple @strong{MySQL} servers on the same machine
-
-The MySQL log files
-
-* Error log::
-* Query log::
-* Update log::
-* Binary log::
-* Slow query log::
-
-MySQL APIs
-
-* C:: @strong{MySQL} C API
-* Perl:: @strong{MySQL} Perl API
-* Eiffel:: @strong{MySQL} Eiffel wrapper
-* Java:: @strong{MySQL} Java connectivity (JDBC)
-* PHP:: @strong{MySQL} PHP API
-* Cplusplus:: @strong{MySQL} C++ APIs
-* Python:: @strong{MySQL} Python APIs
-* Tcl:: @strong{MySQL} Tcl APIs
-
-MySQL C API
-
-* C API datatypes:: C API Datatypes
-* C API function overview:: C API Function Overview
-* C API functions:: C API Function Descriptions
-* C API problems::
-* Thread-safe clients::
-
-C API Function Descriptions
-
-* mysql_affected_rows:: @code{mysql_affected_rows()}
-* mysql_close:: @code{mysql_close()}
-* mysql_connect:: @code{mysql_connect()}
-* mysql_change_user:: @code{mysql_change_user()}
-* mysql_character_set_name:: @code{mysql_character_set_name()}
-* mysql_create_db:: @code{mysql_create_db()}
-* mysql_data_seek:: @code{mysql_data_seek()}
-* mysql_debug:: @code{mysql_debug()}
-* mysql_drop_db:: @code{mysql_drop_db()}
-* mysql_dump_debug_info:: @code{mysql_dump_debug_info()}
-* mysql_eof:: @code{mysql_eof()}
-* mysql_errno:: @code{mysql_errno()}
-* mysql_error:: @code{mysql_error()}
-* mysql_escape_string:: @code{mysql_escape_string()}
-* mysql_fetch_field:: @code{mysql_fetch_field()}
-* mysql_fetch_fields:: @code{mysql_fetch_fields()}
-* mysql_fetch_field_direct:: @code{mysql_fetch_field_direct()}
-* mysql_fetch_lengths:: @code{mysql_fetch_lengths()}
-* mysql_fetch_row:: @code{mysql_fetch_row()}
-* mysql_field_count:: @code{mysql_field_count()}
-* mysql_field_seek:: @code{mysql_field_seek()}
-* mysql_field_tell:: @code{mysql_field_tell()}
-* mysql_free_result:: @code{mysql_free_result()}
-* mysql_get_client_info:: @code{mysql_get_client_info()}
-* mysql_get_host_info:: @code{mysql_get_host_info()}
-* mysql_get_proto_info:: @code{mysql_get_proto_info()}
-* mysql_get_server_info:: @code{mysql_get_server_info()}
-* mysql_info:: @code{mysql_info()}
-* mysql_init:: @code{mysql_init()}
-* mysql_insert_id:: @code{mysql_insert_id()}
-* mysql_kill:: @code{mysql_kill()}
-* mysql_list_dbs:: @code{mysql_list_dbs()}
-* mysql_list_fields:: @code{mysql_list_fields()}
-* mysql_list_processes:: @code{mysql_list_processes()}
-* mysql_list_tables:: @code{mysql_list_tables()}
-* mysql_num_fields:: @code{mysql_num_fields()}
-* mysql_num_rows:: @code{mysql_num_rows()}
-* mysql_options:: @code{mysql_options()}
-* mysql_ping:: @code{mysql_ping()}
-* mysql_query:: @code{mysql_query()}
-* mysql_real_connect:: @code{mysql_real_connect()}
-* mysql_real_escape_string:: @code{mysql_real_escape_string()}
-* mysql_real_query:: @code{mysql_real_query()}
-* mysql_reload:: @code{mysql_reload()}
-* mysql_row_seek:: @code{mysql_row_seek()}
-* mysql_row_tell:: @code{mysql_row_tell()}
-* mysql_select_db:: @code{mysql_select_db()}
-* mysql_shutdown:: @code{mysql_shutdown()}
-* mysql_stat:: @code{mysql_stat()}
-* mysql_store_result:: @code{mysql_store_result()}
-* mysql_thread_id:: @code{mysql_thread_id()}
-* mysql_use_result:: @code{mysql_use_result()}
-
-Common questions and problems when using the C API
-
-* NULL mysql_store_result::
-* Query results::
-* Getting unique ID::
-* C API linking problems::
-
-Why Is It that After @code{mysql_query()} Returns Success, @code{mysql_store_result()} Sometimes Returns @code{NULL?}
-
-* Query results::
-* Getting unique ID::
-* C API linking problems::
-
-MySQL Perl API
-
-* DBI with DBD:: @code{DBI} with @code{DBD::mysql}
-* Perl DBI Class:: The @code{DBI} interface
-* DBI-info:: More @code{DBI}/@code{DBD} information
-
-MySQL PHP API
-
-* PHP problems:: Common problems with MySQL and PHP
-
-MySQL Internals
-
-* MySQL threads:: MySQL threads
-* MySQL test suite:: MySQL test suite
-
-MySQL Test Suite
-
-* running mysqltest::
-* extending mysqltest::
-* Reporting mysqltest bugs::
-
-Credits
-
-* Developers::
-* Contributors::
-* Supporters::
-
-MySQL change history
-
-* News-4.0.x:: Changes in release 4.0.x (Development; Alpha)
-* News-3.23.x:: Changes in release 3.23.x (Stable)
-* News-3.22.x:: Changes in release 3.22.x (Older; Still supported)
-* News-3.21.x:: Changes in release 3.21.x
-* News-3.20.x:: Changes in release 3.20.x
-* News-3.19.x:: Changes in release 3.19.x
-
-Changes in release 4.0.x (Development; Alpha)
-
-* News-4.0.0:: Changes in release 4.0.0
-
-Changes in release 3.23.x (Stable)
-
-* News-3.23.40:: Changes in release 3.23.40
-* News-3.23.39:: Changes in release 3.23.39
-* News-3.23.38:: Changes in release 3.23.38
-* News-3.23.37:: Changes in release 3.23.37
-* News-3.23.36:: Changes in release 3.23.36
-* News-3.23.35:: Changes in release 3.23.35
-* News-3.23.34a:: Changes in release 3.23.34a
-* News-3.23.34:: Changes in release 3.23.34
-* News-3.23.33:: Changes in release 3.23.33
-* News-3.23.32:: Changes in release 3.23.32
-* News-3.23.31:: Changes in release 3.23.31
-* News-3.23.30:: Changes in release 3.23.30
-* News-3.23.29:: Changes in release 3.23.29
-* News-3.23.28:: Changes in release 3.23.28
-* News-3.23.27:: Changes in release 3.23.27
-* News-3.23.26:: Changes in release 3.23.26
-* News-3.23.25:: Changes in release 3.23.25
-* News-3.23.24:: Changes in release 3.23.24
-* News-3.23.23:: Changes in release 3.23.23
-* News-3.23.22:: Changes in release 3.23.22
-* News-3.23.21:: Changes in release 3.23.21
-* News-3.23.20:: Changes in release 3.23.20
-* News-3.23.19:: Changes in release 3.23.19
-* News-3.23.18:: Changes in release 3.23.18
-* News-3.23.17:: Changes in release 3.23.17
-* News-3.23.16:: Changes in release 3.23.16
-* News-3.23.15:: Changes in release 3.23.15
-* News-3.23.14:: Changes in release 3.23.14
-* News-3.23.13:: Changes in release 3.23.13
-* News-3.23.12:: Changes in release 3.23.12
-* News-3.23.11:: Changes in release 3.23.11
-* News-3.23.10:: Changes in release 3.23.10
-* News-3.23.9:: Changes in release 3.23.9
-* News-3.23.8:: Changes in release 3.23.8
-* News-3.23.7:: Changes in release 3.23.7
-* News-3.23.6:: Changes in release 3.23.6
-* News-3.23.5:: Changes in release 3.23.5
-* News-3.23.4:: Changes in release 3.23.4
-* News-3.23.3:: Changes in release 3.23.3
-* News-3.23.2:: Changes in release 3.23.2
-* News-3.23.1:: Changes in release 3.23.1
-* News-3.23.0:: Changes in release 3.23.0
-
-Changes in release 3.22.x (Older; Still supported)
-
-* News-3.22.35:: Changes in release 3.22.35
-* News-3.22.34:: Changes in release 3.22.34
-* News-3.22.33:: Changes in release 3.22.33
-* News-3.22.32:: Changes in release 3.22.32
-* News-3.22.31:: Changes in release 3.22.31
-* News-3.22.30:: Changes in release 3.22.30
-* News-3.22.29:: Changes in release 3.22.29
-* News-3.22.28:: Changes in release 3.22.28
-* News-3.22.27:: Changes in release 3.22.27
-* News-3.22.26:: Changes in release 3.22.26
-* News-3.22.25:: Changes in release 3.22.25
-* News-3.22.24:: Changes in release 3.22.24
-* News-3.22.23:: Changes in release 3.22.23
-* News-3.22.22:: Changes in release 3.22.22
-* News-3.22.21:: Changes in release 3.22.21
-* News-3.22.20:: Changes in release 3.22.20
-* News-3.22.19:: Changes in release 3.22.19
-* News-3.22.18:: Changes in release 3.22.18
-* News-3.22.17:: Changes in release 3.22.17
-* News-3.22.16:: Changes in release 3.22.16
-* News-3.22.15:: Changes in release 3.22.15
-* News-3.22.14:: Changes in release 3.22.14
-* News-3.22.13:: Changes in release 3.22.13
-* News-3.22.12:: Changes in release 3.22.12
-* News-3.22.11:: Changes in release 3.22.11
-* News-3.22.10:: Changes in release 3.22.10
-* News-3.22.9:: Changes in release 3.22.9
-* News-3.22.8:: Changes in release 3.22.8
-* News-3.22.7:: Changes in release 3.22.7
-* News-3.22.6:: Changes in release 3.22.6
-* News-3.22.5:: Changes in release 3.22.5
-* News-3.22.4:: Changes in release 3.22.4
-* News-3.22.3:: Changes in release 3.22.3
-* News-3.22.2:: Changes in release 3.22.2
-* News-3.22.1:: Changes in release 3.22.1
-* News-3.22.0:: Changes in release 3.22.0
-
-Changes in release 3.21.x
-
-* News-3.21.33:: Changes in release 3.21.33
-* News-3.21.32:: Changes in release 3.21.32
-* News-3.21.31:: Changes in release 3.21.31
-* News-3.21.30:: Changes in release 3.21.30
-* News-3.21.29:: Changes in release 3.21.29
-* News-3.21.28:: Changes in release 3.21.28
-* News-3.21.27:: Changes in release 3.21.27
-* News-3.21.26:: Changes in release 3.21.26
-* News-3.21.25:: Changes in release 3.21.25
-* News-3.21.24:: Changes in release 3.21.24
-* News-3.21.23:: Changes in release 3.21.23
-* News-3.21.22:: Changes in release 3.21.22
-* News-3.21.21a:: Changes in release 3.21.21a
-* News-3.21.21:: Changes in release 3.21.21
-* News-3.21.20:: Changes in release 3.21.20
-* News-3.21.19:: Changes in release 3.21.19
-* News-3.21.18:: Changes in release 3.21.18
-* News-3.21.17:: Changes in release 3.21.17
-* News-3.21.16:: Changes in release 3.21.16
-* News-3.21.15:: Changes in release 3.21.15
-* News-3.21.14b:: Changes in release 3.21.14b
-* News-3.21.14a:: Changes in release 3.21.14a
-* News-3.21.13:: Changes in release 3.21.13
-* News-3.21.12:: Changes in release 3.21.12
-* News-3.21.11:: Changes in release 3.21.11
-* News-3.21.10:: Changes in release 3.21.10
-* News-3.21.9:: Changes in release 3.21.9
-* News-3.21.8:: Changes in release 3.21.8
-* News-3.21.7:: Changes in release 3.21.7
-* News-3.21.6:: Changes in release 3.21.6
-* News-3.21.5:: Changes in release 3.21.5
-* News-3.21.4:: Changes in release 3.21.4
-* News-3.21.3:: Changes in release 3.21.3
-* News-3.21.2:: Changes in release 3.21.2
-* News-3.21.0:: Changes in release 3.21.0
-
-Changes in release 3.20.x
-
-* News-3.20.18:: Changes in release 3.20.18
-* News-3.20.17:: Changes in release 3.20.17
-* News-3.20.16:: Changes in release 3.20.16
-* News-3.20.15:: Changes in release 3.20.15
-* News-3.20.14:: Changes in release 3.20.14
-* News-3.20.13:: Changes in release 3.20.13
-* News-3.20.11:: Changes in release 3.20.11
-* News-3.20.10:: Changes in release 3.20.10
-* News-3.20.9:: Changes in release 3.20.9
-* News-3.20.8:: Changes in release 3.20.8
-* News-3.20.7:: Changes in release 3.20.7
-* News-3.20.6:: Changes in release 3.20.6
-* News-3.20.3:: Changes in release 3.20.3
-* News-3.20.0:: Changes in releases 3.20.0
-
-Changes in release 3.19.x
-
-* News-3.19.5:: Changes in release 3.19.5
-* News-3.19.4:: Changes in release 3.19.4
-* News-3.19.3:: Changes in release 3.19.3
-
-Comments on porting to other systems
-
-* Debugging server:: Debugging a @strong{MySQL} server
-* Debugging client:: Debugging a @strong{MySQL} client
-* The DBUG package:: The DBUG package
-* Locking methods:: Locking methods
-* RTS-threads:: Comments about RTS threads
-* Thread packages:: Differences between different thread packages
-
-Debugging a MySQL server
-
-* Compiling for debugging::
-* Making trace files::
-* Using gdb on mysqld::
-* Using stack trace::
-* Using log files::
-* Reproduceable test case::
-
-@end detailmenu
@end menu
@cindex overview
@@ -10310,10 +9307,10 @@ You should also add /etc/my.cnf:
@example
[safe_mysqld]
-open_files_limit=8192
+open-files-limit=8192
@end example
-The above should allow @strong{MySQL} to create up to 8192 connections/files.
+The above should allow @strong{MySQL} to create up to 8192 connections + files.
The @code{STACK_SIZE} constant in LinuxThreads controls the spacing of thread
stacks in the address space. It needs to be large enough so that there will
@@ -24806,17 +23803,9 @@ are locked by the current thread are automatically unlocked when the
thread issues another @code{LOCK TABLES}, or when the connection to the
server is closed.
-The main reasons to use @code{LOCK TABLES} are:
-
-@itemize @bullet
-@item
-Emulate transactions with not transaction safe tables.
-@item
-To get more speed with @code{MyISAM} tables when inserting/updating data
-over many statements. The main reason this gives more speed is that
-@strong{MySQL} will not flush the key cache for the locked tables until
-@code{UNLOCK TABLES} is called.
-@end itemize
+The main reasons to use @code{LOCK TABLES} are for emulating transactions
+or getting more speed when updating tables. This is explained in more
+detail later.
If a thread obtains a @code{READ} lock on a table, that thread (and all other
threads) can only read from the table. If a thread obtains a @code{WRITE}
@@ -24829,8 +23818,10 @@ execute while the lock is held. This can't however be used if you are
going to manipulate the database files outside @strong{MySQL} while you
hold the lock.
-Each thread waits (without timing out) until it obtains all the locks it has
-requested.
+When you use @code{LOCK TABLES}, you must lock all tables that you are
+going to use and you must use the same alias that you are going to use
+in your queries! If you are using a table multiple times in a query
+(with aliases), you must get a lock for each alias!
@code{WRITE} locks normally have higher priority than @code{READ} locks, to
ensure that updates are processed as soon as possible. This means that if one
@@ -24842,15 +23833,32 @@ locks while the thread is waiting for the @code{WRITE} lock. You should only
use @code{LOW_PRIORITY WRITE} locks if you are sure that there will
eventually be a time when no threads will have a @code{READ} lock.
-@code{LOCK TABLES} and @code{UNLOCK TABLES} both commits any active
-transactions.
+@code{LOCK TABLES} works as follows:
+@enumerate
+@item
+Sort all tables to be locked in a internally defined order (from the
+user standpoint the order is undefined).
+@item
+If a table is locked with a read and a write lock, put the write lock
+before the read lock.
+@item
+Lock one table at a time until the thread gets all locks.
+@end enumerate
+
+This policy ensures that table locking is deadlock free. There is
+however other things one needs to be aware of with this schema:
-When you use @code{LOCK TABLES}, you must lock all tables that you are
-going to use and you must use the same alias that you are going to use
-in your queries! If you are using a table multiple times in a query
-(with aliases), you must get a lock for each alias! This policy ensures
-that table locking is deadlock free and makes the locking code smaller,
-simpler and much faster.
+If you are using a @code{LOW_PRIORITY_WRITE} lock for a table, this
+means only that @strong{MySQL} will wait for this particlar lock until
+there is no threads that wants a @code{READ} lock. When the thread has
+got the @code{WRITE} lock and is waiting to get the lock for the next
+table in the lock table list, all other threads will wait for the
+@code{WRITE} lock to be released. If this becomes a serious problem
+with your application, you should consider converting some of your
+tables to transactions safe tables.
+
+You can safely kill a thread that is waiting for a table lock with
+@code{KILL}. @xref{KILL}.
Note that you should @strong{NOT} lock any tables that you are using with
@code{INSERT DELAYED}. This is because that in this case the @code{INSERT}
@@ -24867,6 +23875,12 @@ If you are going to run many operations on a bunch of tables, it's much
faster to lock the tables you are going to use. The downside is, of course,
that no other thread can update a @code{READ}-locked table and no other
thread can read a @code{WRITE}-locked table.
+
+The reason some things are faster under @code{LOCK TABLES} is that
+@strong{MySQL} will not flush the key cache for the locked tables until
+@code{UNLOCK TABLES} is called (normally the key cache is flushed after
+each SQL statement). This speeds up inserting/updateing/deletes on
+@code{MyISAM} tables.
@item
If you are using a table handler in @strong{MySQL} that doesn't support
transactions, you must use @code{LOCK TABLES} if you want to ensure that
@@ -24898,7 +23912,7 @@ table in the server and implemented with @code{pthread_mutex_lock()} and
See @ref{Internal locking}, for more information on locking policy.
-You can also lock all tables in all databases with read locks with the
+You can lock all tables in all databases with read locks with the
@code{FLUSH TABLES WITH READ LOCK} command. @xref{FLUSH}. This is very
convenient way to get backups if you have a file system, like Veritas,
that can take snapshots in time.
@@ -46299,8 +45313,6 @@ For making @code{mysqlaccess} more secure.
@item Albert Chin-A-Young.
Configure updates for Tru64, large file support and better TCP wrappers
support.
-@item Valueclick Inc.
-For sponsoring the optimize section in this manual.
@end table
Other contributors, bugfinders, and testers: James H. Thompson, Maurizio
@@ -46496,6 +45508,7 @@ users use this code as the rest of the code and because of this we are
not yet 100% confident in this code.
@menu
+* News-3.23.41::
* News-3.23.40:: Changes in release 3.23.40
* News-3.23.39:: Changes in release 3.23.39
* News-3.23.38:: Changes in release 3.23.38
@@ -46540,7 +45553,15 @@ not yet 100% confident in this code.
* News-3.23.0:: Changes in release 3.23.0
@end menu
-@node News-3.23.40, News-3.23.39, News-3.23.x, News-3.23.x
+@node News-3.23.41, News-3.23.40, News-3.23.x, News-3.23.x
+@appendixsubsec Changes in release 3.23.41
+@itemize @bullet
+@item
+Fixed optimizing bug in @code{ORDER BY} where some @code{ORDER BY} parts
+where wrongly removed.
+@end itemize
+
+@node News-3.23.40, News-3.23.39, News-3.23.41, News-3.23.x
@appendixsubsec Changes in release 3.23.40
@itemize @bullet
@item