values for TIMESTAMP columns. The solution is not perfect since
we just silently ignoring default value for first TIMESTAMP
column and properly reflecting this fact in SHOW CREATE TABLE.
We can't give a warning or simply support standard syntax
(niladic functions as legal value for default) for first field
since it is 4.0 tree.
mysql-test/r/type_timestamp.result:
Added test for bugs #1885, #2464, #2539
(proper support of default values for TIMESTAMP columns)
mysql-test/t/type_timestamp.test:
Added test for bugs #1885, #2464, #2539
(proper support of default values for TIMESTAMP columns)
sql/field.cc:
Enabled copying of defaults for TIMESTAMP fields when we are
creating table with CREATE TABLE x (SELECT ...)
sql/field.h:
Set proper DEFAULT value for non-first TIMESTAMP column.
sql/sql_parse.cc:
Allowed default values for TIMESTAMP column.
sql/sql_show.cc:
Enabled printing of default values in SHOW CREATE TABLE and
SHOW COLUMNS for all TIMESTAMP columns except first one.
Fix optimizer tuning bug when first used key part was a constant. (Bug #1679)
innobase/dict/dict0dict.c:
Fixed parsing of column names and foreign key constraints to handle quoted identifiers and identifiers with space. (Bug #1725)
mysql-test/r/innodb.result:
Test of innodb internal parsing
mysql-test/t/innodb.test:
Test of innodb internal parsing
sql/sql_class.cc:
Safety fix for select into outfile and select into dumpfile. Before calling send_error() could cause end_io_cache() to be called several times.
sql/sql_class.h:
Add path to dumpfile so that we can delete the generated file if something goes wrong.
sql/sql_select.cc:
Fix optimizer tuning bug when first used key part was a constant.
Previously all keys that had this key part first was regarded as equal, even if the query used more key parts for some of the keys.
Now we use the range optimizer results to just limit the number of estimated rows if not all key parts where constants.
(Bug #1679)
when we open the HEAP table for the first time since server restart,
in hp_open(), we set a flag to propagate this info to the handler level
which then writes a DELETE FROM this_heap_table to the binlog.
It is not a perfect solution for the bug, because between the server start and
the first open of the table, the slave still had old data in his table so
a SELECT on the slave may show wrong content. But if there is a --init-file
to populate the HEAP table on master as startup, then this is a safe fix
(I'll put a note about init-file in the HEAP section of the manual).
heap/hp_info.c:
new info variable implicit_emptied
heap/hp_open.c:
If this is the first open of the HEAP table, it means it is empty,
so we mark it.
include/heap.h:
new variables implicit_emptied
(we need one in HEAPINFO for the hp_info() call).
sql/ha_heap.cc:
report info to upper level
sql/handler.h:
new info 'implicit_emptied' in the handler level; only HEAP uses it.
sql/sql_base.cc:
When a HEAP table is opened for the first time, write a DELETE FROM to the binlog,
for replication and mysqlbinlog|mysql.
Monty: I added the
entry->file->implicit_emptied= 0;
(as long as replicate-*-table rules were defined, multi-table DELETE was never
replicated by the slave).
sql/sql_parse.cc:
For a multi-table DELETE, there are two lists of tables:
- 'tables' contains the tables in the FROM. They have 'updating==0'.
- 'thd->lex.auxilliary_table_list.first' contains the tables between the DELETE and the FROM. They have 'updating==1'.
So the bug was that the slave only tests 'tables' and as all its elements have updating==0,
tables_ok() always returns 0.
So for a multi DELETE the slave now tests the 2nd list too.
I started with the other tip of the sausage: I thought of changing multi DELETE to use
only one list (given that 'updating' can be used to separate it in two when needed)
(with one list we wouldn't need to change the slave code), but finally hit the unicity
check in add_table_to_list() which started to return ER_NONUNIQ_TABLE (logical).
This fixed problem with index reads on character fields with BDB tables. (Bug #2509)
BitKeeper/etc/ignore:
added man/*.1
mysql-test/r/bdb.result:
New test
mysql-test/r/myisam.result:
More tests
mysql-test/t/bdb.test:
Test for idnex only read
mysql-test/t/myisam.test:
More test to verify pushed bug fix
sql/ha_berkeley.h:
Mark that strings may change on index only reads
sql/item_strfunc.cc:
Cleanup
sql/table.cc:
Allow index only reads on binary strings
The problem was that memory was free'd, but it was referenced
later. This free was unneccessary anyway, because join_free() /
JOIN::cleanup takes care of this later on.
Added test case into t/subselect.test for it.
Regards,
Jani
mysql-test/r/subselect.result:
Added a test case for Bug#2479.
mysql-test/t/subselect.test:
Added a test case for Bug#2479.
sql/sql_select.cc:
Fixed Bug#2479, "dependant subquery with limit crash".
The problem was that memory was free'd, but it was referenced
later. This free was unneccessary anyway, because join_free() /
JOIN::cleanup takes care of this later on.
dump when result was NULL.
mysql-test/r/func_test.result:
Added a test for GREATEST() and LEAST() core dump bug.
mysql-test/t/func_test.test:
Added a test for GREATEST() and LEAST() core dump bug.
<monty> ramil, in MySQL/MyISAM we should only strip end space, not 'space-like' characters.
<monty> This is according to SQL; When doing a comparision end space and only end space are ignored.
myisam/mi_key.c:
a proper fix for the bug #2298 Trailing whitespace inconsistently handled in WHERE clause.
myisam/mi_search.c:
a proper fix for the bug #2298 Trailing whitespace inconsistently handled in WHERE clause.
mysql-test/r/select.result:
test case for the bug #2298 Trailing whitespace inconsistently handled in WHERE clause.
mysql-test/t/select.test:
test case for the bug #2298 Trailing whitespace inconsistently handled in WHERE clause.
sql/sql_string.cc:
a proper fix for the bug #2298 Trailing whitespace inconsistently handled in WHERE clause.
sql/sql_parse.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/derived.result:
SCCS merged
mysql-test/t/derived.test:
e
merge
mysql-test/t/multi_update.test:
new results of changed multi-delete
mysql-test/t/update.test:
new results of changed multi-delete
mysql-test/r/multi_update.result:
new results of changed multi-delete
mysql-test/r/update.result:
new results of changed multi-delete
mysql-test/r/func_misc.result:
added new test for inet_aton (short-forms addresses)
mysql-test/t/func_misc.test:
added new test for inet_aton (short-forms addresses)
sql/item_func.cc:
Change Item_func_inet_aton::val_int to parse short-forms addresses correctly
check of memory allocation operation was added
mysql-test/r/subselect_innodb.result:
switched to new syntax
mysql-test/t/subselect_innodb.test:
switched to new syntax
sql/sql_select.cc:
check of memory allocation operation
into sanja.is.com.ua:/home/bell/mysql/bk/work-sub-4.1
mysql-test/r/subselect_innodb.result:
Auto merged
mysql-test/t/subselect_innodb.test:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_union.cc:
Auto merged
into sanja.is.com.ua:/home/bell/mysql/bk/work-drop-4.1
mysql-test/r/query_cache.result:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
sql/sql_db.cc:
Auto merged
mysql-test/t/mysqldump.test:
Fixing a test to encompass latest Jani's patch to mysqldump.c
sql/sql_union.cc:
Fix for the unlock problem with a typo correction.