Commit graph

75 commits

Author SHA1 Message Date
antony@ppcg5.local
6402e4324a Merge anubis.xiphis.org:/usr/home/antony/work/mysql-5.1-engines
into  anubis.xiphis.org:/usr/home/antony/work/mysql-5.1-engines.merge
2007-07-06 09:03:50 -07: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
istruewing@chilla.local
9d3c6858af Merge chilla.local:/home/mydev/mysql-5.1-amain
into  chilla.local:/home/mydev/mysql-5.1-axmrg
2007-06-24 16:46:16 +02: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
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
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)
896faea0d3 Merge pilot.(none):/data/msvensson/mysql/bug28742/my50-bug28742
into  pilot.(none):/data/msvensson/mysql/mysql-5.1-new-maint
2007-06-21 14:14:36 +02:00
msvensson@pilot.(none)
4d3f3f676f Bug#28742 mysql-test-run is very slow on "Stopping All Servers" step
- Improve shutdown algorithm 
 - Wait up to 5 seconds for processes to exit after their port is free
2007-06-20 11:47:55 +02:00
bar@mysql.com/bar.myoffice.izhnet.ru
020eedd446 mtr_report.pl:
Ignore warning about file name
  having question marks.
2007-06-19 15:34:21 +05:00
lars/lthalmann@dl145k.mysql.com
c9d1b262e3 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
2007-06-11 09:55:34 +02:00
aelkin/elkin@dsl-hkibras1-ff5dc300-70.dhcp.inet.fi
89639e7679 yellow warnings on pb. Setting the plug of a harmless warning. 2007-06-06 14:34:17 +03:00
tsmith@quadxeon.mysql.com
13adcedc90 mtr_report.pl:
Add another exception to the acceptable mysqld errors, for test case for bug 28436
2007-06-06 03:49:24 +02:00
kostja@bodhi.(none)
16633169e4 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
2007-06-01 12:12:06 +04:00
jani@a88-113-38-195.elisa-laajakaista.fi
2c8f4f9791 Added casts to avoid compiler warnings and fixed a wrong type.
---
Added casts and fixed wrong type.
---
Added casts and fixed wrong type.
---
Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
---
Don't give warning that readonly variable is forced to be readonly
mysql-test-run run now fails if we have [Warning] and [ERROR] as tags in .err file
Fixed wrong reference to the mysql manual
Fixed wrong prototype that caused some tests to fail on 64 bit platforms
---
Disabled compiler warnings mainly for Win 64.
---
Added casts to remove compiler warnings on windows
Give warnings also for safe_mutex errors found by test system
Added some warnings from different machines in pushbuild
---
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  mysql.com:/home/my/mysql-5.1
---
Added escapes for double quotes and parenthesis.
---
Archive db fix plus added non-critical warnings
in ignore list.
---
Fixed previously added patch and added new ignored warning.
2007-05-31 17:45:22 +03:00
thek@adventure.(none)
63e6a020b7 Merge adventure.(none):/home/thek/Development/cpp/bug28644/my50-bug28644
into  adventure.(none):/home/thek/Development/cpp/bug28644/my51-bug28644
2007-05-24 13:54:32 +02:00
thek@adventure.(none)
edd4f76056 Merge adventure.(none):/home/thek/Development/cpp/bug28644/my41-bug28644
into  adventure.(none):/home/thek/Development/cpp/bug28644/my50-bug28644
2007-05-24 13:53:49 +02:00
thek@adventure.(none)
dec5c2e048 Bug#28644 Memory status report confused with memory leak
This patch removes a false memory leak error report from the test suite.
There is a test case that puposely provokes a SAFEMALLOC leak report,
even though there is no actual leak.
2007-05-24 13:11:45 +02:00
tsmith@quadxeon.mysql.com
13cfd9471d Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
2007-05-01 10:38:19 +02:00
tsmith@quadxeon.mysql.com
5d7a264cf4 mtr_report.pl:
this has been driving me crazy: s/where/were/ in some messages
2007-04-28 10:13:27 +02:00
msvensson@pilot.blaudden
ff0ee38bd7 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
2007-04-04 15:43:03 +02:00
msvensson@pilot.blaudden
bc675fb568 Only check for warnings produced by mysqltest if --check-testcases 2007-04-04 10:59:00 +02:00
msvensson@pilot.blaudden
39cca0323c Look for "testname.warnings" file produced by mysqltest, could find
problems like misspelled -- commands
2007-04-02 22:58:25 +02:00
monty@mysql.com/narttu.mysql.fi
f0ae3ce9b9 Fixed compiler warnings
Fixed compile-pentium64 scripts
Fixed wrong estimate of update_with_key_prefix in sql-bench
Merge bk-internal.mysql.com:/home/bk/mysql-5.1 into mysql.com:/home/my/mysql-5.1
Fixed unsafe define of uint4korr()
Fixed that --extern works with mysql-test-run.pl
Small trivial cleanups
This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
Move all connection handling and command exectuion main loop from sql_parse.cc to sql_connection.cc
Split handle_one_connection() into reusable sub functions.
Split create_new_thread() into reusable sub functions.
Added thread_scheduler; Preliminary interface code for future thread_handling code.

