Commit graph

422 commits

Author SHA1 Message Date
unknown
836cc05fa6 Merge
BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/triggers/post-commit:
  Auto merged
configure.in:
  Auto merged
scripts/mysql_create_system_tables.sh:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_acl.h:
  Auto merged
scripts/mysql_fix_privilege_tables.sql:
  SCCS merged
2005-03-08 10:40:52 +01:00
unknown
0d7e68c92a WL2131: Access control for SHOW ... PROCEDURE|FUNCTION ... 2005-03-05 14:35:32 +03:00
unknown
b1095fb0cd Manual merge SP-locking improvements patch with current tree.
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_rcontext.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.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_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/sp_head.cc:
  Manual merge.
sql/sql_class.cc:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
sql/sql_yacc.yy:
  Manual merge.
2005-03-04 17:46:45 +03:00
unknown
ac9f68b9fa Better approach for prelocking of tables for stored routines execution
and some SP-related cleanups.

- We don't have separate stage for calculation of list of tables
  to be prelocked and doing implicit LOCK/UNLOCK any more.
  Instead we calculate this list at open_tables() and do implicit
  LOCK in lock_tables() (and UNLOCK in close_thread_tables()).
  Also now we support cases when same table (with same alias) is
  used several times in the same query in SP.

- Cleaned up execution of SP. Moved all common code which handles
  LEX and does preparations before statement execution or complex
  expression evaluation to auxilary sp_lex_keeper class. Now 
  all statements in SP (and corresponding instructions) that
  evaluate expression which can contain subquery have their
  own LEX.


mysql-test/r/lock.result:
  Replaced wrong error code with the correct one after fixing bug in
  SP-locking.
mysql-test/r/mysqldump.result:
  Added dropping of view which is used in test to its beginning.
mysql-test/r/sp.result:
  Added tests for improved SP-locking.
  Temporarily disabled tests for SHOW PROCEDURE STATUS and alike
  (Until Monty will allow to open mysql.proc under LOCK TABLES without
  mentioning it in lock list).
  Replaced wrong results of test for bug #5240 with correct results after
  fixing bug in handling of cursors.
mysql-test/t/lock.test:
  Replaced wrong error code with the correct one after fixing bug in
  SP-locking.
mysql-test/t/mysqldump.test:
  Added dropping of view which is used in test to its beginning.
mysql-test/t/sp.test:
  Added tests for improved SP-locking.
  Temporarily disabled tests for SHOW PROCEDURE STATUS and alike
  (Until Monty will allow to open mysql.proc under LOCK TABLES without
  mentioning it in lock list).
  Removed test for bug #1654 since we already test exactly this function
  in one of SP-locking tests.
  Removed comment about cursor's wrong behavior in test for bug #5240
  after fixing bug which was its cause.
sql/item_func.cc:
  Removed comment which is no longer true.
sql/mysql_priv.h:
  Changed open_tables() signature.
  Now its 2nd parameter is in/out since it can add elements to table list.
sql/sp.cc:
  sp_find_procedure():
   Added one more parameter which enforces cache only lookup.
  
  sp_merge_hash():
   Now uses its return value to indicate that first of two hashes changed
   as result of merge.
  
  sp_cache_routines():
   This function caches all stored routines used in query now.
sql/sp.h:
  - sp_find_procedure() now has one more parameter which enforces cache only
    lookup.
  - sp_merge_hash() now uses its return value to indicate that first of two
    hashes changed as result of merge.
  - sp_cache_routines() caches all stored routines now. So it does not need
    third argument any more.
sql/sp_head.cc:
  sp_head::sp_head():
   Added initialization of new m_spfuns and m_spprocs members.
  
  sp_head::execute():
   Let us save/restore part of thread context which can be damaged by
   execution of instructions.
  sp_head::execute_function()/execute_procedure():
   Now it is responsibility of caller to close tables used in
   subqueries which are passed as routine parameters.
  
  sp_head::restore_lex():
   Let us accumulate information about routines used by this one
   in new m_spfuns, m_spprocs hashes.
  
  sp_lex_keeper::reset_lex_and_exec_core()
   Main method of new auxilary sp_lex_keeper class to which instructions 
   delegate responsibility for handling LEX and preparations before
   executing statement or calculating complex expression.
  
  Since all instructions which calculate complex expression or execute
  command now use sp_lex_keeper they have to implement
  sp_instr::exec_core() method. Most of instruction specific logic
  has moved from sp_instr::execute() to this new method.
  
  Removed sp_instr_set_user_var class which is no longer used, because
  nowdays we allow execution of statements in stored functions and
  triggers.
  
  sp_merge_table_list() became sp_head::merge_table_list() method. It
  also treats sp_head::m_sptabs as multi-set of tables now.
  
  sp_hash_to_table_list() became sp_head::add_used_tables_to_table_list().
  It takes into account that sp_head::m_sptabs is multi-set and allocates
  object into persistent arena of PS.
  
  Removed sp_merge_table_hash(), sp_open_and_lock_tables(),
  sp_unlock_tables(), sp_merge_routine_tables() methods since they are not
  used by new prelocking mechanism.
  
  Added sp_add_sp_tables_to_table_list() which serves for adding tables needed
  by routines used in query to the query table list for prelocking.
sql/sp_head.h:
  class sp_head:
  - Added m_spfuns, m_spprocs members for storing names of routines used
    by this routine.
  - Added add_used_tables_to_table_list() method which allows to add
    tables needed by this routine to query's table list.
  - Converted sp_merge_table_list() to sp_head::merge_table_list() method.
  - Changed semantics of THD::m_sptabs. Now it is multi-set which contains
    only tables which are used by this routine and not routines that are
    called from this one.
  
  Removed sp_merge_routine_tables(), sp_merge_table_hash(),
  sp_open_and_lock_tables(), sp_unlock_tables() calls since they are not
  used for our prelocking list calculation.
  
  Added auxilary sp_lex_keeper class to which instructions delegate
  responsibility for handling LEX and preparations before executing
  statement or calculating complex expression. This class uses
  new sp_instr::exec_core() method which is responsible for executing
  instruction's core function after all preparations were made.
  
  All instructions which hold and calculate complex expression now have
  their own LEX (by aggregating sp_lex_keeper instance). sp_instr_stmt
  now uses sp_lex_keeper too.
  
  Removed sp_instr_set_user_var class which is no longer used, because
  nowdays we allow execution of statements in stored functions and
  triggers.
