mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
90cb4c03fd
The problem was that we restored SQL_CACHE, SQL_NO_CACHE flags in SELECT statement from internal structures based on value set later at runtime, not the original value set by the user. The solution is to remember that original value. mysql-test/r/auto_increment.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/func_compress.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/func_math.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/func_system.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/func_time.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/information_schema.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/query_cache.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/rpl_get_lock.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/rpl_master_pos_wait.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/show_check.result: Add result for bug#17203. mysql-test/r/subselect.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/type_blob.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/variables.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/r/view.result: Update result to not report SQL_NO_CACHE if it wasn't there at first place. mysql-test/t/show_check.test: Add test case for bug#17203. sql/sql_lex.cc: Reset SELECT_LEX::sql_cache together with SELECT_LEX::options. sql/sql_lex.h: Add SELECT_LEX::sql_cache field to store original user setting. sql/sql_select.cc: Output SQL_CACHE and SQL_NO_CACHE depending on stored original user setting. sql/sql_yacc.yy: Make effect of SQL_CACHE and SQL_NO_CACHE mutually exclusive. Ignore SQL_CACHE if SQL_NO_CACHE was used. Remember what was set by the user. Reset SELECT_LEX::sql_cache together with SELECT_LEX::options.
81 lines
3.4 KiB
Text
81 lines
3.4 KiB
Text
select @test_compress_string:='string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ';
|
|
@test_compress_string:='string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa '
|
|
string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
select length(@test_compress_string);
|
|
length(@test_compress_string)
|
|
117
|
|
select uncompress(compress(@test_compress_string));
|
|
uncompress(compress(@test_compress_string))
|
|
string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
explain extended select uncompress(compress(@test_compress_string));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1003 select uncompress(compress((@test_compress_string))) AS `uncompress(compress(@test_compress_string))`
|
|
select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string);
|
|
uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)
|
|
1
|
|
explain extended select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1003 select (uncompressed_length(compress((@test_compress_string))) = length((@test_compress_string))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)`
|
|
select uncompressed_length(compress(@test_compress_string));
|
|
uncompressed_length(compress(@test_compress_string))
|
|
117
|
|
select length(compress(@test_compress_string))<length(@test_compress_string);
|
|
length(compress(@test_compress_string))<length(@test_compress_string)
|
|
1
|
|
create table t1 (a text, b char(255), c char(4)) engine=myisam;
|
|
insert into t1 (a,b,c) values (compress(@test_compress_string),compress(@test_compress_string),'d ');
|
|
select uncompress(a) from t1;
|
|
uncompress(a)
|
|
string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
select uncompress(b) from t1;
|
|
uncompress(b)
|
|
string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
select concat('|',c,'|') from t1;
|
|
concat('|',c,'|')
|
|
|d|
|
|
drop table t1;
|
|
select compress("");
|
|
compress("")
|
|
|
|
select uncompress("");
|
|
uncompress("")
|
|
|
|
select uncompress(compress(""));
|
|
uncompress(compress(""))
|
|
|
|
select uncompressed_length("");
|
|
uncompressed_length("")
|
|
0
|
|
create table t1 (a text);
|
|
insert t1 values (compress(null)), ('A\0\0\0BBBBBBBB'), (compress(space(50000))), (space(50000));
|
|
select length(a) from t1;
|
|
length(a)
|
|
NULL
|
|
12
|
|
76
|
|
50000
|
|
select length(uncompress(a)) from t1;
|
|
length(uncompress(a))
|
|
NULL
|
|
NULL
|
|
50000
|
|
NULL
|
|
Warnings:
|
|
Error 1259 ZLIB: Input data corrupted
|
|
Error 1256 Uncompressed data size too large; the maximum size is 1048576 (probably, length of uncompressed data was corrupted)
|
|
drop table t1;
|
|
set @@max_allowed_packet=1048576*100;
|
|
select compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null;
|
|
compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
|
|
0
|
|
create table t1(a blob);
|
|
insert into t1 values(NULL), (compress('a'));
|
|
select uncompress(a), uncompressed_length(a) from t1;
|
|
uncompress(a) uncompressed_length(a)
|
|
NULL NULL
|
|
a 1
|
|
drop table t1;
|