1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-21 06:21:35 +03:00
Commit Graph

21118 Commits

Author SHA1 Message Date
unknown
94f75ffcce Bug#32848: Data type conversion bug in union subselects in MySQL 5.0.38
There were two problems when inferring the correct field types resulting from
UNION queries.
- If the type is NULL for all corresponding fields in the UNION, the resulting 
  type would be NULL, while the type is BINARY(0) if there is just a single 
  SELECT NULL.
- If one SELECT in the UNION uses a subselect, a temporary table is created
  to represent the subselect, and the result type defaults to a STRING type,
  hiding the fact that the type was unknown(just a NULL value).
Fixed by remembering whenever a field was created from a NULL value and pass
type NULL to the type coercion if that is the case, and creating a string field
as result of UNION only if the type would otherwise be NULL.


mysql-test/r/union.result:
  Bug#32848: Test result
mysql-test/t/union.test:
  Bug#32848: Test case
sql/field.cc:
  Bug#32848: Initialization of new field
sql/field.h:
  Bug#32848: New member to record when a field was created from a NULL value.
sql/item.cc:
  Bug#32848: 
  A field created from a NULL value will submit NULL as type to the 
  type coercion procedure.
  If Item_type_holder has not inferred the correct type after processing all
  SELECTs in a UNION, a string field is created.
sql/sql_select.cc:
  Bug#32848: Recording when a field is created from a NULL value.
2007-12-11 20:15:03 +01:00
unknown
87d8e15b2e move randomly failing tests to ndb_team suite
mysql-test/suite/ndb_team/t/ndb_dd_backuprestore.test:
  Rename: mysql-test/suite/ndb/t/ndb_dd_backuprestore.test -> mysql-test/suite/ndb_team/t/ndb_dd_backuprestore.test
mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result:
  Rename: mysql-test/suite/ndb/r/ndb_dd_backuprestore.result -> mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result
mysql-test/suite/ndb_team/r/ndb_backup_print.result:
  Rename: mysql-test/suite/ndb/r/ndb_backup_print.result -> mysql-test/suite/ndb_team/r/ndb_backup_print.result
mysql-test/suite/ndb_team/t/ndb_backup_print.test:
  Rename: mysql-test/suite/ndb/t/ndb_backup_print.test -> mysql-test/suite/ndb_team/t/ndb_backup_print.test
2007-12-11 19:57:26 +01:00
unknown
3e7ec7cfeb add capability to run certain testsuites optionally depending on name of clone 2007-12-11 19:52:35 +01:00
unknown
cd34354e6c Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


mysql-test/r/func_misc.result:
  Manual merge
mysql-test/t/func_misc.test:
  Manual merge
2007-12-11 17:09:43 +01:00
unknown
aadf1f1ce3 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/cge-5.1
2007-12-11 16:08:52 +01:00
unknown
c4a39468ea bug#32759 already fixed
mysql-test/suite/ndb/t/disabled.def:
  bug#32759 already fixed
  - see rev 1.131.1.6 of sql/ha_ndbcluster_binlog.cc
2007-12-11 15:08:00 +01:00
unknown
e63f750439 Enabled test rpl_ndb_ddl 2007-12-11 11:51:14 +01:00
unknown
499b57fc57 Merge witty.:/Users/mattiasj/clones/mysql-5.1-bug32948
into  witty.:/Users/mattiasj/clones/51_push32948
2007-12-11 11:15:30 +01:00
unknown
08b256f9df Bug#31990: MINUTE() and SECOND() return bogus results when used on a DATE
HOUR(), MINUTE(), ... returned spurious results when used on a DATE-cast.
This happened because DATE-cast object did not overload get_time() method
in superclass Item. The default method was inappropriate here and
misinterpreted the data.

Patch adds missing method; get_time() on DATE-casts now returns SQL-NULL
on NULL input, 0 otherwise. This coincides with the way DATE-columns
behave.

Also fixes similar bug in Date-Field now.


mysql-test/r/cast.result:
  Show that HOUR(), MINUTE(), ... return sensible values when used
  on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
  Show that this coincides with how DATE-columns behave.
mysql-test/r/type_date.result:
  Show that HOUR(), MINUTE(), ... return sensible values when used
  on DATE-fields.
mysql-test/t/cast.test:
  Show that HOUR(), MINUTE(), ... return sensible values when used
  on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
  Show that this coincides with how DATE-columns behave.
mysql-test/t/type_date.test:
  Show that HOUR(), MINUTE(), ... return sensible values when used
  on DATE-fields.
sql/field.cc:
  Add get_time() method to DATE-field object to overload
  the method in Field superclass that would return spurious
  results. Return zero-result.
sql/field.h:
  Add get_time() declaration to date-field class