sql/sp_rcontext.cc:
  Now sp_cursor holds pointer to sp_lex_keeper instead of LEX.
sql/sp_rcontext.h:
  Now sp_cursor holds pointer to sp_lex_keeper instead of LEX.
sql/sql_acl.cc:
  acl_init(), grant_init():
    Now we use simple_open_n_lock_tables() instead of explicit
    calls to open_tables() and mysql_lock_tables().
sql/sql_base.cc:
  Implemented support for execution of statements in "prelocked" mode.
  
  When we have statement which uses stored routines explicitly or
  implicitly (via views or triggers) we have to open and lock all tables
  for these routines at the same time as tables for the main statement.
  In fact we have to do implicit LOCK TABLES at the begining of such
  statement and implict UNLOCK TABLES at its end. We call such mode
  "prelocked".
  
  When open_tables() is called for the statement tables which are needed
  for execution of routines used by it are added to its tables list
  (this process also caches all routines used). Implicit use of routines
  is discovered when we open view or table with trigger and apropriate
  tables are added to the table list at this moment. Statement which has
  such extra tables in its list (well actually any that uses functions)
  is marked as requiring prelocked mode for its execution.
  
  When lock_tables() sees such statement it will issue implicit LOCK TABLES
  for this extended table list instead of doing usual locking, it will also
  set THD::prelocked_mode to indicate that we are in prelocked mode.
  
  When open_tables()/lock_tables() are called for statement of stored
  routine (substatement), they notice that we are running in prelocked mode
  and use one of prelocked tables from those that are not used by upper
  levels of execution.
  
  close_thread_tables() for substatement won't really close tables used
  but will mark them as free for reuse instead.
  
  Finally when close_thread_tables() is called for the main statement it
  really unlocks and closes all tables used.
  
  Everything will work even if one uses such statement under real LOCK
  TABLES (we are simply not doing implicit LOCK/UNLOCK in this case).
sql/sql_class.cc:
  Added initialization of THD::prelocked_mode member.
sql/sql_class.h:
  - Added prelocked_mode_type enum and THD::prelocked_mode member
    which are used for indication whenever "prelocked mode" is on 
    (i.e. that statement uses stored routines and is executed under
     implicit LOCK TABLES).
  - Removed THD::shortcut_make_view which is no longer needed.
    We use TABLE_LIST::prelocking_placeholder for the same purprose
    now.
sql/sql_handler.cc:
  Changed open_tables() invocation.
  Now its 2nd parameter is in/out since it can add elements to table list.
sql/sql_lex.cc:
  lex_start():
    Added initialization of LEX::query_tables_own_last.
    Unused LEX::sptabs member was removed.
  st_lex::unlink_first_table()/link_first_table_back():
    We should update LEX::query_tables_last properly if table list
    contains(ed) only one element.
sql/sql_lex.h:
  LEX:
  - Removed sptabs member since it is no longer used.
  - Added query_tables_own_last member, which if non-0 indicates that
    statement requires prelocking (implicit LOCK TABLES) for its execution
    and points to last own element in query table list. If it is zero
    then this query does not need prelocking.
  - Added requires_prelocking(), mark_as_requiring_prelocking(),
    first_not_own_table() inline methods to incapsulate and simplify
    usage of this new member.
sql/sql_parse.cc:
  dispatch_command():
    To properly leave prelocked mode when needed we should call
    close_thread_tables() even if there are no open tables.
  mysql_execute_command():
  - Removed part of function which were responsible for doing implicit
    LOCK TABLES before statement execution if statement used stored 
    routines (and doing UNLOCK TABLES at the end).
    Now we do all this in open_tables()/lock_tables()/close_thread_tables()
    instead.
  - It is also sensible to reset errors before execution of statement
    which uses routines.
  - SQLCOM_DO, SQLCOM_SET_OPTION, SQLCOM_CALL
    We should always try to open tables because even if statement has empty
    table list, it can call routines using tables, which should be preopened
    before statement execution.
  - SQLCOM_CALL
    We should not look up routine called in mysql.proc, since it should be
    already cached by this moment by open_tables() call.
  - SQLCOM_LOCK_TABLES
    it is better to use simple_open_n_lock_tables() since we want to avoid
    materialization of derived tables for this command.
sql/sql_prepare.cc:
  mysql_test_update():
    Changed open_tables() invocations. Now its 2nd parameter is in/out
    since it can add elements to table list.
  check_prepared_statement():
    Since now we cache all routines used by statement in open_tables() we 
    don't need to do it explicitly.
  mysql_stmt_prepare():
    Now we should call close_thread_tables() when THD::lex points to the
    LEX of statement which opened tables.
  reset_stmt_for_execute():
    Commented why we are resetting all tables in table list.
sql/sql_trigger.h:
  Table_triggers_list::process_triggers():
    We should surpress sending of ok packet when we are calling trigger's
    routine, since now we allow statements in them.
sql/sql_update.cc:
  Changed open_tables() invocations.
  Now its 2nd parameter is in/out since it can add elements to table list.
sql/sql_view.cc:
  mysql_make_view():
  - Removed handling of routines used in view. Instead we add tables which
    are needed for their execution to statement's table list in 
    open_tables().
  - Now we use TABLE_LIST::prelocking_placeholder instead of 
    THD::shortcut_make_view for indicating that view is opened
    only to discover which tables and routines it uses (this happens
    when we build extended table list for prelocking). Also now we try
    to avoid to modify main LEX in this case (except of its table list).
  - Corrected small error we added tables to the table list of the main
    LEX without updating its query_tables_last member properly.
sql/sql_yacc.yy:
  Now each expression which is used in SP statements and can contain
  subquery has its own LEX. This LEX is stored in corresponding sp_instr
  object and used along with Item tree for expression calculation.
  
  We don't need sp_instr_set_user_var() anymore since now we allow
  execution of statements in stored functions and triggers.
sql/table.h:
  Added TABLE_LIST::prelocking_placeholder member for distinguishing
  elements of table list which does not belong to the statement itself
  and added there only for prelocking (as they are to be used by routines
  called by this statement).
sql/tztime.cc:
  my_tz_init():
    Now we use more simplier simple_open_n_lock_tables() call instead of 
    open_tables()/lock_tables() pair.
2005-03-04 16:35:28 +03:00
unknown
aec0408ba9 Clean up merge of fix for Bug #3309.
mysql-test/r/grant2.result:
  Update results
mysql-test/t/grant2.test:
  Reset sql_mode before test.
