1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-08 17:02:21 +03:00
Commit Graph

13691 Commits

Author SHA1 Message Date
db336c0544 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug17047
2006-11-16 14:15:56 +03:00
af22eb35e5 Add 5.0 part of fix for bug 17047.
mysql-test/r/func_str.result:
  Add result for bug#17047: CHAR() and IN() can return NULL without
  signaling NULL result.
mysql-test/t/func_str.test:
  Add test case for bug#17047: CHAR() and IN() can return NULL without
  signaling NULL result.
sql/item_strfunc.cc:
  Add Item_str_func::fix_fields() implementation, and set maybe_null to
  TRUE if we are in the SQL mode that requires some functions to return
  null even if they normally do not.
sql/item_strfunc.h:
  Add declaration of Item_str_func::fix_fields().
  Do not reset maybe_null in Item_func_char::fix_length_and_dec().
2006-11-16 14:06:51 +03:00
ec845335ac Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug17047
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug17047


sql/item_cmpfunc.cc:
  Auto merged
mysql-test/r/func_in.result:
  Manual merge.  Add "End of 5.0 tests".
mysql-test/t/func_in.test:
  Manual merge.  Add "End of 5.0 tests".
2006-11-16 13:25:55 +03:00
e40e8052e8 BUG#17047: CHAR() and IN() can return NULL without signaling NULL result
The problem was that some functions (namely IN() starting with 4.1, and
CHAR() starting with 5.0) were returning NULL in certain conditions,
while they didn't set their maybe_null flag.  Because of that there could
be some problems with 'IS NULL' check, and statements that depend on the
function value domain, like CREATE TABLE t1 SELECT 1 IN (2, NULL);.

The fix is to set maybe_null correctly.


mysql-test/r/func_in.result:
  Add result for bug#17047: CHAR() and IN() can return NULL without
  signaling NULL result.
mysql-test/t/func_in.test:
  Add test case for bug#17047: CHAR() and IN() can return NULL without
  signaling NULL result.
sql/item_cmpfunc.cc:
  Remove assignment to maybe_null, as it was already set in fix_fields()
  based on all arguments, not only on the first.
2006-11-16 13:21:38 +03:00
bd74ef4854 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  mysql.com:/usr/home/bar/mysql-5.0.b23619
2006-11-16 13:44:23 +04:00
3d3432bc6e Merge mysql.com:/usr/home/bar/mysql-5.0-rpl
into  mysql.com:/usr/home/bar/mysql-5.0.b23619


sql/log_event.cc:
  Auto merged
2006-11-16 12:28:09 +04:00
16a0bdd7da BUG# 17044 Federated Storage Engine not UTF8 clean
- Added 'SET NAMES <charset>" upon ::open
- Added test and results for simple UTF test

federated.test:
  BUG #17044 Federated Storage Engine not UTF8 clean
  New test. Using hex - pasting various charsets in the terminal doesn't work.
federated.result:
  BUG# 17044 Federated Storage Engine not UTF8 clean
  New test results
ha_federated.cc:
  BUG# 17044 Federated Storage Engine not UTF8 clean
  Upon ::open, set names to table's charset


sql/ha_federated.cc:
  BUG# 17044 Federated Storage Engine not UTF8 clean
          Upon ::open, set names to table's charset
mysql-test/t/federated.test:
   BUG #17044 Federated Storage Engine not UTF8 clean
      New test. Using hex - pasting various charsets in the terminal doesn't work.
    federated.result:
    BUG# 17044 Federated Storage Engine not UTF8 clean
      New test results
mysql-test/r/federated.result:
  BUG# 17044 Federated Storage Engine not UTF8 clean
          New test results
2006-11-15 21:24:58 -05:00
daaddeb656 Dummy push to force pushbuild retest
mysql-test/t/disabled.def:
  Dummy push
2006-11-15 19:17:52 +01:00
ab6d44374e Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug19955/my50-bug19955
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


sql/item_func.cc:
  Auto merged
2006-11-15 12:27:09 -05:00
3be6493aab Bug#19955: unsigned bigint used as signed with MOD function
Problem:  When we have a really large number (between 2^63 and 2^64)
as the left side of the mod operator, it gets improperly corerced
into a signed value.

Solution:  Added check to see if the "negative" number is really
positive, and if so, cast it.


mysql-test/r/bigint.result:
  Added test case result