sql/item_timefunc.cc:
  Add get_time() method to DATE-cast object to overload
  the method in Item superclass that would return spurious
  results. Return zero-result; flag NULL if input was NULL.
sql/item_timefunc.h:
  Add get_time() declaration to DATE-cast object.
2007-12-11 10:12:05 +01:00
unknown
ede6f50a6a Merge adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


mysql-test/r/read_only.result:
  Auto merged
sql/sql_parse.cc:
  Auto merged
mysql-test/t/read_only.test:
  Manual merge
2007-12-10 16:47:45 +01:00
unknown
dcc2e66391 Test fails because of non deterministric function: show grants for current_user()
mysql-test/r/read_only.result:
  Removing non deterministic test results from test.
mysql-test/t/read_only.test:
  Removing non deterministic test results from test.
2007-12-10 16:16:21 +01:00
unknown
865243bfca Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
  manual merge
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
  manual merge
2007-12-10 13:32:19 +01:00
unknown
dad3e3f66d backport test for bug#30674
(bug not present in 5.1)
2007-12-10 13:29:23 +01:00
unknown
cf44fb4c96 Merge adventure.(none):/home/thek/Development/cpp/bug27440/my50-bug27440
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


sql/sql_parse.cc:
  Auto merged
2007-12-10 12:19:48 +01:00
unknown
d0e99dfa26 Merge adventure.(none):/home/thek/Development/cpp/bug27440/my51-bug27440
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


sql/sql_parse.cc:
  Auto merged
2007-12-10 12:14:52 +01:00
unknown
304f5580c6 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build


client/mysqldump.c:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-12-10 10:46:00 +01:00
unknown
36a6841b52 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-12-10 10:42:58 +01:00
unknown
b74c55e859 Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-12-10 10:32:21 +01:00
unknown
c84a285035 Merge adventure.(none):/home/thek/Development/cpp/bug27440/my50-bug27440
into  adventure.(none):/home/thek/Development/cpp/bug27440/my51-bug27440


mysql-test/r/read_only.result:
  Manual merge
mysql-test/t/read_only.test:
  Manual merge
sql/sql_parse.cc:
  Manual merge
2007-12-10 10:32:07 +01:00
unknown
4c6e70ccf9 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge


sql/ha_ndbcluster.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-12-10 10:31:51 +01:00
unknown
c853fa4fe2 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


sql/ha_ndbcluster_binlog.cc:
  Auto merged
2007-12-10 10:26:01 +01:00
unknown
b8ecfef89c Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge
2007-12-10 10:20:52 +01:00
unknown
d689cf23be Bug#32770: LAST_DAY() returns a DATE, but somehow internally keeps track of the TIME.
LAST_DAY() says it returns a DATE, not a DATETIME, but didn't zero the time fields.
Adapted from a patch kindly supplied by Claudio Cherubino.


mysql-test/r/func_time.result:
  show that LAST_DAY() returns only a DATE, not a DATETIME
mysql-test/t/func_time.test:
  show that LAST_DAY() returns only a DATE, not a DATETIME
sql/item_timefunc.cc:
  zero time-fields as we return only a DATE
2007-12-10 09:17:18 +01:00
unknown
76a5b3b976 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31177/51-31177


tests/mysql_client_test.c:
  Auto merged
2007-12-10 08:20:33 +01:00
unknown
1ebb563422 Bug #31177: Server variables can't be set to their current values
fixes for SLES10


mysql-test/r/change_user.result:
  It's unsigned.
mysys/my_getopt.c:
  Failsafe no longer needed, we handle signedness correctly now.
sql/set_var.cc:
  ha_rows can be derived from all kinds of types, but
  they're all unsigned. Display it as such.
tests/mysql_client_test.c:
  cannot easily check this here due to types.
  check with Alik whether we need this on top
  of change_user.test.
2007-12-10 08:12:41 +01:00
unknown
331b3b6b8b Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27545
2007-12-08 16:22:45 -08:00
unknown
b3f11ed481 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug32815
2007-12-08 14:47:56 -08:00
unknown
a7fa078141 BUG#32694 post-merge adjustment of EXPLAIN results for 5.1.
BitKeeper/etc/ignore:
  Added ylwrap to the ignore list
2007-12-08 23:54:07 +02:00
unknown
b74535d7d9 Merge lapi.mysql.com:/home/tkatchaounov/mysql/src/5.0#32694
into  lapi.mysql.com:/home/tkatchaounov/mysql/src/5.1#32694


mysql-test/r/type_datetime.result:
  Auto merged
mysql-test/t/type_datetime.test:
  Manual merge for BUG#32694.
sql/item_cmpfunc.cc:
  Manual merge for BUG#32694.