Use 'my_thread_id' for internal thread id's
Make thr_alarm_kill() to depend on thread_id instead of thread
Make thr_abort_locks_for_thread() depend on thread_id instead of thread
In store_globals(), set my_thread_var->id to be thd->thread_id.
Use my_thread_var->id as basis for my_thread_name()
The above changes makes the connection we have between THD and threads more soft.

Added a lot of DBUG_PRINT() and DBUG_ASSERT() functions
Fixed compiler warnings
Fixed core dumps when running with --debug
Removed setting of signal masks (was never used)
Made event code call pthread_exit() (portability fix)
Fixed that event code doesn't call DBUG_xxx functions before my_thread_init() is called.
Made handling of thread_id and thd->variables.pseudo_thread_id uniform.
Removed one common 'not freed memory' warning from mysqltest
Fixed a couple of usage of not initialized warnings (unlikely cases)
Suppress compiler warnings from bdb and (for the moment) warnings from ndb
2007-02-23 13:13:55 +02:00
monty@mysql.com/narttu.mysql.fi
222e128b34 Fixed unsafe define of uint4korr()
Fixed that --extern works with mysql-test-run.pl
Small trivial cleanups
2007-02-21 13:02:57 +02:00
kent@kent-amd64.(none)
58763e383e Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-31 01:32:21 +01:00
kent@mysql.com/kent-amd64.(none)
6523aca729 my_strtoll10-x86.s:
Corrected spelling in copyright text
Makefile.am:
  Don't update the files from BitKeeper
Many files:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header 
Many files:
  Added GPL copyright text
Removed files:
  Docs/Support/colspec-fix.pl
  Docs/Support/docbook-fixup.pl
  Docs/Support/docbook-prefix.pl
  Docs/Support/docbook-split
  Docs/Support/make-docbook
  Docs/Support/make-makefile
  Docs/Support/test-make-manual
  Docs/Support/test-make-manual-de
  Docs/Support/xwf
2006-12-31 01:02:27 +01:00
msvensson@shellback.(none)
521464755c Merge shellback.(none):/home/msvensson/mysql/mysql-5.1
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-merge-from5.0-maint
2006-11-29 19:32:36 +01:00
msvensson@shellback.(none)
7ddc43e305 Merge shellback.(none):/home/msvensson/mysql/mysql-5.1
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-11-29 15:44:09 +01:00
kent@kent-amd64.(none)
2264dc7da0 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/kent/bk/mysql-5.1-build
2006-11-28 18:31:53 +01:00
msvensson@neptunus.(none)
90d654646b Merge neptunus.(none):/home/msvensson/mysql/work/my41-work
into  neptunus.(none):/home/msvensson/mysql/work/my50-work
2006-11-28 12:39:22 +01:00
msvensson@neptunus.(none)
d1ed2e21b8 Backport of patch for bug#24471 2006-11-28 12:33:36 +01:00
msvensson@neptunus.(none)
ee4a5b865f Backport of patch for bug#24471
mysql-test-run.pl:
    Removed "use diagnostics", reduces Perl speed significantly. Can be
    enabled with "perl -Mdiagnostics mysql-test-run.pl".
mtr_report.pl:
   Don't try output "skipped" comment if there is none (bug#24471)
2006-11-28 10:31:07 +01:00
kent@mysql.com/c-634072d5.010-2112-6f72651.cust.bredbandsbolaget.se
9d328d7d62 mysql-test-run.pl:
Removed "use diagnostics", reduces Perl speed significantly. Can be
  enabled with "perl -Mdiagnostics mysql-test-run.pl".
