Commit graph

483 commits

Author SHA1 Message Date
unknown
84d1199692 Fix for BUG#8218:
Remove TMP_TABLE_PARAM::copy_funcs_it. TMP_TABLE_PARAM is a member of JOIN which is 
copied via memcpy, and List_iterator_fast TMP_TABLE_PARAM::copy_funcs_it ends up 
pointing to the wrong List.


mysql-test/r/subselect.result:
  Testcase for BUG#8218
mysql-test/t/subselect.test:
  Testcase for BUG#8218
sql/sql_select.cc:
  Fix for BUG#8218: Create/use own iterator since TMP_TABLE_PARAM::copy_funcs_it is removed.
2005-02-12 22:58:54 +03:00
unknown
a1b7bbd74c Merge heikki@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/heikki/mysql-4.1


sql/sql_class.h:
  Auto merged
2005-02-02 00:22:19 +02:00
unknown
755c9aabe2 fixed cleanup of result object of subqueries. (BUG#8125)
mysql-test/r/subselect.result:
  cleaning up of results of subselects test
mysql-test/t/subselect.test:
  cleaning up of results of subselects test
sql/item_subselect.cc:
  call result object cleupup on engine cleunup
sql/sql_class.cc:
  added cleanup of select_max_min_finder_subselect
sql/sql_class.h:
  added cleanup of select_max_min_finder_subselect
2005-01-26 15:27:45 +02:00
unknown
7ff1db2d62 sql_class.h, set_var.cc, mysqld.cc:
Add settable variables for semi-sync replication


sql/mysqld.cc:
  Add settable variables for semi-sync replication
sql/set_var.cc:
  Add settable variables for semi-sync replication
sql/sql_class.h:
  Add settable variables for semi-sync replication
2005-01-25 22:11:21 +02:00
unknown
28b783eada Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1


sql/sql_class.h:
  Auto merged
2005-01-11 19:35:00 +02:00
unknown
4801c2e62f A fix for linking failure of MySQL client when linking with imap libraries
(Bug#7428) (renamed: hash_reset -> my_hash_reset)


mysys/hash.c:
  renamed: hash_reset -> my_hash_reset
sql/sql_class.h:
  hash_reset -> my_hash_reset
2005-01-11 13:53:10 +03:00
unknown
2419fa2684 Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
This allows use to use INSERT IGNORE ... ON DUPLICATE ...


mysql-test/r/drop.result:
  safety fix
mysql-test/t/drop.test:
  safety fix
mysql-test/t/multi_update.test:
  ensure we cover all possible errors
sql/log_event.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/log_event.h:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/mysql_priv.h:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_class.h:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_delete.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_insert.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_lex.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_lex.h:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_load.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_parse.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_repl.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_repl.h:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_select.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_table.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_union.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_update.cc:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_yacc.yy:
  Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
2004-12-31 12:04:35 +02:00
unknown
46364ddb19 WL#2274 - INSERT..SELECT..UPDATE
UPDATE clause conflicts with SELECT for use of item_list field.
  Alter UPDATE clause to use new lex field update_list
  Tests included


mysql-test/r/insert_update.result:
  WL#2274
    New tests for INSERT..SELECT..UPDATE
mysql-test/t/insert_update.test:
  WL#2274
    New tests for INSERT..SELECT..UPDATE
sql/mysql_priv.h:
  Remove function - insert_select_precheck()
sql/sql_class.h:
  WL#2274
    New constructor for class select_insert
sql/sql_insert.cc:
  WL#2274
    Move code into mysql_prepare_insert
    Add checks as param values may be NULL
sql/sql_lex.cc:
  WL#2274
    initialize lex->update_list
sql/sql_lex.h:
  WL#2274
    New field in LEX: update_list
sql/sql_parse.cc:
  WL#2274
    INSERT..UPDATE clause now populates lex->update_list
    Remove redundant function: insert_select_precheck()
sql/sql_prepare.cc:
  WL#2274
    invoke insert_precheck() instead of insert_select_precheck()
sql/sql_yacc.yy:
  WL#2274
    Enable INSERT..SELECT..UPDATE syntax
    New rule - insert_update_list, to populate lex->update_list
2004-12-13 12:26:28 +00:00
unknown
c9f0aaa653 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-global-4.1


sql/sql_class.h:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2004-12-03 22:13:53 +02:00
unknown
a1fb39e7ba Merge
sql/sql_insert.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_class.h:
  SCCS merged
2004-12-03 17:48:19 +01:00
unknown
dea513dd12 sql/sql_class.h
Bug #6284 - report truncation warnings in INSERT ... SELECT only for "INSERT" part
sql/sql_insert.cc
    Bug #6284 - report truncation warnings in INSERT ... SELECT only for "INSERT" part


sql/sql_class.h:
  Bug #6284 - report truncation warnings in INSERT ... SELECT only for "INSERT" part
sql/sql_insert.cc:
  Bug #6284 - report truncation warnings in INSERT ... SELECT only for "INSERT" part
2004-12-03 15:02:29 +01:00
unknown
8948b7450f Manual fixes to merge of fix for Bug #6682 to 4.1.
sql/sql_class.h:
  update tmp_disable_binlog() and reenable_binlog() macros
mysql-test/r/insert_select.result:
  Handle results that differ from 4.0 to 4.1
2004-12-03 02:44:33 +01:00
unknown
117c7611a7 Merge
BitKeeper/etc/logging_ok:
  auto-union
mysql-test/t/insert_select.test:
  Auto merged
sql/sql_class.h:
  Auto merged
mysql-test/r/insert_select.result:
  SCCS merged
sql/sql_insert.cc:
  merge changes
sql/sql_table.cc:
  e
  merge changes
2004-12-03 00:39:55 +01:00
unknown
9286d1c145 Prevent adding 'CREATE TABLE .. SELECT' query to the binary log when the
insertion of new records partially failed. It would get logged because of the
logic to log a partially-failed 'INSERT ... SELECT' (which can't be rolled back
in non-transactional tables), but 'CREATE TABLE ... SELECT' is always rolled
back on failure, even for non-transactional tables. (Bug #6682)
(Original fix reimplemented after review by Serg and Guilhem.)


mysql-test/t/insert_select.test:
  Add test case for Bug #6682
mysql-test/r/insert_select.result:
  Add results for test case for Bug #6682
sql/sql_table.cc:
  moved tmp_disable_binlog() and reenable_binlog macros to sql/sql_class.h
sql/sql_insert.cc:
  disable binlog during call to super's ::send_error in select_create class
sql/sql_class.h:
  add select_create::send_error()
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-12-03 00:05:11 +01:00
unknown
0a24ac9ed2 Merge
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/subselect.result:
  SCCS merged
mysql-test/t/subselect.test:
  SCCS merged
2004-12-01 10:25:11 +02:00
unknown
c617037b23 Enabled usage of new system variables for ndb
- ndb_use_exact_count
  - ndb_autoincrement_prefetch_sz
  - ndb_use_transactions
  - ndb_force_send
moved "inlined" functions to .cc file since they are virtual anyways
enabled printout od ndb errors in warnings even if mapping existst to mysql error code


sql/ha_ndbcluster.h:
  Enabled usage of new system variables for ndb
    - ndb_use_exact_count
    - ndb_autoincrement_prefetch_sz
    - ndb_use_transactions
    - ndb_force_send
  moved "inlined" functions to .cc file since they are virtual anyways
sql/mysqld.cc:
  Enabled usage of new system variables for ndb
    - ndb_use_exact_count
    - ndb_autoincrement_prefetch_sz
    - ndb_use_transactions
    - ndb_force_send
sql/set_var.cc:
  Enabled usage of new system variables for ndb
    - ndb_use_exact_count
    - ndb_autoincrement_prefetch_sz
    - ndb_use_transactions
    - ndb_force_send
sql/sql_class.h:
  Enabled usage of new system variables for ndb
    - ndb_use_exact_count
    - ndb_autoincrement_prefetch_sz
    - ndb_use_transactions
    - ndb_force_send
2004-11-17 08:15:53 +00:00
unknown
dd93baa00d fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN
fixed cleunup of TMP_TABLE_PARAM
(BUG#6406)


mysql-test/r/subselect.result:
  primary query with temporary table and subquery with groupping
mysql-test/t/subselect.test:
  primary query with temporary table and subquery with groupping
sql/sql_class.h:
  fixed cleunup of TMP_TABLE_PARAM
sql/sql_select.cc:
  uncacheable test made simplier
  fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN
2004-11-16 00:16:04 +02:00
unknown
69bce9c68d More debugging
Print position in normal log for Binlog dump


dbug/dbug.c:
  Added DBUG_OUTPUT() to temporary start/stop trace-file output
  Optimized alignment of CODE_STATE structure
include/my_dbug.h:
  Added DBUG_OUTPUT() to temporary start/stop trace-file output
sql/field.cc:
  Safety fix when used with future 5.0 .frm tables
sql/log.cc:
  More debugging
sql/mysqld.cc:
  Fixed type
sql/slave.cc:
  Fixed wrong cast (not a bug)
sql/sql_class.h:
  More DBUG output
sql/sql_parse.cc:
  Print position in normal log for Binlog dump
2004-11-10 18:07:39 +02:00
unknown
435b20aa68 Simpler arena swapping code
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
This gives us the following benefits:
- Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
- Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
- We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root



client/mysqltest.c:
  Remove some not needed defines
  (Things like this should be done in config-win.h)
include/config-win.h:
  Added popen() and pclose() compatibility macros
mysql-test/t/rpl_failed_optimize-master.opt:
  Portability fix
sql/ha_berkeley.cc:
  New thd->memroot handling
sql/item_cmpfunc.cc:
  Simpler arena swapping code
sql/item_func.cc:
  Simpler arena swapping code
sql/item_subselect.cc:
  Simpler arena swapping code
  New thd->mem_root handling
sql/item_sum.cc:
  New thd->mem_root handling
sql/item_timefunc.cc:
  Fixed not-initalized usage errors found by valgrind
sql/log_event.cc:
  New thd->mem_root handling
sql/mysql_priv.h:
  New thd->mem_root handling
sql/mysqld.cc:
  New thd->mem_root handling
sql/opt_range.cc:
  New thd->mem_root handling
sql/repl_failsafe.cc:
  New thd->mem_root handling
sql/set_var.cc:
  New thd->mem_root handling
sql/sql_acl.cc:
  New thd->mem_root handling
sql/sql_base.cc:
  Simpler arena swapping code
  New thd->mem_root handling
sql/sql_class.cc:
  New thd->mem_root handling
sql/sql_class.h:
  Simpler arena swapping code
  New thd->mem_root handling
sql/sql_db.cc:
  New thd->mem_root handling
sql/sql_error.cc:
  New thd->mem_root handling
sql/sql_help.cc:
  New thd->mem_root handling
sql/sql_insert.cc:
  New thd->mem_root handling
sql/sql_parse.cc:
  New thd->mem_root handling
  Added some extra checking of return value of new
sql/sql_prepare.cc:
  New thd->mem_root handling
sql/sql_select.cc:
  New thd->mem_root handling
sql/sql_select.h:
  New thd->mem_root handling
sql/sql_union.cc:
  Simpler arena swapping code
sql/sql_yacc.yy:
  New thd->mem_root handling
sql/table.cc:
  New thd->mem_root handling
sql/thr_malloc.cc:
  New thd->mem_root handling
tests/client_test.c:
  Added drop table to some tests
  Changed some table names to 't1'
2004-11-08 01:13:54 +02:00
unknown
ca8be36f3a Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/media/sda1/mysql/mysql-4.1-6050


sql/sql_class.h:
  Auto merged
2004-10-22 15:59:58 +04:00
unknown
4512a46e65 A fix and test case for Bug#6050 "EXECUTE stmt reports ambiguous field
names with ident. tables fr. diff. schemata": revise all uses of
Item_field and make them prepared-statements friendly when necessary.


mysql-test/r/ps.result:
  Test results fixed: the test case for Bug#6050
mysql-test/r/ps_1general.result:
  Test results fixed: in prepared statements we expand '*' to a list
  of fully qualified fields (db.table.column).
mysql-test/t/ps.test:
  A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with 
  ident. tables fr. diff. schemata"
sql/item.cc:
  Revise all Item_field constructors: we need to make sure that no Item_field
  object points to unaccessible memory in prepared statements.
sql/item.h:
  Revise all Item_field constructors: we need to make sure that no Item_field
  object points to unaccessible memory in prepared statements.
sql/sql_base.cc:
  Item_field use changed to be prepared statements friendly.
sql/sql_class.h:
  New check of Item_arena state.
sql/sql_union.cc:
  Fixing the problem with name resolving in UNION and prepared statements:
  In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
  selected items is represented as a List<Item_field>, where each 
  Item_field points to a field of temporary table.
  But the temporary table is created anew on each execution of the prepared 
  statement. So on each subsequent execution we should reset Item_field
  items to point to fields from freshly-created temporary table.
sql/table.h:
  Comment TABLE member.
2004-10-22 14:47:35 +04:00
unknown
c8ad5215ea Manual merge.
sql/sql_class.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
tests/client_test.c:
  Manual merge
2004-10-21 18:44:40 +04:00
unknown
506f648b3a A fix and test case for bug#6059 "mysql_stmt_field_count returns
positive numbers when no resultset is available": when sending
result set metadata we need to use virtual select_result::send_fields, 
and not address protocol directly, because select_result descendents may 
intercept result set (it's the case for example for SELECT INTO OUTFILE).


sql/sql_class.h:
  A fix for bug#6059 "mysql_stmt_field_count returns positive numbers 
  when no resultset is available": introducing select_result::field_count()
  method to report actual number of fields in a result set, if any result
  set is sent to client.
sql/sql_prepare.cc:
  A fix for bug#6059 "mysql_stmt_field_count returns 
  positive numbers when no resultset is available": when sending
  result set metadata we need to use virtual select_result::send_fields, 
  and not address protocol directly, because select_result descendents may 
  intercept result set (it's the case for example for SELECT INTO OUTFILE).
  Now we need to always have lex->result set if we're in prepared statements.
tests/client_test.c:
  A test case for Bug#6059 "mysql_stmt_field_count returns positive 
  numbers when no resultset is available"
2004-10-21 18:33:53 +04:00
unknown
560d7bcdd0 Merge with 4.0
BitKeeper/etc/logging_ok:
  auto-union
Docs/Support/texi2html:
  Auto merged
innobase/trx/trx0rec.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
myisam/myisampack.c:
  Auto merged
mysql-test/t/innodb-lock.test:
  Auto merged
mysys/thr_lock.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/lock.cc:
  Auto merged
sql/sql_acl.cc:
  Keep old code
2004-10-20 16:24:28 +03:00
unknown
ed8ec2cf16 Code cleanups (done during review of new code)
Rename innodb_table_locks_old_behavior -> innodb_table_locks
Set innodb_table_locks to off by default to get same behaviour as in MySQL 4.0.20
(This means that Innodb ignore table locks by default, which makes it easier to combine MyISAM and InnoDB to simulate a transaction)


libmysql/libmysql.c:
  Use ulong instead of unsigned long
  Reuse _dig_vec()
myisam/myisampack.c:
  Simplify code
mysql-test/r/innodb-lock.result:
  new test case
mysql-test/t/innodb-lock.test:
  new test case
sql/ha_innodb.cc:
  Rename innodb_table_locks_old_behavior -> innodb_table_locks
sql/mysqld.cc:
  Rename innodb_table_locks_old_behavior -> innodb_table_locks
  Set this off by default to get same behaviour as in MySQL 4.0.20
sql/set_var.cc:
  Rename innodb_table_locks_old_behavior -> innodb_table_locks
sql/sql_class.h:
  Rename innodb_table_locks_old_behavior -> innodb_table_locks
2004-10-20 11:24:08 +03:00
unknown
55c1b79459 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/media/sda1/mysql/mysql-4.1-5985


sql/sql_class.h:
  Auto merged
2004-10-14 02:54:44 +04:00
unknown
54b00f5453 A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)"
crashes server." The fix makes Item_func_rand prepared-statements
aware plus it fixes the case when RAND is used in prepared
statements and replication is on (as well as several similar issues).
Until now we did not reset THD before every execution of a prepared
statement, so if some execution had set thd->time_zone_used
or thd->rand_used they would not be reset until next mysql_parse.
Some of post-review fixes done.


mysql-test/r/ps.result:
  A test case for Bug#5985: test results fixed.
mysql-test/t/ps.test:
  A test case for Bug#5985 "prepare stmt from "select rand(?)" crashes
  server."
sql/item_func.cc:
  Actual fix for Bug#5985: Item_func_rand rewritten to be 
  prepared statements aware.
sql/item_func.h:
  Actual fix for Bug#5985: Item_func_rand rewritten to be 
  prepared statements aware.
sql/mysql_priv.h:
  We need a separate call to reset THD state before every execute of
  a prepared statement. Otherwise things like THD->user_var_events
  are never cleaned up and bloat binary log (as the list of events
  grows from execution to execution).
sql/sql_class.cc:
  Statement::end_statement -> THD::end_statement()
  (a leftover from some design change which is not to pushed now, but the
  leftover is to be pushed).
sql/sql_class.h:
  Statement::end_statement -> THD::end_statement()
  (a leftover from some design change which is not to pushed now, but the
  leftover is to be pushed).
sql/sql_lex.cc:
  Move the part responsible for initializing LEX from mysql_init_query
  to lex_start.
sql/sql_lex.h:
  All lex-related initialization is now in lex_start.
  Move thd->select_number to lex->select_number to be able to use it
  easily in lex_start.
sql/sql_parse.cc:
  Split mysql_init_query into two functions: mysql_reset_thd_for_next_query,
  which is used in PS and conventional execution, and lex_start, used only
  when we want to parse something.
  Fix init_connect to use initialized THD.
sql/sql_prepare.cc:
  Deploy mysql_reset_thd_for_next_query to reset THD state before
  execution of a prepared statement.
  Normally this should have been added to just one place, but
  we have to reset thd before assigning placeholders from variables,
  thus we can't do that in execute_stmt (yuck).
2004-10-14 02:53:59 +04:00
unknown
f0ed73d874 Added startup option and settable session variable
innodb_table_locks_old_behavior: do not acquire an
InnoDB table lock for LOCK TABLES, as in mysql-4.0.18
and earlier.


sql/ha_innodb.cc:
  Do not acquire an InnoDB table lock for LOCK TABLES if
  innodb_table_locks_old_behavior is enabled.
sql/mysqld.cc:
  Added innodb_table_locks_old_behavior
sql/set_var.cc:
  Added innodb_table_locks_old_behavior
sql/sql_class.h:
  Added innodb_table_locks_old_behavior
2004-10-13 22:54:21 +03:00
unknown
63af3d3a2e Move Heikki's comment about thd->query comment to proper place
(bad merge from 4.0)


sql/sql_class.h:
  Move a comment to proper place (bad merge from 4.0)
2004-10-13 00:17:37 +04:00
unknown
5ddf724d5e Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into gw.mysql.r18.ru:/usr/home/ram/work/4.1.gconcat


sql/item_sum.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
2004-10-10 12:35:39 +05:00
unknown
b123f514b6 Blob support for the group_concat() function.
(Bug #4315: GROUP_CONCAT with ORDER BY returns strange results for TEXT fields
 Bug #5564: Strange behaviour with group_concat and distinct
 Bug #5970: group_concat doesn't print warnings)
2004-10-10 12:10:53 +05:00
unknown
acecc4dd9b A small simplification: perform two actions at once, register a
change, and perform it (the new Item changes registry).


sql/item.cc:
  A small simplification: perform two actions at once, register a
  change, and perform it.
sql/item_cmpfunc.cc:
  register_item_tree_change -> change_item_tree
sql/item_func.cc:
  register_item_tree_change -> change_item_tree
sql/item_row.cc:
  register_item_tree_change -> change_item_tree
sql/item_strfunc.cc:
  register_item_tree_change -> change_item_tree
sql/sql_class.h:
  register_item_tree_change -> change_item_tree
sql/sql_select.cc:
  register_item_tree_change -> change_item_tree
2004-10-10 03:10:00 +04:00
unknown
36b3ed27fb Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/media/sda1/mysql/mysql-4.1-5748-anew


sql/item_cmpfunc.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2004-10-08 02:22:40 +04:00
unknown
8fa6f37a29 A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
crashes mysqld": implementation for a generic item tree modifications
registry. Every item tree modification which should be rolled back for
subsequent execution of a prepared statement or stored procedure should
be saved in the registry. All such modifications are rolled back at once
during cleanup stage of PS.
Actual fix for the bug just adds a call to register modifications to
convert_constant_item.
Post review fixes implemented.


mysql-test/r/ps.result:
  A fix for bug#5748, test results fixed.
mysql-test/t/ps.test:
  A test case for Bug#5748 "Prepared statement with BETWEEN and bigint 
  values crashes mysqld"
sql/item.cc:
  Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
  crashes mysqld":
  First step in removing up item-specific cleanups: now all such
  tree modifications should be done using the genericm mechanism implemented
  in this changeset.
sql/item.h:
  Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
  crashes mysqld": no need for an item-specific change record any more.
sql/item_cmpfunc.cc:
  A fix for Bug#5748 "Prepared statement with BETWEEN and bigint 
  values crashes mysqld": register item tree transformation performed by
  convert_constant_item.
sql/sql_class.cc:
  Implementation for item tree transformations registry.
sql/sql_class.h:
  Declarations, necessary for the tree transformations registry.
sql/sql_parse.cc:
  Assert that the item tree transformations registry is not used for 
  conventional execution.
sql/sql_prepare.cc:
  Use of the item tree modifications registry in prepared statements:
  rollback all modifications in the end of statement prepare and execute.
  Also we now always set thd->current_arena to be able to determine that
  this is an execution of prepared statement inside the registry code.
tests/client_test.c:
  A typo fixed.
2004-10-08 02:21:19 +04:00
unknown
bbab9ec678 Merge with 4.0 for 4.1 release
Noteworthy:
- New HANDLER code
- New multi-update-grant-check code
- Table lock code in ha_innodb.cc was not applied


BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/deleted/.del-ctype-latin1_de.c~c5d8f9208bceb98e:
  Auto merged
Build-tools/mysql-copyright-2:
  Auto merged
acinclude.m4:
  Auto merged
client/mysqladmin.c:
  Auto merged
client/mysqldump.c:
  Auto merged
include/config-win.h:
  Auto merged
include/my_global.h:
  Auto merged
include/myisam.h:
  Auto merged
innobase/btr/btr0btr.c:
  Auto merged
innobase/buf/buf0buf.c:
  Auto merged
ltmain.sh:
  Auto merged
innobase/dict/dict0dict.c:
  Auto merged
innobase/fsp/fsp0fsp.c:
  Auto merged
innobase/include/dict0dict.h:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/log/log0log.c:
  Auto merged
innobase/log/log0recv.c:
  Auto merged
innobase/pars/pars0opt.c:
  Auto merged
innobase/row/row0row.c:
  Auto merged
innobase/sync/sync0arr.c:
  Auto merged
innobase/ut/ut0dbg.c:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/mi_close.c:
  Auto merged
myisam/mi_create.c:
  Auto merged
myisam/mi_locking.c:
  Auto merged
myisam/myisampack.c:
  Auto merged
mysql-test/r/delete.result:
  Auto merged
mysql-test/r/func_if.result:
  Auto merged
Build-tools/mysql-copyright:
  Merge with 4.0 (too most of the code from 4.0)
Makefile.am:
  merge
client/mysql.cc:
  Used 4.1 code
configure.in:
  merge
innobase/os/os0file.c:
  merge
innobase/row/row0mysql.c:
  merge
mysql-test/r/ctype_latin1_de.result:
  merge
mysql-test/r/flush_table.result:
  merge
mysql-test/r/func_str.result:
  merge
mysql-test/r/handler.result:
  merge
mysql-test/r/multi_update.result:
  merge
mysql-test/r/type_timestamp.result:
  Removed testing of 'new' mode, as this is only relevant for 4.0
mysql-test/r/update.result:
  merge
mysql-test/t/delete.test:
  merge
mysql-test/t/flush_table.test:
  merge
mysql-test/t/func_str.test:
  merge
mysql-test/t/handler.test:
  merge
mysql-test/t/multi_update.test:
  merge
mysql-test/t/type_timestamp.test:
  Removed testing of 'new' mode, as this is only relevant for 4.0
mysql-test/t/update.test:
  merge
mysys/errors.c:
  merge
mysys/my_fstream.c:
  merge
mysys/my_pread.c:
  merge
mysys/my_write.c:
  merge
mysys/mysys_priv.h:
  merge
scripts/mysqlhotcopy.sh:
  merge
sql/field.cc:
  Keep code from 4.1
sql/field.h:
  Keep code from 4.1
sql/ha_innodb.cc:
  Don't merge lock code from 4.0; Heikki will look at this
sql/ha_myisam.cc:
  merge
sql/handler.cc:
  merge
sql/item_cmpfunc.cc:
  merge
sql/item_cmpfunc.h:
  merge
sql/item_strfunc.cc:
  merge
sql/mysql_priv.h:
  merge
sql/mysqld.cc:
  merge
sql/protocol.cc:
  merge
sql/records.cc:
  merge
sql/repl_failsafe.cc:
  merge
mysql-test/r/lock_multi.result:
  merge
mysql-test/t/ctype_latin1_de.test:
  merge
mysql-test/t/func_if.test:
  merge
mysql-test/t/lock_multi.test:
  merge
sql/repl_failsafe.h:
  merge
  Remove unnessessary header protection
sql/slave.h:
  merge
sql/sql_acl.cc:
  merge
sql/sql_base.cc:
  merge
sql/sql_cache.cc:
  auto merge
sql/sql_class.cc:
  merge
sql/sql_class.h:
  merge
sql/sql_delete.cc:
  merge
sql/sql_handler.cc:
  Get new HANDLER code into 4.1
sql/sql_parse.cc:
  Keep old file
sql/sql_repl.cc:
  merge
sql/sql_repl.h:
  merge
sql/sql_show.cc:
  merge
sql/sql_table.cc:
  merge
sql/sql_union.cc:
  Applied the examine_rows bug fix from 4.0 by hand
sql/sql_update.cc:
  New multi-update-grant-check code from 4.0
sql/sql_yacc.yy:
  New multi-update-grant-check code from 4.0
sql/stacktrace.c:
  merge
sql/table.h:
  merge
2004-10-06 19:14:33 +03:00
unknown
7ce31065c6 Merge mysql.com:/home/mydev/mysql-4.0
into mysql.com:/home/mydev/mysql-4.0-bug4286


sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-10-05 11:33:13 +02:00
unknown
48bf825902 A couple of typos fixed.
sql/item.cc:
  A typo fixed in a comment, which is probably not valid any more
sql/sql_class.h:
  no such class Ttem_subselect.
2004-10-04 14:14:30 +04:00
unknown
697cb7b106 BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Reworked the HANDLER functions and interface.
Using a HASH to store information on open tables that
survives FLUSH TABLE.
HANDLER tables alias names must now be unique, though it
is allowed in 4.0 to qualify them with the database name
of the base table.


mysql-test/r/flush_table.result:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Moved pure handler test results to handler.result.
  Added the new test results.
mysql-test/r/handler.result:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Moved pure handler test results from flush_table.result to here.
mysql-test/t/flush_table.test:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Moved pure handler tests to handler.test.
  Added new tests.
mysql-test/t/handler.test:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Moved pure handler tests from flush_table.test to here.
sql/mysql_priv.h:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Reworked the handler interface.
sql/sql_base.cc:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Replaced mysql_ha_close_list() by the better named
  function mysql_ha_flush() with readable options.
sql/sql_class.cc:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Added initialization for the handler tables hash.
  Changed the handler tables clean-up code.
  Unreleted to bug: Changed the order of THD initialization
  to avoid warning messages on Linux with gcc.
sql/sql_class.h:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Added the handler tables HASH to THD.
sql/sql_handler.cc:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  Completely reworked the handler functions.
  Added an introducing comment, describing the new functionality.
sql/sql_table.cc:
  BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
  BUG#4335 - one name can be handler open'ed many times.
  replaced mysql_ha_close() by the better named
  function mysql_ha_flush() with readable options.
2004-09-24 18:39:25 +02:00
unknown
412a052a7d Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-memroot


sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
2004-09-23 13:52:00 +04:00
unknown
7ba5d931eb Implementation of Monty's idea about clear_alloc_root() optimization and cleanup of work
with memory roots in THD/Statement/Item_arena.
Added assertions preventing memory allocation on bzero'ed MEM_ROOT since it is worked by 
pure luck and was very ineffective.


include/my_sys.h:
  Reimplementation of Monty's optimization of clear_alloc_root().
  Now clear_alloc_root() can be used only for detaching memory associated with MEM_ROOT
  (e.g. to avoid its freeing). It can not be used for MEM_ROOT initialization any longer 
  (it was bad idea anyway since memory allocation on such MEM_ROOT was very ineffective 
  and worked by pure luck).
  Introduced ALLOC_ROOT_MIN_BLOCK_SIZE constant.
mysys/my_alloc.c:
  Added description of init_alloc_root().
  Added assertions to alloc_root() and reset_root_defaults() so now they can only be used
  on previosly initialized MEM_ROOT. (It worked for bzeroed MEM_ROOT before but 
  by pure luck and very inefficiently). Calling free_root() on bzero'ed MEM_ROOT
  is still ok (we can't remove this easily because of static MEM_ROOTs).
  Also now using ALLOC_ROOT_MIN_BLOCK_SIZE constant inside these functions.
sql/opt_range.cc:
  Fixed get_quick_select_for_ref() function to not use bzero'ed MEM_ROOT for allocation.
  Also QUICK_RANGEs created in this function should be created in memory root of QUICK_SELECT.
sql/sql_class.cc:
  Implementation of Monty's idea about clear_alloc_root() optimization and cleanup of work 
  with memory roots in THD/Statement/Item_arena.
  Now we are always initing THD::transaction.mem_root and THD::mem_root in THD constructor 
  (without memory allocation and with minimal block size) and then later change their
  parameters in THD::init_for_queries() (this is partially because we can't allocate anything
  on bzero'ed memory roots anymore).
  Item_arena() constructor is now trivial and is used only then Item_arena is created as backup
  storage for other Item_arena (we use Item_arena(bool) now if it is part of Statement).
  Both trivial Item_arena constructor and destructor are now inline.
  Removed unneeded clear_alloc_root from Item_arena::restore_backup_item_arena().
sql/sql_class.h:
  Both trivial Item_arena constructor and destructor are now inline.
  Commented various Item_arena constructors.
2004-09-23 13:48:17 +04:00
unknown
ccf52b4fd5 A fix and test case for Bug#5315 "mysql_change_user() doesn't free
prepared statements."


include/hash.h:
  New declaration for hash_reset() function. The old version was not used.
libmysql/client_settings.h:
  Declaration for mysql_detach_stmt_list().
libmysql/libmysql.c:
  Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
  add call to mysql_detach_stmt_list(prepared statements) to
  mysql_change_user(): all statements are freed by server, so client
  counterparts need to be marked as not usable.
mysys/hash.c:
  Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
  implementation of hash_reset(), which frees all hash elements
  and prepares the hash for reuse.
sql-common/client.c:
  Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
  implementation of mysql_detach_stmt_list(): zero connection pointer
  in given statement list, thus marking given statements as not usable.
sql/sql_class.cc:
  Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
  reset prepared statements map in THD::change_user().
sql/sql_class.h:
  Fix for bug#5315 "mysql_change_user() doesn't free prepared statements":
  implementation of Statement_map::reset().
  A little cleanup of ~Statement_map(): first empty names_hash, as st_hash
  has a free function, which will delete statements.
tests/client_test.c:
  A test case for bug #5315 "mysql_change_user() doesn't free prepared
  statements".
2004-09-22 15:50:07 +04:00
unknown
2e43e47040 moved all ndb thread specific data into new placeholder
new methods to keep "records" up to date
unset flag HA_NOT_EXACT_COUNT to make handler read "records" field, for count() optim and join optimization
new methods to keep "records" up to datecorrect record field in ndbcluster handler
new method for ndbcluster handler to store/retrieve table and thread specific data
changed local hash to store new table_info object, with placeholders for local data, instead of TableImpl
hanged deleteKey to return ponter to deleted object
moved heavy global cache fetch from inline to separate method


mysql-test/r/ndb_alter_table.result:
  correct record field in ndbcluster handler
mysql-test/r/ndb_blob.result:
  correct record field in ndbcluster handler
ndb/include/ndbapi/NdbDictionary.hpp:
  new method for ndbcluster handler to store/retrieve table and thread specific data
ndb/src/ndbapi/DictCache.cpp:
  changed local hash to store new table_info object, with placeholders for local data, instead of TableImpl
ndb/src/ndbapi/DictCache.hpp:
  changed local hash to store new table_info object, with placeholders for local data, instead of TableImpl
ndb/src/ndbapi/Ndb.cpp:
  replaced method DictionaryImpl::getTable with DictionaryImpl::get_local_table_info
ndb/src/ndbapi/NdbDictionary.cpp:
  new method for ndbcluster handler to store/retrieve table and thread specific data
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  changed local hash to store new table_info object, with placeholders for local data, instead of TableImpl
  moved heavy global cache fetch from inline to separate method
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
  replaced method DictionaryImpl::getTable with DictionaryImpl::get_local_table_info
ndb/src/ndbapi/NdbLinHash.hpp:
  changed deleteKey to return ponter to deleted object
sql/ha_ndbcluster.cc:
  moved all ndb thread specific data into new placeholder
  new methods to keep "records" up to date
  unset flag HA_NOT_EXACT_COUNT to make handler read "records" field, for count() optim and join optimization
sql/ha_ndbcluster.h:
  new methods to keep "records" up to date
sql/sql_class.h:
  moved all ndb thread specific data into new placeholder
2004-09-14 08:52:21 +00:00
unknown
9106686846 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into build.mysql.com:/users/tulin/mysql-4.1-ndb-merge


sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-09-09 10:41:33 +02:00
unknown
77a8615488 merged
BitKeeper/etc/ignore:
  auto-union
client/mysqlcheck.c:
  Auto merged
myisammrg/myrg_open.c:
  Auto merged
scripts/mysqld_safe.sh:
  Auto merged
sql/sql_analyse.cc:
  Auto merged
2004-09-07 15:18:53 +02:00
unknown
ea971987fc Replacing class Disable_binlog by macros. Patch already approved by Monty.
sql/log.cc:
  removing unneeded class Disable_binlog
sql/sql_class.h:
  removing unneeded class Disable_binlog
sql/sql_table.cc:
  As discussed, class Disable_binlog is removed and replaced by macros.
2004-09-06 22:47:26 +02:00
unknown
e8c2e41841 renamed ha_recovery_logging to ha_enable_transaction
added tests to alter table for "large" alter tables and truncates in ndbcluster
added debug printout in restart() in ndbcluster
added flag THD::transaction.on to enable/disable transaction


mysql-test/r/ndb_alter_table.result:
  added tests to alter table for "large" alter tables and truncates
mysql-test/t/ndb_alter_table.test:
  added tests to alter table for "large" alter tables and truncates
ndb/src/ndbapi/NdbConnection.cpp:
  added debug printout in restart()
sql/ha_ndbcluster.cc:
  added support for large alter table and truncate
sql/handler.cc:
  renamed ha_recovery_logging to ha_enable_transaction
sql/handler.h:
  renamed ha_recovery_logging to ha_enable_transaction
sql/sql_class.cc:
  added flag THD::transaction.on to enable/disable transaction
sql/sql_class.h:
  added flag THD::transaction.on to enable/disable transaction
sql/sql_delete.cc:
  added disable transaction for mysql_truncate
sql/sql_table.cc:
  renamed ha_recovery_logging to ha_enable_transaction
2004-09-03 15:11:09 +00:00
unknown
c62dd0d409 Change Item_arena::state to enum 2004-08-31 14:07:02 +04:00
unknown
205cf8044b Merge: manual resolve
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_select.cc:
  Auto merged
sql/sql_class.cc:
  Manual resolve of the merge
2004-08-24 23:07:08 +04:00
unknown
49bd559eb8 Fix for Bug#5034 "prepared "select 1 into @arg15", second
execute crashes server": we were deleting lex->result
after each execute, but prepared statements assumed that
it's left intact.
The fix adds cleanup() method to select_result hierarchy,
so that result objects can be reused.
Plus we now need to delete result objects more wisely.


mysql-test/r/ps.result:
  Test results fixed: test case for bug#5034
mysql-test/t/ps.test:
  A test case for bug#5034, few followups
sql/sql_class.cc:
  - fix warning in THD::THD
  - implementation of cleanup() for select_result hierarchy
  - select_export::send_eof was identical to 
    select_dump::send_eof: moved to the base class select_to_file.
  - Statement::end_statement() to end lex, free items, and
    delete possible select_result
sql/sql_class.h:
  - select_result::cleanup() declaration
  -
sql/sql_insert.cc:
  - implementation of select_insert::cleanup(): currently
    we always create a new instance of select_insert/
    select_create on each execute.
sql/sql_lex.cc:
  - with more complicated logic of freeing lex->result it's 
    easier to have it non-zero only if it points to a valid
    result.
sql/sql_lex.h:
  Now st_lex::st_lex is not empty.
sql/sql_parse.cc:
  mysql_execute_command():
  - delete select_result *result only if it was created in
    this function.
  - use end_statement() to cleanup lex and thd in the end of
    each statement.
  - no need to save THD::lock if this is explain. This save
    apparently left from times when derived tables were 
    materialized here, not in open_and_lock_tables.
sql/sql_prepare.cc:
  - call result->cleanup() in reset_stmt_for_execute
  - now Statement is responsible for freeing its lex->result.
sql/sql_select.cc:
  handle_select():
  - don't delete result, it might be needed
    for next executions
  - result is never null
2004-08-24 20:17:11 +04:00
unknown
d261072f7c Fix to compile with msvc: converted static const int Item_arena::* to enum members, undefine ERROR
include/config-win.h:
  Undefine ERROR #defined by WINGDI
sql/sql_class.cc:
  Fix to compile with msvc: converted static const int Item_arena::* to enum members
sql/sql_class.h:
  Fix to compile with msvc: converted static const int Item_arena::* to enum members
sql/sql_prepare.cc:
  Fix to compile with msvc: converted static const int Item_arena::* to enum members
2004-08-24 14:44:15 +04:00