Commit graph

5876 commits

Author SHA1 Message Date
tnurnberg@mysql.com
133a5d17f7 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/mysql-4.1-10418
2006-05-11 12:48:49 +02:00
ramil@mysql.com
cf0fc729f8 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b18501
2006-05-10 13:27:48 +05:00
tnurnberg@mysql.com
21f4e8aadb Bug#10418: LOAD_FILE does not behave like in manual if file does not exist
load_file() string-function should return NULL rather than throw an error if
the file doesn't exist, as per the manual.
2006-05-08 04:37:58 +02:00
igor@rurik.mysql.com
0928ae9bf4 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into  rurik.mysql.com:/home/igor/mysql-4.1
2006-05-07 11:25:33 -07:00
aelkin@mysql.com
7dcd1383a8 Merge mysql.com:/usr_rh9/home/elkin.rh9/MySQL/BARE/4.1
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/FIXES/4.1-bug19136_unass_user_var
2006-05-07 11:43:27 +03:00
igor@rurik.mysql.com
7977a0c867 Fixed bug #14927.
A query with a group by and having clauses could return a wrong
result set if the having condition contained a constant conjunct 
evaluated to FALSE.
It happened because the pushdown condition for table with
grouping columns lost its constant conjuncts.
Pushdown conditions are always built by the function make_cond_for_table
that ignores constant conjuncts. This is apparently not correct when
constant false conjuncts are present.
2006-05-06 23:48:13 -07:00
sergefp@mysql.com
ceef1105b2 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug16798
2006-05-06 22:15:27 +04:00
kroki@mysql.com
bf9ccde948 Fix race condition in the test for bug#16501. 2006-05-06 18:24:41 +04:00
sergefp@mysql.com
cef2f703bf Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug16798
2006-05-06 13:48:20 +04:00
sergefp@mysql.com
1b349cf85f BUG#16798: Inapplicable ref_or_null query plan and bad query result on random occasions
The bug was as follows: When merge_key_fields() encounters "t.key=X OR t.key=Y" it will 
try to join them into ref_or_null access via "t.key=X OR NULL". In order to make this 
inference it checks if Y<=>NULL, ignoring the fact that value of Y may be not yet known.

The fix is that the check if Y<=>NULL is made only if value of Y is known (i.e. it is a
constant).
TODO: When merging to 5.0, replace used_tables() with const_item() everywhere in merge_key_fields().
2006-05-06 13:15:00 +04:00
aelkin@mysql.com
8c57924a6a Bug#19136: Crashing log-bin and uninitialized user variables in a derived table
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.
2006-05-05 11:21:21 +03:00
kroki@mysql.com
bc1b9eb04f Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
2006-05-05 11:35:38 +04:00
jani@ua141d10.elisa.omakaista.fi
06d6b7472b Fixed Bug#11324:
TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column
2006-05-04 20:19:37 +03:00
jani@ua141d10.elisa.omakaista.fi
526e1a70e2 Fix for Bug#11326. 2006-05-04 19:31:10 +03:00
kroki@mysql.com
1139d37545 Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
2006-05-04 18:36:00 +04:00
jani@hundin.mysql.fi
d3467c0b4c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into  hundin.mysql.fi:/home/jani/mysql-4.1
2006-05-04 13:17:16 +03:00
kroki@mysql.com
74fd0beefa Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
2006-05-04 11:25:48 +04:00
tnurnberg@mysql.com
a5f440f891 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/mysql-4.1-19025e
2006-05-04 09:06:27 +02:00
holyfoot@deer.(none)
2f154ab410 test result fixed 2006-05-04 09:58:03 +05:00
tnurnberg@mysql.com
5becb110e0 Bug#19025 4.1 mysqldump doesn't correctly dump "auto_increment = [int]"
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.
2006-05-04 03:12:51 +02:00
holyfoot@mysql.com
e5a22d1bca Merge bk@192.168.21.1:mysql-4.1
into mysql.com:/home/hf/work/mysql-4.1.mrg
2006-05-04 00:03:58 +05:00
holyfoot@mysql.com
8667344572 Merge hf@192.168.21.28:work/mysql-4.1.16892
into mysql.com:/home/hf/work/mysql-4.1.mrg
2006-05-03 15:53:36 +05:00
holyfoot@mysql.com
486693e219 Merge mysql.com:/home/hf/work/mysql-4.1.15442
into mysql.com:/home/hf/work/mysql-4.1.mrg
2006-05-03 15:52:07 +05:00
holyfoot@mysql.com
0007484c26 Merge mysql.com:/home/hf/work/mysql-4.1.15225
into mysql.com:/home/hf/work/mysql-4.1.mrg
2006-05-03 15:51:19 +05:00
pekka@mysql.com
5c0012cb98 ndb - bug#19201 (4.1), see comment in NdbBlob.cpp 2006-05-02 14:33:55 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
e2c3c37231 Added tests for Bug#14515 2006-05-01 21:30:09 +03:00
elliot@mysql.com
604b5836bb BUG#19145: mysqld crashes if you set the default value of an enum field to NULL
Now test for NULLness the pointers returned from objects created from the
default value. Pushing patch on behalf of cmiller.
2006-04-28 12:15:29 -04:00
gkodinov@lsmy3.wdf.sap.corp
ca79343359 BUG#18492: mysqld reports ER_ILLEGAL_REFERENCE in --ps-protocol
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.
2006-04-28 11:23:31 +02:00
aivanov@mysql.com
06c79b143b Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/alexi/innodb/mysql-4.1-innodb
2006-04-26 12:39:47 +04:00
aivanov@mysql.com
11687d2f84 Make innodb_mysql produce a non-empty output. 2006-04-26 11:15:09 +04:00
aivanov@mysql.com
7b8c526078 Files innodb.[test|result] are to be used by Innobase only.
Use files innodb_mysql.[test|result] instead.
2006-04-26 09:51:57 +04:00
ramil@mysql.com
8cdd68a830 Fix for bug #18501: Server crashes with monthname(). 2006-04-25 14:34:19 +05:00
kroki@mysql.com
63157dca63 Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
2006-04-25 13:01:27 +04:00
kroki@mysql.com
c77336c260 Bug#16501: IS_USED_LOCK does not appear to work
Update User_level_lock::thread_id on acquiring an existing lock,
and reset it on lock release.
2006-04-24 18:06:43 +04:00
knielsen@mysql.com
17a80c9da4 Fix typo in mysql-test-run.pl (not caught by aotupush since it uses mysql-test-run.sh). 2006-04-24 15:34:01 +02:00
knielsen@mysql.com
afeb3c06f7 Merge knielsen@10.100.52.19:/usr/local/mysql/mysql-4.1-mtr-fix
into  mysql.com:/data0/knielsen/mysql-4.1-mtr-fix
2006-04-24 10:28:31 +02:00
holyfoot@vva.(none)
a9996318f2 bug #16892 (mysql_client_test fails in embedded server) 2006-04-24 13:07:53 +05:00
ramil@production.mysql.com
f7394c26f5 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  production.mysql.com:/usersnfs/rkalimullin/4.1.b17896
2006-04-24 08:01:10 +02:00
aelkin@mysql.com
a4ff312037 Bug#17263 temporary tables and replication
Backporting a changeset made for 5.0. Comments from there:

  The fix refines the algorithm of generating DROPs for binlog.
  Temp tables with common pseudo_thread_id are clustered into one query.
  Consequently one replication event per pseudo_thread_id is generated.
