- 14 Jul, 2008 2 commits
-
-
Marc Alff authored
-
Marc Alff authored
build) The crash was caused by freeing the internal parser stack during the parser execution. This occured only for complex stored procedures, after reallocating the parser stack using my_yyoverflow(), with the following C call stack: - MYSQLparse() - any rule calling sp_head::restore_lex() - lex_end() - x_free(lex->yacc_yyss), xfree(lex->yacc_yyvs) The root cause is the implementation of stored procedures, which breaks the assumption from 4.1 that there is only one LEX structure per parser call. The solution is to separate the LEX structure into: - attributes that represent a statement (the current LEX structure), - attributes that relate to the syntax parser itself (Yacc_state), so that parsing multiple statements in stored programs can create multiple LEX structures while not changing the unique Yacc_state. Now, Yacc_state and the existing Lex_input_stream are aggregated into Parser_state, a structure that represent the complete state of the (Lexical + Syntax) parser. mysql-test/r/parser_stack.result: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) mysql-test/t/parser_stack.test: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sp.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sp_head.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_class.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_class.h: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_lex.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_lex.h: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_parse.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_prepare.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_trigger.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_view.cc: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build) sql/sql_yacc.yy: Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on build)
-
- 10 Jul, 2008 4 commits
-
-
Gleb Shchepa authored
-
Gleb Shchepa authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
offset for time part in UUIDs was 1/1000 of what it should be. In other words, offset was off. Also handle the case where we count into the future when several UUIDs are generated in one "tick", and then the next call is late enough for us to unwind some but not all of those borrowed ticks. Lastly, handle the case where we keep borrowing and borrowing until the tick-counter overflows by also changing into a new "numberspace" by creating a new random suffix. mysql-test/r/func_misc.result: Show that time-part of UUIDs is correct now. mysql-test/t/func_misc.test: Show that time-part of UUIDs is correct now by replicating the C-code's resultin SQL. Results also decode to expect date-data on command-line (external validation). No test for unwinding of borrowed ticks as this a) is a race and b) depends on what timer we get. sql/item_strfunc.cc: correct offset for date/time-part of UUID. also make sure that when we counted into the future earlier (several UUIDs generated in same tick), we only give back as many "borrowed" ticks as we can without duplicating past timestamps. If our tick-counter overflows before we can give back, or if the system-clock is set back (by user or Daylight Saving Time), we create a new random suffix to avoid collisions and clear the tick-counter.
-
- 09 Jul, 2008 3 commits
-
-
Gleb Shchepa authored
-
Matthias Leich authored
"funcs_2: The tests do not check if optional character sets exist." 2. Minor cleanup
-
unknown authored
-
- 08 Jul, 2008 2 commits
-
-
Jonathan Perkin authored
-
Mats Kindahl authored
-
- 07 Jul, 2008 3 commits
-
-
Marc Alff authored
-
Marc Alff authored
enabled) Before this fix, the lexer and parser would treat the ';' character as a different token (either ';' or END_OF_INPUT), based on convoluted logic, which failed in simple cases where a stored procedure is implemented as a single statement, and used in a multi query. With this fix: - the character ';' is always parsed as a ';' token in the lexer, - parsing multi queries is implemented in the parser, in the 'query:' rules, - the value of thd->client_capabilities, which is the capabilities negotiated between the client and the server during bootstrap, is immutable and not arbitrarily modified during parsing (which was the root cause of the bug)
-
Mats Kindahl authored
On certain kinds of errors (e.g., out of stack), a call to Item_func_ set_user_var::fix_fields() might fail. Since the return value of this call was not checked inside User_var_log_event::exec_event(), continuing execution after this will cause a crash inside Item_func_set_user_var:: update_hash(). The bug is fixed by aborting execution of the event with an error if fix_fields() fails, since it is not possible to continue execution anyway. sql/log_event.cc: Aborting execution of event if fix_fields() fails since execution of update_hash() might cause a crash.
-
- 04 Jul, 2008 2 commits
-
-
Chad MILLER authored
-
Chad MILLER authored
to use ANSI_QUOTES Make all have_* tests universally safe by using ANSI quotes.
-
- 02 Jul, 2008 1 commit
-
-
Timothy Smith authored
-
- 01 Jul, 2008 1 commit
-
-
Patrick Crews authored
Test was failing due to the addition of a '\x05' character in result sets Latest builds of the server have shown this problem to have disappeared. Removing code within the test that disables the test on Mac OS X. Recommit due to tree error on earlier, approved patch.
-
- 30 Jun, 2008 1 commit
-
-
Matthias Leich authored
Bug#36787 Test funcs_1.charset_collation_1 failing Details: 1. Skip charset_collation_1 if charset "ucs2_bin" is missing (property which distincts "vanilla" builds from the others) 2. Let builds with version_comment LIKE "%Advanced%" (found them for 5.1) execute charset_collation_3. 3. Update comments charset_collation.inc so that they reflect the current experiences.
-
- 27 Jun, 2008 2 commits
-
-
Timothy Smith authored
-
Gleb Shchepa authored
Bug#35658 (An empty binary value leads to mysqld crash) Before this fix, the following token b'' caused the parser to crash when reading the binary value from the empty string. The crash was caused by: ptr+= max_length - 1; because max_length is unsigned and was 0, causing an overflow. With this fix, an empty binary literal b'' is parsed as a binary value 0, in Item_bin_string. mysql-test/r/varbinary.result: Bug#35658 (An empty binary value leads to mysqld crash) mysql-test/t/varbinary.test: Bug#35658 (An empty binary value leads to mysqld crash) sql/item.cc: Bug#35658 (An empty binary value leads to mysqld crash)
-
- 25 Jun, 2008 2 commits
-
-
Matthias Leich authored
Bug#37492 timing bug in subselect.test + similar weaknesses found during testing + replace error numbers by error names
-
Timothy Smith authored
Normalize directory names before adding them to default_directories. mysys/default.c: Normalize directory names with unpack_dirname() before adding them to default_directories. This way, /etc/ and /etc will not count as duplicates. Because this entails allocating memory to store the normalized names, add error handling and ensure that it doesn't leak memory in case both my_print_defaults() and load_defaults() are called. Clean up the Windows code that finds the exe's parent directory, and pull it out into a separate function. Reorganize the code into a single init_default_directories() function, with internal #ifdefs, instead of init_default_directories_<system>() functions which were accessed via a function pointer. This is more in line with normal MySQL coding style, and easier to read for some.
-
- 24 Jun, 2008 3 commits
-
-
Gleb Shchepa authored
Bug#35480: BOM detection code crashes mysql CLI with zero-sized input MySQL client crashed if no input was passed to it.
-
Gleb Shchepa authored
Bug#33812: mysql client incorrectly parsing DELIMITER Remove unnecessary and incorrect code that tried to pull delimiter commands out of the middle of statements.
-
Gleb Shchepa authored
as a commentary mysql client has been modified to interpret EOL after standalone -- commentary strings like whitespace character (according to http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-comments.html) mysql-test/t/mysql_delimiter.sql: Added test case for bug #36244.
-
- 18 Jun, 2008 1 commit
-
-
Matthias Leich mleich@mysql.com authored
Bug#37167 funcs_1: Many tests fail if the embedded server is used. Bug#37164 funcs_1: Some tests fail if an optional character set is missing. + some cleanup within the testsuite related to the fixes above + some adjustments to open bugs on Mac OS X
-
- 17 Jun, 2008 3 commits
-
-
Georgi Kodinov authored
-
Tatiana A. Nurnberg authored
configure.in: Raise version number after cloning 5.0.64 mysql-test/r/federated_disabled.result: Bug#37069 (5.0): implement --skip-federated mysql-test/t/federated_disabled-master.opt: Bug#37069 (5.0): implement --skip-federated mysql-test/t/federated_disabled.test: Bug#37069 (5.0): implement --skip-federated mysys/errors.c: Fix for Bug#16902. sql/mysqld.cc: Bug#37069 (5.0): implement --skip-federated
-
Tatiana A. Nurnberg authored
Ignore BitKeeper SCCS folders in make-dist mysql-test/Makefile.am: Ignore BitKeeper SCCS folders in make-dist (copy only .txt files).
-
- 16 Jun, 2008 2 commits
-
-
Matthias Leich mleich@mysql.com authored
Bug#37167 funcs_1: Many tests fail if the embedded server is used. Bug#37164 funcs_1: Some tests fail if an optional character set is missing. + some cleanup within the testsuite related to the fixes above + some adjustments to open bugs on Mac OS X Details: - Remove the initial loading of data from tests if these data are not somewhere retrieved - Remove any use of columns with attribute unicode (-> UCS2 is no more needed) from tests where unicode properties are not checked or somehow required - Create a separate branch of the Character maximum length test (CML). If UCS2 is available than this test gets applied to every available type of string column with attribute unicode This prevents any loss of coverage by the points above. - Disable the execution of is_tables_ndb which gives wrong results because of a bug. Correct the exepected results of this test. - In case of tests failing when applied to the embedded server 1) Create a variant of this test for the embedded server or 2) Skip the test in case of embedded server depending on purpose and complexity of test. - Skip the tests which could suffer from Bug 28309 First insert violates unique constraint - was "memory" table empty ? Bug 37380 Test funcs_1.is_columns_myisam_embedded fails on OS X (both bugs Mac OS X, embedded server, MySQL 5.0 only) - Minor improvements like remove typos
-
Hakan Kuecuekyilmaz authored
mysys/errors.c: Fixed typo, Bug#16902.
-
- 13 Jun, 2008 2 commits
-
-
Joerg Bruehe authored
and the build tag for 5.0.62.
-
unknown authored
-
- 12 Jun, 2008 1 commit
-
-
Georgi Kodinov authored
-
- 10 Jun, 2008 2 commits
-
-
Jonathan Perkin authored
-
mysqldev authored
-
- 03 Jun, 2008 1 commit
-
-
Georgi Kodinov authored
mysql-test/r/federated_disabled.result: Bug#37069 (5.0): test case mysql-test/t/federated_disabled-master.opt: Bug#37069 (5.0): test case mysql-test/t/federated_disabled.test: Bug#37069 (5.0): test case
-
- 02 Jun, 2008 1 commit
-
-
Matthias Leich mleich@mysql.com authored
Fix for this bug and additional improvements/fixes In detail: - Remove unicode attribute from several columns (unicode properties were nowhere needed/tested) of the table tb3 -> The runnability of these tests depends no more on the availibility of some optional collations. - Use a table tb3 with the same layout for all engines to be tested and unify the engine name within the protocols. -> <engine>_trig_<abc>.result have the same content - Do not load data into tb3 if these rows have no impact on result sets - Add tests for NDB (they exist already in 5.1) - "--replace_result" at various places because NDB variants of tests failed with "random" row order in results This fixes a till now unknown weakness within the funcs_1 NDB tests existing in 5.1 and 6.0 - Fix the expected result of ndb_trig_1011ext which suffered from Bug 32656 + disable this test - funcs_1 could be executed with the mysql-test-run.pl option "--reorder", which saves some runtime by optimizing server restarts. Runtimes on tmpfs (one attempt only): with reorder 132 seconds without reorder 183 seconds - Adjust two "check" statements within func_misc.test which were incorrect (We had one run with result set difference though the server worked good.) - minor fixes in comments
-
- 29 May, 2008 1 commit
-
-
Matthias Leich mleich@mysql.com authored
Fix for this bug and a second similar problem found during experimenting. This replaces the first fix (already pushed to 5.1 and merged to 6.0) which - failed in runs with the embedded server - cannot be ported back to 5.0
-