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

12570 Commits

Author SHA1 Message Date
unknown
75066a6ab6 Merge mysql.com:/home/psergey/tmp_merge
into  mysql.com:/home/psergey/mysql-5.1-merge5


sql/sql_select.cc:
  Auto merged
2006-05-11 18:41:53 +04:00
unknown
113b3f959e Bug#15886 (Test: Timing issue in test "rpl_until"):
Changed format for SHOW SLAVE STATUS to vertical output.


mysql-test/r/rpl_until.result:
  Result change
mysql-test/t/rpl_until.test:
  Changed format for SHOW SLAVE STATUS to vertical output
2006-05-11 16:29:02 +02:00
unknown
aeaaa45626 BUG#7549: Missing error message for invalid view selection with subquery.
When a view statement is compiled on CREATE VIEW time, most of the 
optimizations should not be done. Finding the right optimization 
for a subquery is one of them.
Unfortunately the optimizer is resolving the column references of 
the left expression of IN subqueries in the process of deciding 
witch optimization to use (if needed). So there should be a 
special case in Item_in_subselect::fix_fields() : check the 
validity of the left expression of IN subqueries in CREATE VIEW 
mode and then proceed as normal. 


mysql-test/r/subselect.result:
  test case
mysql-test/r/view.result:
  chnaged explain due to column being resolved
mysql-test/t/subselect.test:
  test case
sql/item_subselect.cc:
  overloaded fix_fields to fix the left_expr in prepare_view_mode
sql/item_subselect.h:
  fix_fields overloaded so it can prepare left_expr
2006-05-11 15:30:54 +03:00
unknown
a9e0d2779e Bug#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
- Check that length of value is longer than 1 before decrementing length by 2.
 - Backport from 5.0, make it possible to use my_print_defaults in tests


mysql-test/mysql-test-run.pl:
  Backport from 5.0, make it possible to use my_print_defaults from tests
mysql-test/mysql-test-run.sh:
  Backport from 5.0, make it possible to use my_print_defaults from tests
mysql-test/r/mysqldump.result:
  Update result
mysql-test/t/mysqldump.test:
  Test that my_print default don't segfault when encountering an option without closing "
mysys/default.c:
  Check that length of value is longer than 1 before deciding to decrement its length by 2.
mysql-test/std_data/bug15328.cnf:
  New BitKeeper file ``mysql-test/std_data/bug15328.cnf''
2006-05-11 14:13:14 +02:00
unknown
a8cabd1876 Merge jmiller@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/ndbdev/jmiller/clones/mysql-5.1-new
2006-05-11 13:46:43 +02:00
unknown
ec83dd7c61 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
unknown
8b17d33df6 Bug#17400 (CRBR: Delete and update of table w/o PK fails on slave):
Fixing bug where UPDATE failed on slave and some cleanup of ndb_unpack_record().


mysql-test/r/rpl_bit_npk.result:
  Result change
mysql-test/t/disabled.def:
  Disabling tests
mysql-test/t/rpl_bit_npk.test:
  Making test storage-engine independent
mysql-test/t/rpl_ndb_innodb2ndb-slave.opt:
  Storage engine name change
mysql-test/t/rpl_ndb_myisam2ndb-slave.opt:
  Storage engine name change
sql/ha_ndbcluster.cc:
  Using move_field_offset() to move field pointer.
  Using my_ptrdiff_t instead of uint for pointer difference.
  Removing ineffective cast.
  Calling member function directly, bypassing the virtual mechanism
  for Field_bit.
sql/log_event.cc:
  Starting and stopping range scan and index read inside find_and_fetch row
  instead of in calling function. There are storage engines that require the
  search to be restarted for every changed row.
2006-05-11 11:09:58 +02:00
unknown
4db329fb98 Merge mysql.com:/home/tomash/src/mysql_ab/tmp_merge
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.1-merge


BitKeeper/deleted/.del-changelog-4.0.xml~8f56ee8a913e848b:
  Auto merged
BitKeeper/deleted/.del-changelog-4.1.xml~8aa496ebed09d868:
  Auto merged