mysql-test/t/bigint.test:
  Added test case
sql/item_func.cc:
  Added check to see if we have an unsigned number that looks like a
  signed number.
2006-11-15 12:23:07 -05:00
2c2334f95a Merge mysql.com:/home/bkroot/mysql-5.0-rpl
into  mysql.com:/home/bk/MERGE/mysql-5.0-merge
2006-11-15 12:40:07 +01:00
6bd194d7ca Merge mysql.com:/home/bkroot/mysql-4.1-rpl
into  mysql.com:/home/bk/MERGE/mysql-4.1-merge
2006-11-15 12:39:21 +01:00
cb79b92252 Merge dsl-hkibras-fe30f900-107.dhcp.inet.fi:/home/elkin/MySQL/TEAM/BARE/4.1
into  dsl-hkibras-fe30f900-107.dhcp.inet.fi:/home/elkin/MySQL/TEAM/BARE/5.0
2006-11-15 12:55:43 +02:00
9cde979eb7 bug#19402 SQL close to the size of the max_allowed_packet fails on the slave
mending windows test.


mysql-test/r/rpl_packet.result:
  results changed
mysql-test/t/rpl_packet.test:
  removing because of the connection with windows client can be lost instead of
  the error code back (source: manual).
2006-11-15 12:53:07 +02:00
8f1337add4 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  example.com:/work/bug23760/my50
2006-11-15 11:50:30 +01:00
8b8647ff42 Cleanup after test cases
mysql-test/r/init_connect.result:
  Restore global variable to the value it's set to when server is started
mysql-test/r/key_cache.result:
  Restore global variable values to original
mysql-test/r/mysqldump.result:
  Drop the user that was created. Specifying "drop user myDB_user" is equal to "drop user myDB_user@%"
mysql-test/r/rpl_deadlock.result:
  Restore global variable values to original
mysql-test/r/rpl_drop_db.result:
  Remove the conflicting file and drop database mysqltest1 before test exits
mysql-test/r/rpl_ignore_revoke.result:
  As changes to mysql.* are ignored - explicitly delete the user on slave
mysql-test/r/rpl_init_slave.result:
  Restore global variable values to original
mysql-test/r/rpl_max_relay_size.result:
  Restore global variable values to original
mysql-test/r/rpl_sp.result:
  Restore global variable values to original
mysql-test/r/rpl_timezone.result:
  Restore global variable values to original
mysql-test/r/rpl_variables.result:
  Restore global variable values to original
mysql-test/r/view_grant.result:
  Use same user in all places in the same test "readonly" is equal to "readonly@%" not "readonly@localhost"
mysql-test/t/init_connect.test:
  Restore global variable to the value it's set to when server is started
mysql-test/t/key_cache.test:
  Restore global variable values to original
mysql-test/t/mysqldump.test:
  Drop the user that was created. Specifying "drop user myDB_user" is equal to "drop user myDB_user@%"
mysql-test/t/rpl_deadlock.test:
  Restore global variable values to original
mysql-test/t/rpl_drop_db.test:
  Remove the conflicting file and drop database mysqltest1 before test exits
mysql-test/t/rpl_ignore_revoke.test:
  As changes to mysql.* are ignored - explicitly delete the user on slave
mysql-test/t/rpl_init_slave.test:
  Restore global variable values to original
mysql-test/t/rpl_max_relay_size.test:
  Restore global variable values to original
mysql-test/t/rpl_sp.test:
  Restore global variable values to original
mysql-test/t/rpl_timezone.test:
  Restore global variable values to original
mysql-test/t/rpl_variables.test:
  Restore global variable values to original
mysql-test/t/view_grant.test:
  Use same user in all places in the same test "readonly" is equal to "readonly@%" not "readonly@localhost"
2006-11-15 10:23:27 +01:00
327a9f1805 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  example.com:/work/bug23760/my50


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2006-11-14 20:48:48 +01:00
b7dd49b016 Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-11-14 19:47:36 +01:00
eb5d7145af Update test cases after run with --check-testcases
mysql-test/r/limit.result:
  Add missing drop of table t1
mysql-test/r/lowercase_fs_off.result:
  Add missing drop of "sample" user
mysql-test/t/limit.test:
  Add missing drop of table t1
mysql-test/t/lowercase_fs_off.test:
  Add missing drop of "sample" user
