using a trig in SP
For all 5.0 and up to 5.1.12 exclusive, when a stored routine or
trigger caused an INSERT into an AUTO_INCREMENT column, the
generated AUTO_INCREMENT value should not be written into the
binary log, which means if a statement does not generate
AUTO_INCREMENT value itself, there will be no Intvar event (SET
INSERT_ID) associated with it even if one of the stored routine
or trigger caused generation of such a value. And meanwhile, when
executing a stored routine or trigger, it would ignore the
INSERT_ID value even if there is a INSERT_ID value available set
by a SET INSERT_ID statement.
Starting from MySQL 5.1.12, the generated AUTO_INCREMENT value is
written into the binary log, and the value will be used if
available when executing the stored routine or trigger.
Prior fix of this bug in MySQL 5.0 and prior MySQL 5.1.12
(referenced as the buggy versions in the text below), when a
statement that generates AUTO_INCREMENT value by the top
statement was executed in the body of a SP, all statements in the
SP after this statement would be treated as if they had generated
AUTO_INCREMENT by the top statement. When a statement that did
not generate AUTO_INCREMENT value by the top statement but by a
function/trigger called by it, an erroneous Intvar event would be
associated with the statement, this erroneous INSERT_ID value
wouldn't cause problem when replicating between masters and
slaves of 5.0.x or prior 5.1.12, because the erroneous INSERT_ID
value was not used when executing functions/triggers. But when
replicating from buggy versions to 5.1.12 or newer, which will
use the INSERT_ID value in functions/triggers, the erroneous
value will be used, which would cause duplicate entry error and
cause the slave to stop.
The patch for 5.0 fixed it not to generate the erroneous Intvar
event, another patch for 5.1 fixed it to ignore the SET INSERT_ID
value when executing functions/triggers if it is replicating from
a master of buggy versions.
mysql-test/include/show_binlog_events.inc:
add $binlog_start parameter to set the start position when show binlog events, if not set a default value will be used.
mask out column 2(Pos), 4(Server_id), table_id, and file_id
sql/sql_class.cc:
Reset insert_id_used after each query in SP
mysql-test/r/rpl_auto_increment_bug33029.result:
Add test for bug33029, test if the master generate the erroneous event or not
mysql-test/t/rpl_auto_increment_bug33029.test:
Add test for bug33029, test if the master generate the erroneous event or not
When concurrent inserts were disabled, statements after an INSERT
were not put into the query cache. This happened because we do not
save the current data file length at statement start when
concurrent inserts are disabled. But we checked the always zero
local length against the real file length anyway.
Fixed by doing the check only if concurrent inserts are not diabled.
mysql-test/r/query_cache.result:
Bug#33756 - query cache with concurrent_insert=0 appears broken
Added test result.
mysql-test/t/query_cache.test:
Bug#33756 - query cache with concurrent_insert=0 appears broken
Added test.
sql/ha_myisam.cc:
Bug#33756 - query cache with concurrent_insert=0 appears broken
Changed code so that file length check is done only when
concurrent inserts are possible.
The test file tried to use a mysqltest command '--warning'
but there is no such command.
Changed '--warning' to '#--warning'.
mysql-test/t/rpl_transaction.test:
Bug#35247 - rpl_transaction.test produces warnings files
Changed '--warning' to '#--warning'.
In cases when TRUNCATE was executed by invoking mysql_delete() rather
than by table recreation (for example, when TRUNCATE was issued on
InnoDB table with is referenced by foreign key) triggers were invoked.
In debug builds this also led to crash because of an assertion, which
assumes that some preliminary actions take place before trigger
invocation, which doesn't happen in case of TRUNCATE.
The fix is not to execute triggers in mysql_delete() when this
function is used by TRUNCATE.
mysql-test/r/trigger-trans.result:
Update result file.
mysql-test/t/trigger-trans.test:
A test case for Bug#34643: TRUNCATE crash if trigger and foreign key.
sql/sql_delete.cc:
Do not process triggers in TRUNCATE.
into kaamos.(none):/data/src/opt/mysql-5.0-opt
client/mysql.cc:
Auto merged
sql/filesort.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/view.result:
Manual merge.
mysql-test/t/view.test:
Manual merge.
scripts/mysql_config.sh:
Manual merge.
WL#4203 Reorganize and fix the data dictionary tests of
testsuite funcs_1
because the goal to fix
Bug#34532 Some funcs_1 tests do not clean up at end of testing
was partially missed.
Some minor additional modifications are for
WL#4304 Cleanup in funcs_1 tests
BitKeeper/deleted/.del-innodb_triggers.result:
Rename: mysql-test/suite/funcs_1/r/innodb_triggers.result -> BitKeeper/deleted/.del-innodb_triggers.result
BitKeeper/deleted/.del-memory_triggers.result:
Rename: mysql-test/suite/funcs_1/r/memory_triggers.result -> BitKeeper/deleted/.del-memory_triggers.result
BitKeeper/deleted/.del-myisam_triggers.result:
Rename: mysql-test/suite/funcs_1/r/myisam_triggers.result -> BitKeeper/deleted/.del-myisam_triggers.result
mysql-test/suite/funcs_1/r/innodb_storedproc_02.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/innodb_storedproc_03.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/innodb_storedproc_07.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/innodb_storedproc_08.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/innodb_storedproc_10.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/memory_storedproc_02.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/memory_storedproc_03.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/memory_storedproc_07.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/memory_storedproc_08.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/memory_storedproc_10.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/myisam_storedproc_02.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/myisam_storedproc_03.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/myisam_storedproc_07.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/myisam_storedproc_08.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/r/myisam_storedproc_10.result:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/cursors/cursors_master.test:
Backport of file in 5.1
mysql-test/suite/funcs_1/datadict/datadict_load.inc:
Cleanup
mysql-test/suite/funcs_1/r/innodb_views.result:
Updated results
mysql-test/suite/funcs_1/r/is_columns_innodb.result:
Updated results
mysql-test/suite/funcs_1/r/is_columns_memory.result:
Updated results
mysql-test/suite/funcs_1/r/is_columns_myisam.result:
Updated results
mysql-test/suite/funcs_1/r/is_columns_ndb.result:
Updated results
mysql-test/suite/funcs_1/r/is_tables_innodb.result:
Updated results
mysql-test/suite/funcs_1/r/is_tables_memory.result:
Updated results
mysql-test/suite/funcs_1/r/is_tables_myisam.result:
Updated results
mysql-test/suite/funcs_1/r/is_tables_ndb.result:
Updated results
mysql-test/suite/funcs_1/r/memory_views.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_views.result:
Updated results
mysql-test/suite/funcs_1/t/innodb_storedproc.test:
Backport of file in 5.1
mysql-test/suite/funcs_1/t/memory_storedproc.test:
Backport of file in 5.1
mysql-test/suite/funcs_1/t/myisam_storedproc.test:
Backport of file in 5.1
mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test:
Cleanup
mysql-test/suite/funcs_1/views/views_master.inc:
Backport of file in 5.1 which got many fixes for instabilities
and other improvements
WHERE f1 < n ignored row if f1 was indexed integer column and
f1 = TYPE_MAX ^ n = TYPE_MAX+1. The latter value when treated
as TYPE overflowed (obviously). This was not handled, it is now.
mysql-test/r/range.result:
show that on an index int column, we no longer disregard
a field val of TYPE_MAX in SELECT ... WHERE ... < TYPE_MAX+1
mysql-test/t/range.test:
show that on an index int column, we no longer disregard
a field val of TYPE_MAX in SELECT ... WHERE ... < TYPE_MAX+1
sql/opt_range.cc:
Handle overflowing of int-types in range-optimizer.
Unfortunately requires re-indentation of entire block.
Overflow (err == 1) was handled, but only if
field->cmp_type() != value->result_type(), which it
just wasn't in our case.
into mysql.com:/misc/mysql/34749/50-34749
mysql-test/r/func_misc.result:
Auto merged
mysql-test/t/func_misc.test:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
into pcg5ppc.xiphis.org:/Network/Servers/anubis.xiphis.org/home/antony/work/merge.20080307/mysql-5.0
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
Affected tests fixing. After the fix for st_relay_log_info::wait_for_pos() that
handles widely used select('master-bin.xxxx',pos) invoked by mysqltest
there appeared to be four tests that either tried synchronizing when
the slave was stopped or used incorrect synchronization method like
to call `sync_with_master' from the current connection being to the
master itself.
Fixed with correcting the current connection or/and using the correct
synchronization macro when possible.
mysql-test/r/rpl_loaddata.result:
results changed
mysql-test/r/rpl_slave_status.result:
results changed
mysql-test/t/rpl_loaddata.test:
fixing cleanup for two tests
mysql-test/t/rpl_skip_error.test:
fixing cleanup for two tests
mysql-test/t/rpl_slave_status.test:
fixing cleanup
mysql-test/t/rpl_temporary.test:
fixing synchronizations to use the intended correct macro.
testsuite funcs_1
1. Fix the following bugs
Bug#30440 "datadict" tests (all engines) fail: Character sets depend on configuration
Solution: Test variants charset_collation_* adjusted to different builds
Bug#32603 "datadict" tests (all engines) fail in "community" tree: "PROFILING" table
Solution: Excluding "PROFILING" table from queries
Bug#33654 "slow log" is missing a line
Solution: Unify the content of the fields TABLES.TABLE_ROWS and
STATISTICS.CARDINALITY within result sets
Bug#34532 Some funcs_1 tests do not clean up at end of testing
Solution: DROP objects/reset global server variables modified during testing
+ let tests missing implementation end before loading of tables
Bug#31421 funcs_1: ndb__datadict fails, discrepancy between scripts and expected results
Solution: Cut <engine>__datadict tests into smaller tests + generate new results.
Bug#33599 INFORMATION_SCHEMA.STATISTICS got a new column INDEX_COMMENT: tests fail (2)
Generation of new results during post merge fix
Bug#33600 CHARACTER_OCTET_LENGTH is now CHARACTER_MAXIMUM_LENGTH * 4
Generation of new results during post merge fix
Bug#33631 Platform-specific replace of CHARACTER_MAXIMUM_LENGTH broken by 4-byte encoding
Generation of new results during post merge fix
+ removal of platform-specific replace routine (no more needed)
2. Restructure the tests
- Test not more than one INFORMATION_SCHEMA view per testscript
- Separate tests of I_S view layout+functionality from content related to the
all time existing databases "information_schema", "mysql" and "test"
- Avoid storage engine related variants of tests which are not sensible to
storage engines at all.
3. Reimplement or add some subtests + cleanup
There is a some probability that even the reviewed changeset
- does not fix all bugs from above or
- contains new bugs which show up on some platforms <> Linux or on one of
the various build types
4. The changeset contains fixes according to
- one code review
- minor bugs within testing code found after code review (accepted by reviewer)
- problems found during tests with 5.0.56 in build environment
mysql-test/suite/funcs_1/t/innodb_storedproc_02.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/innodb_storedproc_03.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/innodb_storedproc_06.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/innodb_storedproc_07.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/innodb_storedproc_08.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/innodb_storedproc_10.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/memory_storedproc_02.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/memory_storedproc_03.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/memory_storedproc_06.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/memory_storedproc_07.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/memory_storedproc_08.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/memory_storedproc_10.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/myisam_storedproc_02.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/myisam_storedproc_03.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/myisam_storedproc_06.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/myisam_storedproc_07.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/myisam_storedproc_08.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/t/myisam_storedproc_10.test:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_02.inc:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_03.inc:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_06.inc:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_07.inc:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_08.inc:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc:
Change mode to -rw-rw-r--
mysql-test/suite/funcs_1/storedproc/storedproc_10.inc:
Change mode to -rw-rw-r--
BitKeeper/deleted/.del-innodb__load.test:
Delete: mysql-test/suite/funcs_1/t/innodb__load.test
BitKeeper/deleted/.del-innodb__load.result:
Delete: mysql-test/suite/funcs_1/r/innodb__load.result
BitKeeper/deleted/.del-myisam__load.test:
Delete: mysql-test/suite/funcs_1/t/myisam__load.test
BitKeeper/deleted/.del-memory__load.test:
Delete: mysql-test/suite/funcs_1/t/memory__load.test
BitKeeper/deleted/.del-memory__load.result:
Delete: mysql-test/suite/funcs_1/r/memory__load.result
BitKeeper/deleted/.del-myisam__load.result:
Delete: mysql-test/suite/funcs_1/r/myisam__load.result
BitKeeper/deleted/.del-create_database.inc:
Delete: mysql-test/suite/funcs_1/include/create_database.inc
BitKeeper/deleted/.del-create_user_lowest_priv.inc:
Delete: mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc
BitKeeper/deleted/.del-create_user_no_super.inc:
Delete: mysql-test/suite/funcs_1/include/create_user_no_super.inc
BitKeeper/deleted/.del-datadict_help_tables_build.result:
Delete: mysql-test/suite/funcs_1/r/datadict_help_tables_build.result
BitKeeper/deleted/.del-datadict_help_tables_build.test:
Delete: mysql-test/suite/funcs_1/t/datadict_help_tables_build.test
BitKeeper/deleted/.del-datadict_help_tables_dev.result:
Delete: mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result
BitKeeper/deleted/.del-datadict_help_tables_dev.test:
Delete: mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test
BitKeeper/deleted/.del-datadict_master.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_master.inc
BitKeeper/deleted/.del-datadict_show_schema.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc
BitKeeper/deleted/.del-datadict_show_table_design.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc
BitKeeper/deleted/.del-datadict_tables.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables.inc
BitKeeper/deleted/.del-datadict_tables_error.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc
BitKeeper/deleted/.del-datadict_tables_error_1.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc
BitKeeper/deleted/.del-datadict_tables_error_1044.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc
BitKeeper/deleted/.del-datadict_tables_error_1049.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc
BitKeeper/deleted/.del-datadict_tables_error_1051.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc
BitKeeper/deleted/.del-datadict_tables_error_1146.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc
BitKeeper/deleted/.del-datadict_tables_error_1288.inc:
Delete: mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc
BitKeeper/deleted/.del-innodb__datadict.result:
Delete: mysql-test/suite/funcs_1/r/innodb__datadict.result
BitKeeper/deleted/.del-innodb__datadict.test:
Delete: mysql-test/suite/funcs_1/t/innodb__datadict.test
BitKeeper/deleted/.del-memory__datadict.test:
Delete: mysql-test/suite/funcs_1/t/memory__datadict.test
BitKeeper/deleted/.del-myisam__datadict.result:
Delete: mysql-test/suite/funcs_1/r/myisam__datadict.result
BitKeeper/deleted/.del-myisam__datadict.test:
Delete: mysql-test/suite/funcs_1/t/myisam__datadict.test
BitKeeper/deleted/.del-memory__datadict.result:
Delete: mysql-test/suite/funcs_1/r/memory__datadict.result
mysql-test/suite/funcs_1/README.txt:
Cleanup in description
mysql-test/suite/funcs_1/include/memory_tb1.inc:
Move setting of variables into the caller scripts
mysql-test/suite/funcs_1/include/memory_tb2.inc:
Move setting of variables into the caller scripts
mysql-test/suite/funcs_1/include/memory_tb3.inc:
Move setting of variables into the caller scripts
mysql-test/suite/funcs_1/include/memory_tb4.inc:
Move setting of variables into the caller scripts
mysql-test/suite/funcs_1/include/sp_tb.inc:
Remove outdated comment
mysql-test/suite/funcs_1/r/innodb_bitdata.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_cursors.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_02.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_03.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_06.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_07.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_08.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_10.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_0102.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_03.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_0407.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_08.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_09.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_trig_frkey.result:
Updated results
mysql-test/suite/funcs_1/r/innodb_views.result:
Updated results
mysql-test/suite/funcs_1/r/memory_bitdata.result:
Updated results
mysql-test/suite/funcs_1/r/memory_cursors.result:
Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_02.result:
Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_03.result:
Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_06.result:
Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_07.result:
Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_08.result:
Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_10.result:
Updated results
mysql-test/suite/funcs_1/r/memory_trig_0102.result:
Updated results
mysql-test/suite/funcs_1/r/memory_trig_03.result:
Updated results
mysql-test/suite/funcs_1/r/memory_trig_0407.result:
Updated results
mysql-test/suite/funcs_1/r/memory_trig_08.result:
Updated results
mysql-test/suite/funcs_1/r/memory_trig_09.result:
Updated results
mysql-test/suite/funcs_1/r/memory_trig_1011ext.result:
Updated results
mysql-test/suite/funcs_1/r/memory_views.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_bitdata.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_cursors.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_02.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_03.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_06.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_07.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_08.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_10.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_trig_0102.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_trig_03.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_trig_0407.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_trig_08.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_trig_09.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result:
Updated results
mysql-test/suite/funcs_1/r/myisam_views.result:
Updated results
mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc:
Move setting of variables into the caller scripts
mysql-test/suite/funcs_1/t/innodb_bitdata.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_cursors.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_0102.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_03.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_0407.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_08.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_09.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_trig_frkey.test:
Cleanup
mysql-test/suite/funcs_1/t/innodb_views.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_bitdata.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_cursors.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_trig_0102.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_trig_03.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_trig_0407.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_trig_08.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_trig_09.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_trig_1011ext.test:
Cleanup
mysql-test/suite/funcs_1/t/memory_views.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_bitdata.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_cursors.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_trig_0102.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_trig_03.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_trig_0407.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_trig_08.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_trig_09.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test:
Cleanup
mysql-test/suite/funcs_1/t/myisam_views.test:
Cleanup
mysql-test/suite/funcs_1/t/charset_collation_1.test:
Check content of information_schema views
character_sets, collations,
collation_character_set_applicability
Build variant 1
mysql-test/suite/funcs_1/t/charset_collation_2.test:
Check content of information_schema views
character_sets, collations,
collation_character_set_applicability
Build variant 2
mysql-test/suite/funcs_1/t/charset_collation_3.test:
Check content of information_schema views
character_sets, collations,
collation_character_set_applicability
Build variant 3
mysql-test/suite/funcs_1/t/is_basics_mixed.test:
Test some basic properties which are independend of the storage
engine used for the creation of tables.
mysql-test/suite/funcs_1/t/is_character_sets.test:
Tests related to functionality of
information_schema.character_sets
mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test:
Tests related to functionality of
information_schema.collation_character_set_applicability
mysql-test/suite/funcs_1/t/is_collations.test:
Tests related to functionality of
information_schema.collations
mysql-test/suite/funcs_1/t/is_column_privileges.test:
Tests related to functionality of
information_schema.column_privileges
mysql-test/suite/funcs_1/t/is_column_privileges_is_mysql_test.test:
Check content of information_schema.column_privileges about databases
mysql and test
mysql-test/suite/funcs_1/t/is_columns.test:
Tests related to functionality of
information_schema.columns
mysql-test/suite/funcs_1/t/is_columns_innodb.test:
Check content of information_schema.columns when some
tables are preloaded
Variant for InnoDB
mysql-test/suite/funcs_1/t/is_columns_is.test:
Check content of information_schema.columns about schema
information_schema
mysql-test/suite/funcs_1/t/is_columns_memory.test:
Check content of information_schema.columns when some
tables are preloaded
Variant for MEMORY
mysql-test/suite/funcs_1/t/is_columns_myisam.test:
Check content of information_schema.columns when some
tables are preloaded
Variant for MyISAM
mysql-test/suite/funcs_1/t/is_columns_mysql.test:
Check content of information_schema.columns about schema
mysql
mysql-test/suite/funcs_1/t/is_columns_ndb.test:
Check content of information_schema.columns when some
tables are preloaded
Variant for NDB
mysql-test/suite/funcs_1/t/is_key_column_usage.test:
Tests related to functionality of
information_schema.key_column_usage
mysql-test/suite/funcs_1/t/is_routines.test:
Tests related to functionality of
information_schema.routines
mysql-test/suite/funcs_1/t/is_schema_privileges.test:
Tests related to functionality of
information_schema.schema_privileges
mysql-test/suite/funcs_1/t/is_schema_privileges_is_mysql_test.test:
Check content of information_schema.schema_privileges about schemas
information_schema, mysql and test
mysql-test/suite/funcs_1/t/is_schemata.test:
Tests related to functionality of
information_schema.schemata
mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test:
Check content of information_schema.schemata about schemas
information_schema, mysql and test
mysql-test/suite/funcs_1/t/is_statistics.test:
Tests related to functionality of
information_schema.statistics
mysql-test/suite/funcs_1/t/is_statistics_is.test:
Check content of information_schema.statistics about schema
information_schema
mysql-test/suite/funcs_1/t/is_statistics_mysql.test:
Check content of information_schema.statistics about schema
mysql
mysql-test/suite/funcs_1/t/is_table_constraints.test:
Tests related to functionality of
information_schema.table_constraints
mysql-test/suite/funcs_1/t/is_table_constraints_is.test:
Check content of information_schema.table_constraints about schema
information_schema
mysql-test/suite/funcs_1/t/is_table_constraints_mysql.test:
Check content of information_schema.table_constraints about schema
mysql
mysql-test/suite/funcs_1/t/is_table_privileges.test:
Tests related to functionality of
information_schema.table_privileges
mysql-test/suite/funcs_1/datadict/basics_mixed1.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/basics_mixed2.inc:
Auxiliary script
mysql-test/suite/funcs_1/include/cleanup.inc:
Auxiliary script
mysql-test/suite/funcs_1/r/charset_collation_1.result:
Expected result for new test
mysql-test/suite/funcs_1/r/charset_collation_2.result:
Expected result for new test
mysql-test/suite/funcs_1/r/charset_collation_3.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_basics_mixed.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_character_sets.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_collations.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_column_privileges.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_column_privileges_is_mysql_test.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns_innodb.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns_is.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns_memory.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns_myisam.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns_mysql.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_columns_ndb.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_key_column_usage.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_routines.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_schema_privileges.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_schema_privileges_is_mysql_test.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_schemata.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_schemata_is_mysql_test.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_statistics.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_statistics_is.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_statistics_mysql.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_table_constraints.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_table_constraints_is.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_table_privileges.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables_innodb.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables_is.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables_memory.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables_myisam.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables_mysql.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_tables_ndb.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_triggers.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_user_privileges.result:
Expected result for new test
mysql-test/suite/funcs_1/r/is_views.result:
Expected result for new test
mysql-test/suite/funcs_1/t/is_tables.test:
Tests related to functionality of
information_schema.tables
mysql-test/suite/funcs_1/t/is_tables_innodb.test:
Check content of information_schema.tables when some
tables are preloaded
Variant for InnoDB
mysql-test/suite/funcs_1/t/is_tables_is.test:
Check content of information_schema.tables about schema
information_schema
mysql-test/suite/funcs_1/t/is_tables_memory.test:
Check content of information_schema.tables when some
tables are preloaded
Variant for MEMORY
mysql-test/suite/funcs_1/t/is_tables_myisam.test:
Check content of information_schema.tables when some
tables are preloaded
Variant for MyISAM
mysql-test/suite/funcs_1/t/is_tables_mysql.test:
Check content of information_schema.tables about schema
mysql
mysql-test/suite/funcs_1/t/is_tables_ndb.test:
Check content of information_schema.tables when some
tables are preloaded
Variant for NDB
mysql-test/suite/funcs_1/t/is_triggers.test:
Tests related to functionality of
information_schema.triggers
mysql-test/suite/funcs_1/t/is_user_privileges.test:
Tests related to functionality of
information_schema.user_privileges
mysql-test/suite/funcs_1/t/is_views.test:
Tests related to functionality of
information_schema.views
mysql-test/suite/funcs_1/datadict/basics_mixed3.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/charset_collation.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/columns.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/datadict.pre:
Auxiliary script
mysql-test/suite/funcs_1/datadict/is_table_query.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/statistics.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/table_constraints.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/tables1.inc:
Auxiliary script
mysql-test/suite/funcs_1/datadict/tables2.inc:
Auxiliary script
--master-data
No error code was returned by mysqldump if it detects that binary
logging is not enabled on the server.
Fixed by returning error code.
client/mysqldump.c:
Bug #34909: add error code
mysql-test/r/mysqldump-no-binlog.result:
Bug #34909: test case
mysql-test/t/mysqldump-no-binlog-master.opt:
Bug #34909: test case
mysql-test/t/mysqldump-no-binlog.test:
Bug #34909: test case
returns wrong results
Casting AVG() to DECIMAL led to incorrect results when the arguments
had a non-DECIMAL type, because in this case
Item_sum_avg::val_decimal() performed the division by the number of
arguments twice.
Fixed by changing Item_sum_avg::val_decimal() to not rely on
Item_sum_sum::val_decimal(), i.e. calculate sum and divide using
DECIMAL arithmetics for DECIMAL arguments, and utilize val_real() with
subsequent conversion to DECIMAL otherwise.
mysql-test/r/func_group.result:
Added a test case for bug #34512.
mysql-test/t/func_group.test:
Added a test case for bug #34512.
sql/item_sum.cc:
Do not use Item_sum_sum::val_decimal() in Item_sum_avg::val_decimal()
because the first one, depending on the arguments type, may return
either the sum of the arguments, or the average calculated by the
virtual val_real() method of Item_sum_avg. Instead, do our own
calculation based on the arguments type.
MASTER_POS_WAIT return values are different than expected when the server is not a slave.
It returns -1 instead of NULL.
Fixed with correcting st_relay_log_info::wait_for_pos() to return the proper
value in the case of rli info is not inited.
mysql-test/r/rpl_master_pos_wait.result:
results changed
mysql-test/t/rpl_master_pos_wait.test:
the new test to check that select master_pos_wait() to a server does
not have master info returns NULL as specified.
sql/slave.cc:
changing the return value to correspond the specification.
into mysql.com:/home/bar/mysql-work/mysql-5.0.b27580v2
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/include/ctype_common.inc:
after merge fix
mysql-test/r/ctype_big5.result:
after merge fix
mysql-test/r/ctype_euckr.result:
after merge fix
mysql-test/r/ctype_gb2312.result:
after merge fix
mysql-test/r/ctype_gbk.result:
after merge fix
mysql-test/r/ctype_uca.result:
after merge fix
It's impossible to determine which test inside mysql_client_test
failed if the log file is overwritten by mysqltest when dumping
the test case results. Redirect mysql_client_test output to a
separate file.
mysql-test/t/mysql_client_test.test:
Redirect mysql_client_test output to a separate log file so
it doesn't get overwritten by mysqltest.
- Apply Eric Bergen's patch: in join_read_always_key(), move ha_index_init() call
to before the late NULLs filtering code.
- Backport function comments from 6.0.
mysql-test/r/null_key.result:
BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
- Testcase
mysql-test/t/null_key.test:
BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
- Testcase
sql/sql_select.cc:
BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
- Apply Eric Bergen's patch: in join_read_always_key(), move ha_index_init() call
to before the late NULLs filtering code.
- Backport function comments from 6.0
added new function test_if_data_home_dir() which checks that
path does not contain mysql data home directory.
Using of mysql data home directory in
DATA DIRECTORY & INDEX DIRECTORY is disallowed.
mysql-test/r/symlink.result:
test result
mysql-test/t/symlink.test:
test case
sql/mysql_priv.h:
new variable mysql_unpacked_real_data_home
sql/mysqld.cc:
new variable mysql_unpacked_real_data_home
sql/sql_parse.cc:
added new function test_if_data_home_dir() which checks that
path does not contain mysql data home directory.
Using of mysql data home directory in
DATA DIRECTORY & INDEX DIRECTORY is disallowed.
Assertion `0' failed
If ROW item is a part of an expression that also has
aggregate function calls (COUNT/SUM/AVG...), a
"splitting" with an Item::split_sum_func2 function
is applied to that ROW item.
Current implementation of Item::split_sum_func2
replaces this Item_row with a newly created
Item_aggregate_ref reference to it.
Then the row cache tries to work with the
Item_aggregate_ref object as with the Item_row object:
row cache calls row-emulation methods such as cols and
element_index. Item_aggregate_ref (like it's parent
Item_ref) inherits dummy implementations of those
methods from the hierarchy root Item, and call to
them leads to failed assertions and wrong data
output.
Row-emulation virtual functions (cols, element_index, addr,
check_cols, null_inside and bring_value) of Item_ref have
been overloaded to forward calls to an underlying item
reference.
mysql-test/r/row.result:
Added test case for bug #34620.
mysql-test/t/row.test:
Added test case for bug #34620.
sql/item.h:
Fixed bug #34620.
Row-emulation virtual functions (cols, element_index, addr,
check_cols, null_inside and bring_value) of Item_ref have
been overloaded to forward calls to an underlying item
reference.
The problem is that passing anything other than a integer to a limit
clause in a prepared statement would fail. This limitation was introduced
to avoid replication problems (e.g: replicating the statement with a
string argument would cause a parse failure in the slave).
The solution is to convert arguments to the limit clause to a integer
value and use this converted value when persisting the query to the log.
mysql-test/r/limit.result:
Update test case result.
mysql-test/r/ps.result:
Add test case result for Bug#33851
mysql-test/r/rpl_user_variables.result:
Test case result for replication of prepared statement with
limit clause.
mysql-test/t/limit.test:
Test parameters to limit clause.
mysql-test/t/ps.test:
Add test case for Bug#33851
mysql-test/t/rpl_user_variables.test:
Test replication of a parameter which value is converted.
sql/item.cc:
Convert value to integer if it's a parameter to a limit clause.
sql/item.h:
Flag signal that item is a parameter to a limit clause.
sql/item_func.cc:
Const member functions, object is not mutated.
sql/sql_class.h:
Const member functions, object is not mutated.
sql/sql_yacc.yy:
Flag that item is a parameter to a limit clause.
NAME_CONST('whatever', -1) * MAX(whatever) bombed since -1 was
not seen as constant, but as FUNCTION_UNARY_MINUS(constant)
while we are at the same time pretending it was a basic const
item. This confused the aggregate handlers in exciting ways.
We now make NAME_CONST() behave more consistently.
mysql-test/r/func_misc.result:
show that a combination of NAME_CONST('x', -y) and an aggregate
no longer crashes the server.
mysql-test/t/func_misc.test:
show that a combination of NAME_CONST('x', -y) and an aggregate
no longer crashes the server.
sql/ha_ndbcluster_cond.cc:
tell cluster about "new" function type NEG_FUNC.
(this was previous identified as UNKNOWN_FUNC,
so we just handle it the same way, that's all.)
sql/ha_ndbcluster_cond.h:
tell cluster about "new" function type NEG_FUNC.
(this was previous identified as UNKNOWN_FUNC,
so we just handle it the same way, that's all.)
sql/item.cc:
make NAME_CONST() transparent in that type() of
-constant is that of constant, not that of unary
minus (id est, FUNC_ITEM).
sql/item.h:
Move constructor to item.cc
sql/item_func.h:
Revert Bug#30832; we can apply the magic more narrowly
(just for NAME_CONST() rather than all Item_func_neg).
Introduce new function type "NEG_FUNC."
Was a double-free of the Unique member of Item_func_group_concat.
This was not causing a crash because the Unique is a descendent of
Sql_alloc.
Fixed to free the Unique only if it was allocated for the instance
of Item_func_group_concat it was referenced from
mysql-test/r/func_gconcat.result:
Bug #34747: test case
mysql-test/t/func_gconcat.test:
Bug #34747: test case
sql/item_sum.cc:
Bug #34747: free the Unique only if it was allocated
for this instance of Item_func_group_concat
documentation
While the manual mentions FRAC_SECOND only for the TIMESTAMPADD()
function, it was also possible to use FRAC_SECOND with DATE_ADD(),
DATE_SUB() and +/- INTERVAL.
Fixed the parser to match the manual, i.e. using FRAC_SECOND for
anything other than TIMESTAMPADD()/TIMESTAMPDIFF() now produces a
syntax error.
Additionally, the patch allows MICROSECOND to be used in TIMESTAMPADD/
TIMESTAMPDIFF and marks FRAC_SECOND as deprecated.
mysql-test/r/func_time.result:
Added a test case for bug #33834.
mysql-test/t/func_time.test:
Added a test case for bug #33834.
sql/sql_yacc.yy:
Reject FRAC_SECOND for anything other than TIMESTAMPADD() or
TIMESTAMPDIFF().
Allow MICROSECOND to be used with TIMESTAMPADD()/TIMESTAMPDIFF().
Warn about FRAC_SECOND being a deprecated unit.
log-slave-updates and circul repl
Slave SQL thread may execute one extra event when there are events
skipped by slave I/O thread (e.g. originated by the same server).
Whereas it was requested not to do so by the UNTIL condition.
This happens because we compare with the end position of previously
executed event. This is fine when there are no skipped by slave I/O
thread events, as end position of previous event equals to start
position of to be executed event. Otherwise this position equals to
start position of skipped event.
This is fixed by:
- reading the event to be executed before checking if the until condition
is satisfied.
- comparing the start position of the event to be executed. Since we do
not have the start position available, we compute it by subtracting
event length from end position (which is available).
- if there are no events on the event queue at the slave sql starting
time, that meet until condition, we stop immediately, as in this
case we do not want to wait for next event.
mysql-test/r/rpl_dual_pos_advance.result:
A test case for BUG#13861.
mysql-test/t/rpl_dual_pos_advance.test:
A test case for BUG#13861.
sql/log_event.cc:
Store length of event. This is needed for further calculation of
the beginning of event.
sql/slave.cc:
Slave SQL thread may execute one extra event when there are events
skipped by slave I/O thread (e.g. originated by the same server).
Whereas it was requested not to do so by the UNTIL condition.
This happens because we compare with the end position of previously
executed event. This is fine when there are no skipped by slave I/O
thread events, as end position of previous event equals to start
position of to be executed event. Otherwise this position equals to
start position of skipped event.
This is fixed by:
- reading the event to be executed before checking if the until condition
is satisfied.
- comparing the start position of the event to be executed. Since we do
not have the start position available, we compute it by subtracting
event length from end position (which is available).
- if there are no events on the event queue at the slave sql starting
time, that meet until condition, we stop immediately, as in this
case we do not want to wait for next event.
sql/slave.h:
Added master_log_pos parametr to is_until_satisfied().
mysql-test/t/rpl_dual_pos_advance-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_dual_pos_advance-slave.opt''
suite)
Under some circumstances a combination of aggregate functions and
GROUP BY in a SELECT query over a VIEW could lead to incorrect
calculation of the result type of the aggregate function. This in
turn could result in incorrect results, or assertion failures on debug
builds.
Fixed by changing the logic in Item_sum_hybrid::fix_fields() so that
the argument's item is dereferenced before calling its type() method.
mysql-test/r/view.result:
Added a test case for bug #33049.
mysql-test/t/view.test:
Added a test case for bug #33049.
sql/item_sum.cc:
When calculating the result type of an aggregate function, dereference
the argument's item before calling its type() method.
skip lock_type update for temporary tables
mysql-test/r/tablelock.result:
test result
mysql-test/t/tablelock.test:
test case
sql/sql_base.cc:
skip lock_type update for temporary tables