Buffer overflow due to wrong key length in partitioning
Changed to the correct key_length function.
sql/opt_range.cc:
Bug#31705 Partitions: crash if varchar length > 65530
Problem: buffer overflow due to wrong key-length
Fix: Using correct key_length function
mysql-test/r/partition_datatype.result:
Bug#31705 Partitions: crash if varchar length > 65530
New test-result case for testing all column types
used in key-partitioning.
(For verifying correct key-length use)
mysql-test/t/partition_datatype.test:
Bug#31705 Partitions: crash if varchar length > 65530
New test case for testing all column types
used in key-partitioning.
(For verifying correct key-length used)
Merge fix
partition_mgm did not require have_symlink.
Moved the test case to partition_symlink, which
require have_symlink, and should work on both *nix and
Windows
mysql-test/r/partition_mgm.result:
Bug#32091: Security breach via directory changes
Moved the test case to partition_symlink.
mysql-test/t/partition_mgm.test:
Bug#32091: Security breach via directory changes
Moved the test case to partition_symlink.
mysql-test/r/partition_symlink.result:
Bug#32091: Security breach via directory changes
Moved the test case to partition_symlink. It requires
have_symlink.
mysql-test/t/partition_symlink.test:
Bug#32091: Security breach via directory changes
Moved the test case to partition_symlink. It requires
have_symlink.
partitioned table
Post-pushbuild fix
Pushbuild detected yet another need for lex initialization in
embedded server.
libmysqld/lib_sql.cc:
Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
Initialized lex for later use in open_table().
into mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.1-engines
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/symlink.test:
Auto merged
mysys/my_symlink2.c:
Auto merged
into mysql.com:/home/svoj/devel/mysql/BUG32111/mysql-5.0-engines
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/symlink.test:
Auto merged
mysys/my_symlink2.c:
Auto merged
Adding missing drop of user created for test case.
mysql-test/r/mysqlbinlog.result:
Result file change.
mysql-test/t/mysqlbinlog.test:
Dropping user that was added earlier in the test.
mysql-test/r/partition.result:
test result fixed
mysql-test/r/partition_innodb.result:
test result fixed
mysql-test/t/partition.test:
test moved to partition_innodb
mysql-test/t/partition_innodb.test:
test moved from partition.test
into polly.(none):/home/kaa/src/opt/mysql-5.1-opt
mysql-test/r/select.result:
Auto merged
mysql-test/t/select.test:
Auto merged
sql/sql_select.cc:
Auto merged
When we insert a record into MYISAM table which is almost 'full',
we first write record data in the free space inside a file, and then
check if we have enough space after the end of the file.
So if we don't have the space, table will left corrupted.
Similar error also happens when we updata MYISAM tables.
Fixed by modifying write_dynamic_record and update_dynamic_record functions
to check for free space before writing parts of a record
BitKeeper/etc/ignore:
Added libmysql_r/client_settings.h libmysqld/ha_blackhole.cc to the ignore list
myisam/mi_dynrec.c:
Bug #31305 myisam tables crash when they are near capacity.
now we check space left in table in write_dynamic_record
and update_dynamic_record functions.
If we don't have enough room for the new (updated) record, return with the
error.
mysql-test/r/almost_full.result:
New BitKeeper file ``mysql-test/r/almost_full.result''
mysql-test/t/almost_full.test:
New BitKeeper file ``mysql-test/t/almost_full.test''
into polly.(none):/home/kaa/src/opt/bug30666/my51-bug29131
mysql-test/r/select.result:
Auto merged
mysql-test/t/select.test:
Auto merged
sql/sql_select.cc:
Auto merged
causes the Server to crash.
Post-pushbuild fix
Pushbuild genereted valgrind warnings.
Changed function to safer variant.
sql/sql_partition.cc:
Bug#30695: An apostrophe ' in the comment of the ADD PARTITION
causes the Server to crash.
Fix for valgrind warning in pushbuild.
String.c_prt fcn is not as safe as comment says.
(gives valgrind errors in this case)
partitioned table
Post-pushbuild fix
Pushbuild detected a new need for lex initialization in
embedded server.
Fixed test for INSERT DELAYED in partitions_hash.test so that
it works with embedded server.
libmysqld/lib_sql.cc:
Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
Initialized lex for later use in open_table().
mysql-test/r/partition_hash.result:
Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
Fixed test result for embedded server.
mysql-test/t/partition_hash.test:
Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
Fixed test for embedded server.
into gleb.loc:/home/uchum/5.1-opt
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sp_rcontext.cc:
Auto merged
sql/sql_class.cc:
Auto merged
mysql-test/r/subselect.result:
Merge with 5.0-opt.
mysql-test/t/subselect.test:
Merge with 5.0-opt.
add 5.1-specific test showing that 'const' access increments 'examined'
counter in slow query log.
mysql-test/r/log_tables.result:
5.1-only test showing that 'const' access increments counters
mysql-test/t/log_tables.test:
5.1-only test showing that 'const' access increments counters
Changed test case from GRANT to CREATE USER
mysql-test/r/partition_mgm.result:
Bug#32091: Security breach via directory changes
test result
mysql-test/t/partition_mgm.test:
Bug#32091: Security breach via directory changes
Changed test case from GRANT to CREATE USER
into polly.(none):/home/kaa/src/opt/mysql-5.1-opt
mysql-test/r/select.result:
Auto merged
mysql-test/t/select.test:
Auto merged
sql/sql_select.cc:
Auto merged
After adding an index the <VARBINARY> IN (SELECT <BINARY> ...)
clause returned a wrong result: the VARBINARY value was illegally padded
with zero bytes to the length of the BINARY column for the index search.
(<VARBINARY>, ...) IN (SELECT <BINARY>, ... ) clauses are affected too.
sql/item.cc:
Fixed bug #28076.
The Item_cache_str::save_in_field method has been overloaded
to check cached values for an illegal padding before the saving
into a field.
sql/item.h:
Fixed bug #28076.
The Item_cache_str::is_varbinary flag has been added and the
Item_cache_str::save_in_field method has been overloaded to prevent
cached values from an illegal padding when saving in fields.
The signature of the Item_cache::get_cache method has been
changed to accept pointers to Item instead of Item_result
values.
sql/item_cmpfunc.cc:
Fixed bug #28076.
The Item_in_optimizer::fix_left method has been modified to
to call Item_cache::get_cache in a new manner.
sql/item_subselect.cc:
Fixed bug #28076.
The subselect_indexsubquery_engine::exec method has been
modified to take into account field conversion errors
(copy&paste from subselect_uniquesubquery_engine::exec).
sql/sp_rcontext.cc:
Fixed bug #28076.
The sp_rcontext::create_case_expr_holder method has been
modified to call Item_cache::get_cache in a new manner.
sql/sp_rcontext.h:
Fixed bug #28076.
The sp_rcontext::create_case_expr_holder method signature
has been modified to pass Item pointers to the
Item_cache::get_cache method.
sql/sql_class.cc:
Fixed bug #28076.
The select_max_min_finder_subselect::send_data method has been
modified to call Item_cache::get_cache in a new manner.
mysql-test/t/subselect.test:
Added test case for bug #28076.
mysql-test/r/subselect.result:
Added test case for bug #28076.
UNIQUE (eq-ref) lookups result in table being considered as a "constant" table.
Queries that consist of only constant tables are processed in do_select() in a
special way that doesn't invoke evaluate_join_record(), and therefore doesn't
increase the counters join->examined_rows and join->thd->row_count.
The patch increases these counters in this special case.
NOTICE:
This behavior seems to contradict what the documentation says in Sect. 5.11.4:
"Queries handled by the query cache are not added to the slow query log, nor
are queries that would not benefit from the presence of an index because the
table has zero rows or one row."
No test case in 5.0 as issue shows only in slow query log, and other counters
can give subtly different values (with regard to counting in create_sort_index(),
synthetic rows in ROLLUP, etc.).
sql/sql_class.h:
add documentation for some variables
sql/sql_select.cc:
Don't forget const tables when counting read records!
small fix of test case (when running make test after
merge, it did not substitute MYSQLTEST_VARDIR in
the error)
mysql-test/r/partition_mgm.result:
Bug#32091: Security breach via directory changes
small fix in test result
mysql-test/t/partition_mgm.test:
Bug#32091: Security breach via directory changes
small fix in test case
partitioned table
Post-merge fix
A new need for lex initialization arose.
sql/ha_ndbcluster.cc:
Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table
Initialized lex for later use in open_table().
in mysql_creata_like_table() we 'downcase' the complete path to the
.frm file. It works fine in standalone case as there usually
we only have './' as a path to the datahome, but doesn't work in
the embedded server where we add the real path there, so if a
directory has uppercase letters in it's name, it won't be found.
Fixed by 'downcasing' only database/table pair.
sql/sql_table.cc:
Bug #32063 "create table like" works case-significant only in "embedded" server (libmysqld)
do not lowercase the database directory
into mysql.com:/misc/mysql/31800/51-31800
mysql-test/r/select.result:
Auto merged
mysql-test/t/select.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
BETWEEN was more lenient with regard to what it accepted as a DATE/DATETIME
in comparisons than greater-than and less-than were. ChangeSet makes < >
comparisons similarly robust with regard to trailing garbage (" GMT-1")
and "missing" leading zeros. Now all three comparators behave similarly
in that they throw a warning for "junk" at the end of the data, but then
proceed anyway if possible. Before < > fell back on a string- (rather than
date-) comparison when a warning-condition was raised in the string-to-date
conversion. Now the fallback only happens on actual errors, while warning-
conditions still result in a warning being to delivered to the client.
mysql-test/r/select.result:
Show that we compare DATE/DATETIME-like strings as date(time)s
now, rather than as bin-strings.
Adjust older result as "2005-09-3a" is now correctly seen as
"2005-09-3" + trailing garbage, rather than as "2005-09-30".
mysql-test/t/select.test:
Show that we compare DATE/DATETIME-like strings as date(time)s
now, rather than as bin-strings.
sql-common/my_time.c:
correct/clarify date-related comments, particulary for check_date().
doxygenize comment while at it.
sql/item_cmpfunc.cc:
get_date_from_str() no longer signals an error when all we had
was a warning-condition -- and one we already gave the user a
warning for at that. Preamble doxygenized.
Problem: there was no standard syntax error when
creating partitions with syntax error in
the partitioning clause.
Solution: added "Syntax error: " to the error message
mysql-test/r/partition.result:
Bug#29368: Incorrect error for syntax error when createing
partition
test result update
mysql-test/r/partition_error.result:
Bug#29368: Incorrect error for syntax error when createing
partition
test result
mysql-test/t/partition_error.test:
Bug#29368: Incorrect error for syntax error when createing
partition
test case
sql/share/errmsg.txt:
Bug#29368: Incorrect error for syntax error when createing
partition
Modified error messages
into stella.local:/home2/mydev/mysql-5.1-bug31210
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_connect.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_servers.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/table.cc:
Auto merged
into mysql.com:/misc/mysql/31990/51-31990
mysql-test/r/cast.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
Problem: the table's INDEX and DATA DIR was taken
directly from the table's first partition.
This allowed rename attack similar to
bug#32111 when ALTER TABLE REMOVE PARTITIONING
Solution: Silently ignore the INDEX/DATA DIR
for the table. (Like some other storage engines
do).
Partitioned tables do not support DATA/INDEX
DIR on the table level, only on its partitions.
mysql-test/r/partition_mgm.result:
Bug#32091: Security breach via directory changes
test result
mysql-test/t/partition_mgm.test:
Bug#32091: Security breach via directory changes
test case
sql/ha_partition.cc:
Bug#32091: Security breach via directory changes
Do not use the first partition's DATA/INDEX DIR
as the table's DATA/INDEX DIR.
(A partitioned table do not have support for DATA/
INDEX DIR, only its partitions do)