2006-11-14 19:45:52 +01:00
645aac545e Fix for bug#23760 ROW_COUNT() and store procedure not owrking together
The problem was that THD::row_count_func was zeroed too. It was zeroed
as a fix for bug 4905 "Stored procedure doesn't clear for "Rows affected"
However, the proper solution is not to zero, because THD::row_count_func has
been set to -1 already in mysql_execute_command(), a later fix, which obsoletes
the incorrect fix of #4095


mysql-test/r/sp.result:
  update result
mysql-test/t/sp.test:
  test for bug#23760 ROW_COUNT() and store procedure not owrking together
sql/sql_parse.cc:
  Remove zeroing for thd->row_count_func
  The fix for #4905 wasn't right. Now, it's ok without this zeroing
  because if there was an error THD::
2006-11-14 18:40:11 +01:00
1019dd404c Bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
The regression is caused by the fix for bug 14767. When INSERT ... SELECT
used a view in the SELECT list that was not inlined, and there was an 
active transaction, the server could crash in Query_cache::invalidate.

On INSERT ... SELECT only the table being inserted into is invalidated.
Thus views that can't be inlined are skipped from invalidation.

The bug manifests itself in two ways so there is 2 test cases.
One checks that the only the table being inserted into is invalidated.
And the second one checks that there is no crash on INSERT ... SELECT.


mysql-test/t/query_cache.test:
  Added a test case for bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
mysql-test/r/query_cache.result:
  Added a test case for bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
sql/sql_parse.cc:
  Bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view 
  On INSERT ... SELECT only the table being inserted into is invalidated.
2006-11-14 19:50:44 +03:00
a63413b813 Merge polly.local:/tmp/maint/bug22129/my50-bug22129
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2006-11-14 16:38:11 +03:00
cab0dc6544 Merge polly.local:/tmp/maint/bug22129/my41-bug22129
into  polly.local:/home/kaa/src/maint/mysql-4.1-maint
2006-11-14 16:36:31 +03:00
9020035fa2 Merge kahlann.erinye.com:/home/df/mysql/build/mtr-4.1
into  kahlann.erinye.com:/home/df/mysql/build/mtr-5.0


mysql-test/Makefile.am:
  Auto merged
