1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-16 20:23:18 +03:00
Commit Graph

18560 Commits

Author SHA1 Message Date
malff/marcsql@weblab.(none)
12759f77af Adjusted tests results 2007-06-29 12:12:47 -06:00
anozdrin/alik@ibm.
bceff6f1d4 Folow up on the CS patch:
1. Fix ddl_i18n_koi8r, ddl_i18n_utf8: explicitly specify character-sets
directory for mysqldump;
2. Fix crash in mysqldump if collation is not found;
3. Use proper way to compare character set names.
2007-06-29 16:52:05 +04:00
anozdrin/alik@ibm.
9fae9ef66f Patch for the following bugs:
- BUG#11986: Stored routines and triggers can fail if the code
    has a non-ascii symbol
  - BUG#16291: mysqldump corrupts string-constants with non-ascii-chars
  - BUG#19443: INFORMATION_SCHEMA does not support charsets properly
  - BUG#21249: Character set of SP-var can be ignored
  - BUG#25212: Character set of string constant is ignored (stored routines)
  - BUG#25221: Character set of string constant is ignored (triggers)

There were a few general problems that caused these bugs:
1. Character set information of the original (definition) query for views,
   triggers, stored routines and events was lost.
2. mysqldump output query in client character set, which can be
   inappropriate to encode definition-query.
3. INFORMATION_SCHEMA used strings with mixed encodings to display object
   definition;

1. No query-definition-character set.

In order to compile query into execution code, some extra data (such as
environment variables or the database character set) is used. The problem
here was that this context was not preserved. So, on the next load it can
differ from the original one, thus the result will be different.

The context contains the following data:
  - client character set;
  - connection collation (character set and collation);
  - collation of the owner database;

The fix is to store this context and use it each time we parse (compile)
and execute the object (stored routine, trigger, ...).

2. Wrong mysqldump-output.

The original query can contain several encodings (by means of character set
introducers). The problem here was that we tried to convert original query
to the mysqldump-client character set.

Moreover, we stored queries in different character sets for different
objects (views, for one, used UTF8, triggers used original character set).

The solution is
  - to store definition queries in the original character set;
  - to change SHOW CREATE statement to output definition query in the
    binary character set (i.e. without any conversion);
  - introduce SHOW CREATE TRIGGER statement;
  - to dump special statements to switch the context to the original one
    before dumping and restore it afterwards.

Note, in order to preserve the database collation at the creation time,
additional ALTER DATABASE might be used (to temporary switch the database
collation back to the original value). In this case, ALTER DATABASE
privilege will be required. This is a backward-incompatible change.

3. INFORMATION_SCHEMA showed non-UTF8 strings

The fix is to generate UTF8-query during the parsing, store it in the object
and show it in the INFORMATION_SCHEMA.

Basically, the idea is to create a copy of the original query convert it to
UTF8. Character set introducers are removed and all text literals are
converted to UTF8.

This UTF8 query is intended to provide user-readable output. It must not be
used to recreate the object.  Specialized SHOW CREATE statements should be
used for this.

The reason for this limitation is the following: the original query can
contain symbols from several character sets (by means of character set
introducers).

Example:

  - original query:
    CREATE VIEW v1 AS SELECT _cp1251 'Hello' AS c1;

  - UTF8 query (for INFORMATION_SCHEMA):
    CREATE VIEW v1 AS SELECT 'Hello' AS c1;
2007-06-28 21:34:54 +04:00
malff/marcsql@weblab.(none)
64cac0d6ad Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge
2007-06-27 09:15:12 -06:00
malff/marcsql@weblab.(none)
083bd79bc6 Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge
2007-06-25 11:02:17 -06:00
holyfoot/hf@hfmain.(none)
0d7168602d Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/27084/my51-27084
2007-06-25 14:28:30 +05:00
igor@olga.mysql.com
31bd1715db Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.1-opt
2007-06-24 19:06:09 -07:00
gshchepa/uchum@gleb.loc
0278fa447c rpl_skip_error.result:
Merge with 5.1.
2007-06-25 05:35:45 +05:00
gshchepa/uchum@gleb.loc
a1ebc8590c Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-06-25 03:40:30 +05:00
igor@olga.mysql.com
da41606087 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25602
2007-06-24 10:50:24 -07:00
gshchepa/uchum@gleb.loc
684d0ced77 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-06-24 12:58:45 +05:00
igor@olga.mysql.com
59b9077ce4 Fixed bug #25602. A query with DISTINCT in the select list to which
the loose scan optimization for grouping queries was applied returned 
a wrong result set when the query was used with the SQL_BIG_RESULT
option.

