mysql-test/r/auto_increment.result:
result fix
mysql-test/r/create.result:
result fix
mysql-test/r/insert.result:
result fix
mysql-test/r/insert_select.result:
result fix
mysql-test/r/insert_update.result:
result fix
mysql-test/r/key.result:
result fix
mysql-test/r/null.result:
result fix
mysql-test/r/null_key.result:
result fix
mysql-test/r/ps_2myisam.result:
result fix
mysql-test/r/ps_3innodb.result:
result fix
mysql-test/r/ps_4heap.result:
result fix
mysql-test/r/ps_5merge.result:
result fix
mysql-test/r/ps_6bdb.result:
result fix
mysql-test/r/ps_7ndb.result:
result fix
mysql-test/r/strict.result:
result fix
mysql-test/r/view.result:
result fix
mysql-test/r/warnings.result:
result fix
mysql-test/t/strict.test:
test fix
The result of the CHECK OPTION condition evaluation over an
updated record and records of merged tables was arbitrary and
dependant on the order of records in the merged tables during
the execution of SELECT statement.
The CHECK OPTION expression was evaluated over expired record
buffers (with arbitrary data in the fields).
Rowids of tables used in the CHECK OPTION expression were
added to temporary table rows. The multi_update::do_updates()
method was modified to restore necessary record buffers
before evaluation of the CHECK OPTION condition.
sql/sql_class.h:
Fixed bug #29716.
The multi_update::unupdatable_check_opt_tables variable
has been added.
sql/sql_update.cc:
Fixed bug #29716.
Rowids of tables used in the CHECK OPTION expression were
added to temporary table rows. The multi_update::do_updates()
method was modified to restore necessary record buffers
before evaluation of the CHECK OPTION condition.
mysql-test/t/view.test:
Updated test case for bug #28716.
mysql-test/r/view.result:
Updated test case for bug #28716.
Integer values with 10 digits may or may not fit into an int column
(e.g. 2147483647 vs 6147483647).
Thus when creating a temp table column for such an int we must
use bigint instead.
Fixed to use bigint.
Also subsituted a "magic number" with a named constant.
mysql-test/r/analyse.result:
Bug #28492: Adjusted the results after having fixed the bug
mysql-test/r/metadata.result:
Bug #28492: test case
mysql-test/r/olap.result:
Bug #28492: Adjusted the results after having fixed the bug
mysql-test/r/sp.result:
Bug #28492: Adjusted the results after having fixed the bug
mysql-test/r/view.result:
Bug #28492: Adjusted the results after having fixed the bug
mysql-test/t/metadata.test:
Bug #28492: test case
sql/field.h:
Bug #28492: Replaced a magic number with a constant
sql/sql_select.cc:
Bug #28492: Treat integers with 10 and more digits as
bigint.
- Renamed "Using join cache" to "Using join buffer".
- "Using join buffer" is now printed on the last
table that "reads" from the join buffer cache.
mysql-test/r/archive_gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/compress.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ctype_utf8.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/derived.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/distinct.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/func_group.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/func_group_innodb.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/greedy_optimizer.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/group_by.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/group_min_max.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/index_merge_myisam.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/information_schema.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/innodb_gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/innodb_mysql.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/join.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/join_nested.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/key_diff.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/myisam.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ndb_condition_pushdown.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ndb_gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/range.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/row.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/select.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ssl.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ssl_compress.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/subselect.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/subselect3.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/union.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/view.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
sql/sql_select.cc:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
into gleb.loc:/home/uchum/work/bk/mysql-5.1-opt
client/mysqldump.c:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/kill.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/join_outer.test:
Auto merged
mysql-test/t/kill.test:
Auto merged
sql/field.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
mysql-test/r/mysqldump.result:
Merge with 5.0-opt
mysql-test/t/mysqldump.test:
Merge with 5.0-opt
mysql-test/t/view.test:
Merge with 5.0-opt
sql/sql_select.cc:
Merge with 5.0-opt
CHECK OPTION and a subquery in WHERE condition.
The abort was triggered by setting the value of join->tables for
subqueries in the function JOIN::cleanup. This function was called
after an invocation of the JOIN::join_free method for subqueries
used in WHERE condition.
mysql-test/r/view.result:
Added a test case for bug #28561.
mysql-test/t/view.test:
Added a test case for bug #28561.
sql/sql_select.cc:
Fixed bug #28561: assertion abort for update on multi-table view with
CHECK OPTION and a subquery in WHERE condition.
The abort was triggered by setting the value of join->tables for
subqueries in the function JOIN::cleanup. This function was called
after an invocation of the JOIN::join_free method for subqueries
used in WHERE condition.
Setting the value of join->tables to for a subquery created serious
problems for checking WHERE condition after update of the multi-table
view as this check is performed in the do_select function right
after a call of the JOIN::join_free method.
In fact setting join->tables to 0 in JOIN::cleanup is not needed
anywhere in the current code.
into mysql.com:/home/hf/work/27921/my51-27921
mysql-test/r/cast.result:
Auto merged
mysql-test/r/view.result:
Auto merged
sql/field.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_create.h:
merging
sql/my_decimal.h:
merging
sql/sql_yacc.yy:
merging
- added join cache indication in EXPLAIN (Extra column).
- prefer filesort over full scan over
index for ORDER BY (because it's faster).
- when switching from REF to RANGE because
RANGE uses longer key turn off sort on
the head table only as the resulting
RANGE access is a candidate for join cache
and we don't want to disable it by sorting
on the first table only.
mysql-test/r/archive_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/compress.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ctype_utf8.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/derived.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/distinct.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/func_group.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/func_group_innodb.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/greedy_optimizer.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/group_by.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/group_min_max.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/index_merge_myisam.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/information_schema.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/innodb_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/innodb_mysql.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/join.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/join_nested.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/key_diff.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/myisam.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/ndb_condition_pushdown.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/ndb_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/range.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/row.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/select.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ssl.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ssl_compress.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/subselect.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/subselect3.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/union.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/view.result:
bug #27531: join cache in EXPLAIN
sql/sql_select.cc:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over
index for ORDER BY.
- disable sorting on the first table only
when switching from REF to RANGE.
into moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.1-opt
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/key.result:
Auto merged
mysql-test/r/row.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/subselect3.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/func_str.test:
Auto merged
mysql-test/t/key.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
mysql-test/t/view.test:
Manually merged
sql/sql_lex.h:
Manually merged
When merging views into the enclosing statement
the ORDER BY clause of the view is merged to the
parent's ORDER BY clause.
However when the VIEW is merged into an UNION
branch the ORDER BY should be ignored.
Use of ORDER BY for individual SELECT statements
implies nothing about the order in which the rows
appear in the final result because UNION by default
produces unordered set of rows.
Fixed by ignoring the ORDER BY clause from the merge
view when expanded in an UNION branch.
mysql-test/r/view.result:
Bug #27786: test case
mysql-test/t/view.test:
Bug #27786: test case
sql/sql_lex.h:
Bug #27786: add a is_union() inlined function
Returns true if the unit represents an UNION.
sql/sql_view.cc:
Bug #27786: ignore ORDER BY in mergeable views when in UNION context
into bk-internal.mysql.com:/data0/bk/mysql-5.1-opt
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
Support of views wasn't implemented for the TRUNCATE statement.
Now TRUNCATE on views has the same semantics as DELETE FROM view:
mysql_truncate() checks whether the table is a view and falls back
to delete if so.
In order to initialize properly the LEX::updatable for a view
st_lex::can_use_merged() now allows usage of merged views for the
TRUNCATE statement.
mysql-test/r/truncate.result:
Added a test case for the Bug#5507: TRUNCATE does not work with views.
mysql-test/t/truncate.test:
Added a test case for the Bug#5507: TRUNCATE does not work with views.
sql/sql_lex.cc:
Bug#5507: TRUNCATE does not work with views.
can_use_merged() was denying of usage of merged views for a
TRUNCATE statement. This results in improper initialization
of view LEX::updatable. Fixed.
sql/sql_delete.cc:
Bug#5507: TRUNCATE does not work with views.
1.mysql_truncate() was lacking of check whether the table is view. Added.
2.mysql_truncate() calls mysql_delete(), but mysql_delete() always reports
errors as "DELETE" errors. Fixed.
mysql-test/t/view.test:
Updated test case for Bug#14540: OPTIMIZE, ANALYZE, REPAIR applied
to not a view.
mysql-test/r/view.result:
Updated test case for Bug#14540: OPTIMIZE, ANALYZE, REPAIR applied
to not a view.
mysql-test/r/view.result:
result fixed
mysql-test/r/view_grant.result:
result fixed
mysql-test/t/query_cache_sql_prepare.test:
test fixed
mysql-test/t/view.test:
moved to view_grant
mysql-test/t/view_grant.test:
moved here from view.test
into bodhi.local:/opt/local/work/mysql-5.1-runtime
include/my_global.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/events_scheduling.result:
Auto merged
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
Auto merged
BitKeeper/deleted/.del-mysql_create_system_tables.sh:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/events_scheduling.test:
Auto merged
mysql-test/t/grant_cache.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysql-test/t/view.test:
Auto merged
scripts/mysql_system_tables_fix.sql:
Auto merged
sql/event_db_repository.cc:
Auto merged
sql/event_queue.cc:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/tztime.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisam/ha_myisam.h:
Auto merged
mysql-test/r/skip_grants.result:
Manualmerge.
mysql-test/r/sp.result:
Manualmerge.
mysql-test/t/skip_grants.test:
Manualmerge.
mysql-test/t/sp.test:
Manualmerge.
sql/event_data_objects.cc:
Manualmerge.
into moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1-bug16425
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_yacc.yy:
Auto merged
for bug#16425: Events: no DEFINER clause. The problem was that there
were two rules
ALTER view_algorithm_opt definer ... VIEW ...
ALTER definer EVENT ...
so when there was 'ALTER definer' in the input it was unclear if empty
view_algorithm_opt should be executed or not.
We solve this by introducing three distinct rules
ALTER view_algorithm definer ... VIEW ...
ALTER definer ... VIEW ...
ALTER definer EVENT ...
that remove the ambiguity.
mysql-test/r/view.result:
Add result for the test of ALTER ALGORITHM= DEFINER= VIEW.
mysql-test/t/view.test:
Add test case for ALTER ALGORITHM= DEFINER= VIEW.
into moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1-bug9953
mysql-test/r/sp-error.result:
Auto merged
mysql-test/r/view.result:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
sql/tztime.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
sql/sql_yacc.yy:
SCCS merged
The problem was that some facilities (like CONVERT_TZ() function or
server HELP statement) may require implicit access to some tables in
'mysql' database. This access was done by ordinary means of adding
such tables to the list of tables the query is going to open.
However, if we issued LOCK TABLES before that, we would get "table
was not locked" error trying to open such implicit tables.
The solution is to treat certain tables as MySQL system tables, like
we already do for mysql.proc. Such tables may be opened for reading
at any moment regardless of any locks in effect. The cost of this is
that system table may be locked for writing only together with other
system tables, it is disallowed to lock system tables for writing and
have any other lock on any other table.
After this patch the following tables are treated as MySQL system
tables:
mysql.help_category
mysql.help_keyword
mysql.help_relation
mysql.help_topic
mysql.proc (it already was)
mysql.time_zone
mysql.time_zone_leap_second
mysql.time_zone_name
mysql.time_zone_transition
mysql.time_zone_transition_type
These tables are now opened with open_system_tables_for_read() and
closed with close_system_tables(), or one table may be opened with
open_system_table_for_update() and closed with close_thread_tables()
(the latter is used for mysql.proc table, which is updated as part of
normal MySQL server operation). These functions may be used when
some tables were opened and locked already.
NOTE: online update of time zone tables is not possible during
replication, because there's no time zone cache flush neither on LOCK
TABLES, nor on FLUSH TABLES, so the master may serve stale time zone
data from cache, while on slave updated data will be loaded from the
time zone tables.
mysql-test/r/help.result:
Update result.
mysql-test/r/lock.result:
Update result.
mysql-test/r/sp-error.result:
Update result.
mysql-test/r/timezone2.result:
Add result for bug#9953: CONVERT_TZ requires mysql.time_zone_name
to be locked.
mysql-test/r/view.result:
Update result: use table t3 rather than utilize MySQL system table.
mysql-test/t/help.test:
Test that we can use HELP even under LOCK TABLES.
mysql-test/t/lock.test:
Test LOCK TABLE on system tables.
mysql-test/t/timezone2.test:
Add test case for bug#9953: CONVERT_TZ requires mysql.time_zone_name
to be locked.
mysql-test/t/view.test:
Update test: use table t3 rather that utilize MySQL system table.
sql/handler.h:
Fix comment for 'count' parameter of check_if_locking_is_allowed().
Add 'current' and 'system_count' parameters.
sql/item_create.cc:
We no longer have LEX::add_time_zone_tables_to_query_tables().
sql/item_timefunc.cc:
We no longer have LEX::time_zone_tables_used, so
Item_func_convert_tz::fix_fields() became the same as base
Item_date_func::fix_fields().
my_tz_find() no longer takes table list, but takes THD pointer now.
sql/item_timefunc.h:
Remove dead field and method.
sql/lock.cc:
Pass values for 'current' and 'system_count' to
check_if_locking_is_allowed().
sql/log_event.cc:
We no longer have my_tz_find_with_opening_tz_tables(), its functions is
performed by my_tz_find().
sql/mysql_priv.h:
Add functions to work with MySQL system tables.
sql/set_var.cc:
my_tz_find() no longer takes table list, but takes THD pointer now.
sql/sp.cc:
Remove close_proc_table(). Use close_system_tables() instead.
Use open_system_tables_for_read() and open_system_table_for_update().
sql/sp.h:
Remove close_proc_table() declaration.
sql/sql_base.cc:
Add implementation of open_system_tables_for_read(),
close_system_tables(), open_system_table_for_update().
sql/sql_help.cc:
Operate on MySQL system tables mysql.help_* with
open_system_tables_for_read() and close_system_tables() to allow the
usage of HELP statement under LOCK TABLES.
sql/sql_lex.cc:
Remove LEX::time_zone_tables_used and
LEX::add_time_zone_tables_to_query_tables() which are no longer used.
sql/sql_lex.h:
Remove LEX::time_zone_tables_used and
LEX::add_time_zone_tables_to_query_tables() which are no longer used.
sql/sql_parse.cc:
Remove references to LEX::time_zone_tables_used and
my_tz_check_n_skip_implicit_tables() which are no longer used.
sql/sql_show.cc:
Use close_system_tables() instead of removed close_proc_table().
sql/sql_view.cc:
LEX::time_zone_tables_used is no longer there.
sql/sql_yacc.yy:
LEX::add_time_zone_tables_to_query_tables() is no longer there.
sql/table.cc:
Add more tables that should be treated as MySQL system tables.
sql/share/errmsg.txt:
Change the error message, as now we allow write-locking of several
system tables if not mixed with ordinary tables.
sql/tztime.cc:
Do not add time zone tables to the list of query tables in
tz_init_table_list().
Remove fake_time_zone_tables_list and my_tz_get_tables_list().
In my_tz_init(), open mysql.time_zone_leap_second with
simple_open_n_lock_tables(), but pass time zone name to my_tz_find(),
which will open and close time zone tables as necessary.
In tz_load_from_open_tables() do not call table->use_all_columns(), as
this was already done in open_system_tables_for_read().
my_tz_find() takes THD pointer instead of table list, and calls
open_system_tables_for_read() and close_system_tables() as necessary.
Remove my_tz_find_with_opening_tz_tables().
sql/tztime.h:
Remove declarations of my_tz_get_table_list(),
my_tz_find_with_opening_tz_tables(), fake_time_zone_tables_list,
definition of my_tz_check_n_skip_implicit_tables().
Update prototype for my_tz_find().
storage/csv/ha_tina.cc:
Add new parameters to check_if_locking_is_allowed().
storage/csv/ha_tina.h:
Add new parameters to check_if_locking_is_allowed().
storage/myisam/ha_myisam.cc:
Add new parameters to check_if_locking_is_allowed(). In this
function we count system tables. If there are system tables, but
there are also non-system tables, we report an error.
storage/myisam/ha_myisam.h:
Add new parameters to check_if_locking_is_allowed().
into weblab.(none):/home/marcsql/TREE/mysql-5.0-8407_b
mysql-test/r/view.result:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
sql/sql_base.cc:
Manual merge
into weblab.(none):/home/marcsql/TREE/mysql-5.1-8407-merge
mysql-test/r/information_schema_db.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/lock.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
Bug 18914 (Calling certain SPs from triggers fail)
Bug 20713 (Functions will not not continue for SQLSTATE VALUE '42S02')
Bug 21825 (Incorrect message error deleting records in a table with a
trigger for inserting)
Bug 22580 (DROP TABLE in nested stored procedure causes strange dependency
error)
Bug 25345 (Cursors from Functions)
This fix resolves a long standing issue originally reported with bug 8407,
which affect the behavior of Stored Procedures, Stored Functions and Trigger
in many different ways, causing symptoms reported by all the bugs listed.
In all cases, the root cause of the problem traces back to 8407 and how the
server locks tables involved with sub statements.
Prior to this fix, the implementation of stored routines would:
- compute the transitive closure of all the tables referenced by a top level
statement
- open and lock all the tables involved
- execute the top level statement
"transitive closure of tables" means collecting:
- all the tables,
- all the stored functions,
- all the views,
- all the table triggers
- all the stored procedures
involved, and recursively inspect these objects definition to find more
references to more objects, until the list of every object referenced does
not grow any more.
This mechanism is known as "pre-locking" tables before execution.
The motivation for locking all the tables (possibly) used at once is to
prevent dead locks.
One problem with this approach is that, if the execution path the code
really takes during runtime does not use a given table, and if the table is
missing, the server would not execute the statement.
This in particular has a major impact on triggers, since a missing table
referenced by an update/delete trigger would prevent an insert trigger to run.
Another problem is that stored routines might define SQL exception handlers
to deal with missing tables, but the server implementation would never give
user code a chance to execute this logic, since the routine is never
executed when a missing table cause the pre-locking code to fail.
With this fix, the internal implementation of the pre-locking code has been
relaxed of some constraints, so that failure to open a table does not
necessarily prevent execution of a stored routine.
In particular, the pre-locking mechanism is now behaving as follows:
1) the first step, to compute the transitive closure of all the tables
possibly referenced by a statement, is unchanged.
2) the next step, which is to open all the tables involved, only attempts
to open the tables added by the pre-locking code, but silently fails without
reporting any error or invoking any exception handler is the table is not
present. This is achieved by trapping internal errors with
Prelock_error_handler
3) the locking step only locks tables that were successfully opened.
4) when executing sub statements, the list of tables used by each statements
is evaluated as before. The tables needed by the sub statement are expected
to be already opened and locked. Statement referencing tables that were not
opened in step 2) will fail to find the table in the open list, and only at
this point will execution of the user code fail.
5) when a runtime exception is raised at 4), the instruction continuation
destination (the next instruction to execute in case of SQL continue
handlers) is evaluated.
This is achieved with sp_instr::exec_open_and_lock_tables()
6) if a user exception handler is present in the stored routine, that
handler is invoked as usual, so that ER_NO_SUCH_TABLE exceptions can be
trapped by stored routines. If no handler exists, then the runtime execution
will fail as expected.
With all these changes, a side effect is that view security is impacted, in
two different ways.
First, a view defined as "select stored_function()", where the stored
function references a table that may not exist, is considered valid.
The rationale is that, because the stored function might trap exceptions
during execution and still return a valid result, there is no way to decide
when the view is created if a missing table really cause the view to be invalid.
Secondly, testing for existence of tables is now done later during
execution. View security, which consist of trapping errors and return a
generic ER_VIEW_INVALID (to prevent disclosing information) was only
implemented at very specific phases covering *opening* tables, but not
covering the runtime execution. Because of this existing limitation,
errors that were previously trapped and converted into ER_VIEW_INVALID are
not trapped, causing table names to be reported to the user.
This change is exposing an existing problem, which is independent and will
be resolved separately.
mysql-test/r/information_schema_db.result:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/r/sp-error.result:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/r/sp.result:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/r/trigger.result:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/r/view.result:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/t/sp-error.test:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/t/sp.test:
Revised the pre-locking code implementation, aligned the tests.
mysql-test/t/trigger.test:
Revised the pre-locking code implementation, aligned the tests.
sql/lock.cc:
table->placeholder now checks for schema_table
sql/mysqld.cc:
my_message_sql(): invoke internal exception handlers
sql/sp_head.cc:
exec_open_and_lock_tables(): open and lock tables, or return the
continuation destination of this instruction
sql/sp_head.h:
exec_open_and_lock_tables(): open and lock tables, or return the
continuation destination of this instruction
sql/sql_base.cc:
Prelock_error_handler: delay open table errors until execution
sql/sql_class.cc:
THD: add internal error handler, as an exception mechanism.
sql/sql_class.h:
THD: add internal error handler, as an exception mechanism.
sql/sql_update.cc:
table->placeholder now checks for schema_table
sql/table.cc:
st_table_list::hide_view_error(): masked more errors for view security
sql/table.h:
table->placeholder now checks for schema_table, and unopened tables
which accidentally got broken during the merge
on 16-Feb-2007.
mysql-test/r/view.result:
Updated result file.
mysql-test/t/view.test:
Fix test for views with national characters,
which accidentally got broken during the merge
on 16-Feb-2007.
Now view.test is in UTF8 character set,
so SET NAMES is required.
into weblab.(none):/home/marcsql/TREE/mysql-5.1-24532-merge
mysql-test/r/func_if.result:
Auto merged
mysql-test/r/view.result:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
operations)
Before this change, the boolean predicates:
- X IS TRUE,
- X IS NOT TRUE,
- X IS FALSE,
- X IS NOT FALSE
were implemented by expanding the Item tree in the parser, by using a
construct like:
Item_func_if(Item_func_ifnull(X, <value>), <value>, <value>)
Each <value> was a constant integer, either 0 or 1.
A bug in the implementation of the function IF(a, b, c), in
Item_func_if::fix_length_and_dec(), would cause the following :
When the arguments b and c are both unsigned, the result type of the
function was signed, instead of unsigned.
When the result of the if function is signed, space for the sign could be
counted twice (in the max() expression for a signed argument, and in the
total), causing the member max_length to be too high.
An effect of this is that the final type of IF(x, int(1), int(1)) would be
int(2) instead of int(1).
With this fix, the problems found in Item_func_if::fix_length_and_dec()
have been fixed.
While it's semantically correct to represent 'X IS TRUE' with
Item_func_if(Item_func_ifnull(X, <value>), <value>, <value>),
there are however more problems with this construct.
a)
Building the parse tree involves :
- creating 5 Item instances (3 ints, 1 ifnull, 1 if),
- creating each Item calls my_pthread_getspecific_ptr() once in the operator
new(size), and a second time in the Item::Item() constructor, resulting
in a total of 10 calls to get the current thread.
Evaluating the expression involves evaluating up to 4 nodes at runtime.
This representation could be greatly simplified and improved.
b)
Transforming the parse tree internally with if(ifnull(...)) is fine as long
as this transformation is internal to the server implementation.
With views however, the result of the parse tree is later exposed by the
::print() functions, and stored as part of the view definition.
Doing this has long term consequences:
1)
The original semantic 'X IS TRUE' is lost, and replaced by the
if(ifnull(...)) expression. As a result, SHOW CREATE VIEW does not restore
the original code.
2)
Should a future version of MySQL implement the SQL BOOLEAN data type for
example, views created today using 'X IS NULL' can be exported using
mysqldump, and imported again. Such views would be converted correctly and
automatically to use a BOOLEAN column in the future version.
With 'X IS TRUE' and the current implementations, views using these
"boolean" predicates would not be converted during the export/import, and
would use integer columns instead.
The difference traces back to how SHOW CREATE VIEW preserves 'X IS NULL' but
does not preserve the 'X IS TRUE' semantic.
With this fix, internal representation of 'X IS TRUE' booleans predicates
has changed, so that:
- dedicated Item classes are created for each predicate,
- only 1 Item is created to represent 1 predicate
- my_pthread_getspecific_ptr() is invoked 1 time instead of 10
- SHOW CREATE VIEW preserves the original semantic, and prints 'X IS TRUE'.
Note that, because of the fix in Item_func_if, views created before this fix
will:
- correctly use a int(1) type instead of int(2) for boolean predicates,
- incorrectly print the if(ifnull(...), ...) expression in SHOW CREATE VIEW,
since the original semantic (X IS TRUE) has been lost.
- except for the syntax used in SHOW CREATE VIEW, these views will operate
properly, no action is needed.
Views created after this fix will operate correctly, and will preserve the
original code semantic in SHOW CREATE VIEW.
mysql-test/r/func_if.result:
IF(x, unsigned, unsigned) should be unsigned.
mysql-test/r/view.result:
Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
mysql-test/t/func_if.test:
IF(x, unsigned, unsigned) should be unsigned.
mysql-test/t/view.test:
Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
sql/item_cmpfunc.cc:
Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
IF(x, unsigned, unsigned) should be unsigned.
sql/item_cmpfunc.h:
Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
sql/sql_yacc.yy:
Preserve the semantic of 'X IS [NOT] (TRUE|FALSE)' boolean predicates.
into moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1
mysql-test/r/view.result:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
mysql-test/t/view.test:
Manual merge.
fails
The bug was introduced with the push of the fix for bug#20953: after
the error on view creation we never reset the error state, so some
valid statements would give the same error after that.
The solution is to properly reset the error state.
mysql-test/r/view.result:
Add result for bug#25897: Some queries are no longer possible after
a CREATE VIEW fails.
mysql-test/t/view.test:
Add test case for bug#25897: Some queries are no longer possible after
a CREATE VIEW fails.
sql/sql_lex.cc:
Add st_parsing_options::reset() method, call it from lex_start().
sql/sql_lex.h:
Add st_parsing_options::reset() method, call it from constructor.
mysql-test/r/create.result:
Fixed error number
mysql-test/r/rpl_sp.result:
Fixed error number
mysql-test/r/sp.result:
Fixed error number
mysql-test/r/view.result:
Better fix for now() handling
mysql-test/t/ndb_basic.test:
Use error names instead of numbers
mysql-test/t/ndb_index_unique.test:
Use error names instead of numbers
mysql-test/t/rpl_skip_error-slave.opt:
Change to new error number
mysql-test/t/sp.test:
Change to new error number
mysql-test/t/view.test:
Better fix for now() handling
into mysql.com:/home/my/mysql-5.1
BUILD/SETUP.sh:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/delayed.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/insert_select.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
mysql-test/t/rpl_row_create_table.test:
Auto merged
mysql-test/t/rpl_sp.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/type_binary.test:
Auto merged
mysql-test/t/type_varchar.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/handler.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/rpl_sp.result:
Manual merge
mysql-test/t/ndb_update.test:
Manual merge
sql/share/errmsg.txt:
Manual merge
Changed error message to be compatible with old error file
Added new error message for new DUP_ENTRY syntax
BUILD/SETUP.sh:
Give warnings for unused objects
mysql-test/extra/binlog_tests/insert_select-binlog.test:
Changed to use new error message
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_insert_id.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_loaddata.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
Changed to use new error message
mysql-test/extra/rpl_tests/rpl_trig004.test:
Changed to use new error message
mysql-test/include/mix1.inc:
Changed to use new error message
mysql-test/include/mix2.inc:
Changed to use new error message
mysql-test/include/ps_modify.inc:
Changed to use new error message
mysql-test/include/query_cache.inc:
Changed to use new error message
mysql-test/include/varchar.inc:
Changed to use new error message
mysql-test/r/create.result:
Changed to use new error message
mysql-test/r/rpl_sp.result:
Changed to use new error message
mysql-test/r/sp.result:
Changed to use new error message
mysql-test/r/view.result:
Changed to use new error message
mysql-test/t/auto_increment.test:
Changed to use new error message
mysql-test/t/create.test:
Changed to use new error message
mysql-test/t/create_select_tmp.test:
Changed to use new error message
mysql-test/t/ctype_utf8.test:
Changed to use new error message
mysql-test/t/delayed.test:
Changed to use new error message
mysql-test/t/heap.test:
Changed to use new error message
mysql-test/t/heap_btree.test:
Changed to use new error message
mysql-test/t/heap_hash.test:
Changed to use new error message
mysql-test/t/innodb.test:
Changed to use new error message
mysql-test/t/insert_select.test:
Changed to use new error message
mysql-test/t/insert_update.test:
Changed to use new error message
mysql-test/t/join_outer.test:
Changed to use new error message
mysql-test/t/key.test:
Changed to use new error message
mysql-test/t/merge.test:
Changed to use new error message
mysql-test/t/myisam.test:
Changed to use new error message
mysql-test/t/ndb_charset.test:
Changed to use new error message
mysql-test/t/ndb_index_unique.test:
Changed to use new error message
mysql-test/t/ndb_insert.test:
Changed to use new error message
mysql-test/t/ndb_replace.test:
Changed to use new error message
mysql-test/t/ndb_update.test:
Changed to use new error message
mysql-test/t/replace.test:
Changed to use new error message
mysql-test/t/rpl_err_ignoredtable.test:
Changed to use new error message
mysql-test/t/rpl_row_create_table.test:
Changed to use new error message
mysql-test/t/rpl_skip_error-slave.opt:
Changed to use new error message
mysql-test/t/rpl_sp.test:
Changed to use new error message
mysql-test/t/show_check.test:
Changed to use new error message
mysql-test/t/sp-error.test:
Changed to use new error message
mysql-test/t/sp.test:
Changed to use new error message
mysql-test/t/sp_trans.test:
Changed to use new error message
mysql-test/t/temp_table.test:
Changed to use new error message
mysql-test/t/type_binary.test:
Changed to use new error message
mysql-test/t/type_bit.test:
Changed to use new error message
mysql-test/t/type_bit_innodb.test:
Changed to use new error message
mysql-test/t/type_blob.test:
Changed to use new error message
mysql-test/t/type_varchar.test:
Changed to use new error message
mysql-test/t/view.test:
Changed to use new error message
sql/handler.cc:
ER_DUP_ENTRY -> ER_DUP_ENTRY_WITH_KEY_NAME
sql/share/errmsg.txt:
Changed error message to be compatible with old error file
Added new error message for new DUP_ENTRY syntax
sql/sql_table.cc:
ER_DUP_ENTRY -> ER_DUP_ENTRY_WITH_KEY_NAME
sql-bench/example:
Example file for how to run tests
into siva.hindu.god:/home/tsmith/m/bk/mrg-jan17/maint/51
BUILD/check-cpu:
Auto merged
configure.in:
Auto merged
include/my_global.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/type_enum.result:
Auto merged
mysql-test/r/udf.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/mysqladmin.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/type_enum.test:
Auto merged
mysql-test/t/view.test:
Auto merged
mysys/my_read.c:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
server-tools/instance-manager/Makefile.am:
Auto merged
sql/event_queue.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_sum.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/table.cc:
Auto merged
storage/federated/ha_federated.cc:
Auto merged
server-tools/instance-manager/instance.cc:
Use remote (global 5.1 version)
sql/unireg.cc:
Use remote (5.1 global version)
mysql-test/t/trigger.test:
Manual merge
server-tools/instance-manager/guardian.cc:
Manual merge
into bodhi.local:/opt/local/work/mysql-5.1-root
BitKeeper/deleted/.del-mysql.dsw~7ea9e16395f139f4:
Auto merged
mysql-test/r/view.result:
Auto merged
BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56:
Auto merged
BitKeeper/deleted/.del-mysqldemb.dsp~1baf8c0e59ee9f7e:
Auto merged
BitKeeper/deleted/.del-mysqldmax.dsp~5d213fe1c204142e:
Auto merged
mysys/my_read.c:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
server-tools/instance-manager/listener.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_string.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/heap/hp_block.c:
Auto merged
storage/heap/hp_write.c:
Auto merged
storage/innobase/buf/buf0buf.c:
Auto merged
storage/innobase/dict/dict0dict.c:
Auto merged
storage/innobase/fil/fil0fil.c:
Auto merged
storage/innobase/ha/ha0ha.c:
Auto merged
storage/innobase/include/hash0hash.h:
Auto merged
storage/innobase/lock/lock0lock.c:
Auto merged
storage/innobase/log/log0recv.c:
Auto merged
support-files/MySQL-shared-compat.spec.sh:
Auto merged
tests/mysql_client_test.c:
Auto merged
BitKeeper/deleted/.del-libmysqld.dsp~78dc6a589e5a4149:
SCCS merged
mysql-test/t/view.test:
Manual merge.
into bodhi.local:/opt/local/work/mysql-5.0-runtime
heap/hp_block.c:
Auto merged
mysql-test/r/view.result:
Auto merged
server-tools/instance-manager/listener.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_string.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tests/mysql_client_test.c:
Auto merged
heap/hp_write.c:
SCCS merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint-greener
Makefile.am:
Auto merged
configure.in:
Auto merged
include/mysql.h:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/myisam.test:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
scripts/mysqlbug.sh:
Auto merged
server-tools/instance-manager/Makefile.am:
Auto merged
sql/event_queue.cc:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_sum.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_show.cc:
Auto merged
storage/federated/ha_federated.cc:
Auto merged
mysql-test/r/warnings.result:
Manual merge.
mysql-test/t/warnings.test:
Manual merge.
strings/ctype-extra.c:
Manual merge.
If SELECT-part of CREATE VIEW statement contains '\Z',
it is not handled correctly.
The problem was in String::print().
Symbol with code 032 (26) is replaced with '\z',
which is not supported by the lexer.
The fix is to replace the symbol with '\Z'.
mysql-test/r/view.result:
Update result file.
mysql-test/t/view.test:
Add test case for BUG#24293.
sql/sql_string.cc:
We should replace 032 with \Z, since lexer does not understand \z.
into mysql.com:/home/bk/MERGE/mysql-5.1-merge
BitKeeper/etc/collapsed:
auto-union
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
BitKeeper/etc/collapsed:
auto-union
include/m_ctype.h:
Auto merged
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
unittest/mytap/tap.c:
Auto merged
sql/log_event.cc:
manual merge
sql/sql_class.cc:
manual merge
into alik.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged-2
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/kill.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/rename.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/handler.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/lex.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/time.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/mysql-test-run.pl:
Manually merged.
sql/sql_parse.cc:
Manually merged.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
BitKeeper/deleted/.del-CMakeLists.txt~1:
Auto merged
BitKeeper/deleted/.del-make_win_bin_dist:
Auto merged
configure.in:
Auto merged
include/my_global.h:
Auto merged
include/mysql.h:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/log_tables.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/im_daemon_life_cycle.imtest:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/trigger.test:
Auto merged
mysql-test/t/view.test:
Auto merged
netware/BUILD/mwenv:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/Makefile.am:
Auto merged
sql/handler.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
include/my_time.h:
manual merge.
mysql-test/mysql-test-run.pl:
manual merge.
mysql-test/r/ps.result:
manual merge.
mysql-test/t/disabled.def:
manual merge.
mysql-test/t/ps.test:
manual merge.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/im_daemon_life_cycle.imtest:
Auto merged
mysql-test/t/innodb_mysql.test:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/mysql-test-run.pl:
Manual merge.
mysql-test/r/ps.result:
Manual merge.
mysql-test/t/ps.test:
Manual merge.
into weblab.(none):/home/marcsql/TREE/mysql-5.1-21114_b
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Due to the complexity of this change, everything is documented in WL#3565
This patch is the third iteration, it takes into account the comments
received to date.
mysql-test/r/func_math.result:
Improved test coverage
mysql-test/r/view.result:
Name collision, x() is a geometry native in function
mysql-test/t/func_math.test:
Improved test coverage
mysql-test/t/view.test:
Name collision, x() is a geometry native in function
sql/item_create.cc:
Revised the create_func implementation
sql/item_create.h:
Revised the create_func implementation
sql/item_geofunc.h:
Explicit Item allocation in the thread memory pool.
sql/lex.h:
Removed function parsing from the lexical parser
sql/lex_symbol.h:
Removed function parsing from the lexical parser
sql/mysql_priv.h:
Server initialization and shutdown
sql/mysqld.cc:
Server initialization and shutdown
sql/share/errmsg.txt:
New error messages
sql/sql_yacc.yy:
Removed function parsing from the lexical parser
tests/mysql_client_test.c:
Spaces are no longer significant for function calls
mysql-test/include/parser_bug21114.inc:
New tests
mysql-test/r/parser.result:
New tests
mysql-test/r/parser_bug21114_innodb.result:
New tests
mysql-test/t/parser.test:
New tests
mysql-test/t/parser_bug21114_innodb.test:
New tests
a updatable view.
When there's a VIEW on a base table that have AUTO_INCREMENT column, and
this VIEW doesn't provide an access such column, after INSERT to such
VIEW LAST_INSERT_ID() did not return the value just generated.
This behaviour is intended and correct, because if the VIEW doesn't list
some columns then these columns are effectively hidden from the user,
and so any side effects of inserting default values to them.
However, there was a bug that such statement inserting into a view would
reset LAST_INSERT_ID() instead of leaving it unchanged.
This patch restores the original value of LAST_INSERT_ID() instead of
resetting it to zero.
mysql-test/r/view.result:
Add result for bug#22584: last_insert_id not updated after inserting
a record through a updatable view.
mysql-test/t/view.test:
Add test case for bug#22584: last_insert_id not updated after inserting
a record through a updatable view.
sql/sql_parse.cc:
When we have inserted into a view, and AUTO_INCREMENT column is not
accessed from this view, instead of setting LAST_INSERT_ID to zero set
it to the value it had before this statement was executed.
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_show.cc:
Auto merged
storage/myisam/mi_open.c:
Auto merged
into siva.hindu.god:/usr/home/tim/m/bk/50
configure.in:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/view.test:
Auto merged
mysys/mf_iocache.c:
Auto merged
sql/item_func.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/table.cc:
Auto merged
myisam/sort.c:
Manual merge
mysql-test/r/innodb_mysql.result:
Manual merge
mysql-test/t/innodb_mysql.test:
Manual merge
into siva.hindu.god:/usr/home/tim/m/bk/51
include/m_ctype.h:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/view.test:
Auto merged
mysys/mf_iocache.c:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
storage/myisam/sort.c:
Manual merge
mysql-test/r/sp.result:
Update results.
mysql-test/r/view.result:
Update results.
server-tools/instance-manager/guardian.cc:
Post-merge fixes (instance_name is a LEX_STRING).
server-tools/instance-manager/instance.cc:
Post-merge fixes (instance_name is a LEX_STRING).
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
mysql-test/r/ps.result:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/view.result:
Manual merge.
mysql-test/t/view.test:
Manual merge.
into bodhi.local:/opt/local/work/mysql-5.0-runtime-merge
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/r/view.result:
Manual merge.
mysql-test/t/view.test:
Manual merge.
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.1-opt
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/table.cc:
Auto merged
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
mysql-test/r/merge.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/view.result:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
BitKeeper/deleted/.del-collapsed:
auto-union
BitKeeper/etc/collapsed:
auto-union
Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
include/my_dbug.h:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/csv.result:
Auto merged
mysql-test/r/mysql.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/csv.test:
Auto merged
mysql-test/t/mysql.test:
Auto merged
netware/BUILD/compile-netware-END:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_view.h:
Auto merged
sql-common/my_time.c:
Auto merged
sql/time.cc:
Auto merged
vio/viosocket.c:
Auto merged
vio/viossl.c:
Auto merged
mysql-test/include/mix1.inc:
Manual merge.
mysql-test/r/func_time.result:
Manual merge.
mysql-test/r/innodb_mysql.result:
Manual merge.
mysql-test/t/func_time.test:
Manual merge.
mysql-test/t/view.test:
Manual merge.
sql/sql_view.cc:
Manual merge.
Remove table engine qualification where it's unnecessary.
mysql-test/r/view.result:
Remove requirement for innodb where not needed. (Running this test alone
raised warnings that it was using myisam.)
mysql-test/t/view.test:
Remove requirement for innodb where not needed. (Running this test alone
raised warnings that it was using myisam.)
sql/sql_parse.cc:
Fix previous bad re-patch.
sql/sql_view.cc:
Fix previous bad re-patch.
Problem: renaming of FRM file and ARC files didn't use file name
encoding, so RENAME TABLE for views failed for views having
"tricky" characters in their names.
Fix: adding build_table_filename() in missing places.
mysql-test/r/view.result:
Adding test case
mysql-test/t/view.test:
Adding test case
sql/parse_file.cc:
Adding build_table_filename()
sql/sql_view.cc:
Adding build_table_filename()
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug20953
mysql-test/r/view.result:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/sp-error.result:
Manual merge.
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-bug20953
mysql-test/r/view.result:
Auto merged
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/sp-error.result:
Manual merge.
should fail to create
The problem was that this type of errors was checked during view
creation, which doesn't happen when CREATE VIEW is a statement of
a created stored routine.
The solution is to perform the checks at parse time. The idea of the
fix is that the parser checks if a construction just parsed is allowed
in current circumstances by testing certain flags, and this flags are
reset for VIEWs.
The side effect of this change is that if the user already have
such bogus routines, it will now get a error when trying to do
SHOW CREATE PROCEDURE proc;
(and some other) and when trying to execute such routine he will get
ERROR 1457 (HY000): Failed to load routine test.p5. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
However there should be very few such users (if any), and they may
(and should) drop these bogus routines.
mysql-test/r/sp-error.result:
Add result for bug#20953: create proc with a create view that uses
local vars/params should fail to create.
mysql-test/r/view.result:
Update results.
mysql-test/t/sp-error.test:
Add test case for bug#20953: create proc with a create view that uses
local vars/params should fail to create.
mysql-test/t/view.test:
Add second test for variable in a view.
Remove SP variable in a view test, as it tests wrong behaviour.
Add test for derived table in a view.
sql/sql_lex.cc:
Remove LEX::variables_used.
sql/sql_lex.h:
Remove LEX::variables_used and add st_parsing_options structure and
LEX::parsing_options member.
sql/sql_view.cc:
Move some error checking to sql/sql_yacc.yy.
sql/sql_yacc.yy:
Check for disallowed syntax in a CREATE VIEW at parse time to rise a
error when it is used inside CREATE PROCEDURE and CREATE FUNCTION, as
well as by itself.
In a trigger or a function used in a statement it is possible to do
SELECT from a table being modified by the statement. However,
encapsulation of such SELECT into a view and selecting from a view
instead of direct SELECT was not possible.
This happened because tables used by views (which in their turn
were used from functions/triggers) were not excluded from checks
in unique_table() routine as it happens for the rest of tables
added to the statement table list for prelocking.
With this fix we ignore all such tables in unique_table(), thus
providing consistency: inside a trigger or a functions SELECT from
a view may be used where plain SELECT is allowed. Modification of
the same table from function or trigger is still disallowed. Also,
this patch doesn't affect the case where SELECT from the table being
modified is done outside of function of trigger, such SELECTs are
still disallowed (this limitation and visibility problem when function
select from a table being modified are subjects of bug 21326). See
also bug 22427.
mysql-test/r/view.result:
Add result for bug#19111: TRIGGERs selecting from a VIEW on the
firing base table fail.
mysql-test/t/view.test:
Add test case for bug#19111: TRIGGERs selecting from a VIEW on the
firing base table fail.
sql/sql_base.cc:
In unique_table() do not check tables that are used in a stored
function or a trigger ('prelocking_placeholder' is set). If such
function or a trigger will attempt to modify a table, the error will
be given, however select is allowed there.
BitKeeper/deleted/.del-ps_6bdb.result:
Auto merged
client/mysql.cc:
Auto merged
include/m_ctype.h:
Auto merged
mysql-test/r/cast.result:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/strict.test:
Auto merged
sql/field_conv.cc:
Auto merged
sql/item_func.cc:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-bin.c:
Auto merged
strings/ctype-cp932.c:
Auto merged
strings/ctype-euc_kr.c:
Auto merged
strings/ctype-eucjpms.c:
Auto merged
strings/ctype-gb2312.c:
Auto merged
strings/ctype-gbk.c:
Auto merged
strings/ctype-latin1.c:
Auto merged
strings/ctype-sjis.c:
Auto merged
strings/ctype-tis620.c:
Auto merged
strings/ctype-ucs2.c:
Auto merged
strings/ctype-ujis.c:
Auto merged
strings/ctype-utf8.c:
Auto merged
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
into mysql.com:/usr/home/bar/mysql-5.0.b6147rpl
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/strict.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/r/warnings.result:
Auto merged
mysql-test/t/strict.test:
Auto merged
sql/field.cc:
Auto merged
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.1-opt
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
We use the condition from CHECK OPTION twice handling UPDATE command.
First we construnct 'update_cond' AND 'option_cond'
condition to select records to be updated, then we check the
'option_cond' for the updated row.
The problem is that first 'AND' condition is optimized during the 'select'
which can break 'option_cond' structure, so it will be unusable for
the sectond use - to check the updated row.
Possible soultion is either use copy of the condition in the first
use or to make optimization less traumatic for the operands.
I picked the first one.
mysql-test/r/view.result:
result fixed
mysql-test/t/view.test:
testcase
sql/table.cc:
now we use the copy of the CHECK OPTION condition to construct
the select's condition
into moonbone.local:/work/5505-bug-5.0-opt-mysql
sql/share/errmsg.txt:
Auto merged
sql/sql_base.cc:
Auto merged
mysql-test/r/view.result:
Manual merge
mysql-test/t/view.test:
Manual merge
On an INSERT into an updatable but non-insertable view an error message was
issued stating the view being not updatable. This can lead to a confusion of a
user.
A new error message is introduced. Is is showed when a user tries to insert
into a non-insertable view.
sql/sql_base.cc:
Fixed bug#5505: Wrong error message on INSERT into a view
The update_non_unique_table_error() function now issues proper
error for an INSERT.
sql/sql_insert.cc:
Fixed bug#5505: Wrong error message on INSERT into a view
Issue the ER_NON_INSERTABLE_TABLE error instead of the
ER_NON_UPDATABLE_TABLE on insert into a view.
sql/sql_view.cc:
Fixed bug#5505: Wrong error message on INSERT into a view
Issue the ER_NON_INSERTABLE_TABLE error instead of the
ER_NON_UPDATABLE_TABLE on insert into a view.
mysql-test/r/view.result:
Added the test case for bug#5505: Wrong error message on INSERT into a view
Corrected a few test cases after fixing bug#5505
mysql-test/t/view.test:
Added the test case for bug#5505: Wrong error message on INSERT into a view
Corrected a few test cases after fixing bug#5505
sql/share/errmsg.txt:
Fixed bug#5505: Wrong error message on INSERT into a view
Added the ER_NON_INSERTABLE_TABLE error definition.
into macbook.gmz:/Users/kgeorge/mysql/work/B21174-5.1-opt
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/group_by.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/field.h:
Auto merged
sql/filesort.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/myisam/mi_check.c:
Auto merged
mysql-test/r/ps.result:
merge 5.0-opt -> 5.1-opt
sql/unireg.cc:
merge 5.0-opt -> 5.1-opt
Presence of a subquery in the ON expression of a join
should not block merging the view that contains this join.
Before this patch the such views were converted into
into temporary table views.
mysql-test/r/view.result:
Added a test case for bug #21646.
mysql-test/t/view.test:
Added a test case for bug #21646.
sql/mysql_priv.h:
Fixed bug #21646.
Added a new parsing state 'IN_ON', true when
the parser is in an ON expression of a join.
sql/sql_lex.cc:
Fixed bug #21646.
Presence of a subquery in the ON expression of a join
should not block merging the view that contains this join.
sql/sql_yacc.yy:
Fixed bug #21646.
Added a new parsing state 'IN_ON', true when
the parser is in an ON expression of a join.
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.1
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/group_by.result:
Auto merged
mysql-test/r/heap_hash.result:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/olap.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/range.result:
Auto merged
mysql-test/r/row.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/type_date.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/func_group.test:
Auto merged
mysql-test/t/func_str.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_list.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/t/sp.test:
SCCS merged
sql/item_cmpfunc.cc:
SCCS merged
sql/sql_select.cc:
SCCS merged
into dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/item.h:
SCCS merged
Select_type in the EXPLAIN output for the query SELECT * FROM t1 was
'SIMPLE', while for the query SELECT * FROM v1, where the view v1
was defined as SELECT * FROM t1, the EXPLAIN output contained 'PRIMARY'
for the select_type column.
mysql-test/r/group_by.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/information_schema.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/olap.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/range.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/view.result:
Added a test case for bug #5500.
Adjusted other results.
mysql-test/r/view_grant.result:
Adjusted results after the fix for bug #5500.
mysql-test/t/view.test:
Added a test case for bug #5500.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
include/config-netware.h:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/trigger.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/share/errmsg.txt:
SCCS merged
configure.in:
SCCS merged
sql/sql_base.cc:
SCCS merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/r/grant.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_acl.cc:
Auto merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/im_life_cycle.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/im_life_cycle.imtest:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_yacc.yy:
Auto merged
configure.in:
Manual merge.
mysql-test/r/grant.result:
manual merge.
into moonbone.local:/work/tmp_merge-5.1-mysql
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/r/view.result:
SCCS merged
mysql-test/t/view.test:
SCCS merged