mysql-test/r/func_misc.result:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_acl.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2006-05-11 11:28:56 +04:00
unknown
56261e0eca Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new-merge_060509


configure.in:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/auto_increment.result:
  Auto merged
mysql-test/r/gis-rtree.result:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/t/mysqldump.test:
  Manual merge.
sql/sql_show.cc:
  Manual merge.
2006-05-11 04:20:07 +03:00
unknown
7c11c31196 Merge jmiller@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/ndbdev/jmiller/clones/mysql-5.1-new
2006-05-11 01:41:39 +02:00
unknown
e42692c0a9 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/mysql-5.0-19263
2006-05-11 01:18:15 +02:00
unknown
f82ae1c556 rpl_log.test:
Remove comments not needed


mysql-test/extra/rpl_tests/rpl_log.test:
  Remove comments not needed
2006-05-11 00:59:34 +02:00
unknown
c4c0e1edd5 rpl_log.test:
Correct fix for test bug #19158


mysql-test/extra/rpl_tests/rpl_log.test:
  Correct fix for test bug #19158
2006-05-11 00:58:13 +02:00
unknown
f454c9d558 Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  zim.(none):/home/brian/mysql/dep-5.1


sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2006-05-10 14:14:51 -07:00
unknown
bd4841911e Merge neptunus.(none):/home/msvensson/mysql/tmp/tmp_merge
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


mysql-test/r/date_formats.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
2006-05-10 21:44:11 +02:00
unknown
ad97a0d0ab Merge neptunus.(none):/home/msvensson/mysql/tmp/tmp_merge
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


BitKeeper/deleted/.del-changelog-5.0.xml~f4c50926ccdd7434:
  Auto merged
mysql-test/r/ndb_condition_pushdown.result:
  Auto merged
mysql-test/t/ndb_condition_pushdown.test:
  Auto merged
storage/ndb/include/ndbapi/NdbOperation.hpp:
  Auto merged
storage/ndb/include/util/NdbSqlUtil.hpp:
  Auto merged
storage/ndb/src/common/util/NdbSqlUtil.cpp:
  Auto merged
2006-05-10 21:38:48 +02:00
unknown
fad18fe995 Add missing drop table 2006-05-10 21:35:05 +02:00
unknown
24a0b385fb Fix for BUG#18587: Function that accepts and returns TEXT
garbles data if longer than 766 chars.

The problem is that a stored routine returns BLOBs to the previous
caller, BLOBs are shallow-copied (i.e. only pointers to the data are
copied). The fix is to also copy data of BLOBs.


mysql-test/r/sp.result:
  Updated result file.
mysql-test/t/sp.test:
  Added a test case for BUG#18587.
sql/field_conv.cc:
  Do not jump to optimization if the field type is BLOB and
  the destination table requires copying of BLOBs.
sql/item_func.cc:
  Request copying BLOBs for the result table.
2006-05-10 23:16:30 +04:00
unknown
1f5189294a Update test results for 5.1 2006-05-10 20:39:26 +02:00
unknown
4e3f4e970f BUG#19010: Fix issues with that ALTER TABLE from auto-partitioned NDB table doesn't work unless primary key exists on table.
mysql-test/r/ndb_bitfield.result:
  Test cases changes now that auto-partitioning is remembered in frm file
mysql-test/r/ndb_dd_basic.result:
  Test cases changes now that auto-partitioning is remembered in frm file
mysql-test/r/ndb_dd_disk2memory.result:
  Test cases changes now that auto-partitioning is remembered in frm file
mysql-test/r/ndb_gis.result:
  Test cases changes now that auto-partitioning is remembered in frm file
mysql-test/r/ndb_partition_key.result:
  New test cases for auto-partitioning change that was made to fix bug
mysql-test/r/rpl_ndb_UUID.result:
  Test cases changes now that auto-partitioning is remembered in frm file
mysql-test/r/rpl_ndb_dd_advance.result:
  Test cases changes now that auto-partitioning is remembered in frm file
mysql-test/t/ndb_partition_key.test:
  New test cases for auto-partitioning change that was made to fix bug