The SQL_BIG_RESULT option forces to use sorting algorithm for grouping
queries instead of employing a suitable index. The current loose scan
optimization is applied only for one table queries when the suitable
index is covering. It does not make sense to use sort algorithm in this
case. However the create_sort_index function does not take into account
the possible choice of the loose scan to implement the DISTINCT operator
which makes sorting unnecessary. Moreover the current implementation of
the loose scan for queries with distinct assumes that sorting will
never happen. Thus in this case create_sort_index should not call
the function filesort.
2007-06-23 23:33:55 -07:00
gshchepa/uchum@gleb.loc
2cd4abebfb Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-06-24 03:35:27 +05:00
gshchepa/uchum@gleb.loc
e5798d0466 Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29095
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-06-24 01:22:25 +05:00
gshchepa/uchum@gleb.loc
fbbb30a622 Fixed bug #29095.
INSERT into table from SELECT from the same table
with ORDER BY and LIMIT was inserting other data
than sole SELECT ... ORDER BY ... LIMIT returns.

One part of the patch for bug #9676 improperly pushed
LIMIT to temporary table in the presence of the ORDER BY
clause.
That part has been removed.
2007-06-24 01:20:14 +05:00
guilhem@gbichot3.local
fa1276e4a1 Fix for BUG#29318 "Statements prepared with PREPARE and with one
parameter don't use query cache"
Thanks to the fix of BUG#26842, statements prepared with SQL PREPARE
and having parameters can now use the query cache.
2007-06-23 19:16:51 +02:00
thek@adventure.(none)
2da5b6268a Merge adventure.(none):/home/thek/Development/cpp/bug28846/my51-bug28846
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-06-22 15:39:34 +02:00
thek@adventure.(none)
3d7bc219f1 Merge adventure.(none):/home/thek/Development/cpp/bug28846/my50-bug28846
into  adventure.(none):/home/thek/Development/cpp/bug28846/my51-bug28846
2007-06-22 15:23:51 +02:00
thek@adventure.(none)
3e7c1b1cb1 Bug#28846 Use of undocumented Prepared Statements crashes server
ALTER VIEW is currently not supported as a prepared statement
and should be disabled as such as they otherwise could cause server crashes.

ALTER VIEW is currently not supported when called from stored
procedures or functions for related reasons and should also be disabled.

This patch disables these DDL statements and adjusts the appropriate test
cases accordingly.

Additional tests has been added to reflect on the fact that we do support
CREATE/ALTER/DROP TABLE for Prepared Statements (PS), Stored Procedures (SP)
and PS within SP.
2007-06-22 11:55:48 +02:00
tsmith@maint1.mysql.com
764a7a911c Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-22 11:30:17 +02:00
tsmith@maint1.mysql.com
9f23427499 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
2007-06-22 11:23:12 +02:00
tsmith@maint1.mysql.com
5b13cc5a30 binlog_innodb.result:
post-merge fix
2007-06-22 11:22:29 +02:00
holyfoot/hf@hfmain.(none)
287f3485af Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/28839/my50-28839
2007-06-22 10:12:15 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
38991f3e80 merging fix 2007-06-22 09:59:23 +05:00
holyfoot/hf@hfmain.(none)
faa251305c Merge mysql.com:/home/hf/work/28839/my50-28839
into  mysql.com:/home/hf/work/28839/my51-28839
2007-06-22 09:33:03 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
78c53ea32e rpl_skip_error.test fixed 2007-06-22 09:28:38 +05:00
dkatz@damien-katzs-computer.local
0d84133a4c Merge damien-katzs-computer.local:/Users/dkatz/50_kill
into  damien-katzs-computer.local:/Users/dkatz/mysql51
2007-06-21 22:08:14 -04:00
dkatz@damien-katzs-computer.local
a393b215fb Bug #29138 'kill' fails in pushbuild
The reason the "reap;" succeeds unexpectedly is because the query was completing(almost always) and the network buffer was big enough to store the query result (sometimes) on Windows, meaning the response was completely sent before the server thread could be killed.

