Commit graph

36565 commits

Author SHA1 Message Date
unknown
5c5623775c Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.0-cts-3


sql/mysql_priv.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-05-11 21:55:55 +04:00
unknown
c5a8245596 Fix for:
Bug  "Infinite loop in CREATE TABLE IF NOT EXISTS ... SELECT
              with locked tables"
  Bug  "Crash when using CREATE TABLE .. SELECT and triggers"
  Bug  "CREATE TABLE ... SELECT is not isolated properly"
  Bug  "Inconsistent results of CREATE TABLE ... SELECT when
              temporary table exists"
 
Deadlock occured when one tried to execute CREATE TABLE IF NOT
EXISTS ... SELECT statement under LOCK TABLES which held
read lock on target table.
Attempt to execute the same statement for already existing
target table with triggers caused server crashes.
Also concurrent execution of CREATE TABLE ... SELECT statement
and other statements involving target table suffered from
various races (some of which might've led to deadlocks).
Finally, attempt to execute CREATE TABLE ... SELECT in case
when a temporary table with same name was already present
led to the insertion of data into this temporary table and
creation of empty non-temporary table.
 
All above problems stemmed from the old implementation of CREATE
TABLE ... SELECT in which we created, opened and locked target
table without any special protection in a separate step and not
with the rest of tables used by this statement.
This underminded deadlock-avoidance approach used in server
and created window for races. It also excluded target table
from prelocking causing problems with trigger execution.
  
The patch solves these problems by implementing new approach to
handling of CREATE TABLE ... SELECT for base tables.
We try to open and lock table to be created at the same time as
the rest of tables used by this statement. If such table does not
exist at this moment we create and place in the table cache special
placeholder for it which prevents its creation or any other usage
by other threads.

We still use old approach for creation of temporary tables.

Also note that we decided to postpone introduction of some tests
for concurrent behaviour of CREATE TABLE ... SELECT till 5.1.
The main reason for this is absence in 5.0 ability to set @@debug
variable at runtime, which can be circumvented only by using several
test files with individual .opt files. Since the latter is likely
to slowdown test-suite unnecessary we chose not to push this tests
into 5.0, but run them manually for this version and later push
their optimized version into 5.1


mysql-test/r/create.result:
  Extended test coverage for CREATE TABLE ... SELECT. In particular added
  tests for bug  "Inconsistent results of CREATE TABLE ... SELECT
  when temporary table exists" and bug  "Infinite loop in CREATE
  TABLE IF NOT EXISTS ... SELECT with locked tables".
mysql-test/r/trigger.result:
  Added test case for bug  "Crash when using CREATE TABLE .. SELECT
  and triggers"
mysql-test/t/create.test:
  Extended test coverage for CREATE TABLE ... SELECT. In particular added
  tests for bug  "Inconsistent results of CREATE TABLE ... SELECT
  when temporary table exists" and bug  "Infinite loop in CREATE
  TABLE IF NOT EXISTS ... SELECT with locked tables".
mysql-test/t/trigger.test:
  Added test case for bug  "Crash when using CREATE TABLE .. SELECT
  and triggers"
sql/lock.cc:
  Now for creation of name-lock placeholder in lock_table_name() we use
  auxiliary function table_cache_insert_placeholder().
sql/mysql_priv.h:
  Made build_table_path() function available outside of sql_table.cc file.
  reopen_name_locked_table() now has 3rd argument which controls linking
  in of table being opened into THD::open_tables (this is useful in
  cases when placeholder used for name-locking is already linked into
  this list).
  Added declaration of auxiliary function table_cache_insert_placeholder()
  which is used for creation of table placeholders for name-locking.
  Added declaration of table_cache_has_open_placeholder() function which
  can be used for checking if table cache contains an open placeholder for
  the table and if this placeholder was created by another thread.
  (This function is needed only in 5.0 where we use it in various versions
   of CREATE TABLE in order to protect it from concurrent CREATE TABLE
   ... SELECT operations for the table. Starting from 5.1 we use different
   approach so it is going to be removed there).
  Made close_old_data_files() static within sql_base.cc file. 
  Added auxiliary drop_open_table() routine.
  Moved declaration of refresh_version to table.h header to make it
  accessible from inline methods of TABLE class.
  MYSQL_OPEN_IGNORE_LOCKED_TABLES flag is no longer used. Instead
  MYSQL_OPEN_TEMPORARY_ONLY option was added.
sql/sql_base.cc:
  Added support for the new approach to the handling of CREATE TABLE
  ... SELECT for base tables.
  
  Now we try to open and lock table to be created at the same time as
  the rest of tables used by this statement. If such table does not
  exist at this moment we create and place in the table cache special
  placeholder for it which prevents its creation or any other usage
  by other threads.
  
  Note significant distinctions of this placeholder from the placeholder
  used for normal name-lock: 1) It is treated like open table by other
  name-locks so it does not allow name-lock taking operations like DROP
  TABLE or RENAME TABLE to proceed. 2) it is linked into THD::open_tables
  list and automatically removed during close_thread_tables() call.
  
  open_tables():
    Implemented logic described above. To do this added
    auxiliary check_if_table_exists() function.
    Removed support for MYSQL_OPEN_IGNORE_LOCKED_TABLES option
    which is no longer used.
    Added MYSQL_OPEN_TEMPORARY_ONLY which is used to restrict
    search for temporary tables only.
  close_cached_tables()/close_thread_table()/reopen_tables()/
  close_old_data_files()/table_is_used()/remove_table_from_cache():
    Added support for open placeholders (note that we also use them
    when we need to re-open tables during flush).
  Added auxiliary drop_open_table() routine.
  reopen_name_locked_table():
    Now has 3rd argument which controls linking in of table being
    opened into THD::open_tables (this is useful in cases when
    placeholder used for name-locking is already linked into
    this list).
  Added auxiliary table_cache_insert_placeholder() routine which
  simplifies creation of placeholders used for name-locking.
  Added table_cache_has_open_placeholder() function which can be
  used for checking if table cache contains an open placeholder for
  the table and if this placeholder was created by another thread.
  (This function is needed only in 5.0 where we use it in various versions
   of CREATE TABLE in order to protect it from concurrent CREATE TABLE
   ... SELECT operations for the table. Starting from 5.1 we use different
   approach so it is going to be removed there).
