Commit graph

27916 commits

Author SHA1 Message Date
unknown
361977c0da Fix for bug #11555 "Stored procedures: current SP tables locking make
impossible view security".

We should not expose names of tables which are explicitly or implicitly (via
routine or trigger) used by view even if we find that they are missing.
So during building of list of prelocked tables for statement we track which
routines (and therefore tables for these routines) are used from views. We
mark elements of LEX::routines set which correspond to routines used in views
by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST
object for topmost view which uses routine. We propagate this mark to all
routines which are used by this routine and which we add to this set. We also
mark tables used by such routine which we add to the list of tables for
prelocking as belonging to this view.


mysql-test/r/sp-error.result:
  Added test for bug #11555 "Stored procedures: current SP tables locking make 
  impossible view security".
mysql-test/r/view.result:
  We should not expose tables which are expicitly/implicitly used in view in
  check table statement.
mysql-test/t/sp-error.test:
  Added test for bug #11555 "Stored procedures: current SP tables locking make 
  impossible view security".
mysql-test/t/view.test:
  Removed comment obsoleted by bugfix.
sql/sp.cc:
  We should not expose names of tables which are explicitly or implicitly
  (via routine or trigger) used by view even if we find that they are missing.
  So during building of list of prelocked tables for statement we track which
  routines (and therefore tables for these routines) are used from views. We
  mark elements of LEX::routines set which correspond to routines used in views
  by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST
  object for topmost view which uses routine. We propagate this mark to all
  routines which are used by this routine and which we add to this set. We also
  mark tables used by such routine which we add to the list of tables for
  prelocking as belonging to this view.
sql/sp.h:
  sp_cache_routines_and_add_tables_for_view()/for_triggers():
    To be able to determine correctly uppermost view which uses this view/table
    with trigger we have to pass pointer to TABLE_LIST object instead of pointer
    to view's LEX or to Table_triggers_list object.
sql/sp_head.cc:
  sp_head::add_used_tables_to_table_list():
    Added new argument which allows to mark tables which are added to table
    list for prelocking as belonging to view (this allows properly hide names
    of tables which are used in routines used by views).
sql/sp_head.h:
  sp_head::add_used_tables_to_table_list():
    Added new argument which allows to mark tables which are added to table
    list for prelocking as belonging to view (this allows properly hide names
    of tables which are used in routines used by views).
sql/sql_base.cc:
  open_tables():
    sp_cache_routines_and_add_tables_for_view()/for_triggers() now accept
    pointer to table list element as last argument, this allows them to determine
    correctly uppermost view which uses this view/table with trigger.
sql/sql_trigger.h:
  Table_triggers_list:
    sp_cache_routines_and_add_tables_for_triggers() now accept pointer to table
    list element as last argument, this allows to determine correctly uppermost
    view which uses this table with trigger.
2005-12-07 12:27:17 +03:00
unknown
e0367223d1 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-root
2005-11-25 19:27:20 +03:00
unknown
2e79201c72 Post-merge fixes. 2005-11-25 18:53:55 +03:00
unknown
61e454c0a9 Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/opt/local/work/mysql-5.0-root


mysql-test/r/ndb_alter_table.result:
  Auto merged
mysql-test/r/ndb_basic.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/handler.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/table.cc:
  Auto merged
vio/vio.c:
  Auto merged
vio/viossl.c:
  Auto merged
include/my_base.h:
  Manual merge.
mysql-test/r/ps.result:
  Manual merge.
mysql-test/r/select.result:
  Manual merge.
mysql-test/t/ndb_alter_table.test:
  Manual merge.
mysql-test/t/ndb_basic.test:
  Manual merge.
mysql-test/t/ps.test:
  Manual merge.
sql-common/client.c:
  k	
sql/ha_ndbcluster.cc:
  Manual merge.
sql/item.cc:
  Manual merge.
sql/sql_table.cc:
  Manual merge.
2005-11-25 13:57:13 +03:00
unknown
2a1ae3a5e3 A fix and a test case for Bug#14410 "Crash in Enum or Set type in
CREATE TABLE and PS/SP": make sure that 'typelib' object for
ENUM values and 'Item_string' object for DEFAULT clause are 
created in the statement memory root.


