- 05 May, 2006 1 commit
-
-
aelkin@mysql.com 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.
-
- 04 May, 2006 12 commits
-
-
paul@polar.kitebird.com authored
into polar.kitebird.com:/src/extern/MySQL/bk/mysql-4.1
-
paul@polar.kitebird.com authored
Delete: Docs/changelog-4.1.xml
-
paul@polar.kitebird.com authored
into polar.kitebird.com:/src/extern/MySQL/bk/mysql-4.1
-
paul@polar.kitebird.com authored
Delete: Docs/changelog-4.0.xml
-
jani@ua141d10.elisa.omakaista.fi authored
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
-
jani@ua141d10.elisa.omakaista.fi authored
TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column
-
jani@ua141d10.elisa.omakaista.fi authored
-
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
-
jani@hundin.mysql.fi authored
into hundin.mysql.fi:/home/jani/mysql-4.1
-
tnurnberg@mysql.com authored
into mysql.com:/home/mysql-4.1-19025e
-
holyfoot@deer.(none) authored
-
tnurnberg@mysql.com 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.
-
- 03 May, 2006 8 commits
-
-
holyfoot@mysql.com authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
aivanov@mysql.com authored
into mysql.com:/home/alexi/innodb/mysql-4.1-ss26
-
aivanov@mysql.com authored
Fixed BUG#19366: "consistent_snapshot.test fails".
-
holyfoot@mysql.com authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
-
holyfoot@mysql.com authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
holyfoot@mysql.com authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
holyfoot@mysql.com authored
into mysql.com:/home/hf/work/mysql-4.1.mrg
-
- 02 May, 2006 2 commits
-
-
pekka@mysql.com authored
-
ramil@mysql.com authored
into mysql.com:/usr/home/ram/work/4.1.b7643
-
- 01 May, 2006 5 commits
-
-
jani@hundin.mysql.fi authored
into hundin.mysql.fi:/home/jani/mysql-4.1
-
jani@hundin.mysql.fi authored
into hundin.mysql.fi:/home/jani/mysql-4.1
-
-
kent@mysql.com authored
Use "./libtool --mode=execute" to find real path to executables
-
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
-
- 30 Apr, 2006 2 commits
-
-
jani@hundin.mysql.fi authored
into hundin.mysql.fi:/home/jani/mysql-4.1
-
-
- 29 Apr, 2006 3 commits
-
-
kent@mysql.com authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
kent@mysql.com authored
Fix strange "double" define for popen. Avoid warnings about sprintf() etc. being unsafe. Corrected typo "#endfif"
-
kent@mysql.com authored
Changed version to 4.1.20
-
- 28 Apr, 2006 7 commits
-
-
kent@mysql.com authored
Backport of changes in 5.0 (bug#18294)
-
kent@mysql.com authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
elliot@mysql.com authored
Now test for NULLness the pointers returned from objects created from the default value. Pushing patch on behalf of cmiller.
-
kent@mysql.com authored
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
-
msvensson@devsrv-b.mysql.com authored
into devsrv-b.mysql.com:/users/msvensson/mysql-4.1
-
msvensson@devsrv-b.mysql.com authored
into devsrv-b.mysql.com:/users/msvensson/mysql-4.1
-
gkodinov@lsmy3.wdf.sap.corp 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.
-