1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-02 09:41:40 +03:00
Commit Graph

5900 Commits

Author SHA1 Message Date
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
evgen@moonbone.local
bc1f457194 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/14169-bug-4.1-mysql
2006-04-14 17:25:58 +04:00
mleich@mysql.com
3ca1ec8fdc Fixes for Bug#12429: Replication tests fail: "Slave_IO_Running" (?) differs related to
MySQL 4.1
  and Bug#16920 rpl_deadlock_innodb fails in show slave status (reported for MySQL 5.1)
  - backport of several fixes done in MySQL 5.0 to 4.1
  - fix for new discovered instability (see comment on Bug#12429 + Bug#16920)
  - reenabling of testcases
2006-04-13 20:42:48 +02:00
ramil@mysql.com
2398882097 Fix for bug #18643: crazy UNCOMPRESS(). 2006-04-13 16:19:21 +05:00
bar@mysql.com
45293fc346 Bug#18691: Converting number to UNICODE string returns invalid result.
Conversion from int and real numbers to UCS2 didn't work fine: 
CONVERT(100, CHAR(50) UNICODE)
CONVERT(103.9, CHAR(50) UNICODE)

The problem appeared because numbers have binary charset, so,
simple charset recast binary->ucs2 was performed
instead of real conversion.

Fixed to make numbers pretend to be non-binary.
2006-04-13 10:55:48 +05:00
evgen@moonbone.local
ac54aa2aee Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was
used

In a simple queries a result of the GROUP_CONCAT() function was always of 
varchar type.
But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
table is used during select then the result is converted to blob, due to
policy to not to store fields longer than 512 chars in tmp table as varchar
fields.

In order to provide consistent behaviour, result of GROUP_CONCAT() now
will always be converted to blob if it is longer than 512 chars.
Item_func_group_concat::field_type() is modified accordingly.
2006-04-12 23:05:38 +04:00
knielsen@mysql.com
408599af84 Fix broken --valgrind-options option. 2006-04-12 14:32:34 +02:00
ingo@mysql.com
2ef6034165 Merge mysql.com:/home/mydev/mysql-4.1
into  mysql.com:/home/mydev/mysql-4.1-bug5390
2006-04-11 15:18:16 +02:00
ramil@mysql.com
32cabaa39f after merge fix. 2006-04-11 15:26:18 +05:00
holyfoot@deer.(none)
be9f623012 bug #15442 (mysqltest.test doesn't work with the embedded server) 2006-04-11 15:01:21 +05:00
ramil@mysql.com
a2cd8beb96 Merge mysql.com:/usr/home/ram/work/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.1
2006-04-11 13:53:44 +05:00
ramil@mysql.com
4791ce7942 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.0
2006-04-11 10:46:21 +05:00
knielsen@mysql.com
32940fc3cb Merge mysql.com:/usr/local/mysql/mysql-4.1-vgfix
into  mysql.com:/usr/local/mysql/mysql-4.1
2006-04-09 00:22:05 +02:00
knielsen@mysql.com
4d5ab7a961 $MYSQL_TEST was broken with --valgrind. 2006-04-08 22:27:43 +02:00
konstantin@mysql.com
a81ea4a830 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/opt/local/work/mysql-4.1-16365
2006-04-07 23:50:45 +04:00
konstantin@mysql.com
518993312c A fix and a test case for Bug#16365 "Prepared Statements: DoS with
too many open statements". The patch adds a new global variable
@@max_prepared_stmt_count. This variable limits the total number
of prepared statements in the server. The default value of
@@max_prepared_stmt_count is 16382. 16382 small statements
(a select against 3 tables with GROUP, ORDER and LIMIT) consume 
100MB of RAM. Once this limit has been reached, the server will 
refuse to prepare a new statement and return ER_UNKNOWN_ERROR 
(unfortunately, we can't add new errors to 4.1 without breaking 5.0). The limit is changeable after startup
and can accept any value from 0 to 1 million. In case
the new value of the limit is less than the current
statement count, no new statements can be added, while the old
still can be used. Additionally, the current count of prepared 
statements is now available through a global read-only variable 
@@prepared_stmt_count.
2006-04-07 23:37:06 +04:00
joerg@mysql.com
f8d524cdbc Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/M41/mtr-4.1
2006-04-07 21:07:53 +02:00
konstantin@mysql.com
15b591561f A fix and a test case for Bug#16248 "WHERE (col1,col2) IN ((?,?))
gives wrong results". Implement previously missing 
Item_row::cleanup. The bug is not repeatable in 5.0, probably 
due to a coincidence: the problem is present in 5.0 as well.
2006-04-07 22:26:25 +04:00
joerg@mysql.com
657d1bd182 Manual merge. 2006-04-07 19:42:46 +02:00
joerg@mysql.com
a7edbc647e mysql-test/mysql-test-run.sh : Provide info about the options used. 2006-04-07 19:27:19 +02:00
joerg@mysql.com
65f4595e9a mysql-test/mysql-test-run.pl : Add option "with-ndbcluster-only" (ignored). 2006-04-07 13:34:39 +02:00
joerg@mysql.com
7e4d41de58 Perl test script: Avoid some aborts, which made the whole build/test process terminate. 2006-04-07 13:02:15 +02:00
joerg@mysql.com
a0541800aa mysql-test/mysql-test-run.sh : Add option "--with-ndbcluster-only" (backport from 5.1) 2006-04-07 12:22:55 +02:00
joerg@mysql.com
73a0ae9d9b Backport of 5.1 test options "--with-ndbcluster" and "--with-ndbcluster-only" as dummies (ignored). 2006-04-06 18:42:07 +02:00
bar@mysql.com
925ea02b4c This problem has already been fixed by one of the previous changes.
Adding test case to cover queries which worked incorrectly earlier:
Bug#18321: Can't store EuroSign with latin1_german1_ci and latin1_general_ci
2006-04-06 10:51:23 +05:00
kent@mysql.com
6783064d02 Makefile.am:
Distribute mysql-test-run.pl
2006-04-03 03:47:28 +02:00
kent@mysql.com
52db1e450a Makefile.am:
Install Perl mysql-test-run into test directory
2006-04-02 02:10:41 +02:00