2007-12-08 23:15:43 +02:00
unknown
b3d8ff4ebd Fix for BUG#32694 "NOT NULL table field in a subquery produces invalid results"
The problem was that when convert_constant_item is called for subqueries,
this happens when we already started executing the top-level query, and
the field argument of convert_constant_item pointed to a valid table row.
In turn convert_constant_item used the field buffer to compute the value
of its item argument. This copied the item's value into the field,
and made equalities with outer references always true.
  
The fix saves/restores the original field's value when it belongs to an
outer table.


mysql-test/r/type_datetime.result:
  Test for BUG#32694.
mysql-test/t/type_datetime.test:
  Test for BUG#32694.
sql/item_cmpfunc.cc:
  - Changed convert_constant_item() so that it doesn't destroy the contents
    of its field argument when the field originates from table in an outer
    query.
2007-12-08 23:05:00 +02:00
unknown
b1b2e0d053 Fixed bug #27545.
Both arguments of the function NAME_CONST must be constant expressions.
This constraint is checked in the Item_name_const::fix_fields method. 
Yet if the argument of the function was not a constant expression no
error message was reported. As a result the client hanged waiting for a
response.
Now the function Item_name_const::fix_fields reports an error message
when any of the additional context conditions imposed on the function
NAME_CONST is not satisfied. 


mysql-test/r/func_misc.result:
  Added a test case for bug #26545.
mysql-test/t/func_misc.test:
  Added a test case for bug #26545.
2007-12-07 23:36:58 -08:00
unknown
d776054e00 Fixed bug #32815.
The index (key_part_1, key_part-2) was erroneously considered as compatible
with the required ordering in the function test_test_if_order_by_key when 
a query with an ORDER BY clause contained a condition of the form
  key_part_1=const OR key_part_1 IS NULL 
and the order list contained only key_part_2. This happened because the value
of the const_key_parts field in the KEYUSE structure was not formed correctly
for the keys that could be used for ref_or_null access. 
This was fixed in the code of the update_ref_and_keys function.
The problem could not manifest itself for MyISAM databases because the
implementation of the keys_to_use_for_scanning() handler function always
returns an empty bitmap for the MyISAM engine.


mysql-test/r/innodb_mysql.result:
  Added a test case for bug #32815.
mysql-test/t/innodb_mysql.test:
  Added a test case for bug #32815.
sql/sql_select.cc:
  Fixed bug #32815.
  The index (key_part_1, key_part-2) was erroneously considered as compatible
  with the required ordering in the function test_test_if_order_by_key when 
  a query with an ORDER BY clause contained a condition of the form
    key_part_1=const OR key_part_1 IS NULL 
  and the order list contained only key_part_2. This happened because the value
  of the const_key_parts field in the KEYUSE structure was not formed correctly
  for the keys that could be used for ref_or_null access. 
  This was fixed in the code of the update_ref_and_keys function.
2007-12-07 17:14:59 -08:00
unknown
2bbf12c330 Bug#29830 Test case 'events_scheduling' fails on Mac OS X and Windows.
Change LAST_EXECUTED time the execution start time, instead of the execution completion time. This ensures the END time always the same or later than the LAST_EXECUTED time.


mysql-test/t/disabled.def:
  Enable events_scheduling test
2007-12-07 19:27:45 -05:00
unknown
7d734a87bc Merge ramayana.hindu.god:/home/tsmith/m/bk/maint/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51


mysql-test/mysql-test-run.pl:
  Auto merged
2007-12-07 15:04:45 -07:00
unknown
f77684f3a8 Add a way to remove options which mysql-test-run.pl no longer uses.
mysql-test/mysql-test-run.pl:
  Add a way to remove options which mysql-test-run.pl no longer uses.  Since
  mysql-test-run.pl passes unrecognized options through to mysqld directly,
  it is not possible to just remove an option.  Otherwise it would be given
  to mysqld, which probably will not recognize it and will fail to start.
  
  Instead, we now explicitly ignore the option, and print a warning to
  the user.
2007-12-07 14:43:31 -07:00
unknown
ee52ff0ad9 Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main
into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel


mysql-test/lib/mtr_report.pl:
  Auto merged
mysys/my_delete.c:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
storage/myisam/mi_check.c:
  Auto merged
storage/myisam/mi_open.c:
  Auto merged
storage/myisam/mi_packrec.c:
  Auto merged
storage/myisam/myisamchk.c:
  Auto merged
storage/myisammrg/ha_myisammrg.cc:
  Auto merged
include/my_base.h:
  Manual merge from 5.1
2007-12-07 22:27:48 +02:00
unknown
790dae3e7d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  moonbone.local:/work/32482-5.1-opt-mysql


sql/item_func.cc:
  Auto merged