mtr_report.pl:
  Don't try output "skipped" comment if there is none (bug#24471)
2006-11-24 18:26:53 +01:00
monty@nosik.monty.fi
38a92caeb7 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/my/mysql-5.1
2006-11-21 23:12:45 +02:00
monty@mysql.com/nosik.monty.fi
f6682e2743 Added --debug-info to most clients to detect memory leaks in mysql-test-run
Moved .progress files into the log directory
Moved 'cluster' database tables into the MySQL database, to not have 'cluster' beeing a reserved database name
Fixed bug where mysqld got a core dump when trying to use a table created by MySQL 3.23
Fixed some compiler warnings
Fixed small memory leak in libmysql
Note that this doesn't changeset doesn't include the new mysqldump.c code required to run some tests. This will be added when I merge 5.0 to 5.1
2006-11-21 22:32:58 +02:00
msvensson@neptunus.(none)
a14ae73f55 Get name for .reject and .log files from result file name 2006-11-21 15:16:12 +01:00
msvensson@shellback.(none)
4cefd49b81 Put the printf of failed ratio on itäs only line, printf was tricked
into thinking the escaped % + w was a format specifier
2006-10-18 17:58:26 +02:00
msvensson@shellback.(none)
d45b61b1b5 Remove warnings
Set comment properly before calling mtr_report_test failed and report_failure_restart
2006-10-17 10:31:06 +02:00
msvensson@shellback.(none)
88e11706c3 No need to continue in 'mtr_report_test_failed' after timeout detected, return immediately after 2006-10-14 17:14:03 +02:00
msvensson@shellback.(none)
bf762c2d9e Print names of testcases that failed check_testcase, this makes it easier
to run the whole testcase to find wich testcases need to be checked more carefully
and the just "copy and paste" the suspicious test case names to 
a new mysql-test-run.pl command.
2006-10-08 17:48:01 +02:00
msvensson@neptunus.(none)
7ba1880369 Add error handling of failure to start server to "run_testcase_start_servers" 2006-10-06 17:15:26 +02:00
msvensson@neptunus.(none)
738ba624d3 Fix problem with specifying vardir, mysql_version_id was not yet available when vardir arguments is checked
Move the code to look for exe_mysqld earlier => to initial_setup
Fix warnings detected by running with "diagnostics"
Remove unused option "opt_result_ext"
Init "path_ndb_examples_dir"
2006-10-06 16:26:17 +02:00
msvensson@shellback.(none)
3db774af45 Backport from 5.1
-Add support for detecting version and features from mysqld binary
 - Autodetect netware
 - Disable some features not available below 5.0
 - Cleanup executable_setup to look for one executable at a time, only llok for the ones that are needed based on the selected testcases and settings
2006-10-04 12:47:32 +02:00
tsmith/tim@siva.hindu.god
6971ddee1a Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  siva.hindu.god:/usr/home/tim/m/bk/merge-51
(which is mysql-5.1-new-maint team tree)
2006-07-15 00:33:24 -06:00
guilhem@gbichot3.local
fd520be817 Behaviour change of mysql-test-run.pl:
by default we never run disabled tests (even if they're
explicitely listed on the command-line). We add an option --enable-disabled
which will run tests even though they are disabled, and will print, for each
such test, the comment explaining why it was disabled.
The reason for the change is when you want to run "all tests which are about
NDB" for example: mysql-test-run.pl t/*ndb*.test used to run some disabled
NDB tests, causing failures, causing investigations.
Code amended and approved by Kent.
2006-07-06 17:40:36 +02:00
msvensson@neptunus.(none)
f84338557a Fix warnings
Make list of tags/name/values to simplify adding more tags
Check if debug compiled binaries
2006-06-11 23:13:32 +02:00
msvensson@neptunus.(none)
86487223cc Print total time spent exectuing test cases 2006-06-11 19:03:33 +02:00
msvensson@neptunus.(none)
942b98384f Add printout of commment why test was skipped 2006-06-11 10:12:31 +02:00
msvensson@neptunus.(none)
ade1b6ce11 Prepare for selective restart of slaves
Add comment why test is skipped
2006-06-11 10:10:55 +02:00
msvensson@shellback.(none)
1e21055db5 Updated after review 2006-05-23 15:59:52 +02:00