sql/item.cc:
Fix valgrind errors: we need Item::name to point to PS memory
as well.
sql/item.h:
set_field no longer can be reused as is for PS purposes.
sql/sql_union.cc:
Item_field::set_field -> Item_field::reset_field.
crashes server"
(in 4.0 we fix only connection stalling in case of error, crash itself is
fixed in 4.1, the test case for this code is also there).
sql/sql_parse.cc:
Handling of COM_CREATE_DB, COM_DROP_DB:
We should call send_error() if mysql_create_db or mysql_drop_db
return error (like we do it for SQL versions of these commands).
names with ident. tables fr. diff. schemata": revise all uses of
Item_field and make them prepared-statements friendly when necessary.
mysql-test/r/ps.result:
Test results fixed: the test case for Bug#6050
mysql-test/r/ps_1general.result:
Test results fixed: in prepared statements we expand '*' to a list
of fully qualified fields (db.table.column).
mysql-test/t/ps.test:
A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with
ident. tables fr. diff. schemata"
sql/item.cc:
Revise all Item_field constructors: we need to make sure that no Item_field
object points to unaccessible memory in prepared statements.
sql/item.h:
Revise all Item_field constructors: we need to make sure that no Item_field
object points to unaccessible memory in prepared statements.
sql/sql_base.cc:
Item_field use changed to be prepared statements friendly.
sql/sql_class.h:
New check of Item_arena state.
sql/sql_union.cc:
Fixing the problem with name resolving in UNION and prepared statements:
In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
selected items is represented as a List<Item_field>, where each
Item_field points to a field of temporary table.
But the temporary table is created anew on each execution of the prepared
statement. So on each subsequent execution we should reset Item_field
items to point to fields from freshly-created temporary table.
sql/table.h:
Comment TABLE member.
Add typecast from ulint to ssize_t in pread and pwrite, so that the type is according to the Linux man page; this will probably not help to fix the HP-UX 32-bit pwrite failure, since the compiler should do the appropriate typecasts anyway
innobase/os/os0file.c:
Add typecast from ulint to ssize_t in pread and pwrite, so that the type is according to the Linux man page; this will probably not help to fix the HP-UX 32-bit pwrite failure, since the compiler should do the appropriate typecasts anyway
this timestamp might not be the correct time because e.g. ALTER TABLE
changes this timestamp.
sql/ha_innodb.cc:
Do not show check_time and update_time because we do not really know them.
UPDATE, INSERT and CHECK TABLE do not change these timestamps.
Added SQLSTATE matching support to test engine
mysqltest.result, mysqltest.test:
new file
mysql-test/t/mysqltest.test:
Added SQLSTATE matching support to test engine
mysql-test/r/mysqltest.result:
Added SQLSTATE matching support to test engine
client/mysqltest.c:
Added SQLSTATE matching support to test engine
Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
innobase/row/row0ins.c:
Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
innobase/row/row0mysql.c:
Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
mysql-test/r/query_cache.result:
hiding real table stored in query cache by temporary table
mysql-test/t/query_cache.test:
hiding real table stored in query cache by temporary table
sql/sql_cache.cc:
Check of temporary tables hiding for query fetched from QC
sql/sql_cache.h:
Key length now stored in table record of query cache
Removed the assumption of a certain key order.
Since 4.1, keys are padded with blanks for comparison.
Hence, shorter keys sort behind longer keys, if the
data bytes have values below BLANK.
mysql-test/r/key.result:
BUG#6151 - myisam index corruption.
The test results.
mysql-test/t/key.test:
BUG#6151 - myisam index corruption.
Added the test case as derived from the original data.
mysql-test/r/view.result:
LOAD DATA with view and CHECK OPTION
mysql-test/t/view.test:
LOAD DATA with view and CHECK OPTION
sql/log_event.cc:
new parameter for load data
sql/mysql_priv.h:
new parameter for load data
sql/sql_lex.cc:
LOAD DATA supported by view
sql/sql_load.cc:
added support of view and CHECK OPTION of view to LOAD DATA
sql/sql_parse.cc:
new parameter for CHECK OPTION
mysql.time_zone* tables".
We are excluding implicitly used time zone tables from privilege
checking.
mysql-test/r/timezone2.result:
Added test for bug #6116 "SET time_zone := ... requires access to
mysql.time_zone tables"
mysql-test/t/timezone2.test:
Added test for bug #6116 "SET time_zone := ... requires access to
mysql.time_zone tables"
sql/sql_parse.cc:
check_table_access(): we should avoid privilege checking for implicitly
used time zone tables.
sql/tztime.cc:
Indicated dependancy between my_tz_get_table_list() function and
my_tz_check_n_skip_implicit_tables() function.
sql/tztime.h:
Added my_tz_check_n_skip_implicit_tables() function which allows easily
determine whenever we have found beggining of the list of implicitly used
time zone tables and fast-forward to its end.
sql/handler.cc:
do not delete the table in the "unkonwn" handler (makes no sense anyway)
sql/handler.h:
more HA_CREATE_USED flags
sql/sql_lex.h:
more ALTER_ flags, no alter_info->is_simple anymore
sql/sql_parse.cc:
no alter_info->is_simple anymore
sql/sql_table.cc:
do not rename the table in the "unkonwn" handler (makes no sense anyway)
smarter ALTER TABLE - don't copy the table if only comment or default values are changed
sql/sql_yacc.yy:
specify what ALTER is todo with flags, not alter_info->is_simple
sql/unireg.cc:
create frm only (but not in the handler) if requested