2007-12-07 22:56:16 +03:00
unknown
0ad7fc58c7 Bug#32482: Crash for a query with ORDER BY a user variable.
The Item_func_set_user_var::register_field_in_read_map() did not check 
that the result_field was null.This caused server crashes for queries that
required order by such a field and were executed without using a temporary
table.

The Item_func_set_user_var::register_field_in_read_map() now checks the
result_field to be not null.


mysql-test/t/user_var.test:
  Added a test case for the bug#32482: Crash for a query with ORDER BY a user variable.
mysql-test/r/user_var.result:
  Added a test case for the bug#32482: Crash for a query with ORDER BY a user variable.
sql/item_func.cc:
  Bug#32482: Crash for a query with ORDER BY a user variable.
  The Item_func_set_user_var::register_field_in_read_map() now checks the
  result_field to be not null.
2007-12-07 22:54:47 +03:00
unknown
5708df551b Merge five.local.lan:/work/merge/mysql-5.1-build
into  five.local.lan:/work/merge/mysql-5.1-build-parts
2007-12-07 18:45:09 +01:00
unknown
5826a5c490 Bug #27440 read_only allows create and drop database
When read_only option was enabled, a user without SUPER privilege could
perform CREATE DATABASE and DROP DATABASE operations.

This patch adds a check to make sure this isn't possible. It also attempts to 
simplify the logic used to determine if relevant tables are updated,
making it more human readable.


mysql-test/r/read_only.result:
  Updated result file
mysql-test/t/read_only.test:
  A test case is added which shows that it is not possible to drop or create a
  database in read-only mode despite having the GRANT permissions to do so,
  SUPER user excepted.
sql/sql_parse.cc:
  - Simplified complex predicate by grouping it in a read friendly way.
  - Added predicate to fail on database updates while running in read-only
    mode.
2007-12-07 15:39:41 +01:00
unknown
e12dbcde29 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0
2007-12-07 13:51:41 +01:00
unknown
f53d881eeb Merge trift2.:/MySQL/M51/mysql-5.1
into  trift2.:/MySQL/M51/push-5.1


mysql-test/t/disabled.def:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-12-07 12:33:48 +01:00
unknown
419e8cf7b2 bug#21072 Duplicate key error in NDB references wrong key: regenerated result 2007-12-07 12:20:04 +01:00
unknown
284cb0e560 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51


sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/r/grant.result:
  Manual merge
mysql-test/t/grant.test:
  Manual merge
2007-12-07 03:56:03 -07:00
unknown
a4df22109c Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50


sql/sql_table.cc:
  Auto merged
2007-12-07 03:51:23 -07:00
unknown
0fdc16bd13 BUG#32817 - though CSV is marked as supported create table is rejected
with error 1005.

CSV doesn't support nullable fields. Report descriptive error if create
table with nullable field is requested.


mysql-test/r/csv.result:
  A test case for BUG#32817.
mysql-test/t/csv.test:
  A test case for BUG#32817.
storage/csv/ha_tina.cc:
  CSV doesn't support nullable fields. Report descriptive error if create
  table with nullable field is requested.
2007-12-07 14:44:03 +04:00
unknown
6e776686d4 Merge ramayana.hindu.god:/home/tsmith/m/bk/maint/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51-merge


mysql-test/t/grant.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
strings/ctype-simple.c:
  Auto merged
mysql-test/r/grant.result:
  Manual merge
2007-12-07 03:42:39 -07:00
unknown
7d3a61e1f0 Make tests more robust (clean up better after grant.test)
mysql-test/r/grant.result:
  Update test results to .test changes
mysql-test/t/grant.test:
  Drop users when done with them, to avoid skewing results of later tests.
  
  For example, running some test which examines the cardinality of the
  mysql.user table would fail if run right after this test, due to the
  extra users.
2007-12-07 03:39:37 -07:00
unknown
154ffb3ff5 bug#21072 Duplicate key error in NDB references wrong key: Post-merge fixes 2007-12-07 11:05:19 +01:00
unknown
20bbe71d73 Move the test case for bug #20901 from create.test to grant.test, so
testing embedded server works correctly.


mysql-test/r/create.result:
  Move one test from create.test to grant.test, because it actually tests
  privileges (and thus doesn't work with embedded server).
mysql-test/r/grant.result:
  Move one test from create.test to grant.test, because it actually tests
  privileges (and thus doesn't work with embedded server).
mysql-test/t/create.test:
  Move one test from create.test to grant.test, because it actually tests
  privileges (and thus doesn't work with embedded server).
mysql-test/t/grant.test:
  Move one test from create.test to grant.test, because it actually tests
  privileges (and thus doesn't work with embedded server).
2007-12-07 00:54:32 -07:00