sql/partition_info.h:
  New boolean to keep track of auto partitioned or not
sql/sql_partition.cc:
  Ensure that auto-partitiong flag is reset when partitions are dropped, added, reorganised or coalesced.
  Ensure that auto-partitioned tables are altered into non-partitioned table when ALTER TABLE t1 engine=X
  is performed.
sql/sql_show.cc:
  Only print partition info for non-auto-partitioned tables
sql/sql_table.cc:
  Set auto partition flag when auto partitions are generated in create table
sql/table.cc:
  Fix reading of frm file where new auto-partition flag is introduced.
sql/table.h:
  New flag for auto partition on share object
sql/unireg.cc:
  Fix code for writing frm to also write autopartition flag at end of partition info, fix some length issues
  at the same time that was in this part that caused no problems since partition info always was the last info
  in the file.
2006-05-10 12:53:40 -04:00
unknown
8db63fd52f Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  production.mysql.com:/usersnfs/rkalimullin/mysql-5.0
2006-05-10 18:52:31 +02:00
unknown
2eeab0b0d8 BUG#18233 - Memory tables INDEX USING HASH (a,b) returns 1 row on
SELECT WHERE a= AND b=

Selecting data from memory table with varchar column and hash index over it
returns only first row matched.

Problem was that key length calculation for varchar columns didn't include
number of bytes to store length.

Fixed key length for varchar fields to include number of bytes to store length.


heap/hp_create.c:
  Fixed key length for varchar fields to include number of bytes to store length.
mysql-test/r/heap.result:
  Testcase for BUG#18233.
mysql-test/t/heap.test:
  Testcase for BUG#18233.
2006-05-10 21:50:04 +05:00
unknown
a8693be9d9 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  production.mysql.com:/usersnfs/rkalimullin/mysql-5.0
2006-05-10 17:09:15 +02:00
unknown
e95a7e88b7 Update results to 5.1 format 2006-05-10 16:58:44 +02:00
unknown
b02a34f2bf Merge cmiller@bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.(none):/home/cmiller/mysql-5.0__bug19564
2006-05-10 10:47:01 -04:00
unknown
3d3fb80431 Merge neptunus.(none):/home/msvensson/mysql/tmp/tmp_merge
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


mysql-test/r/auto_increment.result:
  Auto merged
mysql-test/r/gis-rtree.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
mysql-test/r/mysqldump.result:
  Manual merge 5.0 -> 5-1
mysql-test/t/mysqldump.test:
  Manual merge 5.0 -> 5-1
