- 05 May, 2006 1 commit
-
-
unknown authored
The reason of the bug is in that `get_var_with_binlog' performs missed assingment of the variables as side-effect. Doing that it eventually calls `free_underlaid_joins' to pass as an argument `thd->lex->select_lex' of the lex which belongs to the user query, not to one which is emulated i.e SET @var1:=NULL. `get_var_with_binlog' is refined to supply a temporary lex to sql_set_variables's stack. mysql-test/r/rpl_user_variables.result: results changed mysql-test/t/rpl_user_variables.test: a problematic query to be binlogged is added sql/item_func.cc: BUG#19136: Crashing log-bin and uninitialized user variables The reason of the bug is in that how `get_var_with_binlog' performs missed assingment of the variables: `free_underlaid_joins' gets as an argument `thd->lex->select_lex' which belongs to the user query, not to one which is emulated i.e SET @var1:=NULL. `get_var_with_binlog' is refined to supply a temporary lex to sql_set_variables's stack.
-
- 04 May, 2006 12 commits
-
-
unknown authored
into polar.kitebird.com:/src/extern/MySQL/bk/mysql-4.1
-
unknown authored
Delete: Docs/changelog-4.1.xml BitKeeper/deleted/.del-changelog-4.1.xml~8aa496ebed09d868: Delete: Docs/changelog-4.1.xml
-
unknown authored
into polar.kitebird.com:/src/extern/MySQL/bk/mysql-4.1
-
unknown authored
Delete: Docs/changelog-4.0.xml BitKeeper/deleted/.del-changelog-4.0.xml~8f56ee8a913e848b: Delete: Docs/changelog-4.0.xml
-
unknown authored
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
-
unknown authored
TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column mysql-test/r/date_formats.result: Added test case for Bug#11324, "TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column" mysql-test/t/date_formats.test: Added test case for Bug#11324, "TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column"
-
unknown authored
mysql-test/r/date_formats.result: Added test cases for Bug#11326 mysql-test/t/date_formats.test: Added test cases for Bug#11326
-
unknown authored
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
-
unknown authored
into hundin.mysql.fi:/home/jani/mysql-4.1 sql/sql_show.cc: Auto merged
-
unknown authored
into mysql.com:/home/mysql-4.1-19025e
-
unknown authored
mysql-test/r/mysqltest.result: result fixed
-
unknown authored
mysqldump / SHOW CREATE TABLE will show the NEXT available value for the PK, rather than the *first* one that was available (that named in the original CREATE TABLE ... AUTO_INCREMENT = ... statement). This should produce correct and robust behaviour for the obvious use cases -- when no data were inserted, then we'll produce a statement featuring the same value the original CREATE TABLE had; if we dump with values, INSERTing the values on the target machine should set the correct next_ID anyway (and if not, we'll still have our AUTO_INCREMENT = ... to do that). Lastly, just the CREATE statement (with no data) for a table that saw inserts would still result in a table that new values could safely be inserted to). There seems to be no robust way however to see whether the next_ID field is > 1 because it was set to something else with CREATE TABLE ... AUTO_INCREMENT = ..., or because there is an AUTO_INCREMENT column in the table (but no initial value was set with AUTO_INCREMENT = ...) and then one or more rows were INSERTed, counting up next_ID. This means that in both cases, we'll generate an AUTO_INCREMENT = ... clause in SHOW CREATE TABLE / mysqldump. As we also show info on, say, charsets even if the user did not explicitly give that info in their own CREATE TABLE, this shouldn't be an issue. As per above, the next_ID will be affected by any INSERTs that have taken place, though. This /should/ result in correct and robust behaviour, but it may look non-intuitive to some users if they CREATE TABLE ... AUTO_INCREMENT = 1000 and later (after some INSERTs) have SHOW CREATE TABLE give them a different value (say, CREATE TABLE ... AUTO_INCREMENT = 1006), so the docs should possibly feature a caveat to that effect. It's not very intuitive the way it works now (with the fix), but it's *correct*. We're not storing the original value anyway, if we wanted that, we'd have to change on-disk representation? If we do dump/load cycles with empty DBs, nothing will change. This changeset includes an additional test case that proves that tables with rows will create the same next_ID for AUTO_INCREMENT = ... across dump/restore cycles. Confirmed by support as likely solution for client's problem. mysql-test/r/auto_increment.result: test for creation of AUTO_INCREMENT=... clause mysql-test/r/gis-rtree.result: Add AUTO_INCREMENT=... clauses where appropriate mysql-test/r/mysqldump.result: show that AUTO_INCREMENT=... will survive dump/restore cycles mysql-test/r/symlink.result: Add AUTO_INCREMENT=... clauses where appropriate mysql-test/t/auto_increment.test: test for creation of AUTO_INCREMENT=... clause mysql-test/t/mysqldump.test: show that AUTO_INCREMENT=... will survive dump/restore cycles sql/sql_show.cc: Add AUTO_INCREMENT=... to output of SHOW CREATE TABLE if there is an AUTO_INCREMENT column, and NEXT_ID > 1 (the default). We must not print the clause for engines that do not support this as it would break the import of dumps, but as of this writing, the test for whether AUTO_INCREMENT columns are allowed and wether AUTO_INCREMENT=... is supported is identical, !(file->table_flags() & HA_NO_AUTO_INCREMENT)) Because of that, we do not explicitly test for the feature, but may extrapolate its existence from that of an AUTO_INCREMENT column.
-
- 03 May, 2006 8 commits
-
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
unknown authored
into mysql.com:/home/alexi/innodb/mysql-4.1-ss26
-
unknown authored
Fixed BUG#19366: "consistent_snapshot.test fails". innobase/include/dict0dict.ic: Applied innodb-4.1-ss26 snapshot. Remove too strict assertions from some dict_table_t accessor functions (Bug#19366).
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1.mrg mysql-test/mysql-test-run.pl: Auto merged sql/sql_table.cc: Auto merged
-
unknown authored
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1.mrg sql/sql_table.cc: Auto merged
-
- 02 May, 2006 2 commits
-
-
unknown authored
ndb/test/ndbapi/testBlobs.cpp: option -fac (fetch across commit) ndb/tools/delete_all.cpp: option --transactional (default remains truncate) mysql-test/r/ndb_blob.result: bug#19201 mysql-test/t/ndb_blob.test: bug#19201 ndb/include/kernel/signaldata/TcKeyReq.hpp: bug#19201 ndb/include/ndbapi/NdbBlob.hpp: bug#19201 ndb/src/ndbapi/NdbBlob.cpp: bug#19201
-
unknown authored
into mysql.com:/usr/home/ram/work/4.1.b7643 sql/sql_table.cc: Auto merged
-
- 01 May, 2006 5 commits
-
-
unknown authored
into hundin.mysql.fi:/home/jani/mysql-4.1
-
unknown authored
into hundin.mysql.fi:/home/jani/mysql-4.1 sql/set_var.cc: Auto merged
-
unknown authored
-
unknown authored
Use "./libtool --mode=execute" to find real path to executables support-files/mysql.spec.sh: Use "./libtool --mode=execute" to find real path to executables
-
unknown authored
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1 sql/set_var.cc: Auto merged
-
- 30 Apr, 2006 2 commits
- 29 Apr, 2006 3 commits
-
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
unknown authored
Fix strange "double" define for popen. Avoid warnings about sprintf() etc. being unsafe. Corrected typo "#endfif" include/config-win.h: Fix strange "double" define for popen. Avoid warnings about sprintf() etc. being unsafe. Corrected typo "#endfif"
-
unknown authored
Changed version to 4.1.20 configure.in: Changed version to 4.1.20
-
- 28 Apr, 2006 7 commits
-
-
unknown authored
Backport of changes in 5.0 (bug#18294) support-files/mysql.spec.sh: Backport of changes in 5.0 (bug#18294)
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
unknown authored
Now test for NULLness the pointers returned from objects created from the default value. Pushing patch on behalf of cmiller. mysql-test/r/null.result: Add test case mysql-test/t/null.test: Add test case sql/sql_table.cc: No longer blindly dereference pointer of the string representation of the values, where "NULL" is NUL. Raise INVALID DEFAULT error messages where appropriate. Note that the -O1 optimization flag made debugging this extremely tricky, with misleading results, and that removing it from the Makefile during debugging can be invaluable.
-
unknown authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
unknown authored
into devsrv-b.mysql.com:/users/msvensson/mysql-4.1
-
unknown authored
into devsrv-b.mysql.com:/users/msvensson/mysql-4.1
-
unknown authored
In the code that converts IN predicates to EXISTS predicates it is changing the select list elements to constant 1. Example : SELECT ... FROM ... WHERE a IN (SELECT c FROM ...) is transformed to : SELECT ... FROM ... WHERE EXISTS (SELECT 1 FROM ... HAVING a = c) However there can be no FROM clause in the IN subquery and it may not be a simple select : SELECT ... FROM ... WHERE a IN (SELECT f(..) AS c UNION SELECT ...) This query is transformed to : SELECT ... FROM ... WHERE EXISTS (SELECT 1 FROM (SELECT f(..) AS c UNION SELECT ...) x HAVING a = c) In the above query c in the HAVING clause is made to be an Item_null_helper (a subclass of Item_ref) pointing to the real Item_field (which is not referenced anywhere else in the query anymore). This is done because Item_ref_null_helper collects information whether there are NULL values in the result. This is OK for directly executed statements, because the Item_field pointed by the Item_null_helper is already fixed when the transformation is done. But when executed as a prepared statement all the Item instances are "un-fixed" before the recompilation of the prepared statement. So when the Item_null_helper gets fixed it discovers that the Item_field it points to is not fixed and issues an error. The remedy is to keep the original select list references when there are no tables in the FROM clause. So the above becomes : SELECT ... FROM ... WHERE EXISTS (SELECT c FROM (SELECT f(..) AS c UNION SELECT ...) x HAVING a = c) In this way c is referenced directly in the select list as well as by reference in the HAVING clause. So it gets correctly fixed even with prepared statements. And since the Item_null_helper subclass of Item_ref_null_helper is not used anywhere else it's taken out. mysql-test/r/ps_11bugs.result: Test case for the bug mysql-test/r/subselect.result: Explain updated because of the tranformation mysql-test/t/ps_11bugs.test: Testcase for the bug sql/item.cc: Taking out Item_null_helper as it's no longer needed sql/item.h: Taking out Item_null_helper as it's no longer needed sql/item_subselect.cc: The described change to the IN->EXISTS transformation
-