sql/sql_handler.cc:
  Adjusted mysql_ha_mark_tables_for_reopen() routine to properly
  handle placeholders which now can be linked into open tables
  list.
sql/sql_insert.cc:
  Introduced new approach to handling of base tables in CREATE TABLE
  ... SELECT statement.
  
  Now we try to open and lock table to be created at the same time as
  the rest of tables used by this statement. If such table does not
  exist at this moment we create and place in the table cache special
  placeholder for it which prevents its creation or any other usage
  by other threads. By doing this we avoid races which existed with
  previous approach in which we created, opened and locked target in
  separate step without any special protection.
  This also allows properly calculate prelocking set in cases when
  target table already exists and has some on insert triggers.
    
  Note that we don't employ the same approach for temporary tables
  (this is okay as such tables are unaffected by other threads).
  
  Changed create_table_from_items() and select_create methods to
  implement this approach.
sql/sql_parse.cc:
  The new approach to handling of CREATE TABLE ... SELECT for
  base tables assumes that all tables (including table to be
  created) are opened and (or) locked at the same time.
  So in cases when we create base table we have to pass to
  open_and_lock_tables() table list which includes target table.
sql/sql_prepare.cc:
  The new approach to handling of CREATE TABLE ... SELECT for
  base tables assumes that all tables (including table to be
  created) are opened and (or) locked at the same time.
  So in cases when we create base table we have to pass to
  open_and_lock_tables() table list which includes target table.
sql/sql_table.cc:
  Now mysql_create_table_internal(), mysql_create_like_table() and
  mysql_alter_table() not only check that destination table doesn't
  exist on disk but also check that there is no create placeholder
  in table cache for it (i.e. there is no CREATE TABLE ... SELECT
  operation in progress for it). Note that starting from 5.1 we
  use different approach in order to to protect CREATE TABLE ... SELECT
  from concurrent CREATE TABLE (ALTER TABLE ... RENAME) operations,
  the latter simply take name-locks on table before its creation
  (on target table name before renaming).
  
  Also made build_table_path() available from other files and
  asjusted calls to reopen_name_locked_table(), which now takes
  extra argument, which controls linking of open table into
  THD::open_tables list.
sql/sql_trigger.cc:
  reopen_name_locked_tables() now has one more argument which controls
  linking of opened table into the THD::open_tables list.