sql/sql_acl.cc:
  Fixes to merge
2005-03-03 17:44:28 -08:00
unknown
daaeeedb49 Merged from 4.1
innobase/os/os0file.c:
  Auto merged
innobase/srv/srv0start.c:
  Auto merged
mysql-test/r/bigint.result:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Auto merged
ndb/test/ndbapi/testNodeRestart.cpp:
  Auto merged
ndb/test/run-test/daily-devel-tests.txt:
  Auto merged
sql/item.h:
  Auto merged
strings/ctype-win1250ch.c:
  Auto merged
mysql-test/r/grant2.result:
  Hand-merged new test
mysql-test/t/grant2.test:
  Hand-merged new test
ndb/include/ndbapi/NdbTransaction.hpp:
  Used 5.0 version per tomas
sql/sql_acl.cc:
  Merge fix for Bug #3309.
2005-03-03 15:01:46 -08:00
unknown
c9b4f8c3d7 Fix bug in checking of table-specific grats that caused IP/NETMASK
hostnames to not be matched correctly. (Bug #3309)


sql/sql_acl.cc:
  Use an acl_host_or_ip in the GRANT_TABLE struct instead of storing the host
  itself, and use compare_hostname() in testing it. This adds support for IP
  addresses with netmasks to table-specific grants, and results in simplified
  code by making use of compare_hostname() in more places.
mysql-test/r/grant2.result:
  Add new results
mysql-test/t/grant2.test:
  Add new regression test
2005-03-02 16:30:24 -08:00
unknown
08b3e79e40 Merge with global tree
mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
mysql-test/t/rpl_rotate_logs.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
sql/examples/ha_archive.cc:
  Merge with global tree
  (Use my changes)
sql/sql_parse.cc:
  Remove 'tmp' fix to be able to run tests
2005-02-25 17:12:06 +02:00
unknown
248e449451 Remove compiler warnings and remove not used variables
(Found during build process)


extra/comp_err.c:
  Remove compiler warnings
extra/perror.c:
  Remove compiler warnings
innobase/dict/dict0dict.c:
  Remove compiler warnings
innobase/dict/dict0load.c:
  Remove compiler warnings
innobase/pars/pars0sym.c:
  Remove compiler warnings
innobase/row/row0row.c:
  Remove compiler warnings
innobase/row/row0sel.c:
  Remove compiler warnings
libmysqld/lib_sql.cc:
  Remove not used variables
myisam/mi_key.c:
  Remove compiler warnings
regex/engine.c:
  Added comment
sql/derror.cc:
  Remove not used variables
sql/examples/ha_archive.cc:
  Fixed bug in blob handling
  Removed not used variable
sql/field.cc:
  Remove compiler warnings
  Remove not used variables
sql/filesort.cc:
  Remove compiler warnings
sql/ha_heap.cc:
  Remove not used variable
sql/ha_innodb.cc:
  Remove not used variables
  Remove compiler warnings
sql/handler.cc:
  Remove compiler warnings and remove not used variables
sql/item.cc:
  Remove compiler warnings and remove not used variables
sql/item_subselect.cc:
  Remove compiler warnings
sql/item_sum.cc:
  Remove compiler warnings
sql/item_sum.h:
  Remove compiler warnings and remove not used variables
sql/log.cc:
  Remove compiler warnings and remove not used variables
sql/log_event.cc:
  Remove compiler warnings
sql/mysqld.cc:
  Remove compiler warnings and remove not used variables
sql/opt_range.cc:
  Remove compiler warnings and remove not used variables
sql/slave.cc:
  Remove compiler warnings and remove not used variables
sql/sp_pcontext.cc:
  Remove compiler warnings and remove not used variables
sql/sql_acl.cc:
  Remove compiler warnings and remove not used variables
sql/sql_analyse.cc:
  Remove compiler warnings and remove not used variables
sql/sql_base.cc:
  Remove compiler warnings and remove not used variables
sql/sql_db.cc:
  Remove compiler warnings and remove not used variables
sql/sql_help.cc:
  Remove compiler warnings and remove not used variables
sql/sql_insert.cc:
  Remove compiler warnings and remove not used variables
sql/sql_load.cc:
  Remove compiler warnings and remove not used variables
sql/sql_parse.cc:
  Remove compiler warnings and remove not used variables
sql/sql_prepare.cc:
  Remove compiler warnings and remove not used variables
sql/sql_select.cc:
  Remove compiler warnings and remove not used variables
sql/sql_show.cc:
  Remove compiler warnings and remove not used variables
sql/sql_table.cc:
  Remove compiler warnings
sql/sql_union.cc:
  Remove compiler warnings
sql/sql_update.cc:
  Remove compiler warnings and remove not used variables
sql/sql_yacc.yy:
  Remove compiler warnings and remove not used variables
sql/strfunc.cc:
  Remove compiler warnings and remove not used variables
strings/ctype-ucs2.c:
  Remove compiler warnings
tests/mysql_client_test.c:
  Remove compiler warnings and remove not used variables
tools/mysqlmanager.c:
  Remove compiler warnings and remove not used variables
2005-02-25 16:53:22 +02:00
unknown
2c1ef3c604 Merge 52.0.168.192.in-addr.arpa:/Users/bell/mysql/bk/mysql-5.0
into 52.0.168.192.in-addr.arpa:/Users/bell/mysql/bk/work-repl-5.0


BitKeeper/etc/logging_ok:
  auto-union
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
2005-02-23 19:22:52 +02:00
unknown
7d4ea5cfc2 Merge
extra/perror.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_acl.cc:
  Merge change in warning message
sql/sql_parse.cc:
  Hand-merge
2005-02-22 16:39:21 -08:00
unknown
8776230074 Merge mysql.com:/home/jimw/my/mysql-4.1-7989
into mysql.com:/home/jimw/my/mysql-4.1-clean


sql/sql_acl.cc:
  Auto merged
2005-02-22 13:15:34 -08:00
unknown
eff7e6afd1 Merge 51.0.168.192.in-addr.arpa:/Users/bell/mysql/bk/mysql-5.0
into 51.0.168.192.in-addr.arpa:/Users/bell/mysql/bk/work-repl-5.0


BitKeeper/etc/logging_ok:
  auto-union
sql/item.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
2005-02-22 14:52:26 +02:00
unknown
d50af8aece Review of new pushed code (XA & other)
Portability fixes and cleanups
Fixed setting of 'res' in mysql_execute_command()


sql/handler.cc:
  delete_table() will not return error for not found files if one handler file was found and deleted
sql/handler.h:
  Incremented MAX_HA so that ndb works again
  Don't convert char pointer to (my_xid*) as we don't know if the address is aligned on 8
sql/log.cc:
  Indentation fixes
  Simplified loop to find next log
  Fixed race condition in reset_logs that caused mix_innodb_myisam_binlog to fail
sql/log_event.cc:
  Don't convert char pointer to (my_xid*) as we don't know if the address is aligned on 8
sql/sql_acl.cc:
  Convert db name directly to avoid extra strmov
sql/sql_base.cc:
  Added comment
  Removed not needed code
sql/sql_db.cc:
  Added comment
  Remove not needed code
sql/sql_parse.cc:
  Always call mysql_rm_db() with lower case db name
  Ensure that 'res' is set correctly in mysql_execute_command()
  (One don't have to set res if one calls my_error() and res should be = 0 for correct commands)
sql/sql_repl.cc:
  Indentation fixes
  use packet->ptr() instead of packet->c_ptr()
sql/sql_table.cc:
  Join similar code when table didn't exist in engine
2005-02-21 14:47:57 +02:00
unknown
ed7ad40523 Merge
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-02-20 18:49:27 +02:00
unknown
cfad792e74 Clean up fix for Bug #7989 by avoiding extra memory copy, and adding some
more information to the error message.


sql/sql_acl.cc:
  Change strmov() call to strnmov(), and don't do redundant copy.
  Add to warning message that privilege can't be removed with REVOKE.
2005-02-18 12:47:33 -08:00
unknown
90cc9c6bb6 Merge
BitKeeper/triggers/post-commit:
  Auto merged
mysql-test/r/lowercase_table2.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
mysql-test/r/system_mysql_db.result:
  Update results
scripts/mysql_create_system_tables.sh:
  Merge fix for Bug #7617, making enum fields in grant tables
  case-insensitive.
scripts/mysql_fix_privilege_tables.sql:
  Merge fix for Bug #7617, and fix additional enum/set columns.
sql/sql_acl.cc:
  Hand-merge due to whitespace change
sql/sql_lex.cc:
  Hand-merge bug fix.
2005-02-17 16:16:58 -08:00
unknown
cb9b57fb8c Merge mysql.com:/home/jimw/my/mysql-4.1-8471
into mysql.com:/home/jimw/my/mysql-4.1-clean


sql/sql_acl.cc:
  Auto merged
2005-02-17 13:53:07 -08:00
unknown
2d2d4df7d2 Always lowercase database names from 'host' and 'db' grant tables when they
are loaded and lower_case_table_names is set, but issue a warning when it is
done. (Bug #7989)


sql/sql_acl.cc:
  Lowercase database names in 'host' and 'db' grant tables when loading,
  but issue a warning to the log about them.
2005-02-15 13:36:46 -08:00
unknown
ddcb947ff7 Allow hostnames that are IP addresses with a netmask even when
running with --skip-name-resolve. (Bug #8471)


sql/sql_acl.cc:
  Add '/' to list of characters that doesn't trigger a need for resolving the
  hostname, so that the IP mask syntax works with skip-name-resolve.
2005-02-14 20:33:14 -08:00
unknown
913d1e97c1 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-repl-5.0


sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/table.cc:
  Auto merged
2005-01-31 09:36:23 +02:00
unknown
86016aeb45 Fixes for windows compilation bugs
(After review of cs georg:1.1800 by Monty)


VC++Files/libmysqld/libmysqld.dsp:
  removed ha_isammrg.cpp (doesn't exist anymore)
VC++Files/mysqldemb/mysqldemb.dsp:
  removed ha_isammrg.cpp (doesn't exist anymore)
extra/comp_err.c:
  renamed DATADIR to DATADIRECTORY (DATADIR is a windows internal
  enumeration type)
innobase/ut/ut0ut.c:
  gettimeofday is not available under Windows. Added conditional define
  which uses GetLocalTime for windows
libmysql/libmysql.c:
  fixed prototype for setup_one_fetch_function which differed from
  function declaration.
  Fixed not supported unsigned __int64 to double conversion
sql/field.h:
  fixed typecast error (windows)
sql/item_sum.cc:
  fixed typecast errors (windows)
sql/key.cc:
  fixed typecast errors (windows)
sql/opt_range.cc:
  fixed not supported unsigned __int64 to double conversion
sql/sql_acl.cc:
  fixed typecast errors (windows)
sql/table.cc:
  fixed typecast errors (windows)
2005-01-26 15:19:20 +01:00
unknown
a82fd1eaec merged
BitKeeper/deleted/.del-sort.c~e2e56b5a37ce86f4:
  Auto merged
client/mysql.cc:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
client/mysqltest.c:
  Auto merged
myisam/ft_boolean_search.c:
  Auto merged
myisam/mi_packrec.c:
  Auto merged
myisam/sort.c:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.h:
  Auto merged
sql/sql_analyse.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/tztime.cc:
  Auto merged
tests/client_test.c:
  Auto merged
2005-01-24 19:41:42 +01:00
unknown
8bdb500105 fixes/cleanups according to Coverity report 2005-01-24 15:48:25 +01:00
unknown
8002f008e9 added replication of VIEW DDL commands (BUG#4838)
sql/sql_acl.cc:
  filling privileges for slave thread fixed
sql/sql_parse.cc:
  added writing to binary log view DDL commands
2005-01-17 01:18:08 +02:00
unknown
b3ca484e18 Merge build.mysql.com:/users/tulin/mysql-5.0
into build.mysql.com:/users/tulin/mysql-5.1


BitKeeper/etc/logging_ok:
  auto-union
configure.in:
  Auto merged
scripts/mysql_fix_privilege_tables.sql:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2005-01-13 10:13:06 +01:00
unknown
547b78c504 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0


sql/field.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2005-01-12 03:40:02 +02:00
unknown
24a0275722 Fixed memory reference errors found by valgrind
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
2005-01-12 03:38:53 +02:00
unknown
c0d168e65d Initialize lex->mqh structure. Fixes valgrind warnings. 2005-01-10 16:24:05 +00:00
unknown
76cc62153b Merge for 5.0 to 5.1
BitKeeper/triggers/post-commit:
  Merge for 5.0 -> 5.1
configure.in:
  Merge for 5.0 -> 5.1
mysql-test/r/grant.result:
  Merge for 5.0 -> 5.1
scripts/mysql_create_system_tables.sh:
  Merge for 5.0 -> 5.1
scripts/mysql_fix_privilege_tables.sql:
  Merge for 5.0 -> 5.1
sql/sql_acl.cc:
  Merge 5.0 -> 5.1
sql/sql_acl.h:
  Merge 5.0 -> 5.1
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-01-06 14:09:13 -08:00
unknown
8ff8867251 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0


sql/item_func.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
2005-01-06 13:31:31 +02:00
unknown
acf76e3b88 First stage of table definition cache
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
2005-01-06 13:00:13 +02:00
unknown
34f313eeaf fixed bugs in view code with prepared statemnts
sql/sql_acl.cc:
  block checking view underlying tables
sql/sql_base.cc:
  item registration fixed
  fixed non registred item resolving
  fixed result of outo-merge
  fixed creation reference if alias used
sql/sql_insert.cc:
  layout fixed
  removed unused variable
sql/sql_parse.cc:
  block checking view underlying tables
sql/sql_prepare.cc:
  make preparation check same as usual check
sql/sql_update.cc:
  made want_privilege assignment simplier
  block checking view underlying tables
sql/sql_view.cc:
  belong_to_view assignmebt moved after privileges check
sql/table.cc:
  check option fix field added
  arena management added
2005-01-04 18:04:16 +02:00
unknown
31c4511d17 post-merge 2004-12-31 17:59:43 +01:00
unknown
b99bea6704 manually merged
configure.in:
  Auto merged
client/mysqldump.c:
  Auto merged
innobase/buf/buf0rea.c:
  Auto merged
innobase/dict/dict0load.c:
  Auto merged
innobase/fil/fil0fil.c:
  Auto merged
innobase/include/fil0fil.h:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/include/trx0trx.h:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/row/row0ins.c:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
innobase/srv/srv0start.c:
  Auto merged
innobase/trx/trx0trx.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/alter_table.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/func_str.result:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/grant_cache.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/r/ndb_blob.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/timezone2.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/t/multi_update.test:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
  Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Auto merged
ndb/src/ndbapi/NdbOperationDefine.cpp:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/ha_myisammrg.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  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-common/client.c:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/strfunc.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
vio/vio.c:
  Auto merged
vio/viosocket.c:
  Auto merged
2004-12-31 15:26:24 +01:00
unknown
da2c2b9c63 Yet another after merge fix.
Now max_user_connections is 36th field in mysql.user table
(two new SP-related privileges were added).
2004-12-31 14:02:40 +03:00
unknown
5eaf65ab4b post-merge
mysql-test/r/grant2.result:
  new test case
mysql-test/r/variables.result:
  don't fail w/o innodb
mysql-test/t/grant2.test:
  new test case
mysql-test/t/multi_update.test:
  don't fail w/o innodb
mysql-test/t/variables.test:
  don't fail w/o innodb
sql/sql_acl.cc:
  cleanup
2004-12-31 11:52:14 +01:00
unknown
efe5d60e89 Manual merge.
client/mysqltest.c:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/information_schema.result:
  Auto merged
sql/lex.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2004-12-31 12:48:27 +03:00
unknown
45199f545c After merge fixes
Cleanup of mi_print_error() handling
Deleted 'merge' directory


BitKeeper/deleted/.del-mrg_close.c~1fa9230422daa62a:
  Delete: merge/mrg_close.c
BitKeeper/deleted/.del-mrg_create.c~b747c8ec2b801f6:
  Delete: merge/mrg_create.c
BitKeeper/deleted/.del-mrg_delete.c~38b4156885bb4537:
  Delete: merge/mrg_delete.c
BitKeeper/deleted/.del-mrg_extra.c~7eb6181e1761907e:
  Delete: merge/mrg_extra.c
BitKeeper/deleted/.del-mrg_info.c~37728e7238cc5a11:
  Delete: merge/mrg_info.c
BitKeeper/deleted/.del-mrg_locking.c~112756a2d581e1d0:
  Delete: merge/mrg_locking.c
BitKeeper/deleted/.del-mrg_open.c~6e1d5c8bfa62a519:
  Delete: merge/mrg_open.c
BitKeeper/deleted/.del-mrg_panic.c~e204e43cd6d55406:
  Delete: merge/mrg_panic.c
BitKeeper/deleted/.del-mrg_rrnd.c~6087c3dd7ecb77:
  Delete: merge/mrg_rrnd.c
BitKeeper/deleted/.del-mrg_rsame.c~3e8ed4be2a0952b1:
  Delete: merge/mrg_rsame.c
BitKeeper/deleted/.del-mrg_static.c~75a4b78a165dbd0:
  Delete: merge/mrg_static.c
BitKeeper/deleted/.del-mrg_update.c~4110a4f1fbf1ab45:
  Delete: merge/mrg_update.c
BitKeeper/deleted/.del-Makefile.am~41238af048e60515:
  Delete: merge/Makefile.am
BitKeeper/deleted/.del-make-ccc~4f1acbfc127e25d5:
  Delete: merge/make-ccc
BitKeeper/deleted/.del-mrg_def.h~a10557d12a87ef1c:
  Delete: merge/mrg_def.h
BitKeeper/deleted/.del-.cvsignore~2f287ba794db3da7:
  Delete: merge/.cvsignore
include/myisam.h:
  Added 'share' to st_mi_keydef' to not have to pass 'st_myisam_info' to functions
myisam/ft_static.c:
  Removed compiler warning
myisam/mi_delete.c:
  Cleanup of mi_print_error() handling
  Break if get_key() return 0
  Don't test for HA_ERR_CRASHED; Print errors when my_errno is set
myisam/mi_extra.c:
  Cleanup of mi_print_error() handling
myisam/mi_key.c:
  Cleanup of mi_print_error() handling
myisam/mi_keycache.c:
  Cleanup of mi_print_error() handling
myisam/mi_locking.c:
  Cleanup of mi_print_error() handling
myisam/mi_open.c:
  Added 'my_isam_share' to MI_KEYDEF
myisam/mi_page.c:
  Cleanup of mi_print_error() handling
myisam/mi_range.c:
  get_key() calls mi_print_error() if needed
myisam/mi_rkey.c:
  Cleanup of mi_print_error() handling
myisam/mi_search.c:
  Cleanup of mi_print_error() handling
  Break if get_key() return 0
  Don't test for HA_ERR_CRASHED; Print errors when my_errno is set
myisam/mi_update.c:
  Cleanup of mi_print_error() handling
myisam/mi_write.c:
  Cleanup of mi_print_error() handling
  Break if get_key() return 0
  Don't test for HA_ERR_CRASHED; Print errors when my_errno is set
myisam/myisamdef.h:
  Cleanup of mi_print_error() handling
mysql-test/r/grant.result:
  Update results after merge
mysql-test/r/timezone2.result:
  Update results after merge
mysql-test/t/grant.test:
  New error numbers
mysql-test/t/timezone2.test:
  New error numbers
sql/item_func.cc:
  Remove duplicate include file
sql/sql_acl.cc:
  Remove warnings from valgrind
sql/tztime.cc:
  Print wrong timezone names to log
2004-12-31 03:47:56 +02:00
unknown
12a215b083 Merge with global tree
BitKeeper/etc/logging_ok:
  auto-union
client/mysqltest.c:
  Auto merged
innobase/dict/dict0dict.c:
  Auto merged
innobase/include/dict0dict.h:
  Auto merged
libmysql/errmsg.c:
  Auto merged
myisam/mi_open.c:
  Auto merged
myisam/mi_write.c:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/r/show_check.result:
  Auto merged
mysql-test/t/derived.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
mysql-test/t/system_mysql_db_fix.test:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.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_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/tztime.h:
  Auto merged
2004-12-31 00:50:30 +02:00
unknown
2e8d13c73e After merge fixes
config/ac-macros/character_sets.m4:
  Added latin1_spanish_ci
dbug/dbug_analyze.c:
  Remove compiler warnings
include/my_handler.h:
  Reorder structure arguments to be more optimal
innobase/dict/dict0load.c:
  Fixed wrong define tag (for MySQL 5.0)
innobase/fil/fil0fil.c:
  Fixed compiler warning
innobase/os/os0file.c:
  Fixed compiler warning
myisam/ft_boolean_search.c:
  Fixed compiler warning
myisam/ft_static.c:
  Update to use new HA_KEYSEG structure
myisam/mi_open.c:
  Simple optimization
myisammrg/myrg_static.c:
  Removed compiler warning
mysql-test/r/grant.result:
  Update results after merge
mysql-test/r/index_merge.result:
  Update results after merge
mysql-test/r/information_schema_inno.result:
  Add missing drop table
mysql-test/r/lowercase_table.result:
  safety fix
mysql-test/r/multi_update.result:
  safety fix
mysql-test/r/ps_1general.result:
  safety fix
mysql-test/r/ps_2myisam.result:
  Update results after merge
  (set is not anymore of binary type)
mysql-test/r/ps_3innodb.result:
  Update results after merge
mysql-test/r/ps_4heap.result:
  Update results after merge
mysql-test/r/ps_5merge.result:
  Update results after merge
mysql-test/r/ps_6bdb.result:
  Update results after merge
mysql-test/r/show_check.result:
  Update results after merge
mysql-test/r/subselect.result:
  Update results after merge
  (added missing quotes)
mysql-test/r/timezone2.result:
  Update results after merge
mysql-test/r/view.result:
  Update results after merge
  (note that INSERT IGNORE will work again after next merge from 4.1)
mysql-test/t/derived.test:
  Removed empty line
mysql-test/t/grant.test:
  Update results after merge
mysql-test/t/information_schema_inno.test:
  added missing drop table
mysql-test/t/lowercase_table.test:
  safety fix
mysql-test/t/multi_update.test:
  safety fix
mysql-test/t/ps_1general.test:
  safety fix
mysql-test/t/view.test:
  update error codes after merge
ndb/src/mgmsrv/main.cpp:
  after merge fix
ndb/tools/ndb_test_platform.cpp:
  removed compiler warnings
regex/main.c:
  remove compiler warnings
sql/field.cc:
  Remove compiler warning
sql/gen_lex_hash.cc:
  Added DBUG support
sql/ha_myisam.cc:
  Removed warning from valgrind
sql/ha_ndbcluster.cc:
  Remove compiler warning
sql/item_cmpfunc.cc:
  Better to use val_int() instead of val_real() as we don't want Item_func_nop_all to return different value than the original ref element
sql/mysqld.cc:
  Remove compiler warning
sql/sql_acl.cc:
  More debugging
sql/sql_lex.cc:
  Remove unnecessary 'else'
sql/sql_parse.cc:
  After merge fixes
  Simplify reset of thd->server_status for SQLCOM_CALL
sql/sql_prepare.cc:
  After merge fixes
  Removed possible core dump in mysql_stmt_fetch()
sql/sql_update.cc:
  After merge fixes (together with Sanja)
strings/ctype-czech.c:
  Remove compiler warning
strings/ctype-ucs2.c:
  Remove compiler warning
strings/ctype-win1250ch.c:
  Remove compiler warning
strings/xml.c:
  Remove compiler warning
tests/client_test.c:
  Fix test to work with 5.0
vio/test-sslserver.c:
  Portability fix
2004-12-31 00:44:00 +02:00
unknown
379613c3e2 merged 2004-12-30 21:11:40 +01:00
unknown
40a0199e77 unsufficient privilege checks in GRANT, when a grantor has column-level privileges 2004-12-30 21:01:11 +01:00
unknown
f174d5a241 Manual merge of patch implementing WL#1339 with main tree.
client/mysqltest.c:
  Auto merged
mysql-test/r/system_mysql_db.result:
  Auto merged
sql/lex.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/structs.h:
  Auto merged
mysql-test/r/grant.result:
  Manual merge
scripts/mysql_create_system_tables.sh:
  Manual merge
scripts/mysql_fix_privilege_tables.sql:
  Manual merge
sql/mysql_priv.h:
  Manual merge
sql/mysqld.cc:
  Manual merge
sql/sql_parse.cc:
  Manual merge
2004-12-29 22:35:16 +03:00
unknown
05b709fc77 WL#1339 "Add per account max_user_connections limit (maximum number
of concurrent connections for the same account)"

Added support of account specific max_user_connections limit. Made all
user limits to be counted per account instead of the old behavior,
which was per user/host accounting. Added option which enables the old
behavior. Added testing of these to the test suite.

(After review version).


client/mysqltest.c:
  Extended mysqltest to be able to handle connect() statements for which
  error is expected.
  
  - Added replace_dynstr_append() utility function.
  - added connect_n_handle_errors() function which connects with server
    without retries and handles errors as if "connect" was usual
    statement.
  - do_connect(): added ability to handle connects which are expected
    to return an error.
  - run_query_normal(): Moved all expected-error-handling code to separate
    normal_handle_error()/normal_handle_no_error() functions to be able
    to reuse them in connect_n_handle_errors().
mysql-test/r/grant.result:
  Fixed test results since one more column to mysql.user was added.
mysql-test/r/system_mysql_db.result:
  Fixed test results since one more column to mysql.user was added.
scripts/mysql_create_system_tables.sh:
  Added max_user_connections column to mysql.user table for storing
  new maximal concurrent connections per account limit.
scripts/mysql_fix_privilege_tables.sql:
  Added max_user_connections column to mysql.user table for storing
  new maximal concurrent connections per account limit.
sql/lex.h:
  Added MAX_USER_CONNECTIONS symbol used for specifying
  maximum number of concurrent connections per account.
sql/mysql_priv.h:
  Added declaration of opt_old_style_user_limits variable which is defined
  in sql/mysqld.cc used in sql/sql_parse.cc.
sql/mysqld.cc:
  Added "old-style-user-limits" option which forces user limits to behave
  in old way i.e. to be counted per user/host pair instead of per account.
  Added comment describing mqh_used variable.
sql/set_var.cc:
  Added sys_var_max_user_conn class which implements support for the new 
  behavior of max_user_connections variable. Now the global instance of
  this variable holds default maximum number of concurrent connections per
  account (as it was before) and the session instance gives read-only
  access to account-specific version of this limit.
sql/set_var.h:
  Added sys_var_max_user_conn class which implements support for the new 
  behavior of max_user_connections variable. Now the global instance of
  this variable holds default maximum number of concurrent connections per
  account (as it was before) and the session instance gives read-only
  access to account-specific version of this limit.
sql/sql_acl.cc:
  Added support for account-specific MAX_USER_CONNECTIONS limit.
  Tweaked USER_RESOURCES and their handling for better clarity.
sql/sql_parse.cc:
  Added support for account-specific MAX_USER_CONNECTIONS (maximum number
  of concurrent connections per account) limit. Changed default behavior
  of all user limits to be per account instead of per user+host.
  '--old-style-user-limits' option was added to enable the old behavior.
  Made maximum number of connections per hour to be independant on the
  value of global max_user_connections variable.
sql/sql_yacc.yy:
  Added support of new MAX_USER_CONNECTIONS limit to grammar.
  Renamed USER_RESOURCES::connections member to conn_per_hour and bits
  member to specified_limits. Also enum is used instead of naked numbers
  when we are working with specified_limits.
sql/structs.h:
  USER_RESOURCES struct:
   - Added user_conn member to store the maximum number of concurrent 
     connections for an account. Renamed connections member to 
     conn_per_hour for less ambiguity.
   - Renamed member 'bits' to 'specified_limits' for the sake of clarity.
     The member was used as a flag indicating which limits were mentioned
     in GRANT clause.
   - Added comments.
  USER_CONN struct:
   - Removed unused user_len member.
   - Added comments.
2004-12-29 20:30:37 +03:00
unknown
19ffa6a4ec Manual merge of changes making GRANTs, which change SSL attributes and/or
user limits to behave well on 5.0 tables, into 4.1 tree.


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
2004-12-23 22:16:43 +03:00
unknown
4a5ca0bc63 Make GRANTs, which change SSL attributes and/or user limits,
to behave well on 5.0 tables (well now you can't use tables from 4.1
and 5.0 with 4.0 because former use utf8, but still it is nice to have
similar code in acl_init() and replace_user_table()).
This also will make such GRANTs working in 5.0 (they are broken now).


mysql-test/r/grant.result:
  Added test for GRANT which manipulates user limits.
mysql-test/t/grant.test:
  Added test for GRANT which manipulates user limits.
2004-12-23 21:59:36 +03:00
unknown
0cc6e44707 Fix compile error, caused by wl#925 variable rename
sql/sql_acl.cc:
  Fix compile error
2004-12-23 11:23:36 +00:00
unknown
09ce0b330b WL#925 - Privileges for stored routines
Implement fine-grained control over access to stored procedures
  Privileges are cached (same way as existing table/column privs)
  


mysql-test/include/system_db_struct.inc:
  WL#925 - Privileges for stored routines
    New system table: procs_priv
mysql-test/r/connect.result:
  WL#925 - Privileges for stored routines
    New system table: procs_priv
mysql-test/r/grant.result:
  WL#925 - Privileges for stored routines
    user table has additional privilege attributes
    SHOW PRIVILEGES amended
mysql-test/r/grant2.result:
  Fix result
mysql-test/r/information_schema.result:
  WL#925 - Privileges for stored routines
    New system table procs_priv
    New user privileges
mysql-test/r/show_check.result:
  Fix result
mysql-test/r/sp-security.result:
  WL#925 - Privileges for stored routines
    Fix existing tests to work with new privileges
    New tests for new privileges
mysql-test/r/sp.result:
  WL#925 - Privileges for stored routines
    Fix SHOW PRIVILEGES results
mysql-test/r/system_mysql_db.result:
  WL#925 - Privileges for stored routines
    New system table: procs_priv
    user and db tables have new privilege attributes
mysql-test/t/grant2.test:
  Fix test
mysql-test/t/show_check.test:
  Fix test
mysql-test/t/sp-security.test:
  WL#925 - Privileges for stored routines
    Allow existing tests to run with new privilege checks
    New tests for privileges
mysql-test/t/system_mysql_db_fix.test:
  WL#925 - Privileges for stored routines
    New system table: procs_priv
scripts/mysql_create_system_tables.sh:
  WL#925 - Privileges for stored routines
    db and user has new privilege attributes
    new system table: procs_priv
scripts/mysql_fix_privilege_tables.sql:
  WL#925 - Privileges for stored routines
    new system table: procs_priv
scripts/mysql_install_db.sh:
  WL#925 - Privileges for stored routines
    Amend comment
sql/item_func.cc:
  WL#925 - Privileges for stored routines
    Privilege check for stored FUNCTION routine
sql/lex.h:
  WL#925 - Privileges for stored routines
    new token ROUTINE
sql/mysql_priv.h:
  WL#925 - Privileges for stored routines
    New function: check_procedure_access()
sql/mysqld.cc:
  WL#925 - Privileges for stored routines
    system option automatic-sp-privileges
sql/set_var.cc:
  WL#925 - Privileges for stored routines
    system option automatic-sp-privileges
sql/share/errmsg.txt:
  WL#925 - Privileges for stored routines
    rename errormessage to conform:
      ER_SP_ACCESS_DENIED_ERROR -> ER_PROCACCESS_DENIED_ERROR
    New error messages
      ER_NONEXISTING_PROC_GRANT, ER_PROC_AUTO_GRANT_FAIL, ER_PROC_AUTO_REVOKE_FAIL
sql/sp.cc:
  WL#925 - Privileges for stored routines
    new function: sp_exists_routine()
sql/sp.h:
  WL#925 - Privileges for stored routines
    new function: sp_exists_routine()
sql/sql_acl.cc:
  WL#925 - Privileges for stored routines
    Implementation for SP privileges.
    Privileges are cached in memory hash.
    New functions:
      mysql_procedure_grant()
      check_grant_procedure()
      sp_revoke_privileges()
      sp_grant_privileges()
sql/sql_acl.h:
  WL#925 - Privileges for stored routines
    New privilege bits: CREATE_PROC_ACL, ALTER_PROC_ACL
    Alter confusing bit-segments to be shifted
    New macros: fix_rights_for_procedure() get_rights_for_procedure()
    New functions:
      mysql_procedure_grant()
      check_grant_procedure()
      sp_grant_privileges()
      sp_revoke_privileges()
sql/sql_lex.h:
  WL#925 - Privileges for stored routines
    new all_privileges attribute in LEX
sql/sql_parse.cc:
  WL#925 - Privileges for stored routines
    Remove function: check_sp_definer_access()
    Add handling for SP grants/revokes
    Add privilege checks for stored procedure invocation
sql/sql_show.cc:
  WL#925 - Privileges for stored routines
    update result for SHOW PRIVILEGES
sql/sql_yacc.yy:
  WL#925 - Privileges for stored routines
    New token ROUTINE
    rename some rules
    handle CREATE ROUTINE / ALTER ROUTINE privileges
2004-12-23 10:46:24 +00:00
unknown
bb2d3eaa30 Merge with 4.1
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
Build-tools/Do-compile:
  Auto merged
VC++Files/sql/mysqld.dsp:
  Auto merged
client/Makefile.am:
  Auto merged
client/mysql.cc:
  Auto merged
BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003:
  Auto merged
client/mysqltest.c:
  Auto merged
include/my_base.h:
  Auto merged
innobase/dict/dict0dict.c:
  Auto merged
innobase/dict/dict0load.c:
  Auto merged
innobase/include/dict0dict.h:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/srv/srv0srv.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/mi_rnext_same.c:
  Auto merged
myisam/mi_write.c:
  Auto merged
myisam/sort.c:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/ctype_ujis.result:
  Auto merged
mysql-test/r/gis-rtree.result:
  Auto merged
mysql-test/r/group_by.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/r/metadata.result:
  Auto merged
mysql-test/r/ndb_alter_table.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/r/insert_update.result:
  Auto merged
mysql-test/r/timezone2.result:
  Auto merged
mysql-test/r/type_enum.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/t/ps_1general.test:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
mysql-test/t/system_mysql_db_fix.test:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
ndb/include/ndbapi/NdbConnection.hpp:
  Auto merged
ndb/include/ndbapi/NdbDictionary.hpp:
  Auto merged
ndb/src/common/util/version.c:
  Auto merged
ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
  Auto merged
ndb/src/kernel/blocks/dbacc/Makefile.am:
  Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
  Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
  Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionary.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
  Auto merged
ndb/src/ndbapi/NdbOperationExec.cpp:
  Auto merged
ndb/src/ndbapi/NdbScanOperation.cpp:
  Auto merged
ndb/test/ndbapi/Makefile.am:
  Auto merged
scripts/make_win_src_distribution.sh:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_create.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_geofunc.cc:
  Auto merged
sql/item_row.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_strfunc.h:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_sum.h:
  Auto merged
sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/password.c:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_derived.cc:
  Auto merged
sql/sql_do.cc:
  Auto merged
sql/sql_handler.cc:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/examples/ha_archive.cc:
  Auto merged
sql/strfunc.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/tztime.h:
  Auto merged
sql/udf_example.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
Makefile.am:
  Simple merge
client/mysqldump.c:
  Simple merge
configure.in:
  Simple merge
libmysqld/lib_sql.cc:
  Automatic merge
mysql-test/r/func_str.result:
  Automatic merge
mysql-test/r/grant.result:
  simple merge
mysql-test/r/multi_update.result:
  automatc merge
mysql-test/r/ps.result:
  automatic merge
mysql-test/r/ps_2myisam.result:
  Automatic merge
mysql-test/r/ps_3innodb.result:
  Automatic merge
mysql-test/r/ps_4heap.result:
  Automatic merge
mysql-test/r/ps_5merge.result:
  Automatic merge
mysql-test/r/ps_6bdb.result:
  Automatic merge
mysql-test/r/ps_7ndb.result:
  Automatic merge
mysql-test/r/show_check.result:
  Automatic merge
mysql-test/r/subselect.result:
  Automatic merge
mysql-test/t/grant.test:
  Automatic merge
mysql-test/t/multi_update.test:
  Automatic merge
mysql-test/t/ps.test:
  Automatic merge
mysql-test/t/show_check.test:
  Automatic merge
ndb/docs/wl2077.txt:
  merge
ndb/src/mgmsrv/main.cpp:
  merge
scripts/mysql_fix_privilege_tables.sh:
  merge
sql/item.cc:
  Merge (difficult)
sql/item.h:
  simple merge
sql/item_cmpfunc.h:
  Automatic merge
sql/item_subselect.cc:
  Simple merge
sql/item_subselect.h:
  Automatic merge
sql/mysql_priv.h:
  Simple merge
sql/slave.h:
  Automatic merge
sql/sql_base.cc:
  Removed code that was backported to 4.1
sql/sql_class.h:
  Merge (some code moved to sql_insert.cc)
sql/sql_db.cc:
  simple merge
sql/sql_insert.cc:
  Merge (difficult as logic had changed both in 4.1 and 5.0)
  Some coded moved here from sql_class.h
sql/sql_parse.cc:
  Merge (difficult)
sql/sql_prepare.cc:
  Simple merge
sql/sql_select.cc:
  Automatic merge
sql/sql_table.cc:
  Simple merge
sql/sql_update.cc:
  Difficult merge because of different logic for multi-updates
sql/sql_yacc.yy:
  Simple merge
tests/client_test.c:
  Simple merge
2004-12-22 13:54:39 +02:00