some reason wasn't included before.
A lot of files cleaned up from #include <assert.h>
client/mysqlbinlog.cc:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
client/mysqldump.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
heap/hp_hash.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
include/m_string.h:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
include/my_dbug.h:
include assert.h needed for DBUG_ASSERT
libmysql/libmysql.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/ftdefs.h:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/mi_delete.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/mi_dynrec.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/mi_key.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/mi_open.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/mi_search.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
myisam/mi_write.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/mf_iocache.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/mf_iocache2.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/mf_keycache.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/my_bitmap.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/my_gethostbyname.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/my_getopt.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/my_pthread.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/my_seek.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/rijndael.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
mysys/thr_alarm.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
sql-common/client.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
sql/mysql_priv.h:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
sql/sql_string.cc:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
strings/ctype-simple.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
strings/ctype-ucs2.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
strings/my_vsnprintf.c:
assert.h needed for my_dbug.h now is included in
my_dbug.h, where it for some reason wasn't included before.
exactly it's mapped to "ALTER TABLE t; ANALYZE TABLE t;"
sql/ha_innodb.cc:
::optimize() now returns "try ALTER and then analyze" instead of only analyze.
sql/handler.h:
new code to say "try alter and analyze".
sql/mysql_priv.h:
as we may now use mysql_alter_table() internally to ::optimize we must prevent it from talking to the client.
New function mysql_recreate_table() which is the same as ALTER TABLE t;
sql/sql_parse.cc:
the big block removed here is moved into mysql_recreate_table().
sql/sql_table.cc:
In mysql_admin_table(): if the handler returns HA_ADMIN_TRY_ALTER,
we close the table, recreate it, then open it and analyze it.
This is currently used only for OPTIMIZE TABLE of an InnoDB table.
New option --sync-binlog=x (and global settable variable) which will fsync the binlog
after every x-th disk write to it. That is, if in autocommit mode, after every x-th statement
written to the binlog; if using transactions, after every x-th transaction written to the binlog.
x==0 means no fsync. x==1 is the slowest.
There is no test added for this, I have just checked that it works as --sync-binlog=1 dramatically
slows down mysqld.
Made sync-frm a global settable variable.
sql/log.cc:
every sync_binlog_period-th disk binlog write, we fsync the binlog
sql/mysql_priv.h:
new option sync_binlog
sql/mysqld.cc:
new option sync_binlog
sql/set_var.cc:
Making sync-frm a settable global option.
New settable global option sync-binlog.
sql/set_var.h:
new global settable variable sync_binlog needs a specific ::update because it needs to take LOCK_log
mysql-test/r/ps.result:
Better error message
mysys/my_error.c:
Comments added
sql/item.cc:
Moved a chunk of code from sql_prepare.cc to Item_param::set_from_user_var
sql/item.h:
Moved a chunk of code from sql_prepare.cc to Item_param::set_from_user_var
sql/item_func.cc:
Code cleanup
sql/mysql_priv.h:
Code cleanup
sql/sql_class.cc:
Code cleanup
sql/sql_parse.cc:
use user_var_entry::val_str in PREPARE stmt FROM @var.
sql/sql_prepare.cc:
Post-review fixes and code cleanup.
sql/sql_yacc.yy:
Coding style fixes
into brian-akers-computer.local:/Users/brian/mysql/mysql-4.1
BitKeeper/etc/logging_ok:
auto-union
acconfig.h:
Auto merged
acinclude.m4:
Auto merged
configure.in:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
into mysql.com:/dbdata/psergey/mysql-4.1-ps-merge
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
* The prepared statement query is put into binary log on execution only if it is an update query.
sql/item_func.cc:
New, binlog-aware character sets support in SQL Syntax for Prepared statements.
sql/mysql_priv.h:
New, binlog-aware character sets support in SQL Syntax for Prepared statements.
--with-geometry and
--with-embedded-privilege-control
configure switches added
acconfig.h:
necessary lines added
myisam/mi_open.c:
#include added
mysql-test/t/gis-rtree.test:
test modified to take HAVE_GEOMETRY in account
mysql-test/t/gis.test:
test modified to take HAVE_GEOMETRY in account
sql/mysql_priv.h:
option's variables added
sql/mysqld.cc:
option's handling added
sql/set_var.cc:
option's descriptions added
into brian-akers-computer.local:/Users/brian/mysql/mysql-4.1
BitKeeper/etc/logging_ok:
auto-union
configure.in:
Auto merged
sql/Makefile.am:
Auto merged
sql/handler.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
after Monty's review.
- Item_param was rewritten.
- it turns out that we can't convert string data to character set of
connection on the fly, because they first should be written to the binary
log.
To support efficient conversion we need to rewrite prepared statements
binlogging code first.
include/my_global.h:
Macro swap(a, b, c) was renamed to resolve name conflict with
String::swap() method.
include/my_sys.h:
Added declaration of escape_string_for_mysql()
include/mysql_com.h:
Removed and moved back: a macro which is visible to libmysql user but
has sence only in prepared statement protocol implementation.
isam/_search.c:
swap -> swap_variables
isam/test2.c:
swap -> swap_variables
libmysql/libmysql.c:
- sub_escape_string moved to mysys/charset.c to be visible in sql/
- few cleanups
myisam/mi_test2.c:
swap -> swap_variables
mysys/charset.c:
sub_escape_string was moved from libmysql.c to be able to use it in sql/
code.
mysys/my_chsize.c:
rename: swap -> swap_variables
mysys/my_compress.c:
swap -> swap_variables
mysys/my_handler.c:
swap -> swap_variables
sql/field.cc:
Field::store_time refactored to use TIME_to_string function from time.cc
sql/item.cc:
New implementation of Item_param class:
added support for character sets conversion.
sql/item.h:
Item_param:
- 'state' member introduced instead of many boolean variables.
- put ltime, int_value and real_value into union to save space.
- remove unimplemented members
- set_value renamed to set_str
sql/item_timefunc.cc:
Refactored to use functions from time.cc
sql/lock.cc:
rename: swap -> swap_variables
sql/mysql_priv.h:
- added declarations for TIME_to_ulonglong_*, TIME_to_string functions
- const specifiers for make_date, make_time, make_datetime arguments
sql/opt_range.cc:
rename: swap -> swap_variables
sql/protocol.cc:
- added character set conversion support to binary protocol.
- Protocol::convert changed to point at shared buffer in THD.
This lets us use one convert buffer for binary and simple protocol.
The same buffer is used for client->server conversions in prepared
statements code.
- string conversion code refactored to Protocol::store_string_aux function.
- few more comments
sql/protocol.h:
- Protocol::convert now points at THD::convert_buffer: we want to share one
buffer between all protocol implementations.
sql/sql_class.cc:
- implementation of THD::convert_string using THD::convert_buffer
(conversion of strings allocated in the system heap).
sql/sql_class.h:
- THD::convert_buffer is shared between THD and network Protocols and
used for character set conversion of strings.
- new function to convert String object from one charset to another using
THD::convert_buffer
sql/sql_insert.cc:
A little fix in a comment.
sql/sql_parse.cc:
Shrink convert buffer in the end of each statement.
sql/sql_prepare.cc:
Many changes:
- static specifier for set_param_* family of functions.
- FIELD_TYPE -> MYSQL_TYPE
- added set_param_binary as handler for BLOB types.
- added character set support
- added support for param typecode in mysql_stmt_get_longdata
(mysql_stmt_send_long_data handler)
- changes in Item_param deployed
- few cleanups
sql/sql_select.cc:
rename: swap -> swap_variables
sql/sql_string.cc:
- String::append rewritten to support character set conversion for
single-byte encodings.
- added String::swap method to efficiently exchange two string objects.
sql/sql_string.h:
Declraration for String::swap().
sql/time.cc:
- function TIME_to_string to convert TIME to String in default MySQL format
- family of functions TIME_to_ulonglong_*
tests/client_test.c:
Test for support for character set conversions in prepared statements
(binary and text data).
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/sql_lex.h:
SCCS merged
to make list of parameters in mysql_alter_table shorted
to avoid warning in MSVC (windows) building
sql/mysql_priv.h:
Introduced parameter object "ALTER_INFO" for mysql_alter_table
- changed declaration of mysql_alter_table
- changed declaration of mysql_drop_index
(replaced List<Alter_drop> by ALTER_INFO)
sql/sql_lex.h:
Introduced parameter object "ALTER_INFO" for mysql_alter_table
- declared struct ALTER_INFO
- added ALTER_INFO alter_info; into LEX
- removed fields which were added into ALTER_INFO from LEX
sql/sql_parse.cc:
Introduced parameter object "ALTER_INFO" for mysql_alter_table
- changed invotaions of mysql_alter_table
- replaced cleaning fields in SQLCOM_OPTIMIZE by ALTER_INFO::reset
- changed invocation of mysql_drop_index (replaced lex->drop_list by &lex->alter_info)
- changed definition of mysql_create_index and mysql_drop_index to use ALTER_INFO
sql/sql_table.cc:
Introduced parameter object "ALTER_INFO" for mysql_alter_table
- changed definition of mysql_alter_table
sql/sql_yacc.yy:
Introduced parameter object "ALTER_INFO" for mysql_alter_table
- replaced using of removed from LEX fields my fields of LEX::alter_info
acconfig.h:
Adding undef piece for HAVE_ARCHIVE_DB
acinclude.m4:
Code needed for --with-archive-storage-engine flag for compile.
configure.in:
Adding tag for Archive
sql/Makefile.am:
Source updates to compile ha_archive
sql/examples/ha_archive.cc:
Class file for archive storage engine. First version.
sql/handler.cc:
Updates needed for adding archive storage engine.
sql/handler.h:
ENUM for archive storage engine.
sql/mysql_priv.h:
Archive show options
sql/mysqld.cc:
Ifdef foor HAVE_ARCHIVE_DB
sql/examples/ha_archive.h:
Include file for archive storage engine addition.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
into mysql.com:/dbdata/psergey/mysql-4.1-ps-merge
sql/item.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
VC++Files/client/mysqladmin.dsp:
Auto merged
VC++Files/client/mysqldump.dsp:
Auto merged
VC++Files/client/mysqlimport.dsp:
Auto merged
VC++Files/client/mysqlshow.dsp:
Auto merged
VC++Files/dbug/dbug.dsp:
Auto merged
VC++Files/heap/heap.dsp:
Auto merged
VC++Files/innobase/innobase.dsp:
Auto merged
VC++Files/isam/isam.dsp:
Auto merged
VC++Files/isamchk/isamchk.dsp:
Auto merged
VC++Files/libmysql/libmysql.dsp:
Auto merged
VC++Files/mysql.dsw:
Auto merged
BitKeeper/deleted/.del-sync0ipm.ic~2024167f6418de39:
Auto merged
VC++Files/libmysqltest/myTest.dsp:
Auto merged
VC++Files/merge/merge.dsp:
Auto merged
VC++Files/my_print_defaults/my_print_defaults.dsp:
Auto merged
VC++Files/myisam/myisam.dsp:
Auto merged
VC++Files/myisam_ftdump/myisam_ftdump.dsp:
Auto merged
VC++Files/myisammrg/myisammrg.dsp:
Auto merged
VC++Files/mysqlbinlog/mysqlbinlog.dsp:
Auto merged
VC++Files/mysqlcheck/mysqlcheck.dsp:
Auto merged
VC++Files/mysqlshutdown/mysqlshutdown.dsp:
Auto merged
VC++Files/mysqlwatch/mysqlwatch.dsp:
Auto merged
VC++Files/mysys/mysys.dsp:
Auto merged
VC++Files/pack_isam/pack_isam.dsp:
Auto merged
VC++Files/perror/perror.dsp:
Auto merged
VC++Files/regex/regex.dsp:
Auto merged
VC++Files/replace/replace.dsp:
Auto merged
VC++Files/test1/test1.dsp:
Auto merged
VC++Files/thr_test/thr_test.dsp:
Auto merged
VC++Files/vio/vio.dsp:
Auto merged
VC++Files/zlib/zlib.dsp:
Auto merged
extra/my_print_defaults.c:
Auto merged
include/m_string.h:
Auto merged
include/mysql_embed.h:
Auto merged
include/mysql_version.h.in:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/mem/mem0pool.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
innobase/trx/trx0sys.c:
Auto merged
myisam/myisam_ftdump.c:
Auto merged
VC++Files/bdb/bdb.dsp:
Merge with 4.0
VC++Files/client/mysql.dsp:
Merge with 4.0
VC++Files/client/mysqlclient.dsp:
Merge with 4.0
VC++Files/comp_err/comp_err.dsp:
Merge with 4.0
VC++Files/libmysqld/examples/test_libmysqld.dsp:
Merge with 4.0
VC++Files/libmysqld/libmysqld.dsp:
Merge with 4.0
VC++Files/myisamchk/myisamchk.dsp:
Merge with 4.0
VC++Files/myisamlog/myisamlog.dsp:
Merge with 4.0
VC++Files/myisampack/myisampack.dsp:
Merge with 4.0
VC++Files/mysqldemb/mysqldemb.dsp:
Merge with 4.0
VC++Files/mysqlserver/mysqlserver.dsp:
Merge with 4.0
VC++Files/sql/mysqld.dsp:
Merge with 4.0
VC++Files/strings/strings.dsp:
Merge with 4.0
libmysqld/lib_sql.cc:
Merge with 4.0
libmysqld/libmysqld.def:
Merge with 4.0
mysql-test/r/func_str.result:
Merge with 4.0
mysql-test/r/handler.result:
auto
mysql-test/r/variables.result:
Merge with 4.0
mysql-test/t/func_str.test:
auto
mysql-test/t/handler.test:
auto
mysql-test/t/variables.test:
Merge with 4.0
scripts/make_win_src_distribution.sh:
auto
scripts/mysql_install_db.sh:
Use original file
sql/Makefile.am:
Merge with 4.0
sql/ha_innodb.cc:
auto
sql/item_strfunc.cc:
Merge with 4.0
sql/mysql_priv.h:
auto
sql/mysqld.cc:
Merge with 4.0
sql/set_var.cc:
Merge with 4.0
sql/slave.cc:
auto
sql/sql_class.h:
auto
sql/sql_handler.cc:
Merge with 4.0
strings/ctype-tis620.c:
Merge with 4.0
(fix by our Harrison Fisk): when one does SET GLOBAL SERVER_ID=x, we must set
server_id_supplied to 1.
sql/mysql_priv.h:
server_id_supplied must be here to be visible in set_var.cc
sql/mysqld.cc:
rephrasing warnings when server id is not set explicitely.
sql/set_var.cc:
when one does SET GLOBAL SERVER_ID=x; it should be considered as explicitely setting
the server id, so do server_id_supplied=1.
sql/slave.cc:
Correcting wrong comment
New records_in_range() interface (similar to read_range())
Macros for faster bitmap handling
Simplify read_range() code (#WL1786)
New general key_cmp() function to compare keys
heap/hp_hash.c:
New records_in_range() interface
include/heap.h:
New records_in_range() interface
include/my_base.h:
Moved 'key_range' here so that all table handlers can use it
include/my_bitmap.h:
Make some bitmap functions inline for faster usage in one thread
include/myisam.h:
New records_in_range() interface
include/myisammrg.h:
New records_in_range() interface
myisam/mi_range.c:
New records_in_range() interface
myisam/mi_test2.c:
New records_in_range() interface
myisam/rt_test.c:
New records_in_range() interface
Indentation fixes
myisam/sp_test.c:
New records_in_range() interface
Indentation fixes
myisammrg/myrg_range.c:
New records_in_range() interface
mysys/my_bitmap.c:
Make some bitmap functions inline for faster usage in one thread
sql/examples/ha_example.cc:
New records_in_range() interface
sql/field.cc:
Fixed indentation
sql/ha_berkeley.cc:
New records_in_range() interface
sql/ha_berkeley.h:
New records_in_range() interface
sql/ha_heap.cc:
New records_in_range() interface
sql/ha_heap.h:
New records_in_range() interface
sql/ha_innodb.cc:
New records_in_range() interface
sql/ha_innodb.h:
New records_in_range() interface
sql/ha_isam.cc:
New records_in_range() interface
sql/ha_isam.h:
New records_in_range() interface
sql/ha_myisam.cc:
New records_in_range() interface
sql/ha_myisam.h:
New records_in_range() interface
sql/ha_myisammrg.cc:
New records_in_range() interface
sql/ha_myisammrg.h:
New records_in_range() interface
sql/ha_ndbcluster.cc:
New records_in_range() interface
sql/ha_ndbcluster.h:
New records_in_range() interface
sql/handler.cc:
Simplify read_range() interface:
- Add 'eq_range' to read_range_first
- Remove 'eq_range' parameer from read_range_next()
- Trust values from index_next_same()
- Simplfy compare_key() by moving key_comparision to key.cc (as this code can be reused from other places)
sql/handler.h:
Move key_range to my_base.h to be used by external table handlers
Simplify read_range() interface
New records_in_range() interface
sql/key.cc:
Rename key_cmp() to key_cmp_if_same() to make it more descriptive
Add new key_cmp() function usable from range and handler code.
sql/mysql_priv.h:
Prototypes for new functions
sql/opt_range.cc:
New records_in_range() interface
Simplify cmp_prev()
(We can in 5.0 simplify cmp_next() the same way)
sql/opt_range.h:
Added key_part_info to QUICK_SELECT to be able to use key_cmp() in get_next()
sql/opt_sum.cc:
key_cmp -> key_cmp_if_same
sql/sql_acl.cc:
key_cmp -> key_cmp_if_same
sql/sql_select.cc:
key_cmp -> key_cmp_if_same
into mysql.com:/dbdata/psergey/mysql-4.1-ps-merge
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into mysql.com:/dbdata/psergey/mysql-4.1-ps-merge
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19)) (portability fix)
Fixed that INTERVAL can handle big integers. (Bug #3498)
Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
mysql-test/mysql-test-run.sh:
Fixed wrong http address (Bug #3460)
mysql-test/r/func_time.result:
Results for new test cases
mysql-test/t/func_time.test:
Added test of INTERVAL with big integers
scripts/mysqld_safe.sh:
Added html address to manual in case of error
sql/field.cc:
Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19))
sql/item_timefunc.cc:
Fixed that INTERVAL can handle big integers. (Bug #3498)
sql/mysql_priv.h:
Removed not needed prototype
sql/sql_acl.cc:
Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
Moved GRANT_TABLE::GRANT_TABLE functions ou from class definition to make it possible to debug them
sql/structs.h:
Fix for long values to INTERVAL
include/my_base.h:
Added three new errorcodes to be returned by the handler
sql/Makefile.am:
Add new files discover.cc, ha_ndbcluster.cc and ha_ndbcluster.h
Add include path of NDB files
sql/handler.cc:
Added variable for keeping track of number of "discovers"
Added NDB to list of storage engines
Added calls to NDB for commit, rollback etc.
Added function ha_discover for discovering a table from handler
sql/handler.h:
Added NDB to list of storage engines
Added vbariable in transaction for keeping a ndb transaction handle
sql/lex.h:
Changed AND to AND_SYM and OR to OR_SYM to avoid nameclash
sql/mysql_priv.h:
Added prototypes for new functions readfrm, writefrm and create_table_from_handler
sql/mysqld.cc:
Added NDB support
Disable NDB with --skip-ndbcluster
sql/set_var.cc:
Add posibilty to show if NDB handler is supported
sql/ha_ndbcluster.cc:
Add ifdef for whole file for not compiling anything if NDB sholdn't be included
Updated timestamp handling to use new vars timestamp_default_now and timestamp_on_update_now
sql/sql_base.cc:
If frm file is not found on disk, ask handler if it knows about the table. Then retry the open.
This new functionality is called "discover" and can be used by any handler.
sql/sql_class.h:
Added variable for keeping a NDB connection handle
sql/sql_table.cc:
Before trying to create a table, ask handler if a table with that name already exists.
If user said CREATE TABLE IF NOT EXISTS, disocver the table from handler
sql/sql_yacc.yy:
Add NDBCLUSTER_SYM
Change AND to AND_SYM
Change OR to OR_SYM
sql/table.cc:
Fixe for probelm when NullS is returned from bas_ext of a handler.
into brian-akers-computer.local:/Users/brian/mysql/mysql-4.1-examples
BitKeeper/etc/logging_ok:
auto-union
include/my_base.h:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
acconfig.h:
Default undef for example storage engine.
acinclude.m4:
Build macro additions for example engine.
configure.in:
Configure changes for it to be listed in --help
sql/Makefile.am:
Added in paths to build example.
sql/examples/ha_example.cc:
Correction in indention and a few minor other corrections. It now lets you create/open/drop example engine.
sql/handler.cc:
Added definition for the example storage engine. Added case for it to be created.
sql/handler.h:
Added example storage engine type.
sql/mysql_priv.h:
Added flag for optional build of example storage engine.
sql/mysqld.cc:
Pieces to build example storage engine.
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Manual merge
sql/sql_prepare.cc:
Manual merge
Moved PS name to Statement class, Statement_map now handles name-to-statement resolution.
Both named and unnamed statements are now executed in one function (sql_prepare.cc:execute_stmt)
Fixed a problem: Malformed sequence of commands from client could cause server to use previously deleted objects.
Some code cleanup and small fixes
sql/mysql_priv.h:
WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
sql/sql_class.cc:
WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
sql/sql_class.h:
WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
sql/sql_parse.cc:
WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
sql/sql_prepare.cc:
WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
sql/item_cmpfunc.cc:
merged in one if
sql/mysql_priv.h:
removed unused paremeter of check_one_table_access
declaration of new function for SP share code
sql/set_var.cc:
function descriotion added
unneeded parantses removed
sql/sql_acl.cc:
new parameter to limit number of checked tables for check_grant
sql/sql_acl.h:
new parameter to limit number of checked tables for check_grant
sql/sql_delete.cc:
preparation moved in separate function
sql/sql_insert.cc:
preparation moved in separate function
sql/sql_lex.cc:
comment style fixed
unneeded assignment removed
sql/sql_parse.cc:
new parameter to limit number of checked tables for check_grant
table list manipulation removed (because of above)
new precheck function
sql/sql_prepare.cc:
function rewrited to shere code with sql_prepare.cc
flow control fixed
sql/sql_show.cc:
new parameter to limit number of checked tables for check_grant
sql/sql_update.cc:
preparation moved in separate function
sql/table.h:
flag renamed
Revert main parts of patch for online index builds. Should be done differently
Added support for %lx in my_snprintf()
sql/ha_myisam.cc:
Don't enable HA_EXTRA_WRITE_CACHE if too few rows
sql/handler.h:
Indentaion fix
sql/mysql_priv.h:
Removed real_alter_table, mysql_add_column and mysql_drop_column
sql/sql_class.cc:
After merge fix
sql/sql_insert.cc:
Don't user bulk_insert if only one row (common case)
sql/sql_parse.cc:
Added mysql_create_index() and mysql_drop_index() as these are only wrappers for mysql_alter_table()
sql/sql_table.cc:
Revert main parts of patch for online index builds
Changed back to use tabs to make merges possible between trees
sql/unireg.cc:
Added comments and minor cleanup
strings/my_vsnprintf.c:
Added support for %lx.
Proper long support
sql/item.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_yacc.yy:
SCCS merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
fixed IN subselect with basic constant left expression
SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
fixed multiupdate privelege check (BUG#3408)
fixed multiupdate tables check (BUG#3411)
unchecked commands now is rejected by PS protocol to avoid serever crash
fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
include/mysqld_error.h:
new error for unsupported command in PS
mysql-test/r/multi_update.result:
test sutes (BUG#3408, BUG#3411)
mysql-test/t/multi_update.test:
test sutes (BUG#3408, BUG#3411)
sql/item_cmpfunc.cc:
fixed IN subselect with basic constant left expression
sql/mysql_priv.h:
some function frop sql_parse.h become public
sql/set_var.cc:
check for SET command via PS
sql/set_var.h:
check for SET command via PS
sql/share/czech/errmsg.txt:
new error for unsupported command in PS
sql/share/danish/errmsg.txt:
new error for unsupported command in PS
sql/share/dutch/errmsg.txt:
new error for unsupported command in PS
sql/share/english/errmsg.txt:
new error for unsupported command in PS
sql/share/estonian/errmsg.txt:
new error for unsupported command in PS
sql/share/french/errmsg.txt:
new error for unsupported command in PS
sql/share/german/errmsg.txt:
new error for unsupported command in PS
sql/share/greek/errmsg.txt:
new error for unsupported command in PS
sql/share/hungarian/errmsg.txt:
new error for unsupported command in PS
sql/share/italian/errmsg.txt:
new error for unsupported command in PS
sql/share/japanese/errmsg.txt:
new error for unsupported command in PS
sql/share/korean/errmsg.txt:
new error for unsupported command in PS
sql/share/norwegian-ny/errmsg.txt:
new error for unsupported command in PS
sql/share/norwegian/errmsg.txt:
new error for unsupported command in PS
sql/share/polish/errmsg.txt:
new error for unsupported command in PS
sql/share/portuguese/errmsg.txt:
new error for unsupported command in PS
sql/share/romanian/errmsg.txt:
new error for unsupported command in PS
sql/share/russian/errmsg.txt:
new error for unsupported command in PS
sql/share/serbian/errmsg.txt:
new error for unsupported command in PS
sql/share/slovak/errmsg.txt:
new error for unsupported command in PS
sql/share/spanish/errmsg.txt:
new error for unsupported command in PS
sql/share/swedish/errmsg.txt:
new error for unsupported command in PS
sql/share/ukrainian/errmsg.txt:
new error for unsupported command in PS
sql/sql_lex.cc:
first table unlincking procedures for CREATE command
sql/sql_lex.h:
first table unlincking procedures for CREATE command
sql/sql_parse.cc:
used function to exclude first table from list
SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
fixed multiupdate privelege check (BUG#3408)
fixed multiupdate tables check (BUG#3411)
sql/sql_prepare.cc:
fixed a lot of commands to be compatible with PS
unchecked commands now is rejected to avoid serever crash
sql/sql_select.cc:
allow empty result for PS preparing
sql/sql_union.cc:
fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
sql/sql_update.cc:
fixed update to use correct tables lists (BUG#3408)
sql/table.h:
flag to support multi update tables check (BUG#3408)
tests/client_test.c:
removed unsupported tables
fixed show table test
added new tests
BitKeeper/etc/ignore:
auto-union
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/unireg.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Hand-merged
sql/sql_yacc.yy:
Hand-merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
into sanja.is.com.ua:/home/bell/mysql/bk/work-on-4.1
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/table.h:
Auto merged
fixed aggregate functions in PS (BUG#3360)
mysql-test/r/union.result:
4.1 more correct error
sql/item_cmpfunc.h:
and_conds do not make fix fields
sql/item_sum.cc:
storing/restoring argument of aggregate function for prepared statements
restoring order list of group_concat for safety
sql/item_sum.h:
storing/restoring argument of aggregate function for prepared statements
layout fix
sql/mysql_priv.h:
just declaration
sql/sql_base.cc:
fix_fields() have to be called with temporary memory pool active
sql/sql_parse.cc:
removed hack with item pointer storing
sql/sql_prepare.cc:
debug output added
removed hack with item pointer storing
sql/sql_select.cc:
fix_fields now should be called separately
sql/sql_union.cc:
removed wrong merged check from 4.0 (4.1 have its own protection)
sql/table.h:
removed hack with item pointer storing
tests/client_test.c:
new test fo PS
Final version of patch.
Adds support for specifying of DEFAULT NOW() and/or ON UPDATE NOW()
clauses for TIMESTAMP field definition.
Current implementation allows only one such field per table and
uses several unireg types for storing info about this properties of
field. It should be replaced with better implementation when new
.frm format is introduced.
include/mysqld_error.h:
Added error codes for case when we have more than one column with NOW()
in DEFAULT or ON UPDATE clauses and for case when we are using ON UPDATE
clause with wrong type.
mysql-test/r/create.result:
Added tests for using of DEFAULT NOW() and ON UPDATE NOW() with
non-TIMESTAMP fields.
mysql-test/r/show_check.result:
Updated test results to reflect new default look of TIMESTAMP fields
in SHOW CREATE TABLE.
mysql-test/r/system_mysql_db.result:
Updated test results to reflect new default look of TIMESTAMP fields
in SHOW CREATE TABLE.
mysql-test/r/type_ranges.result:
Updated test results to reflect new default look of TIMESTAMP fields
in SHOW COLUMNS.
mysql-test/r/type_timestamp.result:
Added tests for various DEFAULT and ON UPDATE clauses for TIMESTAMP
fields definitions.
mysql-test/t/create.test:
Added tests for using of DEFAULT NOW() and ON UPDATE NOW() with
non-TIMESTAMP fields.
mysql-test/t/type_timestamp.test:
Added tests for various DEFAULT and ON UPDATE clauses for TIMESTAMP
fields definitions.
sql/field.cc:
Added support for various combinations of DEFAULT and ON UPDATE clauses
for TIMESTAMP field.
Setting TABLE::timestamp* members for TIMESTAMP fields with auto-set
option taking into account their unireg type (which corresponds to
various DEFAULT/ON UPDATE values combinations). Replaced
TABLE::time_stamp with TABLE::timestamp_default_now/on_update_now
couple moved their setup to separate method set_timestamp_offsets(),
which now is called from open_table instead of Field_timestamp cons.
sql/field.h:
Added more unireg types for handling of DEFAULT NOW() and ON UPDATE
NOW() for TIMESTAMP fields.
Fixed value corresponding to DEFAULT item for TIMESTAMP field.
sql/ha_berkeley.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/ha_heap.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/ha_innodb.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/ha_isam.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/ha_isammrg.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/ha_myisam.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/ha_myisammrg.cc:
Now TIMESTAMP column with auto-set property could be updated during
INSERT or/and UPDATE independently.
sql/item_func.h:
We need to distinguish NOW() from other function for using in
DEFAULT and in ON UPDATE clauses.
sql/item_timefunc.h:
We need to distinguish NOW() from other function for using in
DEFAULT and in ON UPDATE clauses.
sql/mysql_priv.h:
Added parameter for ON UPDATE value to add_field_to_list() function.
sql/share/czech/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/danish/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/dutch/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/english/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/estonian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/french/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/german/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/greek/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/hungarian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/italian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/japanese/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/korean/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/norwegian-ny/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/norwegian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/polish/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/portuguese/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/romanian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/russian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/serbian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/slovak/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/spanish/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/swedish/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/share/ukrainian/errmsg.txt:
Added error messages for case when we have more than one column with
NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or
ON UPDATE clauses and for case when we are using ON UPDATE clause with
wrong type.
sql/sql_base.cc:
Added setup of TABLE::timestamp_default_now/on_update_now pair
for each statement to open_table().
sql/sql_insert.cc:
Using TABLE::timestamp_default_now/on_update_now pair instead of
old TABLE::time_stamp. Added check for case then REPLACE could not
be converted to UPDATE because of different DEFAULT/ON UPDATE values
for TIMESTAMP field.
sql/sql_lex.h:
Added member for value used in ON UPDATE clause to st_lex.
sql/sql_load.cc:
Using TABLE::timestamp_default_now/on_update_now pair instead of
old TABLE::time_stamp. We don't need to restore these members
since they are set up for each statement in open_table().
sql/sql_parse.cc:
Added handling of DEFAULT NOW() and ON UPDATE NOW() clauses for
TIMESTAMP fields to add_field_to_list() function.
sql/sql_show.cc:
Added support for DEFAULT CURRENT_TIMESTAMP (aka NOW() ) and
ON UPDATE CURRENT_TIMESTAMP to SHOW CREATE TABLE and SHOW COLUMNS.
sql/sql_table.cc:
mysql_create_table() function - added check for number of TIMESTAMP
fields with auto-set values and replacing of old style TIMESTAMPs
with their newer analogs.
mysql_alter_table(): Using TABLE::timestamp_default_now/on_update_now
pair instead of old TABLE::time_stamp. We don't need to restore these
members since they are set up for each statement in open_table().
sql/sql_update.cc:
Left only setting of TABLE::timestamp_default_now/on_update_now
to 0 since they should be already set up in open_table().
sql/sql_yacc.yy:
Added support for DEFAULT NOW() and ON UPDATE NOW() in field
definitions.
sql/table.h:
Replaced TABLE::time_stamp withTABLE::timestamp_default_now/timestamp_on_update_now
pair which allows to distinguish TIMESTAMP's with various DEFAULT/ON UPDATE
clauses and optimize checks if TIMESTAMP field should be set to NOW()
in handlers.
sql/unireg.cc:
Now we are marking only TIMESTAMP fields with NOW() as default or
as on update value as special field for unireg.
Added two status variables:
binlog_cache_use - counts number of transactions that used somehow
transaction temporary binary log.
binlog_cache_disk_use - counts number of transactions that required
disk I/O for storing info in this this binary log.
include/my_sys.h:
Added disk_writes member to the IO_CACHE structure for counting number
of times when IO_CACHE was forced to write to disk.
mysql-test/r/rpl_relayrotate.result:
Fixed test result since added test for binlog_cache_use and
binlog_cache_disk_use status variables.
mysql-test/t/rpl_relayrotate.test:
Added test for binlog_cache_use and binlog_cache_disk_use status
variables.
Now dropping t1 table on master too.
mysys/mf_iocache.c:
Added disk_writes member to the IO_CACHE structure for counting number
of times when IO_CACHE was forced to write to disk.
sql/handler.cc:
Added support for binlog_cache_use and binlog_cache_disk_use status
variable. First one is incremented if transaction used somehow
transaction temporary binary log (doesn't matter in memory only or
with writes to disk), the second one is incremented if this binary
log was flushed to disk at some point.
sql/mysql_priv.h:
Added declaration of status variables binlog_cache_use and
binlog_cache_disk_use.
sql/mysqld.cc:
Added status variables binlog_cache_use and binlog_cache_disk_use.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
(
fixed BUG #2385 CREATE TABLE LIKE lacks locking on source and destination table
and added tests for it
)
sql/mysql_priv.h:
added code TEST_SYNCHRONIZATION for --exit-info option
sql/mysqld.cc:
fixed -debug prefix
sql/sql_table.cc:
added synchronization in mysql_create_like_table
(fixed BUG #2385 CREATE TABLE LIKE lacks locking on source and destination table)
BitKeeper/etc/logging_ok:
auto-union
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Manual merge
table resolution".
Added members to Item_ident for storing original db, table and field
names since those that set later from Field have shorter life-time
than required by prep. stmt. So we need to restore original names in
Item_ident::cleanup(). Also now using special construnctor for creation
of Item_field from Field object that ensures that table and field name
have big enough life-time.
"Fix" for bug #2050 "10 to 1 performance drop with server 4.1.1"
Clean ups in implementation of caching of field number in table.
Added caching of table in which field is found in find_field_in_tables().
sql/item.cc:
Added members to Item_ident for storing original db, table and field
names since those that set later from Field have shorter life-time
than required by prep. stmt. So we need to restore original names in
Item_ident::cleanup().
Added Item_ident::cached_table for caching table there we found
our field.
Added special constructor for creation of Item_field from Field object
that ensures that table and field name have big enough life-time.
sql/item.h:
Added members to Item_ident for storing original db, table and field
names since those that set later from Field have shorter life-time
than required by prep. stmt. So we need to restore original names in
Item_ident::cleanup().
Changed type of Item_ident::cached_field_index from int to uint
(and so NO_CACHED_FIELD_INDEX is UINT_MAX now) because we want to
save one comparison in find_field_in_table().
Added Item_ident::cached_table for caching table there we found
our field.
Added special constructor for creation of Item_field from Field object
that ensures that table and field name have big enough life-time.
sql/mysql_priv.h:
Changed type of cached_field_index_ptr from int* to uint*
(and so NO_CACHED_FIELD_INDEX is UINT_MAX now) because we want to
save one comparison in find_field_in_table().
sql/sql_acl.cc:
Changed type of find_field_in_table() paremeter to make it
faster.
sql/sql_base.cc:
find_field_in_table(): small optimization and soime clean ups in
caching of field index.
find_field_in_tables(): added aggresive caching of table in which
field is found in Item_ident::cached_table.
insert_fields():
using special construnctor for creation of Item_field from Field
object that ensures that table and field name have big enough life-time.
This is to enable table handlers to implement online create/drop index.
It consists of some parts:
- New default handler methods in handler.h
- Split of mysql_alter_table. It decides if only one kind of
alteration is to be done (e.g. only create indexes or only drop
indexes etc.) It then calls the specialized new handler method if
the handler implements it. Otherwise it calls real_alter_table.
- The parser sets flags for each alter operation detected in a
command. These are used by mysql_alter_table for the decision.
- mysql_prepare_table is pulled out of mysql_create_table. This is
also used by mysql_create_index to prepare the key structure array
for the handler. It is also used by mysql_create_index and
mysql_drop_index to prepare a call to mysql_create_frm.
- mysql_create_frm is pulled out of rea_create_table for use by
mysql_create_index and mysql_drop_index after the index is
created/dropped.
Thanks to Antony who supplied most of the changes.
sql/handler.h:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
New virtual handler methods with default implementation and return flags.
sql/mysql_priv.h:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
New function prototypes. mysql_prepare_table is pulled out of
mysql_create_table. It prepares a table structure, which is used by
mysql_create_table, mysql_create_index and mysql_drop_index.
real_alter_table is pulled out of mysql_alter_table. The latter only
looks if the requested operation can be done by specialized functions
or else calls real_alter_table, which does the real thing.
mysql_add_column and mysql_drop_colunm are for future use. They simply
call real_alter_table. mysql_create_frm is pulled out of
rea_create_table. It is called also from mysql_create_index and
mysql_drop_index after successful create/drop index.
mysql_alter_table prototype is extended by the new alter_flags argument.
sql/sql_base.cc:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
mysql_create_index and mysql_drop_index moved to sql_table.cc.
sql/sql_lex.h:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
Definitions for the new alter_flags.
sql/sql_parse.cc:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
Extend the calls to mysql_alter_table by the new alter_flags argument.
sql/sql_table.cc:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
mysql_prepare_table is pulled out of mysql_create_table.
mysql_create_index and mysql_drop_index are changed so that they use
the new handler functions if the handler implements them.
mysql_add_column and mysql_drop_column are for future use. They simply
call real_alter_table. mysql_alter_table only decides which function
to use for the requested operation. real_alter_table implements most
of what mysql_alter_table did before.
sql/sql_yacc.yy:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
Set the alter_flags where appropriate.
sql/unireg.cc:
Worklog#1563 - Support of on-line CREATE/DROP INDEX.
mysql_create_frm is pulled out of rea_create_table.
Actually it is not a bug but right behavior observed as pefomance
degradation after we have forced Item_field::fix_fields() to
re-execute each time when we are executing prep stmt.
This patch implements small optimization which heals this bad
behavior. We are caching field position in TABLE::field array in
Item's member and are using this position for speeding up field
lookups in fix_fields() in case of its re-execution.
sql/item.cc:
Added cached_field_index member to Item_ident for caching field
position in TABLE::field array for quicker field lookup in case
fix_fields() is executed twice.
sql/item.h:
Added cached_field_index member to Item_ident for caching field
position in TABLE::field array for quicker field lookup in case
fix_fields() is executed twice.
sql/mysql_priv.h:
Now find_field_in_table has one more in-out parameter which is used
for caching field index in TABLE::field array stored for quicker
field look up.
sql/sql_acl.cc:
Now find_field_in_table has one more in-out parameter which is used
for caching field index in TABLE::field array stored for quicker
field look up.
sql/sql_base.cc:
Optimization: Now when we are looking up Field by its name we are
caching its position in TABLE::field array in Item_ident::cached_field_index,
so when we will call fix_fields() second time for this item (e.g.
when we are re-executing prep statement) we can reuse this index
to speed up this lookup.
sql/table.cc:
Now we storing in TABLE::name_hash pointers to elements of
TABLE::field array, because this allows easily retrieve index
of field in this array when it is looked up by its name.
sql/table.h:
Added comment claryfying what we store in TABLE::name_hash.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
client/mysqladmin.c:
Auto merged
client/mysqltest.c:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/include/os0file.h:
Auto merged
innobase/os/os0file.c:
Auto merged
myisam/mi_check.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
BitKeeper/etc/logging_ok:
auto-union
VC++Files/innobase/innobase.dsp:
Auto merged
VC++Files/libmysql/libmysql.dsp:
Auto merged
acinclude.m4:
Auto merged
configure.in:
Auto merged
BitKeeper/deleted/.del-com0shm.c~6a16f0c3d81de1f:
Auto merged
BitKeeper/deleted/.del-mysql_fix_privilege_tables.sql:
Auto merged
extra/replace.c:
Auto merged
include/my_sys.h:
Auto merged
innobase/btr/btr0btr.c:
Auto merged
innobase/btr/btr0cur.c:
Auto merged
innobase/btr/btr0pcur.c:
Auto merged
innobase/btr/btr0sea.c:
Auto merged
innobase/configure.in:
Auto merged
innobase/data/data0data.c:
Auto merged
innobase/dict/dict0boot.c:
Auto merged
innobase/dict/dict0crea.c:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/dict/dict0load.c:
Auto merged
innobase/dict/dict0mem.c:
Auto merged
innobase/ha/ha0ha.c:
Auto merged
innobase/ha/hash0hash.c:
Auto merged
innobase/include/btr0btr.ic:
Auto merged
innobase/include/data0type.ic:
Auto merged
innobase/include/dict0mem.h:
Auto merged
innobase/include/log0log.ic:
Auto merged
innobase/include/mach0data.ic:
Auto merged
innobase/include/mtr0log.h:
Auto merged
innobase/include/mtr0mtr.h:
Auto merged
innobase/include/os0file.h:
Auto merged
innobase/include/row0upd.ic:
Auto merged
innobase/include/srv0srv.h:
Auto merged
innobase/include/sync0sync.h:
Auto merged
innobase/include/trx0rseg.ic:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/log/log0recv.c:
Auto merged
innobase/mem/mem0dbg.c:
Auto merged
innobase/mtr/mtr0log.c:
Auto merged
innobase/mtr/mtr0mtr.c:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/page/page0cur.c:
Auto merged
innobase/page/page0page.c:
Auto merged
innobase/pars/lexyy.c:
Auto merged
innobase/read/read0read.c:
Auto merged
innobase/rem/rem0cmp.c:
Auto merged
innobase/rem/rem0rec.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0mysql.c:
Auto merged
innobase/row/row0purge.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/row/row0undo.c:
Auto merged
innobase/row/row0upd.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/sync/sync0rw.c:
Auto merged
innobase/thr/thr0loc.c:
Auto merged
innobase/trx/trx0purge.c:
Auto merged
innobase/trx/trx0rec.c:
Auto merged
innobase/trx/trx0roll.c:
Auto merged
innobase/trx/trx0trx.c:
Auto merged
innobase/trx/trx0undo.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/myisamchk.c:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/r/mysqlbinlog.result:
Auto merged
mysql-test/r/rpl_error_ignored_table.result:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/rpl_error_ignored_table.test:
Auto merged
mysys/mf_iocache.c:
Auto merged
mysys/mf_pack.c:
Auto merged
mysys/my_getopt.c:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/log.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_cache.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_list.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
tests/thread_test.c:
Auto merged
client/mysqldump.c:
Keep original indentation
mysql-test/r/merge.result:
keep old file
scripts/mysql_fix_privilege_tables.sh:
Keep old structure in merge with 4.0
sql/table.cc:
merge with 4.0 + simple optimizations
exceed unsigned long limit.
include/config-win.h:
implementation of ULL macro for Windows
include/my_global.h:
ULL macro defined: we need this macro because ULL qualifier is not defined
on systems withoug unsigned long long
sql/item_func.cc:
new ULL macro caused conflict with class for user level lock ULL.
ULL renamed to User_level_lock
sql/item_func.h:
ULL -> User_level_lock
sql/mysql_priv.h:
merge error fixed: LL defined in my_global.h
sql/mysqld.cc:
ULL macro used for long long constants to fix compilation failure on gcc 3.*
sql/sql_class.h:
ULL renamed to User_level_lock
COM_EXECUTE packet" and #2795 "prepare + execute without bind_param crashes
server" and #2473 "seg fault running tests/client_test.c":
- length checking added to packet parser
- default impelemntation of Item_param::set_param_func will work in
case of malformed packet.
No test cases are possible in our test suite, as there are no tests
operating on protocol layer.
sql/item.cc:
Default set_param function implemented: this is to not sigsegv in case
of malformed packet with no parameters data.
sql/item.h:
- Item_param constructor moved to .cc to be able to assign set_param_func.
- now embedded and ordinary versions of set_param have the same signature.
sql/mysql_priv.h:
mysql_stmt_execute now requires packet_length
sql/sql_parse.cc:
mysql_stmt_execute now requires packet length.
sql/sql_prepare.cc:
- length checking added to all functions working with network packet.
- set_param_func's in embedded and ordinary version now have the same
signature
Abort if we can't allocate memory for table cache
Fix bug with multi-update-tables and BDB tables.
extra/replace.c:
Fix comments
mysql-test/install_test_db.sh:
Change internal option from -bin to --bin
Ensure that script works with both 'make install' and 'make_binary_distribution' layouts (Bug #3031)
mysql-test/mysql-test-run.sh:
Change internal option from -bin to --bin
sql/ha_berkeley.cc:
More debug
sql/mysql_priv.h:
Change table_cache_init to return error
sql/mysqld.cc:
Abort if we can't allocate memory for table cache. (Bug #3085)
Enable warnings by default
sql/sql_base.cc:
Change table_cache_init to return error
sql/sql_update.cc:
Fix bug with multi-update-tables and BDB tables. Bug #3098
Problem was that we didn't initialize BDB for calls to rnd_pos()
We introduce a new function mysql_test_parse_for_slave().
If the slave sees that the query got a really bad error on master
(killed e.g.), then it calls this function to know if this query
can be ignored because of replicate-*-table rules (do not worry
about replicate-*-db rules: they are checked so early that they have
no bug). If the answer is yes, it skips the query and continues. If
it's no, then it stops and say "fix your slave data manually" (like it
did before this change).
mysql-test/r/rpl_error_ignored_table.result:
result update
mysql-test/t/rpl_error_ignored_table-slave.opt:
ignore more tables
mysql-test/t/rpl_error_ignored_table.test:
we test if a killed query on the master, is ignored on the slave
if the tables it involves should be excluded because of replicate-*-table
rules.
sql/log_event.cc:
If the query got a really bad error on the master (thread killed etc),
parse it to test the table names: if the replicate-*-do|ignore-table
rules say "this query must be ignored" then we exit gracefully;
otherwise we warn about the bad error and tell DBA to check/fix it.
Before this change, we always warned and stopped.
sql/mysql_priv.h:
new function
sql/slave.cc:
don't print error immediately as we need to do one more test to
be sure.
sql/sql_parse.cc:
we add a function mysql_test_parse_for_slave(), to be used only
by the slave if it wants to know if the query should be ignored or not;
so this function only parses the query, does not execute it.
Allow one to force lower_case_table_names to 0, even if the file system is case insensitive. This fixes some issues on Mac OS X (Bug #2994)
Added variables "lower_case_file_system", "version_compile_os" and "license"
mysql-test/t/lowercase_table3-master.opt:
Rename: mysql-test/t/lowercase_table2-master.opt -> mysql-test/t/lowercase_table3-master.opt
mysys/my_getopt.c:
Ensure that one can't from the command line set a variable too small (could happen when sub_size was set)
sql/mysql_priv.h:
Added lower_case_file_system
sql/mysqld.cc:
Allow one to force lower_case_table_names to 0, even if the file system is case insensitive
sql/set_var.cc:
Added variable "lower_case_file_system"
Added variable "version_compile_os"
Added variable "license"
sql/set_var.h:
Added support for read only strings
sql/sql_select.cc:
Make join optimizer killable
mysql-test/r/show_check.result:
Updated results
mysql-test/t/show_check.test:
Portability fix (for 64 bit platforms)
mysys/hash.c:
Portablity fix
sql/gen_lex_hash.cc:
Don't include mysql_priv.h; Causes build errors on a lot of platforms
sql/lex_symbol.h:
Moved symbols here from mysql_priv.h to avoid including mysql_priv.h in gen_lex_hash.cc
sql/mysql_priv.h:
Move symbols and struct to lex_symbol.h
sql/sql_db.cc:
Don't use sql_alloc/sql_free methods in sql_string.h
sql/sql_help.cc:
Don't use sql_alloc/sql_free methods in sql_string.h
sql/sql_string.h:
Don't use sql_alloc/sql_free methods in sql_string.h
This makes the code faster and more portable
sql/sql_yacc.yy:
Don't use sql_alloc/sql_free methods in sql_string.h
reviewed in Saint-Petersbourg (including post-review fixes).
include/my_sys.h:
Added clear_alloc_root (reset alloc root without freeing its memory)
sql/item.h:
- rename setup_param -> set_parap (function assigns parameter value to item)
sql/mysql_priv.h:
- all return values are void, because return value is never checked in
dispatch_command
- removed unused declaration of setup_param_functions
sql/protocol.h:
- unused declarations of setup_params_data* removed
sql/sql_class.cc:
Cleanup:
- bzero(mem_root) replaced with clear_alloc_root
- query_id and command members moved back to THD from Statement
Assignment of mem_root, free_list, query_id and command optimized
away from set_statement().
sql/sql_class.h:
- query_id and command moved back to THD from Statement
sql/sql_lex.h:
- better type for param_list
- param_count is the same thing as param_list.elements
sql/sql_parse.cc:
- comments for dispatch_command
sql/sql_prepare.cc:
Cleanup:
- added comments to many functions and removed trailing spaces in many
lines, some stale comments removed.
- it's faster to iterate using pointers, than classes
- Renames: error_in_prepare renamed to get_longdata_error (because it is set
when there is an error in mysql_send_longdata, rather than in
mysql_prepare), embedded versions of placeholder assignement functions
now have prefix emb_, setup_ functions renamed to set_, because they
perform assignment, not installation, setup_params_data now doesn't
call insert_params and was renamed to setup_set_param_functions,
- find_prepared_statement should not send error if called from no-reply
calls, like mysql_stmt_reset
- error reporting is checked up, to always report errors and not report
errors twice. send_prep_stmt can be done mostly in send_prepare_result,
rather than in test_* functions.
- now we don't need to reinit THD->mem_root/free_list in mysql_stmt_execute,
because it's not reset there.
tests/client_test.c:
- removed second call to test_subqueries
UUID() function
BitKeeper/etc/ignore:
Added mysys/test_gethwaddr to the ignore list
include/my_sys.h:
my_gethwaddr()
mysys/Makefile.am:
my_gethwaddr
sql/item_create.cc:
UUID() function
sql/item_create.h:
UUID() function
sql/item_strfunc.cc:
UUID() function
sql/item_strfunc.h:
UUID() function
sql/lex.h:
UUID() function
sql/mysql_priv.h:
UUID() function
sql/mysqld.cc:
UUID() function
sql/sql_class.cc:
cleanup
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
BitKeeper/etc/ignore:
auto-union
include/my_global.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/type_blob.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/share/russian/errmsg.txt:
Auto merged
sql/share/ukrainian/errmsg.txt:
Auto merged
mysql-test/r/derived.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_sum.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/r/union.result:
fix for union test becuase now not all fields in UNION allow NULLS
fix of test
test suite for BUG#2809
mysql-test/t/union.test:
test suite for BUG#2809
sql/mysql_priv.h:
removed unused parameter of setup_tables()
sql/sql_base.cc:
removed unused parameter of setup_tables()
cleanup of unused code
sql/sql_class.h:
removed unused field
sql/sql_help.cc:
removed unused parameter of setup_tables()
sql/sql_insert.cc:
removed unused parameter of setup_tables()
sql/sql_lex.cc:
excluded duplicate tables finding for UNION
sql/sql_load.cc:
removed unused parameter of setup_tables()
sql/sql_olap.cc:
removed unused parameter of setup_tables()
sql/sql_prepare.cc:
removed unused parameter of setup_tables()
sql/sql_select.cc:
removed unused parameter of setup_tables()
revert old BUG#2508 patch
sql/sql_union.cc:
revert old BUG#2508 patch
removed unused code
sql/sql_update.cc:
removed unused parameter of setup_tables()
sql/table.h:
shared used only for multi-update for now
client/mysqldump.c:
Auto merged
configure.in:
Auto merged
include/m_ctype.h:
Auto merged
include/m_string.h:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/fulltext.test:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_string.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
strings/ctype-mb.c:
Auto merged
strings/ctype-simple.c:
Auto merged
mysql-test/r/warnings.result:
Fix error numbers after merge
sql/share/czech/errmsg.txt:
Add missing ',' and fix typo
sql/share/danish/errmsg.txt:
Add missing ',' and fix typo
sql/share/dutch/errmsg.txt:
Add missing ',' and fix typo
sql/share/estonian/errmsg.txt:
Add missing ',' and fix typo
sql/share/french/errmsg.txt:
Add missing ',' and fix typo
sql/share/german/errmsg.txt:
Add missing ',' and fix typo
sql/share/greek/errmsg.txt:
Add missing ',' and fix typo
sql/share/hungarian/errmsg.txt:
Add missing ',' and fix typo
sql/share/italian/errmsg.txt:
Add missing ',' and fix typo
sql/share/japanese/errmsg.txt:
Add missing ',' and fix typo
sql/share/korean/errmsg.txt:
Add missing ',' and fix typo
sql/share/norwegian-ny/errmsg.txt:
Add missing ',' and fix typo
sql/share/norwegian/errmsg.txt:
Add missing ',' and fix typo
sql/share/polish/errmsg.txt:
Add missing ',' and fix typo
sql/share/portuguese/errmsg.txt:
Add missing ',' and fix typo
sql/share/romanian/errmsg.txt:
Add missing ',' and fix typo
sql/share/russian/errmsg.txt:
Add missing ',' and fix typo
sql/share/slovak/errmsg.txt:
Add missing ',' and fix typo
sql/share/spanish/errmsg.txt:
Add missing ',' and fix typo
sql/share/swedish/errmsg.txt:
Add missing ',' and fix typo
sql/share/ukrainian/errmsg.txt:
Add missing ',' and fix typo
sql/mysql_priv.h:
description moved to be accessable from sql_class.h
sql/sql_base.cc:
put all derived table preparation in temporary memory pull
sql/sql_class.h:
close tables to close derived tables before freeing memory pool where they are placed
sql/sql_prepare.cc:
now temporary memory pool for prrepared statements registration is oppened in open_and_lock_tables
thd->current_statement set only for tables preparation, because we do not need memory pool tricks for PS executing
tests/client_test.c:
derived table added to test
expression with aggregate functions added to test
sql/item.h:
mechanism to keep reference in cache array for row IN
sql/item_cmpfunc.cc:
mechanism to keep reference in cache array for row IN
layout fixed
sql/item_cmpfunc.h:
mechanism to keep reference in cache array for row IN
sql/item_subselect.cc:
fixed memory pools swapping
prevented deleting Item_in_optimizer cache in case of row IN subquery
sql/mysql_priv.h:
declarations of function moved to be useful in sql_class.h
sql/sql_base.cc:
keep fields expanded from '*' in statement memory pool
sql/sql_class.cc:
fixed restoring/backup of memory pool and list of items
sql/sql_class.h:
memory allocation methods moved to Statement
memory pool substituting for preparing
sql/sql_lex.cc:
ref_pointer_array kept in statement memory
sql/sql_lex.h:
reinitialization of UNIT
sql/sql_prepare.cc:
memory allocation/swapping fixed
tests/client_test.c:
layout fixed
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
mysql-test/r/ctype_tis620.result-old:
Merge rename: mysql-test/r/ctype_tis620.result -> mysql-test/r/ctype_tis620.result-old
BUILD/compile-pentium-max:
Auto merged
BitKeeper/etc/config:
Auto merged
Build-tools/Bootstrap:
Auto merged
Build-tools/Do-compile:
Auto merged
configure.in:
Auto merged
mysql-test/t/ctype_tis620.test-old:
Merge rename: mysql-test/t/ctype_tis620.test -> mysql-test/t/ctype_tis620.test-old
Docs/Makefile.am:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
include/my_sys.h:
Auto merged
include/myisam.h:
Auto merged
innobase/btr/btr0cur.c:
Auto merged
innobase/ibuf/ibuf0ibuf.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
innobase/include/srv0srv.h:
Auto merged
innobase/include/ut0mem.h:
Auto merged
innobase/log/log0log.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/ut/ut0mem.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_dynrec.c:
Auto merged
myisam/mi_key.c:
Auto merged
myisam/myisam_ftdump.c:
Auto merged
myisam/myisamdef.h:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/bigint.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/derived.result:
test of error handling in derived tables with UPDATE & DELETE
mysql-test/t/derived.test:
test of error handling in derived tables with UPDATE & DELETE
sql/mysql_priv.h:
opened tables counter added to avoid loop of tables calculating in lock_tables
sql/sql_acl.cc:
opened tables counter added to avoid loop of tables calculating in lock_tables, here it is just for compatibility
sql/sql_base.cc:
removed unneeded assignment
opened tables counter added to avoid loop of tables calculating in lock_tables
commentary fixed
sql/sql_derived.cc:
mysql_derived made static
variable res moved in place where it used
priveleges written in correct place
sql/sql_handler.cc:
opened tables counter added to avoid loop of tables calculating in lock_tables
sql/sql_parse.cc:
mistyping in commentary fixed
2. added automatic quotation of keywords in SHOW CREATE TABLE
mysql-test/r/show_check.result:
added tests for
bug #2593 "SHOW CREATE TABLE doesn't properly double quotas"
and for automatic quotation of keywords
mysql-test/t/show_check.test:
added tests for
bug #2593 "SHOW CREATE TABLE doesn't properly double quotas"
and for automatic quotation of keywords
sql/mysql_priv.h:
added declaration of function is_keyword
sql/sql_lex.cc:
added implementation of function is_keyword
sql/sql_show.cc:
changed function append_identifier and it's subfunctions
1. fixed bug @2593 "SHOW CREATE TABLE doesn't properly double quotes"
2. added automatic quotation of keywords
Marked --bdb-no-sync as deprecated
Added --sync-bdb-logs / --disable-sync-bdb-logs as a synonym / alternative.
mysys/my_getopt.c:
Changed my_getopt so that disabled_my_option can be used for
GET_BOOL type options too.
sql/mysql_priv.h:
Added opt_sync_frm
sql/mysqld.cc:
Added sync-frm / disable-sync-frm to mysqld, to be able to disable
use of my_sync() (fsync()). This defaults to behavior in 4.0.16
and before, where creating of new tables is quicker than currently.
This option is enabled by default.
Marked --bdb-no-sync as deprecated option and added another one,
--sync-bdb-logs besides. --bdb-no-sync and --disabled-sync-bdb-logs
are now synonyms.
sql/unireg.cc:
One can disable my_sync() by using --disable-sync-frm
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
(BUG#2120 sfter merge)
mysql-test/r/derived.result:
correct results of derived tble EXPLAIN
test of "Using Index" with derived tables
mysql-test/t/derived.test:
test of "Using Index" with derived tables
sql/mysql_priv.h:
way to force derived table save JOIN after execution
sql/sql_derived.cc:
way to force derived table save JOIN after execution
sql/sql_lex.h:
way to force derived table save JOIN after execution
sql/sql_select.cc:
make JOIN::prepare, JOIN::optimize only once for EXPLAIN of derived table
into sanja.is.com.ua:/home/bell/mysql/bk/work-derived2-4.1
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
fixed BUG#2120 and other problem with EXPLAINing derived tables
mysql-test/r/derived.result:
correct tables names & Co in derived tables
test case for BUG#2120
mysql-test/t/derived.test:
test case for BUG#2120
sql/mysql_priv.h:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/repl_failsafe.cc:
correct initialization of TABLE_LIST
sql/sql_acl.cc:
used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
sql/sql_base.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/sql_delete.cc:
all tables processing is done during opening
sql/sql_derived.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables) to sutisfy "all query tables locking" at the moment
sql/sql_insert.cc:
all tables processing is done during opening
correct initialization of TABLE_LIST
sql/sql_lex.cc:
now table list will be created for whole query
layout fix
correct check of updated table in subqueries
sql/sql_lex.h:
now table list will be created for whole query
correct check of updated table in subqueries
sql/sql_olap.cc:
THIS FUNCTION IS USED NOWHERE
it will be good to remove it at all (handle_olaps)
sql/sql_parse.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/sql_prepare.cc:
new creating list parameters
all tables processing is done during opening
sql/sql_select.cc:
all tables processing is done during opening
sql/sql_select.h:
now it used only within file where is defined
sql/sql_udf.cc:
used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
sql/sql_update.cc:
all tables processing is done during opening
Moved all range checks for TIMESTAMP value to my_gmt_sec().
Also fixed check of upper boundary of TIMESTAMP range (which
also now will catch datetime values which are too small for
TIMESTAMP in case if time_t is unsigned).
mysql-test/r/timezone.result:
Added test which checks if TIMESTAMP range is checked
correctly (current time zone is honoured and both upper
and lower bounds of TIMESTAMP range are checked).
mysql-test/t/timezone.test:
Added test which checks if TIMESTAMP range is checked
correctly (current time zone is honoured and both upper
and lower bounds of TIMESTAMP range are checked).
sql/field.cc:
Check if datetime value is in TIMESTAMP range has moved to
my_gmt_sec() function.
sql/mysql_priv.h:
Added more constants for checking if datetime is in allowed
range for TIMESTAMP.
sql/time.cc:
Check if datetime value is in TIMESTAMP range has moved to
my_gmt_sec() function. Fixed check of its return value
to catch overflows in both directions and also overflows in
case of unsigned time_t.
sql/field.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
include/mysqld_error.h:
merging
sql/share/english/errmsg.txt:
merging
wl #1163 (Make spatial code optional)
Patch I cleaned with Serg & Monty's suggestions
sql/gen_lex_hash.cc:
mysql_priv.h was included for SYM_GROUP declaration
sql/lex.h:
sym_group_xxx made global so we can use texts from them
throughout the code
sql/lex_symbol.h:
SYM_GROUP declaration moved to mysql_priv.h
sql/mysql_priv.h:
declarations about SYM_GROUP
sql/sql_table.cc:
sym_group_xxx objects used instead of text constants
a couple of HAVE_SPATIAL removed
sql/sql_yacc.yy:
sym_group_xxx used instead of text constants
some duplicated code restructured
MYF(0) parameters removed from net_printf calls
into deer.(none):/home/hf/work/mysql-4.1.1676
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
"PRIMARY" has been replaced by primary_key_name.
sql/mysql_priv.h:
"PRIMARY" replaced by primary_key_name.
sql/sql_help.cc:
"PRIMARY" replaced by primary_key_name.
sql/sql_select.cc:
"PRIMARY" replaced by primary_key_name.
sql/sql_show.cc:
"PRIMARY" replaced by primary_key_name.
sql/sql_table.cc:
fix for the 2361 bug: ALTER TABLE ... DROP PRIMARY KEY drops a non-primary key
"PRIMARY" replaced by primary_key_name.
sql/table.cc:
"PRIMARY" replaced by primary_key_name.
(BUG#2089)
mysql-test/r/subselect_innodb.result:
correct results
sql/mysql_priv.h:
new parameter for setup_tables()
sql/sql_base.cc:
new parameter for setup_tables() added to avoid dropping query_id of fields during reinitialization subquery
sql/sql_class.cc:
layout fixed
sql/sql_help.cc:
new parameter for setup_tables()
sql/sql_insert.cc:
new parameter for setup_tables()
sql/sql_lex.cc:
removed incorrect code
sql/sql_load.cc:
new parameter for setup_tables()
sql/sql_olap.cc:
new parameter for setup_tables()
sql/sql_prepare.cc:
new parameter for setup_tables()
sql/sql_select.cc:
new parameter for setup_tables()
sql/sql_update.cc:
new parameter for setup_tables()
Added support for lower_case_table_names=2, which is to be used on case insensitive file systems.
This tells MySQL to preserve the used case of filenames and database names to make it esier to move files between cases sensitive can case insensitive file systems (like Windows and Linux)
client/mysqltest.c:
Indentation cleanup
include/myisam.h:
Made some pointers 'const'
mysql-test/mysql-test-run.sh:
Portability fix for OSX
sql/filesort.cc:
Safety fix (not needed for current code but needed for 5.0)
sql/ha_berkeley.cc:
More debugging
Changed 'create' to return error number
sql/ha_berkeley.h:
Added HA_FILE_BASED
sql/ha_innodb.cc:
Added missing DBUG_RETURN
sql/ha_isam.cc:
Changed create to return error number
sql/ha_isam.h:
Added HA_FILE_BASED
sql/ha_isammrg.h:
Added HA_FILE_BASED
sql/ha_myisam.cc:
Changed create to return error number
sql/ha_myisam.h:
Added HA_FILE_BASED
sql/ha_myisammrg.cc:
Changed create to return error number
sql/ha_myisammrg.h:
Added HA_FILE_BASED
sql/handler.cc:
Ensure that table engines gets table names in lower case even if we are using lower_case_table_names
Removed test for DB_TYPE_INNODB by ensuring that create method returns error number.
sql/handler.h:
Added HA_FILE_BASED
Made some struct entries 'const'
Added 'alias' for create to be able to create tables in mixed case on case insensitive file systems
sql/mysql_priv.h:
Support for lower_case_table_names=2
sql/mysqld.cc:
Support for lower_case_table_names=2
Moved test of case insenstive file system after all mutex are created
sql/set_var.cc:
Support for lower_case_table_names=2
sql/sql_class.h:
Indentation change
sql/sql_db.cc:
Support for lower_case_table_names=2
sql/sql_insert.cc:
Indentation change
sql/sql_parse.cc:
Support for lower_case_table_names=2
sql/sql_rename.cc:
Support for lower_case_table_names=2
Added missing 'unpack_filename' to RENAME which may fix a bug in RENAME TABLE on windows
sql/sql_show.cc:
If lower_case_table_name=2 is given, show original case in SHOW CREATE TABLE
sql/sql_table.cc:
Support for lower_case_table_names=2 for DROP TABLE, RENAME TABLE, ALTER TABLE and CREATE TABLE
Here i added Item_*::cleanup() functions,
removed a lot of ~Item_*'s,
added code to restore order_list and group_list
sql/item.cc:
cleanups methods implemented
Item_ref constructors changed
sql/item.h:
cleanups declared
Item_ref constructors changed
some ~Item_* deleted
sql/item_cmpfunc.cc:
new Item_ref format
sql/item_cmpfunc.h:
saving/restoring of the original arguments added to
eq and equal functions
sql/item_func.cc:
New Item_ref format
sql/item_func.h:
destructors removed/changed to 'cleanup()'
sql/item_row.cc:
New Item_ref format
sql/item_row.h:
~Item_row -> cleanup()
sql/item_strfunc.cc:
new Item_ref format
sql/item_strfunc.h:
destructors removed
sql/item_subselect.cc:
Item_subselect implementation,
new Item_ref() format
sql/item_subselect.h:
cleanups for subselects declared
sql/item_sum.cc:
cleanups implementations
sql/item_sum.h:
cleanups declarations
destructors removed
sql/mysql_priv.h:
free_items, cleanup_items exported
sql/sql_prepare.cc:
cleanup_items, free_items calls added
stmt->query_id= thd->query_id restored
cleanup procedures for group_list and order_list added
sql/sql_yacc.yy:
New Item_ref() format