Collect all tables and SPs refered by a statement, and open all tables
with an implicit LOCK TABLES. Do find things refered by triggers and views,
we open them first (and then repeat this until nothing new is found), before
doing the actual lock tables.
mysql-test/r/information_schema.result:
Updated result for WL#2130.
mysql-test/r/lock.result:
Updated result for WL#2130.
mysql-test/r/sp-error.result:
Updated result for WL#2130.
mysql-test/r/sp.result:
Updated result for WL#2130.
mysql-test/r/view.result:
Updated result for WL#2130.
mysql-test/t/information_schema.test:
Disabled one test case due to a bug involving LOCK TABLES,
which shows up with WL#2130.
mysql-test/t/lock.test:
New error message with WL#2130. This change is under debate and might change
in the future, but will do for now.
mysql-test/t/sp-error.test:
Updated for WL#2130. Some tests are voided when table access does work from
functions.
mysql-test/t/sp.test:
Updated for WL#2130.
mysql-test/t/view.test:
Updated for WL#2130.
sql/item_func.cc:
We now have to set net.no_send_ok for functions too, with WL#2130.
sql/share/errmsg.txt:
Reused an error code since the old use was voided by WL#2130, but a new
one was needed instead (similar, but more specific restriction).
sql/sp.cc:
Fixed error handling and collection of used tables for WL#2130.
sql/sp.h:
Fixed error handling and collection of used tables for WL#2130.
sql/sp_head.cc:
Added support functions for collecting and merging hash tables and lists
of used tables from SPs and substatements, for WL#2130.
sql/sp_head.h:
Added support functions for collecting and merging hash tables and lists
of used tables from SPs and substatements, for WL#2130.
sql/sql_base.cc:
Changed the way table->query_id is tested and set during with locked tables
in effect. This makes some SP test cases work with WL#2130, but has a side
effect on some error cases with explicit LOCK TABLES. It's still debated if
this is the correct way, so it might change.
sql/sql_class.h:
Added flags for circumventing some interference between WL#2130 and mysql_make_view().
sql/sql_derived.cc:
Added some missing initializations. (Potential bugs.)
sql/sql_lex.cc:
Clear the new hash tables for WL#2130.
sql/sql_lex.h:
Added hash tables for procedures and tables too (as for functions), for WL#2130.
sql/sql_parse.cc:
WL#2130: Make table accesses from stored functions work by adding an implicit
LOCK TABLES around (most) executed statements. To do this, we have to go through
a loop where we collect all SPs and tables in mysql_execute_statement.
sql/sql_prepare.cc:
Cache both functions and procedures for WL#2130.
sql/sql_show.cc:
Added some missing initializations. (Potential bugs.)
sql/sql_view.cc:
Shortcut mysql_make_view() if thd->shortcut_make_view is true during
the pre-open phase for collecting tables in WL#2130. Otherwise, the
similar mechanism here causes interference.
sql/sql_yacc.yy:
For WL#2130, added caching of procedures and disallowed LOCK/UNLOCK TABLES in SPs.
Collect all tables and SPs refered by a statement, and open all tables
with an implicit LOCK TABLES. Do find things refered by triggers and views,
we open them first (and then repeat this until nothing new is found), before
doing the actual lock tables.
Row_format=Redundant
sql/ha_innodb.cc:
Implement get_row_type()
sql/ha_innodb.h:
Declare get_row_type()
sql/handler.h:
Declare get_row_type()
sql/sql_show.cc:
get_schema_tables_record(): Primarily invoke handler::get_row_type()
in order to determine the row type within the storage engine.
Secondarily use the old method of examining the HA_OPTION flags.
sql/item.cc:
After merge fixes (bug during merge)
sql/sql_show.cc:
Ensure that lex->all_select_list is properly reset on function end
(Caused crashes after merge)
into gluh.mysql.r18.ru:/home/gluh/MySQL/mysql-5.0
mysql-test/r/information_schema.result:
Auto merged
mysql-test/t/information_schema.test:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
- Do not allow a column list as part of SHOW WITH WHERE task.
- The WHERE clause must accept field names which are
valid in SHOW, not INFORMATION_SCHEMA names.
mysql-test/r/information_schema.result:
The test correction
mysql-test/t/information_schema.test:
The test correction
sql/sql_base.cc:
Process field translation table for 'show' commands
sql/sql_parse.cc:
schema_table_seformed is always true for 'show' commands
sql/sql_show.cc:
- Do not allow a column list as part of SHOW WITH WHERE task.
- The WHERE clause must accept field names which are
valid in SHOW, not INFORMATION_SCHEMA names.
sql/sql_yacc.yy:
Do not allow a column list as part of SHOW WITH WHERE task
sql/table.h:
A new 'schema_table_reformed' variable in table_list
If schema_table_reformed is true select items should be
translated using field translation table
- Do not allow a column list as part of SHOW WITH WHERE task.
- The WHERE clause must accept field names which are
valid in SHOW, not INFORMATION_SCHEMA names.
This patch collects all previous patches into one.
The main problem was due to that there is are two variables -
dflt_key_cache and sql_key_cache with have more or less duplicate
function. The reson for the bug was that the default value in the key
cache hash was set to dflt_key_cache, then sql_key_cache was set to a
new key cache object, and then dflt_key_cache was set to sql_key_cache
which was different from the dflt_key_cache_var. After sending SIGHUP,
the server was using the original default value for the key cache hash,
which was different from the actual key cache object used for the
default key cache.
include/keycache.h:
Import patch 4285.diff
mysys/mf_keycache.c:
Import patch 4285.diff
sql/mysql_priv.h:
Import patch 4285.diff
sql/mysqld.cc:
Import patch 4285.diff
sql/set_var.cc:
Import patch 4285.diff
sql/sql_parse.cc:
Import patch 4285.diff
sql/sql_show.cc:
Import patch 4285.diff
This patch collects all previous patches into one.
The main problem was due to that there is are two variables -
dflt_key_cache and sql_key_cache with have more or less duplicate
function. The reson for the bug was that the default value in the key
cache hash was set to dflt_key_cache, then sql_key_cache was set to a
new key cache object, and then dflt_key_cache was set to sql_key_cache
which was different from the dflt_key_cache_var. After sending SIGHUP,
the server was using the original default value for the key cache hash,
which was different from the actual key cache object used for the
default key cache.
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/t/show_check.test:
Auto merged
sql/sql_show.cc:
Merge with s/TYPE/USING/ fixes
sql/ha_federated.cc:
Change mode to -rw-rw-r--
myisam/mi_create.c:
Ensure that all referenced memory is reset
mysql-test/r/type_timestamp.result:
More tests
mysql-test/t/func_compress.test:
Added comment
mysql-test/t/type_timestamp.test:
More tests
sql/field.h:
Count number of varchars in table
sql/item_cmpfunc.cc:
Safety fix (to avoid warning from valgrind)
sql/opt_range.cc:
Simple optimzation
sql/sql_acl.cc:
Safety fix (to avoid warning from valgrind)
sql/sql_parse.cc:
Safety fix for prepared statements
sql/sql_show.cc:
Move variable declarations first in function
Remove hidden variable (it)
Remove accessing freed memory (table_list->table_name)
sql/sql_update.cc:
Compare records with varchars correctly
sql/table.cc:
Safety fix when running with purify/valgrind
Fix wrong memory reference in case of errors
sql/table.h:
Added counting of varchar fields
strings/ctype-mb.c:
Fill max_str properly
into mysql.com:/home/jwinstead2/mysql-5.0-clean
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/r/sql_mode.result:
Auto merged
mysql-test/t/show_check.test:
Auto merged
sql/sql_show.cc:
Auto merged
tables that support multiple index types. (Bug #7235)
sql/sql_show.cc:
Always output 'TYPE <indextype>' for indexes on tables with multiple index types
mysql-test/r/ctype_utf8.result:
Fix results for test
Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
Created Field::make_field() and made Field_num::make_field() to call this
Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
Renamed TABLE_SHARE->real_name to table_name
Renamed TABLE->table_name to alias
Renamed TABLE_LIST->real_name to table_name
include/myisam.h:
Added const before names
mysql-test/r/group_min_max.result:
Make results repeatable
mysql-test/t/group_min_max.test:
Make results repeatable
sql/field.cc:
Created Field::make_field() and made Field_num::make_field() to call this
Use TABLE_SHARE
Use sql_strmake() instead of sql_memdup() to simplify code
sql/field.h:
Changed table_name to be pointer to table_name. This allows us to change alias for all fields by just changing one pointer.
Use TABLE_SHARE
sql/field_conv.cc:
Use TABLE_SHARE
sql/filesort.cc:
Use TABLE_SHARE
sql/ha_berkeley.cc:
Use TABLE_SHARE
sql/ha_heap.cc:
Use TABLE_SHARE
sql/ha_innodb.cc:
Use TABLE_SHARE
sql/ha_myisam.cc:
Use TABLE_SHARE
sql/ha_myisammrg.cc:
Use TABLE_SHARE
Change some pointer handling to use const char*
sql/ha_ndbcluster.cc:
Use TABLE_SHARE
sql/handler.cc:
Use TABLE_SHARE
sql/item.cc:
Use TABLE_SHARE
sql/item_func.cc:
Use TABLE_SHARE
sql/item_subselect.cc:
Use TABLE_SHARE
sql/item_sum.cc:
Use TABLE_SHARE
sql/key.cc:
Use TABLE_SHARE
sql/lock.cc:
Use TABLE_SHARE
sql/log_event.cc:
real_name -> table_name
sql/mysql_priv.h:
Use TABLE_SHARE
sql/opt_range.cc:
Use TABLE_SHARE
sql/opt_sum.cc:
Use TABLE_SHARE
sql/records.cc:
Use TABLE_SHARE
sql/repl_failsafe.cc:
real_name -> table_name
sql/slave.cc:
Use TABLE_SHARE
sql/sp.cc:
Use TABLE_SHARE
sql/sp_head.cc:
real_name -> table_name
sql/sql_acl.cc:
Use TABLE_SHARE
removed unnecessary assert
fixed indentation
changed some char * -> const char*
sql/sql_acl.h:
changed some char* -> const char*
sql/sql_base.cc:
Use TABLE_SHARE
sql/sql_cache.cc:
Use TABLE_SHARE
sql/sql_class.cc:
Use TABLE_SHARE
sql/sql_db.cc:
real_name -> table_name
sql/sql_delete.cc:
Use TABLE_SHARE
sql/sql_derived.cc:
Use TABLE_SHARE
sql/sql_handler.cc:
Use TABLE_SHARE
sql/sql_help.cc:
Use TABLE_SHARE
sql/sql_insert.cc:
Use TABLE_SHARE
sql/sql_load.cc:
Use TABLE_SHARE
sql/sql_parse.cc:
Use TABLE_SHARE
sql/sql_rename.cc:
real_name -> table_name
sql/sql_select.cc:
Use TABLE_SHARE
table->blob_fields now points to field offsets, not fields
tmp_table->table_name now points to alias name
sql/sql_show.cc:
Use TABLE_SHARE
sql/sql_table.cc:
Use TABLE_SHARE
sql/sql_test.cc:
Use TABLE_SHARE
sql/sql_trigger.cc:
Use TABLE_SHARE
sql/sql_udf.cc:
Use TABLE_SHARE
sql/sql_union.cc:
real_name -> table_name
sql/sql_update.cc:
Use TABLE_SHARE
sql/sql_view.cc:
Use TABLE_SHARE
sql/table.cc:
Split TABLE to TABLE and TABLE_SHARE
Changed blob_field to be field offsets instead of pointer to fields
Only initialize table->s->default_values with default record (not all table->record[#])
Some indentation changes
sql/table.h:
Split TABLE to TABLE and TABLE_SHARE
sql/tztime.cc:
real_name -> table_name
sql/unireg.cc:
Use TABLE_SHARE
sql/unireg.h:
Use TABLE_SHARE