sql/sql_yacc.yy:
  The new approach to handling of CREATE TABLE ... SELECT statement
  for base tables assumes that all tables including table to be
  created are open and (or) locked at the same time. Therefore
  we need to set correct lock for target table.
sql/table.h:
  Moved declaration of refresh_version variable from mysql_priv.h
  to make it accessible from inline methods of TABLE class. 
  Renamed TABLE::locked_by_flush member to open_placeholder since
  now it is also used for taking exclusive name-lock and not only
  by flush. 
  Introduced TABLE::is_name_opened() helper method which can be used
  to distinguish TABLE instances corresponding to open tables or
  placeholders for them from closed instances (e.g. due to their old
  version). Also introduced TABLE::needs_reopen_or_name_lock() helper
  which allows to check if TABLE instance corresponds to outdated
  version of table or to name-lock placeholder.
  Introduced TABLE_LIST::create member which marks elements of
  table list corresponds to the table to be created.
  Adjusted TABLE_LIST::placeholder() method to take into account 
  name-lock placeholders for tables to be created (this, for example,
  allows to properly handle such placeholders in lock_tables()).
2007-05-11 20:33:13 +04:00
unknown
8bbe6f23db merging fixes
mysql-test/r/type_datetime.result:
  result fixed
mysql-test/t/type_datetime.test:
  testcase fixed
sql/item_func.cc:
  my_decimal_length_to_precision used
sql/my_decimal.h:
  merging fix
2007-05-11 20:56:22 +05:00
unknown
a0567199b1 Cleanup: now that we have Lex_input_stream, finish the transition
by moving yet another relevant flag to it from struct LEX.


mysql-test/r/ps.result:
  Update result.
mysql-test/r/ps_1general.result:
  Update result.
mysql-test/t/ps.test:
  New error code.
mysql-test/t/ps_1general.test:
  New error code.
sql/sql_lex.cc:
  Move stmt_prepare_mode to Lex_input_stream.
sql/sql_lex.h:
  Move stmt_prepare_mode to class Lex_input_stream
sql/sql_prepare.cc:
  Move stmt_prepare_mode to Lex_input_stream
sql/sql_yacc.yy:
  Remove dead code.
2007-05-11 17:26:12 +04:00
unknown
78ed69c339 Merge mysql.com:/home/hf/work/27921/my50-27921
into  mysql.com:/home/hf/work/27957/my50-27957


mysql-test/r/cast.result:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/my_decimal.h:
  merging
2007-05-11 18:13:06 +05:00
unknown
10be360ece bug#28273: GROUP_CONCAT and ORDER BY: No warning when result gets truncated.
When using GROUP_CONCAT with ORDER BY, a tree is used for the sorting, as 
opposed to normal nested loops join used when there is no ORDER BY. 

