1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-19 21:09:40 +03:00
Files
mariadb/mysql-test/t
unknown f18a10c6c1 Fix for bug #27643 "query failed : 1114 (The table '' is full)
Problem:

HASH indexes on VARCHAR columns with binary collations did not ignore trailing spaces from strings before comparisons. This could result in duplicate records being successfully inserted into a MEMORY table with unique key constraints.

As a direct consequence of the above, internal MEMORY tables used for GROUP BY calculation in testcases for bug #27643 contained duplicate rows which resulted in duplicate key errors when converting those temporary tables to MyISAM. Additionally, that error was incorrectly converted to the 'table is full' error.

Solution:

- ignore trailing spaces in VARCHAR fields with binary collations when calculating hashes.
- return a proper error from create_myisam_from_heap() when conversion fails.


mysql-test/r/ctype_ucs2_def.result:
  Added a testcase for bug #27643.
mysql-test/r/heap_hash.result:
  Added a testcase for bug #27643.
mysql-test/t/ctype_ucs2_def.test:
  Added a testcase for bug #27643.
mysql-test/t/heap_hash.test:
  Added a testcase for bug #27643.
sql/sql_select.cc:
  Return an appropriate error instead of 'table is full' when conversion from MEMORY to MyISAM fails.
strings/ctype-bin.c:
  Added my_hash_sort_8bit_bin() which ignores trailing spaces when calculating hashes, and is now used for VARCHAR columns instead of my_hash_sort_bin().
strings/ctype-mb.c:
  Ignore trailing spaces when calculating a string hash in my_hash_sort_mb_bin().
strings/ctype-ucs2.c:
  Ignore trailing spaces when calculating a string hash in my_hash_sort_ucs2_bin().
2007-05-31 14:54:44 +04:00
..
2007-04-29 00:50:33 +05:00
2006-11-20 22:42:06 +02:00
2006-11-20 22:42:06 +02:00
2007-02-23 18:49:41 +02:00
2007-04-10 16:55:48 +03:00
2007-03-08 00:27:42 +03:00
2006-11-29 13:56:59 -05:00
2007-03-27 19:28:04 +03:00
2006-11-20 22:42:06 +02:00
2007-04-11 13:58:16 +03:00
2006-11-20 22:42:06 +02:00
2007-03-28 12:11:44 +02:00
2007-03-20 19:36:11 +01:00
2007-04-18 19:36:22 -06:00
2007-02-09 12:54:50 -08:00
2006-11-15 10:23:27 +01:00
2007-02-07 14:22:19 -08:00
2007-02-24 13:12:20 +03:00
2007-02-24 13:12:20 +03:00
2007-04-23 21:27:43 +02:00
2007-03-31 17:18:03 +02:00
2007-03-21 09:13:05 +01:00
2006-11-20 22:42:06 +02:00
2007-02-01 18:00:24 +04:00
2006-11-15 10:23:27 +01:00
2006-11-15 10:23:27 +01:00
2007-02-08 15:53:14 +01:00
2006-11-15 10:23:27 +01:00
2006-11-15 10:23:27 +01:00
2007-04-10 19:08:08 +03:00
2006-12-11 18:52:24 -07:00
2006-11-20 22:42:06 +02:00
2007-02-01 18:00:24 +04:00
2007-03-20 00:46:19 +03:00
2007-04-17 12:32:01 +02:00
2007-03-29 09:08:30 +05:00
2007-04-20 10:49:45 +03:00
2007-02-24 13:12:20 +03:00
2007-04-23 17:15:51 +03:00