ESCAPE has length of 1 if specified and sql_mode is NO_BACKSLASH_ESCAPES
or has length of 0 or 1 in every other situation.
(approved patch applied on a up-to-date tree re-commit)
mysql-test/r/select.result:
results of test for bug 12595
mysql-test/t/select.test:
test for bug #12595 (ESCAPE must be exactly one character long)
sql/item_cmpfunc.cc:
if ESCAPE was in the statement check whether its length is
different than 1. In NO_BACKSLASH_ESCAPES mode only length of 1 is
allowed, otherwise the length could be 0 or 1 character (code point
in the sense of Unicode).
sql/item_cmpfunc.h:
pass variable from the parsing stage - whether
ESCAPE clause was found in the statement
sql/sql_help.cc:
pass FALSE for escape_used_in_parsing because we
want the default mode of no error checking - our internal code.
sql/sql_lex.cc:
initialized variable used to transfer information during
parsing up in the stack when reducing in the grammar
sql/sql_lex.h:
new variable used for transfering information when
reducing in the grammar.
sql/sql_yacc.yy:
initialize Lex->escape_used and then use it when reducing.
This is needed as fix for bug #12595 to distinguish between
situation where ESCAPE was found and when not because internally
we may pass a string an empty string and there is no other way
to find out whether this is correct or not in case of
NO_BACKSLASH_ESCAPES mode, which allows only length of 1 if
ESCAPE is part of the SQL statement.
procedure
For some functions returning strings (like "replace" and "ifnull" - where
val_str() is returning a pointer into one of the parameters) - we ended
up with a dangling pointer after the new operator destroyed the reuse item
in the eval function.
A working, if not very elegant, solution is to simply copy the string in
such cases.
mysql-test/r/sp.result:
New test case for BUG#13941.
mysql-test/t/sp.test:
New test case for BUG#13941.
sql/sp_head.cc:
Copy the string when evaluating some string functions (e.g. "replace" and "ifnull")
to avoid using a dangling pointer.
without database"
mysql-test/r/sp-error.result:
Test results fixed (a test case for Bug#13587)
mysql-test/t/sp-error.test:
A test case for Bug#13587 "Server crash when SP is created without
database"
sql/sql_parse.cc:
- move initialization of lex->sphead->m_db before it's used.
- cleanup; comment why right now can't be cleaned any more
mysql-test/r/archive.result:
Result file for adding check table support
mysql-test/t/archive.test:
Simple test for check table. The additional select is added just to make sure the file is not destroyed.
sql/ha_archive.cc:
Updates for adding CHECK table support. is_crashed() now returns the state of the file.
sql/ha_archive.h:
Updates for adding CHECK table support
mysql-test/r/update.result:
Auto merged
mysql-test/t/update.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/records.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/structs.h:
Auto merged
mysql-test/r/skip_grants.result:
creation view with DEFINER clause if --skip-grant-tables
mysql-test/t/skip_grants.test:
creation view with DEFINER clause if --skip-grant-tables
sql/sql_acl.cc:
check of ACL initialization in is_acl_user()
'information_schema' is excluded from list of databases for mysqlcheck command
mysql-test/mysql-test-run.pl:
dded support for 'mysqlcheck'
mysql-test/mysql-test-run.sh:
dded support for 'mysqlcheck'
mysql-test/r/func_math.result:
Add new results
mysql-test/t/func_math.test:
Add new regression test
sql/item_func.cc:
Set maybe_null in Item_func_abs::fix_length_and_dec().
The lack of this --replace resulted in the test failing on all build hosts
mysql-test/r/im_life_cycle.result:
fix result
mysql-test/t/im_life_cycle.imtest:
replace instance port number in result, as it could be set differently for different
test runs.
into mysql.com:/home/pem/work/bug7049/mysql-5.0
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
mysql-test/r/sp.result:
Updated test results after fixing error handling in select.
sql/mysqld.cc:
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
sql/protocol.cc:
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
sql/sp_rcontext.h:
Added method for checking if the handler was found in the current context.
sql/sql_error.cc:
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
the READ_ONLY global variable now allows statements which are to update only temporary tables
(note: if a statement, after parse stage, looks like it will update a non-temp table, it will be rejected,
even if at execution it would have turned out that 0 rows would be updated; for example
UPDATE my_non_tem_table SET a=1 WHERE 1 = 0; will be rejected).
sql/sql_parse.cc:
The READ_ONLY global variable now allows statements which are to update only temporary tables
(note: if a statement, after parse stage, looks like it will update a non-temp table, it will be rejected,
even if at execution it would have turned out that 0 rows would be updated; for example
UPDATE my_non_tem_table SET a=1 WHERE 1 = 0; will be rejected).
mysql-test/r/read_only.result:
result for new test
mysql-test/t/read_only.test:
test for READ_ONLY (there was none!) and for the new behaviour of READ_ONLY
mysql-test/r/func_math.result:
result fixed
mysql-test/t/func_math.test:
test case added
sql/item_func.cc:
tests for (value<=0.0) added to LOG* functions
Test for bug#12812 moved from sp.test to sp-security.test
mysql-test/t/sp.test:
Test for bug#12812 moved from sp.test to sp-security.test
mysql-test/t/sp-security.test:
Test for bug#12812 moved from sp.test to sp-security.test
mysql-test/r/sp.result:
Test for bug#12812 moved from sp.test to sp-security.test
mysql-test/r/sp-security.result:
Test for bug#12812 moved from sp.test to sp-security.test
mysql-test/r/gis.result:
result fixed
mysql-test/t/gis.test:
testcase added
sql/sql_table.cc:
no need to specify keylength for Point type
sql/sql_yacc.yy:
no need to specify length for Point type
mysql-test/r/type_newdecimal.result:
result fixed
mysql-test/t/type_newdecimal.test:
test case added
sql/item_func.cc:
conditions fixed
sql/my_decimal.cc:
overflow handling added
sql/my_decimal.h:
overflow handling added - so the result of operation gets maximum possible
decimal value
into mysql.com:/usr/home/bar/mysql-5.0.char1
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item_func.cc:
Auto merged
mysql-test/r/ctype_utf8.result:
after merge fix.
sql/sql_update.cc:
discarding this change in 5.0.
mysql-test/r/func_time.result:
Add new results
mysql-test/t/func_time.test:
Add new regression test
sql/item_timefunc.cc:
Fix calculation of years and months in TIMESTAMPDIFF().
DISTINCT wasn't optimized away and caused creation of tmp table in wrong
case. This result in integer overrun and running out of memory.
Fix backported from 4.1. Now if optimizer founds that in result be only 1
row it removes distinct.
sql/sql_select.cc:
Fix bug #13855 select distinct with group by caused server crash
mysql-test/r/select.result:
Test case for bug#13855 select distinct with group by caused server crash
mysql-test/t/select.test:
Test case for bug#13855 select distinct with group by caused server crash
field::sort_key() now adds length last for varbinary/blob
VARBINARY/BLOB is now sorted by filesort so that shorter strings comes before longer ones
Fixed issues in test cases from last merge
mysql-test/r/select.result:
Change column name in test to get GROUP BY to use the alias
mysql-test/r/type_blob.result:
Test BLOB and VARCHAR sorting
mysql-test/t/select.test:
Change column name in test to get GROUP BY to use the alias
Drop used tables at start of test
Don't use table names 'a', 'b' or 'c'
mysql-test/t/type_blob.test:
Test BLOB and VARCHAR sorting
sql/field.cc:
Store length last in VARBINARY() and BLOB() columns to get shorter strings sorted before longer onces
sql/field.h:
Added method 'sort_length()' to allow one to have length bytes last for VARBINARY/BLOB to get these to sort properly
sql/filesort.cc:
Use 'sort_length()' instead of 'pack_length()' to get length of field.
Store suffix_length last for varbinary (blob) objects.
The above ensures that BLOB/VARBINARY are correctly sorted (shorter strings before longer ones)
sql/sql_class.h:
Added sort suffix length (to get varbinary/blob to sort correctly)
sql/sql_select.cc:
Use sort_length() instead of pack_lengths()
strings/ctype-bin.c:
Don't let strnxfrm_bin store length last
Better to do it in MySQL field object to ensure it's done properly for all cases
- fixed test
mysql-test/r/rpl_multi_update2.result:
fixed setting/reseting environment
multi-update with subquery added
mysql-test/t/rpl_multi_update2.test:
fixed setting/reseting environment
multi-update with subquery added
sql/sql_update.cc:
set 'updating' in both tables list if we have two of them (because of subquery)
Re-application of patch to clean 5.0 tree. Fixed issue with ANSI quotes
when dumping triggers
client/mysqldump.c:
BUG# 13146
Re-application of fix to clean 5.0 tree.
Added comments for quote_name, moved declarations into proper order,
unset MASK_ANSI_QUOTES flag in opt_compatible_mode global when dumping
triggers
mysql-test/r/mysqldump.result:
BUG# 13146
New test results
mysql-test/t/mysqldump.test:
BUG# 13146
New test
into mysql.com:/home/my/mysql-5.0
mysql-test/t/select.test:
Auto merged
sql/item.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_select.cc:
Auto merged
vio/vio.c:
Auto merged
mysql-test/r/select.result:
Merge and change table names a,b,c to t1,t2.t3
into mysql.com:/usr/home/bar/mysql-5.0.b9278
mysql-test/t/cast.test:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-tis620.c:
Auto merged
mysql-test/r/cast.result:
Auto merged
mysql-test/r/select.result:
Auto merged
after merge fix.
range.result:
fixing result accordingly
,
cast.result:
after merge fix
range.test:
Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
mysql-test/t/range.test:
Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
mysql-test/r/cast.result:
after merge fix
mysql-test/r/mysqldump-max.result:
after merge fix.
mysql-test/r/range.result:
fixing result accordingly
,
mysql-test/r/select.result:
after merge fix.