2006-05-10 15:49:33 +02:00
unknown
3fa6432b09 BUG#17379 Wrong reuse of E(#rows(range)) as E(#rows(ref(const))):
Re-work best_access_path() and find_best() to reuse E(#rows(range access)) as
E(#rows(ref[_or_null](const) access) only when it is appropriate.
[This is the final cumulative patch]


mysql-test/r/select.result:
  BUG#17379: Testcase
mysql-test/r/subselect.result:
  BUG#17379: Updated test results
mysql-test/t/select.test:
  BUG#17379: Testcase
sql/opt_range.cc:
  BUG#17379: Wrong reuse of E(#rows(range)) as E(#rows(ref(const))):
  Make range optimizer together with TABLE::quick_* also return TABLE::quick_n_ranges
sql/sql_select.cc:
  BUG#17379: Wrong reuse of E(#rows(range)) as E(#rows(ref(const))):
  Re-work best_access_path() to reuse E(#rows(range access)) as
  E(#rows(ref[_or_null](const) access) only when it is appropriate.
sql/table.h:
  BUG#17379: Wrong reuse of E(#rows(range)) as E(#rows(ref(const))):
  Make range optimizer together with TABLE::quick_* also return TABLE::quick_n_ranges
2006-05-10 17:40:20 +04:00
unknown
af4d487a96 Merge mysql.com:/usr/home/ram/work/mysql-4.1
into  mysql.com:/usr/home/ram/work/mysql-5.0


sql/item_timefunc.cc:
  Auto merged
mysql-test/r/func_time.result:
  merging
mysql-test/t/func_time.test:
  merging
2006-05-10 18:27:42 +05:00
unknown
fe578d38a1 Merge cmiller@bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.(none):/home/cmiller/mysql-5.0__bug19564
2006-05-10 09:03:42 -04:00
unknown
2d53ffc0ac Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg12472
2006-05-10 14:40:07 +04:00
unknown
f76e0def2d Commit forgotten changes for BUG#14106.
mysql-test/r/im_options_set.result:
  Fixed result file.
mysql-test/r/im_options_unset.result:
  Fixed result file.
2006-05-10 14:34:03 +04:00
unknown
fa1e23d991 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg12472
2006-05-10 14:21:59 +04:00
unknown
2038148c59 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/mnt/raid/MySQL/devel/5.0-bug14106
2006-05-10 13:39:38 +04:00
unknown
3f73225669 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b18501


sql/item_timefunc.cc:
  Auto merged
2006-05-10 13:27:48 +05:00
unknown
368cb39d06 Merge bk-internal:/home/bk/mysql-5.1-new
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
2006-05-10 09:21:58 +02:00
unknown
588082712a Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18068


sql/sql_select.cc:
  Auto merged
2006-05-10 09:38:40 +03:00
unknown
2e72ae3d81 Bug#19564: mysql displays NULL instead of space
Correct a bug (that I introduced, after using Oracle's database software for 
too many years) where the length of the database-sent data is incorrectly 
used to infer NULLness.


client/mysql.cc:
  No longer use the length of the data to infer whether it is NULL or not.
mysql-test/r/mysql.result:
  Add result and version marker, and correct previous result.
mysql-test/t/mysql.test:
  Add test and version marker
2006-05-09 22:35:51 -04:00
unknown
dac69dd4a2 Merge xiphis.org:/home/antony/work2/p1-bug10952.1
into  xiphis.org:/home/antony/work2/mysql-5.0-engines-merge
2006-05-09 15:12:32 -07:00
unknown
f61748b796 Merge acurtis@bk-internal:/home/bk/mysql-5.0-engines
into  xiphis.org:/home/antony/work2/p1-bug10952.1


sql/handler.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2006-05-09 13:34:31 -07:00
unknown
6116d0176b bug#10952
"alter table from MyISAM to MERGE lost data without errors and warnings"
  Add new handlerton flag which prevent user from altering table storage
  engine to storage engines which would lose data. Both 'blackhole' and 
  'merge' are marked with the new flag.
  Tests included.


mysql-test/r/blackhole.result:
  test for bug#10952
mysql-test/r/merge.result:
  test for bug#10952
mysql-test/t/blackhole.test:
  test for bug#10952
mysql-test/t/merge.test:
  test for bug#10952
sql/ha_blackhole.cc:
  Bug#10952
    shouldn't be able to alter a table into a blackhole
sql/ha_myisammrg.cc:
  Bug#10952
    shouldn't be able to alter a table into a merge
sql/handler.h:
  Bug#10952
    new handlerton flag
sql/sql_table.cc:
  Bug#10952
    If alter is changing engine, check if new engine allows creating table
    via ALTER statement.
2006-05-09 13:31:46 -07:00
unknown
c23c38fa31 BUG#14157: utf8 encoding in binlog without set character_set_client e.g DROP temporary
Binlog lacks encoding info about DROPped temporary table.

Idea of the fix is to switch temporary to system_charset_info when a temporary table
is DROPped for binlog. Since that is the server, that automatically, but not the client, who generates the query
the binlog should be updated on the server's encoding for the coming DROP.
The `write_binlog_with_system_charset()' is introduced to replace similar problematic places in the code.


mysql-test/r/drop_temp_table.result:
  results changed
mysql-test/r/mix_innodb_myisam_binlog.result:
  results changed
mysql-test/r/mysqlbinlog.result:
  results changed
mysql-test/r/rpl_temporary.result:
  results changed
mysql-test/t/mysqlbinlog.test:
  Check roll-forward recovery from binlog where there are DROP temporary tables created
  in koi8r.
mysql-test/t/rpl_temporary.test:
  Check slave digests binlog with DROP temporary tables created in koi8r.
sql/mysql_priv.h:
  `write_binlog_with_system_charset()' is added to be called when a binlog event
  is created "implicitly" like DROP temporary table is case of closing connection.
sql/sql_base.cc:
  Idea of the fix is to switch temporary to system_charset_info when a temporary table
  is DROPped for binlog. Since that is the server, not the client, who generates the query
  the binlog should be updated on server's encoding for the coming DROP.
2006-05-09 23:01:31 +03:00
unknown
f296bb095d Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-new


BitKeeper/deleted/.del-changelog-4.0.xml~8f56ee8a913e848b:
  Auto merged
BitKeeper/deleted/.del-changelog-4.1.xml~8aa496ebed09d868:
  Auto merged
BitKeeper/deleted/.del-changelog-5.0.xml~f4c50926ccdd7434:
  Auto merged
BitKeeper/deleted/.del-client-req.pem~efd482e1d290d4d8:
  Auto merged
BitKeeper/deleted/.del-server-req.pem~16301893cacf1be4:
  Auto merged
client/mysql.cc:
  Auto merged
configure.in:
  Auto merged
BitKeeper/deleted/.del-Makefile.am~de166d6fcac3b9b6:
  Auto merged
BitKeeper/deleted/.del-NOTES~e926d3e6929ac052:
  Auto merged
client/mysqldump.c:
  Auto merged
client/mysqlimport.c:
  Auto merged
client/mysqltest.c:
  Auto merged
include/mysql.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/auto_increment.result:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/r/func_misc.result:
  Auto merged
mysql-test/r/gis-rtree.result:
  Auto merged
mysql-test/r/information_schema.result:
  Auto merged
mysql-test/r/ndb_condition_pushdown.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
mysql-test/std_data/cacert.pem:
  Auto merged
mysql-test/std_data/client-cert.pem:
  Auto merged
mysql-test/std_data/client-key.pem:
  Auto merged
mysql-test/std_data/server-cert.pem:
  Auto merged
mysql-test/std_data/server-key.pem:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
mysql-test/t/having.test:
  Auto merged
mysql-test/t/information_schema.test:
  Auto merged
mysql-test/t/ndb_condition_pushdown.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_acl.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
storage/ndb/include/ndbapi/NdbOperation.hpp:
  Auto merged
storage/ndb/include/util/NdbSqlUtil.hpp:
  Auto merged
storage/ndb/src/common/util/NdbSqlUtil.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
  Auto merged
vio/vio.c:
  Auto merged
client/client_priv.h:
  manual merge
include/violite.h:
  Automatic
mysql-test/Makefile.am:
  manual merge
mysql-test/r/mysqldump.result:
  Automatic
mysql-test/r/rpl_user_variables.result:
  Manual merge (diff is because lars removed displaying of binlog)
mysql-test/t/disabled.def:
  manual merge
mysql-test/t/mysqldump.test:
  manual merge
mysql-test/t/rpl_user_variables.test:
  manual merge (Changes becasue of lars removed binlog logging)
sql/mysqld.cc:
  manual merge
vio/viossl.c:
  manual merge
vio/viosslfactories.c:
  manual merge
client/client_priv.h.rej:
  merge 5.0 -> 5.1
2006-05-09 20:50:29 +03:00
unknown
46d8e5fa8f Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  zim.(none):/home/brian/mysql/dep-5.1
2006-05-09 10:21:55 -07:00
unknown
fb2477b331 Merge mysql.com:/home/kgeorge/mysql/5.0/B18068
into  mysql.com:/home/kgeorge/mysql/5.1/B18068


sql/sql_select.cc:
  Auto merged
2006-05-09 18:47:29 +03:00
unknown
7b111efc23 results fixed 2006-05-09 11:14:31 -04:00
unknown
baae7a97d9 BUG#18068: SELECT DISTINCT (with duplicates and covering index)
When converting DISTINCT to GROUP BY where the columns are from the covering
index and they are quoted twice in the SELECT list the optimizer is creating
improper processing sequence. This is because of the fact that the columns
of the covering index are not recognized as such and treated as non-index
columns.

Generally speaking duplicate columns can safely be removed from the GROUP
BY/DISTINCT list because this will not add or remove new rows in the
resulting set. Duplicates can be removed even if they are not consecutive
(as is the case for ORDER BY, where the duplicate columns can be removed
only if they are consecutive).

So we can safely transform "SELECT DISTINCT a,a FROM ... ORDER BY a" to
"SELECT a,a FROM ... GROUP BY a ORDER BY a" instead of 
"SELECT a,a FROM .. GROUP BY a,a ORDER BY a". We can even transform 
"SELECT DISTINCT a,b,a FROM ... ORDER BY a,b" to
"SELECT a,b,a FROM ... GROUP BY a,b ORDER BY a,b".

The fix to this bug consists of checking for duplicate columns in the SELECT
list when constructing the GROUP BY list in transforming DISTINCT to GROUP
BY and skipping the ones that are already in.


mysql-test/r/distinct.result:
  test case for the bug without loose index scan
mysql-test/r/group_min_max.result:
  test case for the bug
mysql-test/t/distinct.test:
  test case for the bug without loose index scan
mysql-test/t/group_min_max.test:
  test case for the bug
sql/sql_select.cc:
  duplicates check and removal
2006-05-09 18:13:01 +03:00
unknown
f35496955e Merge bk-internal:/home/bk/mysql-5.1-new
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
2006-05-09 16:38:49 +02:00
unknown
cb5d6dbf51 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg12472


sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/r/sp.result:
  Manual merge.
mysql-test/t/sp.test:
  Manual merge.
2006-05-09 16:48:23 +04:00
unknown
4f15a043e2 Fix for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which explicitly
or implicitly uses stored function gives "Table not locked" error'

CREATE TABLE ... SELECT ... statement which was explicitly or implicitly
(through view) using stored function gave "Table not locked" error.

The actual bug resides in the current locking scheme of CREATE TABLE SELECT
code, which first opens and locks tables of the SELECT statement itself,
and then, having SELECT tables locked, creates the .FRM, opens the .FRM and
acquires lock on it. This scheme opens a possibility for a deadlock, which
was present and ignored since version 3.23 or earlier. This scheme also
conflicts with the invariant of the prelocking algorithm -- no table can
be open and locked while there are tables locked in prelocked mode.

The patch makes an exception for this invariant when doing CREATE TABLE ...
SELECT, thus extending the possibility of a deadlock to the prelocked mode.
We can't supply a better fix in 5.0.


mysql-test/r/sp.result:
  Added tests for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which
  explicitly or implicitly uses stored function gives "Table not locked" error'
mysql-test/t/sp.test:
  Added tests for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which
  explicitly or implicitly uses stored function gives "Table not locked" error'
sql/mysql_priv.h:
  Added flag which can be passed to open_table() routine in order to ignore
  set of locked tables and prelocked mode.
  We don't need declaration of create_table_from_items() any longer as it was
  moved into sql_insert.cc and made static.
sql/sql_base.cc:
  open_table():
    Added flag which allows open table ignoring set of locked tables and
    prelocked mode.
sql/sql_insert.cc:
  Moved create_table_from_items() from sql_table.cc to sql_insert.cc as it was
  not used outside of sql_insert.cc and contains code which is specific for
  CREATE TABLE ... SELECT.
  Also now when we are executing CREATE TABLE ... SELECT ... statement which
  SELECT part requires execution in prelocked mode we ignore set of locked
  tables in order to get access to the table we just have created.
  We probably don't want to do this if we are under real LOCK TABLES since
  it will widen window for deadlock too much.
sql/sql_table.cc:
  Moved create_table_from_items() routine into sql_insert.cc, since it was not
  used anywhere outside of this file and contains logic which is specific for
  CREATE TABLE ... SELECT statement.
2006-05-09 16:39:11 +04:00
unknown
55f7266bee Changed to use new syntax for PRIMARY/UNIQUE KEY USING HASH 2006-05-09 12:06:50 +02:00