mysql-test/r/ps.result:
  Test results has been fixed (Bug#14410)
mysql-test/t/ps.test:
  A test case for Bug#14410 "Crash in Enum or Set type in CREATE 
  TABLE and PS/SP"
sql/mysql_priv.h:
  typelib() function declaration has been changed.
sql/sql_table.cc:
  Supply the statement memory root to use in typelib() and
  safe_charset_converter() functions to ensure that objects 
  created during the first execution of CREATE TABLE statement
  are allocated in persistent memory of the statement.
sql/table.cc:
  Change typelib() function to require MEM_ROOT.
2005-11-25 13:25:31 +03:00
unknown
6fb8a4e915 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
2005-11-25 10:56:01 +01:00
unknown
e1af5e5dfd Updated expected error 2005-11-25 10:41:22 +01:00
unknown
e69de4f677 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/bar/mysql-5.0.b14146


sql/item_strfunc.cc:
  Auto merged
sql/item_strfunc.h:
  Auto merged
2005-11-25 10:08:00 +04:00
unknown
1be7a7afa5 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/13293-bug-5.0-mysql
2005-11-24 22:41:52 +03:00
unknown
dc8a5d54bd Remove t3 in join_nested.test
mysql-test/r/join_nested.result:
  Remove t3 too.
mysql-test/t/join_nested.test:
  Remove t3 too.
2005-11-24 19:51:52 +01:00
unknown
a545053841 Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/bug13729/mysql-5.0
2005-11-24 19:45:36 +01:00
unknown
c91a2e9eb4 Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/bug13729/mysql-5.0
2005-11-24 19:14:11 +01:00
unknown
0b262a6213 Some post-merge cleaning, and made assert THD::store_globals() work at all times.
mysql-test/t/sp.test:
  Tidying up after merge.
sql/mysqld.cc:
  Make sure we have thd->thread_stack set before calling store_globals().
  (And fixed compiler warning.)
sql/sql_class.cc:
  Init THD::tread_stack in constructor.
2005-11-24 19:13:13 +01:00
unknown
f8aae3e604 don't call handler::info() in SHOW CREATE TABLE 2005-11-24 18:13:08 +01:00
unknown
591fabb390 Fix bug#13293 Wrongly used index results in endless loop.
Loose index scan using only second part of multipart index was choosen, which
results in creating wrong keys and endless loop.

get_best_group_min_max() now allows loose index scan for distinct only if used
keyparts forms a prefix of the index.


mysql-test/t/group_min_max.test:
  Test case for bug #13293 Wrongly used index results in endless loop.
mysql-test/r/group_min_max.result:
  Test case for bug #13293 Wrongly used index results in endless loop.
sql/opt_range.cc:
  Fix bug #13293 Wrongly used index results in endless loop.
  get_best_group_min_max() now allows loose index scan for distinct only if used keyparts forms a prefix of the index.
2005-11-24 19:54:02 +03:00
unknown
44662d2c69 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/14482-bug-4.1-mysql
2005-11-24 19:17:31 +03:00
unknown
3190b21f95 Fix bug #14482 Wrongly applied optimization in resolve_const_item() caused
crash

resolve_const_item() substitutes item which will evaluate to constant with
equvalent constant item, basing on the item's result type. In this case
subselect was resolved as constant, and resolve_const_item() was substituting
it's result's Item_caches to Item_null. Later Item_cache's function was called
for Item_null object, which caused server crash.

resolve_const_item() now substitutes constants for items with 
result_type == ROW_RESULT only for Item_rows.


sql/item.cc:
  Fix bug #14482 Wrongly applied optimization in resolve_const_item() caused
  crash
  
  resolve_const_item() now applies optimization for items with
  result_type == ROW_RESULT only to Item_rows.
mysql-test/t/select.test:
  Test case for bug #14482 Wrongly applied optimization in resolve_const_item() caused crash
mysql-test/r/select.result:
  Test case for bug #14482 Wrongly applied optimization in resolve_const_item() caused crash
2005-11-24 19:16:51 +03:00
unknown
e6d90f51de Make it buildable with -ansi flag on some platforms.
extra/innochecksum.c:
  Define _XOPEN_SOURCE in order to include getopt.h when needed.
  
  The problem is that some platforms (for instance,
  SuSE 9.1/gcc-3.3.3) do not include getopt.h unless _XOPEN_SOURCE
  is defined, so optarg is undefined and the compiler complains.
2005-11-24 18:42:39 +03:00
unknown
54f9b2cc1b Polishing: get rid of C++-style comments.
mysys/my_open.c:
  Get rid of C++-style comments.
2005-11-24 18:27:14 +03:00
unknown
c3423d0d91 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/local/home/marty/MySQL/mysql-4.1


sql/ha_ndbcluster.cc:
  Auto merged
2005-11-24 16:21:49 +01:00
unknown
102c0281fa Moved check of wrong schema version earlier 2005-11-24 16:21:07 +01:00
unknown
b323bb273e Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b15047
2005-11-24 18:33:07 +04:00
unknown
d2ac9b5b67 table t7 was not dropped at the end
mysql-test/r/join_nested.result:
  drop t7
mysql-test/t/join_nested.test:
  drop t7
2005-11-24 16:11:59 +02:00
unknown
0719833683 Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/bug13729/mysql-5.0
2005-11-24 14:14:00 +01:00
unknown
a2daaf8716 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b15047
2005-11-24 17:04:54 +04:00
unknown
2665fb75d6 small build fix for some compilers
ndb/src/common/mgmcommon/ConfigRetriever.cpp:
  build fix for some compilers
2005-11-25 00:04:53 +11:00
unknown
40e8361c65 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b15047
2005-11-24 16:59:37 +04:00
unknown
ccb7673681 Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/bug13729/mysql-5.0


mysql-test/r/sp.result:
  Manual merge fix.
mysql-test/t/sp.test:
  Manual merge fix.
2005-11-24 12:12:49 +01:00
unknown
60f3487405 Merge mysql.com:/home/stewart/Documents/MySQL/5.0/main
into  mysql.com:/home/stewart/Documents/MySQL/5.0/bug15215
2005-11-24 20:58:06 +11:00
unknown
222871ca58 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b15047


sql/sql_class.h:
  Auto merged
2005-11-24 13:42:47 +04:00
unknown
c2421d3f0d BUG#15215 mysqld fails at start-up because of illegal reply from mgmd
In the rare circumstance where a mysqld connects to a mgm server, then the
mgm server goes away before a node id can be allocated, it was possible to get
an Error in mgm protocol parser error message.


ndb/src/common/mgmcommon/ConfigRetriever.cpp:
  When allocating node id, retry connecting to a management server if it goes away.
ndb/src/mgmapi/mgmapi.cpp:
  Treat Eof and NoLine results from the parser as a sign that we should disconnect
  from this management server. It's up to the caller to work out if they want
  to try again.
2005-11-24 17:30:25 +11:00
unknown
97bfd41fe1 Don't use PATH_MAX for FN_REFLEN as this uses too much stack space
Larger stack size neaded for open table on x86 64 bit
Fix failing test cases
Deleted symlink from bk


BitKeeper/etc/ignore:
  added libmysqld/ha_blackhole.cc
BitKeeper/deleted/.del-ha_blackhole.cc~727c69ef7846623a:
  Delete: libmysqld/ha_blackhole.cc
include/my_global.h:
  Don't use PATH_MAX for FN_REFLEN as this uses too much stack space.
  (With a PATH_MAX of 4096, we use 80K for opening a table as there is several objects of size FN_REFLEN on stack)
mysql-test/r/federated.result:
  Update results after error message changes
mysql-test/r/grant.result:
  Update results after error message changes
mysql-test/r/grant2.result:
  Update results after error message changes
sql/ha_federated.cc:
  Fix error messages to be more consistent
sql/mysql_priv.h:
  Stack size to have when opening a table
  (This was needed on x86 64 bit Linux)
sql/share/errmsg.txt:
  Remove quotes around error string for federated as two quotes in the output looks strange
sql/sql_base.cc:
  More correct stack size
sql/sql_parse.cc:
  Set thread_stack before store_globals()
sql/unireg.h:
  More correct MAX_DBKEY_LENGTH
2005-11-24 02:36:28 +02:00
unknown
f443161911 Merge alstroganov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  regul.home.lan:/mnt/md/bk/mysql-5.0
2005-11-24 00:37:46 +02:00
unknown
1c313f0368 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-root


sql/sql_class.cc:
  Auto merged
2005-11-23 21:20:31 +03:00
unknown
0633a41c15 Always initialize THD::thread_stack: it's used in
check_stack_overrun().


sql/slave.cc:
  Move initialization of THD::thread_stack before THD::store_globals()
sql/sql_acl.cc:
  Initialize THD::thread_stack in artificial THDs used
  to load gratns subsystem.
sql/sql_class.cc:
  Add an assert that THD::thread_stack is assigned.
sql/sql_insert.cc:
  Add initialization of THD::thread_stack (delayed insert
  thread).
sql/sql_parse.cc:
  Move initialization of THD::thread_stack before
  THD::store_globals().
sql/sql_udf.cc:
  Add initialization for THD::thread_stack (an artificial
  THD used to initialize UDF subsystem).
sql/tztime.cc:
  Add initialization for THD::thread_stack (an artificial
  THD used to initialize timezones).
2005-11-23 21:18:10 +03:00
unknown
aa4da5f742 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-11-23 13:02:50 +01:00
unknown
b118282377 Fixed BUG#13729 Stored procedures: packet error after exception handled
Don't set thd->is_fatal_error in sql_update for duplicate key errors.


mysql-test/r/sp.result:
  New test case for BUG#13729.
mysql-test/r/sp_trans.result:
  New test case for BUG#14840.
mysql-test/t/sp.test:
  New test case for BUG#13729.
mysql-test/t/sp_trans.test:
  New test case for BUG#14840.
sql/sql_update.cc:
  Don't set thd->is_fatal_error if it's a duplicate key error.
2005-11-23 11:56:53 +01:00
unknown
056d7266c7 A name of macro is fixed. 2005-11-23 12:26:07 +02:00
unknown
12826df81b merged 2005-11-23 09:52:18 +01:00
unknown
ddf89750ea Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/M41/mysql-4.1
2005-11-23 09:38:12 +01:00
unknown
4aea839bde postmerge fix 2005-11-23 02:49:44 +02:00
unknown
ffc506e910 merge 2005-11-23 01:29:25 +02:00
unknown
aa06123f83 Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug7-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.0


mysql-test/r/sp-error.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/sp-error.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
mysql-test/r/sp.result:
  merge
sql/share/errmsg.txt:
  merge
2005-11-23 01:28:32 +02:00
unknown
164ce4c5cd Recursion support made for SP (BUG#10100).
client/mysqltest.c:
  An expected error messages hiding from the log if disable_result_log is in force.
mysql-test/r/sp-dynamic.result:
  The test expanded for case of allowed/disalowed recursion.
mysql-test/r/sp-error.result:
  Error messages changed.
  Test of bug11394() made with allowed recursion.
mysql-test/r/sp.result:
  Tests for recursion.
mysql-test/r/trigger.result:
  Check that triggers are not affected by this patch.
mysql-test/r/variables.result:
  Test of max_sp_recursion_depth variable.
mysql-test/t/sp-dynamic.test:
  The test expanded for case of allowed/disalowed recursion.
mysql-test/t/sp-error.test:
  Error messages changed.
  Test of bug11394() made with allowed recursion.
mysql-test/t/sp.test:
  Tests for recursion.
mysql-test/t/trigger.test:
  Check that triggers are not affected by this patch.
mysql-test/t/variables.test:
  Test of max_sp_recursion_depth variable.
sql/item_func.cc:
  sp_find_function() and sp_find_procedure() joined to sp_find_routine()
    function as it was mentioned in TODO.
sql/mysqld.cc:
  max_sp_recursion_depth variable added.
sql/set_var.cc:
  max_sp_recursion_depth variable added.
sql/share/errmsg.txt:
  An error message changed.
  An error message added.
sql/sp.cc:
  sp_find_function() and sp_find_procedure() joined to sp_find_routine()
    function as it was mentioned in TODO.
  Temory LEX is allocated on a stack, not on a heap.
  Recursion support added for stored procedures.
sql/sp.h:
  sp_find_function() and sp_find_procedure() joined to sp_find_routine()
    function as it was mentioned in TODO.
sql/sp_head.cc:
  Initialization of new sp_head fields to get correct list of instances
    contained one instance only.
  Stack requirement for SP instruction is increased.
  Stack free space is checked before mem root initialisation to avoid
    memory leak.
  Pointer to the free instance management added before and after
    SP execution.
sql/sp_head.h:
  New sp_head variables added to support inst of instances of SP
    for recursion and pointer on ths first free to use instance.
sql/sql_base.cc:
  open_table() consume a lot of stack space so we check free stack space before it.
sql/sql_class.h:
  max_sp_recursion_depth variable added.
sql/sql_parse.cc:
  sp_find_function() and sp_find_procedure() joined to sp_find_routine()
    function as it was mentioned in TODO.
2005-11-23 01:11:19 +02:00
unknown
a2c26aa710 Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug2-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.0


sql/item.h:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/r/sp.result:
  merge
mysql-test/r/trigger.result:
  merge
mysql-test/t/sp.test:
  merge
mysql-test/t/trigger.test:
  merge
sql/item.cc:
  merge
sql/sp_rcontext.h:
  merge
2005-11-23 00:58:13 +02:00
unknown
6574612df8 Fix for BUG#13549 "Server crash with nested stored procedures
if inner routine has more local variables than outer one, and
one of its last variables was used as argument to NOT operator".

THD::spcont was non-0 when we were parsing stored routine/trigger
definition during execution of another stored routine. This confused
methods of Item_splocal and forced them use wrong runtime context.
Fix ensures that we always have THD::spcont equal to zero during
routine/trigger body parsing. This also allows to avoid problems
with errors which occur during parsing and SQL exception handlers.


mysql-test/r/sp.result:
  Test suite for bug#13549.
mysql-test/r/trigger.result:
  Test suite for bug#13549.
mysql-test/t/sp.test:
  Test suite for bug#13549.
mysql-test/t/trigger.test:
  Test suite for bug#13549.
sql/item.cc:
  Protection against using wrong context by SP local variable.
sql/item.h:
  Protection against using wrong context by SP local variable.
sql/protocol.cc:
  An incorrect macro name fixed.
sql/protocol.h:
  An incorrect macro name fixed.
sql/sp.cc:
  Do not allow SP which we are parsing to use other SP
  context (BUG#13549).
sql/sp_head.cc:
  Protection against using wrong context by SP local variable.
sql/sp_rcontext.h:
  Protection against using wrong context by SP local variable.
sql/sql_cache.h:
  An incorrect macro name fixed.
sql/sql_class.cc:
  Protection against using wrong context by SP local variable.
sql/sql_class.h:
  Protection against using wrong context by SP local variable.
sql/sql_trigger.cc:
  Do not allow Trigger which we are parsing to use
  other SP context (BUG#13549).
sql/sql_yacc.yy:
  Protection against using wrong context by SP local variable.
2005-11-23 00:50:37 +02:00
unknown
3fc626a005 Added support of stress mode to mysql-test-run.pl
Corrected function declaration 


mysql-test/lib/mtr_misc.pl:
  Corrected function declaration
mysql-test/mysql-test-run.pl:
  Added support of stress mode
mysql-test/lib/mtr_stress.pl:
  Added support of stress mode
2005-11-22 23:46:54 +02:00
unknown
16213b21e0 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0


sql/share/errmsg.txt:
  Auto merged
2005-11-22 21:16:11 +01:00
unknown
3a84f6e258 German error messages 2005-11-22 21:10:38 +01:00
unknown
57e1c5aa9a Manual merge from 4.1, bug#15145. 2005-11-22 20:15:54 +01:00