Therefore we use a much longer running query that doesn't have a chance to fully complete before the reap happens, testing the kill properly.
2007-06-21 21:39:52 -04:00
tsmith@maint1.mysql.com
8a946f5596 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-22 01:43:57 +02:00
igor@olga.mysql.com
802dcc7a45 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29104
2007-06-21 15:25:23 -07:00
tsmith@maint1.mysql.com
28242f775c Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-21 22:10:40 +02:00
lars/lthalmann@mysql.com/dl145k.mysql.com
5847f02846 Disabled new test cases that are not 100% stable yet 2007-06-21 22:07:21 +02:00
tsmith@maint1.mysql.com
8ee2c2b04e Merge maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-21 20:55:37 +02:00
tsmith@maint1.mysql.com
b8881ebfd4 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
2007-06-21 20:09:04 +02:00
tsmith@maint1.mysql.com
3ae37d30de Merge maint1.mysql.com:/data/localhome/tsmith/bk/51
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
2007-06-21 18:58:31 +02:00
iggy@amd64.(none)
08cb616544 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  amd64.(none):/src/bug27029/my51-bug27029
2007-06-21 12:53:03 -04:00
iggy@amd64.(none)
1378e94aa0 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  amd64.(none):/src/bug27029/my50-bug27029
2007-06-21 12:52:20 -04:00
iggy@amd64.(none)
adcf736687 Merge amd64.(none):/src/bug27029/my50-bug27029
into  amd64.(none):/src/bug27029/my51-bug27029
2007-06-21 12:47:55 -04:00
iggy@amd64.(none)
39416f50a5 Bug#27029 alter table ... enable keys crashes mysqld on large table
- When creating an index for the sort, the number of rows plus 1 is used 
to allocate a buffer.  In this test case, the number of rows 4294967295 
is the max value of an unsigned integer, so when 1 was added to it, a 
buffer of size 0 was allocated causing the crash.
- Create new test suite for this bug's test suite as per QA.
2007-06-21 12:45:56 -04:00
tsmith@maint1.mysql.com
f1e600a78e Merge maint1.mysql.com:/data/localhome/tsmith/bk/50
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
2007-06-21 18:28:52 +02:00
lars/lthalmann@dl145k.mysql.com
5c667b6fa5 Merge mysql.com:/nfsdisk1/lars/bk/mysql-5.1
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.1-new-rpl
2007-06-21 17:13:02 +02:00
lars/lthalmann@dl145j.mysql.com
d0e786b8e9 Merge mysql.com:/nfsdisk1/lars/bk/mysql-5.0
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl
2007-06-21 17:10:35 +02:00
lars/lthalmann@mysql.com/dl145k.mysql.com
c1f2050087 merge rpl 5.0->5.1 2007-06-21 17:09:19 +02:00
lars/lthalmann@dl145k.mysql.com
1fb2aa8205 Merge mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.1-new-rpl
2007-06-21 17:04:33 +02:00
msvensson@pilot.(none)
8e65f66378 Merge pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
2007-06-21 16:58:22 +02:00
lars/lthalmann@mysql.com/dl145k.mysql.com
fcd859ac77 Test fix 2007-06-21 16:55:52 +02:00
msvensson@pilot.(none)
840344589e Add name of test that generated the warning to "warnings" file 2007-06-21 16:37:13 +02:00
msvensson@pilot.(none)
9ece930cd4 Merge pilot.(none):/data/msvensson/mysql/bug28769/my50-bug28769
into  pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
2007-06-21 15:19:28 +02:00
msvensson@pilot.(none)
c021fc9a92 Merge pilot.(none):/data/msvensson/mysql/bug28769/my50-bug28769
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
2007-06-21 15:14:00 +02:00
mats@kindahl-laptop.dnsalias.net
7438faa16b Test case fix to replication team tree. 2007-06-21 14:39:40 +02:00