2006-11-14 14:29:58 +01:00
b295756927 make dist now copies .test files in mysql-test/include
mysql-test/Makefile.am:
  add include/*.test to dist-hook and install-data-local targets to include the three .test files in mysql-test/include with make dist
2006-11-14 14:29:05 +01:00
6dc05dde2b Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb


sql/ha_ndbcluster.cc:
  Auto merged
2006-11-14 10:06:11 +01:00
c21f4e6e4c Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/Makefile.am:
  Manual merge
2006-11-14 09:43:30 +01:00
178dddb54f Fix "make dist" 2006-11-14 09:42:01 +01:00
b3e5cc6bad Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-11-14 09:18:46 +01:00
541e9c9ac5 Bug#23703 (DROP TRIGGER needs an IF EXISTS)
This change set implements the DROP TRIGGER IF EXISTS functionality.

This fix is considered a bug and not a feature, because without it,
there is no known method to write a database creation script that can create
a trigger without failing, when executed on a database that may or may not
contain already a trigger of the same name.

Implementing this functionality closes an orthogonality gap between triggers
and stored procedures / stored functions (which do support the DROP IF
EXISTS syntax).

In sql_trigger.cc, in mysql_create_or_drop_trigger,
the code has been reordered to:
- perform the tests that do not depend on the file system (access()),
- get the locks (wait_if_global_read_lock, LOCK_open)
- call access()
- perform the operation
- write to the binlog
- unlock (LOCK_open, start_waiting_global_read_lock)

This is to ensure that all the code that depends on the presence of the
trigger file is executed in the same critical section,
and prevents race conditions similar to the case fixed by Bug 14262 :

- thread 1 executes DROP TRIGGER IF EXISTS, access() returns a failure
- thread 2 executes CREATE TRIGGER
- thread 2 logs CREATE TRIGGER
- thread 1 logs DROP TRIGGER IF EXISTS

The patch itself is based on code contributed by the MySQL community,
under the terms of the Contributor License Agreement (See Bug 18161).


mysql-test/r/rpl_trigger.result:
  DROP TRIGGER IF EXISTS
mysql-test/r/trigger.result:
  DROP TRIGGER IF EXISTS
mysql-test/t/rpl_trigger.test:
  DROP TRIGGER IF EXISTS
mysql-test/t/trigger.test:
  DROP TRIGGER IF EXISTS
sql/sql_trigger.cc:
  DROP TRIGGER IF EXISTS
sql/sql_yacc.yy:
  DROP TRIGGER IF EXISTS
2006-11-13 15:40:22 -07:00
1aad990179 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug18761/my50-bug18761
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


BitKeeper/etc/collapsed:
  auto-union
sql/item_func.cc:
  Auto merged
2006-11-13 13:19:13 -05:00
2df738f3d0 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/Makefile.am:
  Auto merged
mysql-test/mysql-test-run-shell.sh:
  Auto merged
Makefile.am:
  Manual merge
2006-11-13 19:19:02 +01:00
154c6e0677 Bug#18761: constant expression as UDF parameters not passed in as constant
The code that set up data to be passed to user-defined functions was very
old and analyzed the "Type" of the data that was passed into the UDF, when
it really should analyze the "return_type", which is hard-coded for simple
Items and works correctly for complex ones like functions.
---
Added test at Sergei's behest.


mysql-test/r/udf.result:
  Verify that various arguments work.
  ---
  Added test at Sergei's behest.
mysql-test/t/udf.test:
  Verify that various arguments work.
  ---
  Added test at Sergei's behest.
sql/item_func.cc:
  For function-Items, test whether it is constant and set the struct members 
  for the UDF parameter appropriately.
  
  Replace tabs with spaces in affected code.
sql/udf_example.c:
  Include a simple function that is useful in testing.
2006-11-13 13:13:44 -05:00
6da91bfff3 Use mysql-test-run.pl
mysql-test/mysql-test-run-shell.sh:
  Rename: mysql-test/mysql-test-run.sh -> mysql-test/mysql-test-run-shell.sh
mysql-test/Makefile.am:
  Remove build of mysql_test_run_new
  Symlink mysql-test-run.pl to mysql-test-run
  Rename mysql-test-run.sh to mysql-test-run-shell.sh
2006-11-13 19:12:34 +01:00
1613ad2c98 Merge mysql.com:/home/bk/MERGE/mysql-4.1-merge
into  mysql.com:/home/bk/MERGE/mysql-5.0-merge


BitKeeper/triggers/post-commit:
  Auto merged
mysql-test/t/func_gconcat.test:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/log_event.h:
  Manual merge
sql/slave.cc:
  Manual merge
2006-11-13 17:54:01 +01:00
ea1f7e4b56 several fixes to make tests pass in embedded-server mode
libmysqld/lib_sql.cc:
  check for bootstrap added
mysql-test/include/federated.inc:
  disabled in embedded
mysql-test/mysql-test-run.pl:
  we disable ssh in embedded server
mysql-test/r/bdb.result:
  part moved to bdb_notembedded as it uses binlog
mysql-test/r/flush_block_commit.result:
  part moved to flush_block_commit_notembedded
mysql-test/r/insert.result:
  part moved to insert_notembedded as delayed works differently in embedded server
mysql-test/r/insert_select.result:
  part moved to insert_notembedded as GRANTS usually disabled in embedded server
mysql-test/r/join.result:
  access rights hidden in result
mysql-test/t/backup.test:
  now available in embedded server
mysql-test/t/bdb.test:
  part moved to bdb_notembedded as it uses binlog
mysql-test/t/delayed.test:
  code trimmed
mysql-test/t/execution_constants.test:
  skipped in embedded-server mode
mysql-test/t/flush_block_commit.test:
  moved to flush_block_commit_notembedded
mysql-test/t/information_schema_db.test:
  skipped in embedded-server
mysql-test/t/innodb.test:
  directories replaced to be embedded-server compliant
mysql-test/t/insert.test:
  part moved to insert_notembedded
mysql-test/t/insert_select.test:
  part moved to insert_notembedded
mysql-test/t/join.test:
  access rights hidden
mysql-test/t/status.test:
  skipped in embedded server
mysql-test/t/trigger.test:
  directories replaced to be embedded-server compliant
sql/item_strfunc.cc:
  extra contexts not needed whan access checks disabled
sql/share/errmsg.txt:
  bigger paths reserved to prevent test's fails
mysql-test/r/bdb_notembedded.result:
  ***MISSING WEAVE***
mysql-test/r/flush_block_commit_notembedded.result:
  added
mysql-test/r/insert_notembedded.result:
  added
mysql-test/t/bdb_notembedded.test:
  ***MISSING WEAVE***
mysql-test/t/flush_block_commit_notembedded.test:
  added
mysql-test/t/insert_notembedded.test:
  added
2006-11-13 20:06:45 +04:00
ab15fb9e90 Expect the file "have_mysql_upgrade.result" to contain the
result from "require mysql_upgrade"


mysql-test/r/have_mysql_upgrade.result:
  New BitKeeper file ``mysql-test/r/have_mysql_upgrade.result''
2006-11-13 16:55:05 +01:00
8b01c318c0 Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysql_upgrade.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
2006-11-13 16:39:44 +01:00
71419317f1 Merge mysql.com:/home/hf/work/embt/my41-embt
into  mysql.com:/home/hf/work/embt/my50-embt


mysql-test/t/delayed.test:
  Auto merged
2006-11-13 18:16:52 +04:00
f660dfa64f delayed.test fixed
mysql-test/t/delayed.test:
  shouldn't be tested in embedded server
2006-11-13 18:12:15 +04:00
e56742d7a9 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B19216-4.1-opt
2006-11-13 15:40:19 +02:00
405dcd2df2 merge 4.1->5.0 of the test suite for bug 19216 2006-11-13 15:37:04 +02:00
5900506c95 Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint-mysql_upgrade
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


BitKeeper/deleted/.del-abi_check.ic:
  Auto merged
mysql-test/mysql-test-run.pl:
  Manual merge
2006-11-13 13:40:37 +01:00
8c598f607f Make it possible for .test suites to run "mysql_upgrade"
Add new test file mysql_upgrade.test


BitKeeper/deleted/.del-abi_check.ic:
  Rename: include/abi_check.ic -> BitKeeper/deleted/.del-abi_check.ic
client/mysql_upgrade.c:
  Make mysql_upgrade search also in "client" dir so it can be run from a source dist.
mysql-test/mysql-test-run.pl:
  Make it possible for .test scripts to run "mysql_upgrade"
mysql-test/r/mysql_upgrade.result:
  New BitKeeper file ``mysql-test/r/mysql_upgrade.result''
mysql-test/t/mysql_upgrade.test:
  New BitKeeper file ``mysql-test/t/mysql_upgrade.test''
2006-11-13 13:39:49 +01:00
e5d88949c5 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


include/Makefile.am:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
2006-11-13 13:33:33 +01:00
181c9b4dd4 Merge mysql.com:/home/bkroot/mysql-5.0-rpl
into  mysql.com:/home/bk/MERGE/mysql-5.0-merge


BitKeeper/etc/collapsed:
  auto-union
sql/mysql_priv.h:
  Auto merged
sql/slave.cc:
  Auto merged
2006-11-13 12:44:53 +01:00
8fd48ccec0 Merge mysql.com:/home/bkroot/mysql-4.1-rpl
into  mysql.com:/home/bk/MERGE/mysql-4.1-merge
2006-11-13 12:44:24 +01:00
27a0ce64ff Make --mem a pure flag. If there is need to specifically set the location
use MTR_MEM environment variable
2006-11-13 12:44:12 +01:00
f53af7b8e5 Bug #19216: Client crashes on long SELECT
The server sends a number of columns to the client.
 It uses a limited "fast" function for that instead of the
 general one. This fast function cannot send numbers larger 
 than 2 bytes. 
 This causes the client to expect smaller number of columns. 
 The client writes outside of the allocated memory buffer 
 as a result.
 Fixed the server to use the general function to send column
 count.
 Fixed the client to check the column count before writing
 column data. 


mysql-test/t/mysql_client.test:
  Bug #19216: Client crashes on long SELECT
   - test case
sql/protocol.cc:
  Bug #19216: Client crashes on long SELECT
   - renamed the function for bether comprehention
     and made it local
   - used the right (non-local) function to transfer 
     the column count in Protocol::send_fields
sql/protocol.h:
  Bug #19216: Client crashes on long SELECT
   - made optimized net_store_length local
sql-common/client.c:
  Bug #19216: Client crashes on long SELECT
   - fixed the client to check for older servers (without the fix).
2006-11-13 12:28:55 +02:00
1031c460de Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg23651


sql/item_func.cc:
  Auto merged
2006-11-13 11:15:02 +03:00