2006-04-23 12:18:57 +03:00
igor@rurik.mysql.com
510ab81362 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into  rurik.mysql.com:/home/igor/mysql-4.1
2006-04-21 08:22:03 -07:00
ramil@production.mysql.com
aed861fd86 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  production.mysql.com:/usersnfs/rkalimullin/4.1.b18643
2006-04-21 13:56:40 +02:00
igor@rurik.mysql.com
fd3e924164 Merge rurik.mysql.com:/home/igor/mysql-4.1
into  rurik.mysql.com:/home/igor/dev/mysql-4.1-0
2006-04-20 22:34:37 -07:00
igor@rurik.mysql.com
fc7514151f Fixed bug #18767.
The bug caused wrong result sets for union constructs of the form
(SELECT ... ORDER BY order_list1 [LIMIT n]) ORDER BY order_list2.
For such queries order lists were concatenated and limit clause was
completely neglected.
2006-04-20 22:15:38 -07:00
mleich@production.mysql.com
5109b3ce02 Merge mleich@bk-internal.mysql.com:/home/bk/mysql-4.1
into  production.mysql.com:/usersnfs/mleich/src
2006-04-20 11:31:22 +02:00
evgen@moonbone.local
4b04ce8085 func_gconcat.test:
Clean up test case for bug#14169
2006-04-20 12:35:33 +04:00
igor@rurik.mysql.com
67458961cf Temporarily commented out a query from the test case for bug 14169 to make it pass with --ps-protocol. 2006-04-19 16:08:37 -07:00
igor@rurik.mysql.com
881b55d503 Merge rurik.mysql.com:/home/igor/mysql-4.1
into  rurik.mysql.com:/home/igor/dev/mysql-4.1-2
2006-04-19 14:42:51 -07:00
evgen@moonbone.local
8b4eae6e4f func_gconcat.result:
Corrected test case for the bug#14169 to make it pass in --ps-protocol mode.
2006-04-20 00:27:43 +04:00
igor@rurik.mysql.com
950214abfc Fixed bug #19079.
The bug caused a reported index corruption in the cases when
key_cache_block_size was not a multiple of myisam_block_size,
e.g. when key_cache_block_size=1536 while myisam_block_size=1024.
2006-04-18 20:57:31 -07:00
mleich@mysql.com
3a18f1e27c Merge mysql.com:/home/matthias/Arbeit/mysql-4.1/src
into  mysql.com:/home/matthias/Arbeit/mysql-4.1/src-1
2006-04-18 14:18:51 +02:00