The tree traversal that generates the result counts the lines that have been 
cut down. (as they get cut down to the field's max_size)
But the check of that count was before the tree traversal, so no 
warning was generated if the output is truncated.

Fixed by moving the check to after the tree traversal.


mysql-test/r/func_gconcat.result:
  bug#28273: correct result
mysql-test/t/func_gconcat.test:
  bug#28273: test case
sql/item_sum.cc:
  bug#28273: the fix
  
  Moved the code that outputs a warning to after temporary table (tree) is traversed.
2007-05-11 16:05:20 +03:00
unknown
563b1297bb Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/27957/my50-27957


sql/item_func.cc:
  Auto merged
2007-05-11 17:42:50 +05:00
unknown
16c10892e8 Merge jhe@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj
into  dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.0/mysql-5.0-ndb-bj


sql/ha_ndbcluster.h:
  Auto merged
sql/set_var.cc:
  Auto merged
2007-05-11 18:02:57 +08:00
unknown
18e6090c37 Bug#25818 No return of NDB share object in failures in open method
- make sure resources are release properly on error
2007-05-11 08:07:42 +02:00
unknown
361905687e Fixed bug .
Bug occurs in INSERT IGNORE ... SELECT ... ON DUPLICATE KEY UPDATE
statements, when SELECT returns duplicated values and UPDATE clause
tries to assign NULL values to NOT NULL fields.
NOTE: By current design MySQL server treats INSERT IGNORE ... ON
DUPLICATE statements as INSERT ... ON DUPLICATE with update of
duplicated records, but MySQL manual lacks this information.
After this fix such behaviour becomes legalized.

The write_record() function was returning error values even within
INSERT IGNORE, because ignore_errors parameter of
the fill_record_n_invoke_before_triggers() function call was
always set to FALSE. FALSE is replaced by info->ignore.


sql/sql_insert.cc:
  Fixed bug :
  The write_record() function was returning error values even within
  INSERT IGNORE, because ignore_errors parameter of
  the fill_record_n_invoke_before_triggers() function call was
  always set to FALSE. FALSE is replaced by info->ignore.
mysql-test/t/insert_update.test:
  Added test case for bug .
mysql-test/r/insert_update.result:
  Added test case for bug .
2007-05-11 03:17:05 +05:00
unknown
30184f9624 Follow the coding style with class names.
sql/sql_insert.cc:
  delayed_insert -> Delayed_insert
2007-05-10 18:27:36 +04:00
unknown
9ca0e70341 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  vajra.(none):/opt/local/work/mysql-5.0-21483
2007-05-10 17:54:55 +04:00
unknown
9cc05ced33 Merge mysql.com:/home/svoj/devel/mysql/BUG27998/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG27998/mysql-5.0-engines


sql/ha_blackhole.h:
  Auto merged
mysql-test/r/blackhole.result:
  Manual merge.
mysql-test/t/blackhole.test:
  Manual merge.
2007-05-10 18:14:04 +05:00
unknown
28d9a827b5 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb


ndb/src/mgmclient/CommandInterpreter.cpp:
  Auto merged
2007-05-10 15:09:38 +02:00
unknown
50aa9d2bb2 Corrected merge error; missing line in debug statement. 2007-05-10 14:54:55 +02:00
unknown
d12a8413e3 No semantical change. Move checks of compatibility
of requested lock type and requested table operation from 
mysql_insert into a separate function.


sql/sql_insert.cc:
  Cleanup: move a number of locking related checks from mysql_insert 
  to a separate function.
  Add comments.
2007-05-10 16:18:01 +04:00
unknown
37f5b4949e Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2007-05-10 13:28:48 +02:00
unknown
db0c3b6d83 Bug#27344 Total failure to start the server
- Give some more protection against "too long socket name by setting the max
length when to use a tmpdir for sockets to 70 


mysql-test/mysql-test-run.pl:
  Give some more protection against "too long socket name by setting the max
  length when to use a tmpdir for sockets to 70
2007-05-10 13:28:24 +02:00
unknown
8b82a5abd0 Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb
into  dator3.(none):/home/mikael/mysql_clones/rt-5.0
2007-05-10 09:17:24 +02:00
unknown
184cc3b5fa Fixed bug : in some rare cases optimizer preferred a more expensive
ref access to a less expensive range access. 
This occurred only with InnoDB tables.


mysql-test/r/innodb_mysql.result:
  Added a test case for bug .
mysql-test/t/innodb_mysql.test:
  Added a test case for bug .
2007-05-10 00:06:24 -07:00
unknown
47430268e5 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
2007-05-10 09:04:05 +02:00
unknown
27ce25cdc1 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-opt
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-10 07:15:46 +02:00
unknown
a6da564a1d bug 27921 (Views ignore precision for CAST)
test result fixed
2007-05-10 08:14:53 +05:00
unknown
f2a52dd0f0 Bug View ignores precision for CAST()
Item_decimal_typecast::print properly implemented


mysql-test/r/view.result:
  Bug  View ignores precision for CAST()
  test result
mysql-test/t/view.test:
  Bug  View ignores precision for CAST()
  test case
sql/field.cc:
  zero decimals handling unified
sql/item_create.cc:
  Bug  View ignores precision for CAST()
  create_func_cast parameters changed, zero precision handling unified
sql/item_create.h:
  Bug  View ignores precision for CAST()
  create_func_cast parameters changed
sql/item_func.cc:
  Bug  View ignores precision for CAST() 
  Item_decimal_typecast::print properly implemented
sql/item_func.h:
  Bug  View ignores precision for CAST()
  max_length counting fixed
sql/my_decimal.h:
  Bug  View ignores precision for CAST()
  my_decimal_trim() implemented to unify zero precision handling
sql/sql_yacc.yy:
  Bug  View ignores precision for CAST()
  create_func_cast calls simplified
2007-05-10 00:17:21 +05:00
unknown
198a7991c0 enable setting api reg req frequency to be higher than heartbeat setting to ensure we have reasonably up-to-date info from ndb nodes
+ do this for management server
2007-05-09 15:03:01 +02:00
unknown
7ef22d8d22 Bug Sign problem in test "ndb_restore_print"
- corrected previous patch
  - some platforms do strange things with char... use Int8 to be sure of signedness
2007-05-09 14:31:22 +02:00
unknown
82b7c54338 Bug cast as decimal does not check overflow, also inconsistent with group, subselect
Missing check for overflow added to the Item_decimal_typecast::val_decimal


include/decimal.h:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  decimal_intg() declaration
mysql-test/r/cast.result:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  result fixed
mysql-test/r/type_newdecimal.result:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  test result
mysql-test/t/type_newdecimal.test:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  test case added
sql/item_func.cc:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  now we check for possible ovreflow in Item_decimal_typecast::val_decimal
sql/my_decimal.h:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  my_decimal_intg() implemented
strings/decimal.c:
  Bug  cast as decimal does not check overflow, also inconsistent with group, subselect
  decimal_intg() implemented
2007-05-09 17:27:14 +05:00
unknown
765bdc4d7b Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
2007-05-09 14:23:41 +02:00
unknown
10e329ffd4 Bug#26342 auto_increment_increment AND auto_increment_offset REALLY REALLY anger NDB cluster, implemented support for auto_increment_offset and auto_increment_increment for Ndb 2007-05-09 14:14:27 +02:00
unknown
ba9657bcc6 loaddata.result, loaddata.test:
A test case is corrected.


mysql-test/t/loaddata.test:
  A test case is corrected.
mysql-test/r/loaddata.result:
  A test case is corrected.
2007-05-09 14:46:11 +04:00
unknown
c7c6cc8d90 Merge pilot.blaudden:/home/msvensson/mysql/bug28193/my50-bug28193
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-09 10:55:09 +02:00
unknown
67d7cd515c Bug#28193 outfile fails randomly in pushbuild
- Change testcase to use remove_file


mysql-test/t/outfile.test:
  Change "exec rm" to "remove_file"
2007-05-09 10:52:28 +02:00
unknown
bc8d781b2d Merge pilot.blaudden:/home/msvensson/mysql/bug28193/my41-bug28193
into  pilot.blaudden:/home/msvensson/mysql/bug28193/my50-bug28193


mysql-test/t/outfile.test:
  Use local
2007-05-09 10:50:37 +02:00
unknown
575e5f68ee Merge pilot.blaudden:/home/msvensson/mysql/bug28193/my41-bug28193
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-05-09 10:49:52 +02:00
unknown
a4ed105c66 Bug outfile fails randomly in pushbuild
- Change "exec rm" to "remove_file"


mysql-test/t/outfile.test:
  Change "exec rm" to "remove_file"
2007-05-09 10:49:11 +02:00
unknown
ef7a956659 Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-05-09 10:48:45 +02:00
unknown
643cb9b8f3 Bug Sign problem in test "ndb_restore_print"
- some platforms do strange things with char... use Int8 to be sure of signedness
2007-05-09 10:22:26 +02:00
unknown
c863f1eeb6 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/27670-bug-5.0-opt-mysql
2007-05-09 00:35:21 +04:00
unknown
80788a3462 Bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP default value for a
TIMESTAMP field when no value has been provided.

The LOAD DATA sets the current time in the TIMESTAMP field with
CURRENT_TIMESTAMP default value when the field is detected as a null.
But when the LOAD DATA command loads data from a file that doesn't contain
enough data for all fields then the rest of fields are simply set to null
without any check. This leads to no value being inserted to such TIMESTAMP
field.

Now the read_sep_field() and the read_fixed_length() functions set current
time to the TIMESTAMP field with CURRENT_TIMESTAMP default value in all cases
when a NULL value is loaded to the field.


mysql-test/t/loaddata.test:
  Added a test case for the bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP
  default value for a TIMESTAMP field when no value has been provided.
mysql-test/r/loaddata.result:
  Added a test case for the bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP
  default value for a TIMESTAMP field when no value has been provided.
sql/sql_load.cc:
  Bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP default value for a
  TIMESTAMP field when no value has been provided.
  Now the read_sep_field() and the read_fixed_length() functions set current
  time to the TIMESTAMP field with CURRENT_TIMESTAMP default value in all cases
  when a NULL value is loaded to the field.
2007-05-09 00:23:16 +04:00
unknown
e931579322 increate hearbeat interval to avoid load related start up issues in mysql-test-run 2007-05-08 18:30:03 +02:00
unknown
beacbfdae7 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
2007-05-08 12:57:37 +02:00
unknown
c02934a58d ndb - bug#27437
redo extra verification code so that tupkeyref is reset just before tupkeyreq


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  redo extra verification code so that tupkeyref is reset just before tupkeyreq
2007-05-08 12:53:12 +02:00
unknown
d8658088e1 Merge adventure.(none):/home/thek/Development/cpp/bug27792/my50-bug27792
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


mysql-test/r/query_cache.result:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2007-05-08 12:18:36 +02:00
unknown
2c3a464107 4.1 -> 5.0 Manual merge for Bug
mysql-test/r/query_cache.result:
  Added 5.0 testcase
mysql-test/t/query_cache.test:
  Added 5.0 test case
sql/mysql_priv.h:
  Added support for div_precision_increment
sql/set_var.cc:
  - Added query cache flush when system variable ft_boolean_syntax is
    updated since this also invalidates all cached result sets using this
    variable.
sql/sql_cache.cc:
  - Added the local system variable div_precision_increment as an identification flag
    for cached queries.
2007-05-08 11:24:07 +02:00
unknown
fa3de7d82f Merge mikael@192.168.0.203:/home/mikael/mysql_clones/rt-5.0
into  mikael-ronstr-ms-dator.local:/Users/mikron/mysql_clones/mysql-5.0-ndb
2007-05-08 10:11:40 +02:00
unknown
625c2b1de2 Merge adventure.(none):/home/thek/Development/cpp/bug27792/my41-bug27792
into  adventure.(none):/home/thek/Development/cpp/bug27792/my50-bug27792


sql/mysql_priv.h:
  Auto merged
mysql-test/r/query_cache.result:
  Null merge
mysql-test/t/query_cache.test:
  Null merge
sql/set_var.cc:
  Null merge
sql/sql_cache.cc:
  Null merge
2007-05-08 09:36:21 +02:00
unknown
ed9474993d Bug query cache returns wrong result, with certain system variables
- Queries in the query cache are identified by the individual 
   characters in the query statement, the current database and 
   the current environment expressed as a set of system variable
   flags.
 - Since the set of environment flags didn't properly describe the
   current environment unexpected results were returned from the 
   query cache.
 - Query cache is now cleared when the variable ft_boolean_syntax is 
   updated.
 - An identification flag for the variable default_week_format is 
   added to the query cache record.
 
Thanks to Martin Friebe who has supplied significant parts of this patch.


mysql-test/r/query_cache.result:
  Added test case
mysql-test/t/query_cache.test:
  Added test case
sql/mysql_priv.h:
  - Added missing flags to reflect the significant local environment
    settings of the cached query.
sql/set_var.cc:
  - Added query cache flush when system variable ft_boolean_syntax is
    updated since this also invalidates all cached result sets using this
    variable.
sql/sql_cache.cc:
  - Added another local system variable as an identification flag
    for cached queries.
2007-05-08 09:09:25 +02:00
unknown
4d108ce755 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb


mysql-test/r/ndb_basic.result:
  Auto merged
mysql-test/t/ndb_basic.test:
  Auto merged
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
  Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
  Auto merged
2007-05-08 08:24:21 +02:00
unknown
3962e2d472 ndb - bug#27437
bug in interpretedupdate (used for auto-increment) that made TUPKEYREF be sent twice
  this was however "normally" shadowed, but made LQH crash when LCP was about to start


mysql-test/r/ndb_basic.result:
  testcase
mysql-test/t/ndb_basic.test:
  testcase
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
  add extra variable to make sure TUPKEYREF is not received twice (VM_TRACE)
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  add extra variable to make sure TUPKEYREF is not received twice (VM_TRACE)
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
  make sure TUPKEYREF is not sent twice in case of "error" in interpreted program
2007-05-08 07:49:05 +02:00
unknown
6aa333d979 Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-4.1/mysql-4.1-ndb-bj
into  dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-4.1/mysql-4.1-ndb
2007-05-08 10:02:55 +08:00