into mysql.com:/home/jimw/my/mysql-5.0-clean
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
mysql-test/t/system_mysql_db_fix.test:
Auto merged
ndb/src/kernel/blocks/backup/BackupInit.cpp:
Auto merged
ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
Auto merged
ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
Auto merged
ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
ndb/src/kernel/vm/SimulatedBlock.cpp:
Auto merged
ndb/src/kernel/vm/SimulatedBlock.hpp:
Auto merged
ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_table.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
ndb/src/ndbapi/ndberror.c:
Resolve conflicts
sql/ha_innodb.cc:
Resolve conflicts
sql/item_strfunc.cc:
Resolve conflicts
sql/sql_select.cc:
reset the group functions and copy the values of the first row before exiting because of
maximal number of rows has been read for this cursor fetch. the additional variable is needed
to save code duplication.
tests/mysql_client_test.c:
test for bug #11904 (cursor grouping wrong result)
into mishka.local:/home/my/mysql-5.0
BitKeeper/etc/ignore:
auto-union
BitKeeper/deleted/.del-Grep.cpp~ad798e9ae519d667:
Auto merged
BitKeeper/deleted/.del-Grep.hpp~b05e3af6cfabe387:
Auto merged
BitKeeper/deleted/.del-ctype_cp932.result:
Auto merged
BitKeeper/deleted/.del-ctype_cp932.test:
Auto merged
BitKeeper/deleted/.del-have_lowercase0.inc:
Delete: mysql-test/include/have_lowercase0.inc
VC++Files/mysql-test/mysql_test_run_new.dsp:
Auto merged
configure.in:
Auto merged
mysql-test/include/ps_conv.inc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/examples/ha_example.cc:
Auto merged
sql/sql_table.cc:
Auto merged
support-files/mysql.spec.sh:
Auto merged
VC++Files/client/mysqltest.dsp:
manual merge
VC++Files/sql/mysqld.dsp:
manual merge
mysql-test/r/grant2.result:
patch merge
mysql-test/r/subselect2.result:
manual merge
mysql-test/t/grant2.test:
patch merge
mysys/charset.c:
Remove already deleted function
sql/examples/ha_archive.h:
Manual merge
sql/sql_acl.cc:
manual merge
sql/sql_db.cc:
merge (no differences)
sql/sql_select.cc:
manual merge
sql/table.h:
merge (no differences)
tests/mysql_client_test.c:
patch merge
configure.in:
Fix directories built using --without-server, and add mf_keycache.o
to list of objects only built for thread-safe library, since it requires
threading.
dbug/my_main.c:
Don't try to initialize thread globals if not built with threading.
mysys/Makefile.am:
Remove mf_keycache.c from list of files to build (it will be included
in THREAD_LOBJECTS when appropriate).
mysys/mf_getdate.c:
Fix usage of gmtime().
sql/share/Makefile.am:
Allow removal of mysqld_error.h to fail, in case it doesn't exist yet.
tests/Makefile.am:
Don't link against libmysys explicitly.
* Provide backwards compatibility extension to name resolution of
coalesced columns. The patch allows such columns to be qualified
with a table (and db) name, as it is in 4.1.
Based on a patch from Monty.
* Adjusted tests accordingly to test both backwards compatible name
resolution of qualified columns, and ANSI-style resolution of
non-qualified columns.
For this, each affected test has two versions - one with qualified
columns, and one without.
mysql-test/include/ps_query.inc:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/bdb.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/innodb.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/join.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/join_nested.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/join_outer.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/null_key.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/order_by.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/ps_2myisam.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/ps_3innodb.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/ps_4heap.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/ps_5merge.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/ps_6bdb.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/ps_7ndb.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/select.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/subselect.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/r/type_ranges.result:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/bdb.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/innodb.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/join.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/join_nested.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/join_outer.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/null_key.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/order_by.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/select.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/subselect.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
mysql-test/t/type_ranges.test:
Put back old tests to test that coalesced columns of natural joins can be qualified.
sql/sql_base.cc:
* Applied Monty's patch for backwards compatible name resolution
of qualified columns. The idea is:
- When a column is qualified, search for the column in all
tables/views underlying each natural join. In this case
natural joins are *not* considered leaves.
- If a column is not qualified, then consider natural joins
as leaves, thus directly search the result columns of
natural joins.
* Simplified 'find_field_in_tables()' - unified two similar
loops into one.
sql/table.cc:
- Removed method & members not needed after Monty's patch.
sql/table.h:
- Removed method & members not needed after Monty's patch.
tests/mysql_client_test.c:
Put back old tests to test that coalesced columns of natural joins can be qualified.
create_tmp_field_from_item() was creating tmp field without regard to
original field type of Item. This results in wrong type being reported to
client.
To create_tmp_field_from_item() added special handling for Items with
DATE/TIME field types to preserve their type.
sql/sql_select.cc:
Fix bug #11718 query with function, join and order by returns wrong type.
tests/mysql_client_test.c:
Test case for bug #11718: query with function, join and order by returns wrong type
into mysql.com:/home/my/mysql-5.0
sql/ha_berkeley.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_derived.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_update.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/sql_class.cc:
Manual merge
This allows us to use statement replication with functions and triggers
The following things are fixed with this patch:
- NOW() and automatic timestamps takes the value from the main event for functions and triggers (which allows these to replicate with statement level logging)
- No side effects for triggers or functions with auto-increment values(), last_insert_id(), rand() or found_rows()
- Triggers can't return result sets
Fixes bugs:
#12480: NOW() is not constant in a trigger
#12481: Using NOW() in a stored function breaks statement based replication
#12482: Triggers has side effects with auto_increment values
#11587: trigger causes lost connection error
mysql-test/r/trigger.result:
Added test fpr big
mysql-test/t/sp-error.test:
Changed error message numbers
mysql-test/t/trigger.test:
Added test for trigger returning result (#11587)
sql/item_func.cc:
Store the first used seed value for RAND() value.
(This makes rand() replicatable in functions and triggers)
Save and clear run context before executing a stored function and restore it afterwards.
This removes side effects of stored functions for RAND(), auto-increment values and NOW() and makes most stored function replicatable
sql/share/errmsg.txt:
Reuse error message also for triggers
sql/sp_head.cc:
If in function or trigger, don't change value of NOW()
(This allows us to use statement replication with functions that directly or indirectly uses timestamps)
sql/sql_class.cc:
Added framework for storing and retrieving run context while exceuting triggers or stored functions.
sql/sql_class.h:
Added framework for storing and retrieving run context while exceuting triggers or stored functions.
sql/sql_parse.cc:
If in function or trigger, don't change value of NOW()
(This allows us to use statement replication with functions that directly or indirectly uses timestamps)
sql/sql_trigger.cc:
Moved process_triggers function from sql_trigger.h
Use reset/restore sub_statement_state while executing triggers to avoid side effects and make them replicatable
sql/sql_trigger.h:
Moved process_triggers function from sql_trigger.h
Use reset/restore sub_statement_state while executing triggers to avoid side effects and make them replicatable
sql/sql_yacc.yy:
Give error message if trigger can return a result set (Bug #11587)
tests/fork_big2.pl:
Removed return from end of lines
mysql-test/r/rpl_trigger.result:
New BitKeeper file ``mysql-test/r/rpl_trigger.result''
mysql-test/t/rpl_trigger.test:
New BitKeeper file ``mysql-test/t/rpl_trigger.test''
into mysql.com:/home/timka/mysql/src/5.0-2486-merge
mysql-test/r/errors.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/fulltext_order_by.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/join_nested.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/errors.test:
Auto merged
mysql-test/t/fulltext.test:
Auto merged
mysql-test/t/fulltext_order_by.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/join_nested.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/item.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
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_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
tests/mysql_client_test.c:
Auto merged
sql/sql_insert.cc:
merge WL#2486
sql/sql_show.cc:
merge WL#2486
"Process NATURAL and USING joins according to SQL:2003".
* Some of the main problems fixed by the patch:
- in "select *" queries the * expanded correctly according to
ANSI for arbitrary natural/using joins
- natural/using joins are correctly transformed into JOIN ... ON
for any number/nesting of the joins.
- column references are correctly resolved against natural joins
of any nesting and combined with arbitrary other joins.
* This patch also contains a fix for name resolution of items
inside the ON condition of JOIN ... ON - in this case items must
be resolved only against the JOIN operands. To support such
'local' name resolution, the patch introduces a stack of
name resolution contexts used at parse time.
NOTICE:
- This patch is not complete in the sense that
- there are 2 test cases that still do not pass -
one in join.test, one in select.test. Both are marked
with a comment "TODO: WL#2486".
- it does not include a new test specific for the task
mysql-test/include/ps_query.inc:
Adjusted according to standard NATURAL/USING join semantics.,
mysql-test/r/bdb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/derived.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/errors.result:
The column as a whole cannot be resolved, so different error message.
mysql-test/r/fulltext.result:
Adjusted according to standard JOIN ... ON semantics =>
the ON condition can refer only to the join operands.
mysql-test/r/fulltext_order_by.result:
More detailed error message.
mysql-test/r/innodb.result:
Adjusted according to standard NATURAL/USING join semantics.
This test doesn't pass completetly yet!
mysql-test/r/insert_select.result:
More detailed error message.
mysql-test/r/join.result:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one test case that still fails, and it is
commeted out and marked with WL#2486 in the test file.
mysql-test/r/join_crash.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/join_nested.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/join_outer.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/multi_update.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/null_key.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/order_by.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_2myisam.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_3innodb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_4heap.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_5merge.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_6bdb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_7ndb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/select.result:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one failing test case which is commented with
WL#2486 in the test file.
mysql-test/r/subselect.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/type_ranges.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/union.result:
More detailed error message.
mysql-test/t/bdb.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/errors.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/fulltext.test:
Adjusted according to standard JOIN ... ON semantics =>
the ON condition can refer only to the join operands.
mysql-test/t/fulltext_order_by.test:
More detailed error message.
mysql-test/t/innodb.test:
Adjusted according to standard NATURAL/USING join semantics.
This test doesn't pass completetly yet!
mysql-test/t/insert_select.test:
More detailed error message.
mysql-test/t/join.test:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one test case that still fails, and it is
commeted out and marked with WL#2486 in the test file.
mysql-test/t/join_crash.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/join_nested.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/join_outer.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/null_key.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/order_by.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/select.test:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one test case that still fails, and it is
commeted out and marked with WL#2486 in the test file.
mysql-test/t/subselect.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/type_ranges.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/union.test:
More detailed error message.
sql/item.cc:
- extra parameter to find_field_in_tables
- find_field_in_real_table renamed to find_field_in_table
- fixed comments/typos
sql/item.h:
- added [first | last]_name_resolution_table to class
Name_resolution_context
- commented old code
- standardized formatting
sql/mysql_priv.h:
- refactored the find_field_in_XXX procedures,
- added a new procedure for natural join table references,
- renamed the find_field_in_XXX procedures to clearer names
sql/sp.cc:
- pass the top-most list of the FROM clause to setup_tables
- extra parameter to find_field_in_tables
sql/sql_acl.cc:
- renamed find_field_in_table => find_field_in_table_ref
- extra parameter to find_field_in_table_ref
- commented old code
sql/sql_base.cc:
This file contains the core of the implementation of the processing
of NATURAL/USING joins (WL#2486).
- added many comments to old code
- refactored the group of find_field_in_XXX procedures, and added a
new procedure for natural joins. There is one find_field_in_XXX procedure
per each type of table reference (stored table, merge view, or natural
join); one meta-procedure that selects the correct one depeneding on the
table reference; and one procedure that goes over a list of table
referenes.
- NATURAL/USING joins are processed through the procedures:
mark_common_columns, store_natural_using_join_columns,
store_top_level_join_columns, setup_natural_join_row_types.
The entry point to processing NATURAL/USING joins is the
procedure 'setup_natural_join_row_types'.
- Replaced the specialized Field_iterator_XXX iterators with one
generic iterator over the fields of a table reference.
- Simplified 'insert_fields' and 'setup_conds' due to encapsulation of
the processing of natural joins in a separate set of procedures.
sql/sql_class.h:
- Commented old code.
sql/sql_delete.cc:
- Pass the FROM clause to setup_tables.
sql/sql_help.cc:
- pass the end name resolution table to find_field_in_tables
- adjust the list of tables for name resolution
sql/sql_insert.cc:
- Changed the code that saves and restores the current context to
support the list of tables for name resolution -
context->first_name_resolution_table, and
table_list->next_name_resolution_table.
Needed to support an ugly trick to resolve inserted columns only in
the first table.
- Added Name_resolution_context::[first | last]_name_resolution_table.
- Commented old code
sql/sql_lex.cc:
- set select_lex.parent_lex correctly
- set correct state of the current name resolution context
sql/sql_lex.h:
- Added a stack of name resolution contexts to support local
contexts for JOIN ... ON conditions.
- Commented old code.
sql/sql_load.cc:
- Pass the FROM clause to setup_tables.
sql/sql_olap.cc:
- Pass the FROM clause to setup_tables.
sql/sql_parse.cc:
- correctly set SELECT_LEX::parent_lex
- set the first table of the current name resoltion context
- added support for NATURAL/USING joins
- commented old code
sql/sql_select.cc:
- Pass the FROM clause to setup_tables.
- Pass the end table to find_field_in_tables
- Improved comments
sql/sql_show.cc:
- Set SELECT_LEX::parent_lex.
sql/sql_update.cc:
- Pass the FROM clause to setup_tables.
sql/sql_yacc.yy:
- Added support for a stack of name resolution contexts needed to
implement name resolution for JOIN ... ON. A context is pushed
for each new JOIN ... ON, and popped afterwards.
- Added support for NATURAL/USING joins.
sql/table.cc:
- Added new class Natural_join_column to hide the heterogeneous
representation of column references for stored tables and for
views.
- Added a new list TABLE_LIST::next_name_resolution_table to
support name resolution with NATURAL/USING joins. Also added
other members to TABLE_LIST to support NATURAL/USING joins.
- Added a generic iterator over the fields of table references
of various types - class Field_iterator_table_ref
sql/table.h:
- Added new class Natural_join_column to hide the heterogeneous
representation of column references for stored tables and for
views.
- Added a new list TABLE_LIST::next_name_resolution_table to
support name resolution with NATURAL/USING joins. Also added
other members to TABLE_LIST to support NATURAL/USING joins.
- Added a generic iterator over the fields of table references
of various types - class Field_iterator_table_ref
tests/mysql_client_test.c:
Adjusted according to standard NATURAL JOIN syntax.
cursors (+ commit)" and Bug#11832 "Server crash with InnoDB + Cursors"
See comments to the changed files.
innobase/include/read0read.h:
- add cursor_view_t::n_mysql_tables_in_use
innobase/read/read0read.c:
- maintain cursor_view_t::n_mysql_tables_in_use. InnoDB
maintains trx->n_mysql_tables_in_use to know when it can auto-commit
a read-only statement. When this count drops to zero,
MySQL has ended processing of such statement and InnoDB can commit.
Cursors should not break this invariant, and should exclude the tables
used in a cursor from the count of active tables.
When a cursor is closed, the number of its tables is added back,
to ensure that close_thread_tables->unlock_external->
ha_innobase::external_lock(F_UNLCK) won't drop the count in trx
below zero.
innobase/row/row0sel.c:
- remove the restoration of the global read view from
row_search_for_mysql: MySQL may call row_search_for_mysql
more than once when fetching a row for a cursor (e.g. if there
is a WHERE clause that filters out some rows).
sql/ha_innodb.cc:
- add more verbose printout for the case when we close an InnoDB
connection without priorlly issuing a commit or rollback. The problem
should be investigated.
tests/mysql_client_test.c:
- add a test case for Bug#12243 "MySQL Server crashes with 2 cursors
(+ commit)"
subqry order by server crash": failing DBUG_ASSERT(curr_join == this)
when opening a cursor.
Ensure that for top-level join curr_join == join (always),
and thus fix the failing assert.
curr_join is a hack to ensure that uncacheable subqueries can be
re-evaluated safely, and should be never different from main join
in case of top-level join.
sql/sql_select.cc:
- utilize tmp_join only if we evaluate an uncacheable subquery.
sql/sql_select.h:
- implement JOIN::is_top_level_join()
tests/mysql_client_test.c:
A test case for Bug#11901 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
join in subqry order by server crash"
CURSOR_TYPE_READ_ONLY nested queries corrupt result"
sql/sql_prepare.cc:
If there is a cursor, use its protocol for fetch:
Protocol instances have a state and thd->protocol_prep can't
be used for multiple cursors.
sql/sql_select.cc:
- init Cursor::protocol
sql/sql_select.h:
- add Cursor::protocol
tests/mysql_client_test.c:
A test case for Bug#11909 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
nested queries corrupt result"
cursors. This should fix Bug#11813 when InnoDB part is in
(tested with a draft patch).
The idea of the patch is that if a storage engine supports
consistent read views, we open one when open a cursor,
set is as the active view when fetch from the cursor, and close
together with cursor close.
sql/examples/ha_archive.cc:
- extend handlerton with cursors methods; fix coding style
sql/examples/ha_example.cc:
- extend handlerton with cursors methods; fix coding style
sql/examples/ha_tina.cc:
- extend handlerton with cursors methods; fix coding style
sql/ha_berkeley.cc:
- extend handlerton with cursors methods
sql/ha_blackhole.cc:
- extend handlerton with cursors methods; fix coding style
sql/ha_federated.cc:
- extend handlerton with cursors methods; fix coding style
sql/ha_heap.cc:
- extend handlerton with cursors methods; fix coding style
sql/ha_innodb.cc:
- extend handlerton with cursors methods
sql/ha_myisam.cc:
- extend handlerton with cursors methods; fix coding style
sql/ha_myisammrg.cc:
- extend handlerton with cursors methods; fix coding style
sql/ha_ndbcluster.cc:
- extend handlerton with cursors methods
sql/handler.h:
- extend handlerton with cursors methods
sql/sql_select.cc:
- create a consistent read view when we open a cursor,
set it for a fetch, and free when we closing the cursor.
sql/sql_select.h:
- add Cursor::ht_info to remember read views used in a cursor.
tests/mysql_client_test.c:
Disable an assert that will be no longer valid when consistent
read views in InnoDB are used.
into mysql.com:/home/jimw/my/mysql-5.0-clean
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/ps_1general.result:
Update results
mysql-test/r/ps_2myisam.result:
Update results
mysql-test/r/ps_3innodb.result:
Update results
mysql-test/r/ps_4heap.result:
Update results
mysql-test/r/ps_5merge.result:
Update results
mysql-test/r/ps_6bdb.result:
Update results
mysql-test/r/ps_7ndb.result:
Update results
mysql-test/r/select.result:
Update results
mysql-test/t/disabled.def:
Disable ndb_condition_pushdown test
mysql-test/t/select.test:
Fix bad merge
sql/field_conv.cc:
Update name of warning message
sql/mysqld.cc:
Set proper thd->killed
tests/mysql_client_test.c:
Update test cases, change verify_prepared_field() help function
so it is passed the filename and line from where it is called
and includes that in the error message.
The idea of the patch
is that every cursor gets its own lock id for table level locking.
Thus cursors are protected from updates performed within the same
connection. Additionally a list of transient (must be closed at
commit) cursors is maintained and all transient cursors are closed
when necessary. Lastly, this patch adds support for deadlock
timeouts to TLL locking when using cursors.
+ post-review fixes.
include/thr_lock.h:
- add a notion of lock owner to table level locking. When using
cursors, lock owner can not be identified by a thread id any more,
as we must protect cursors from updates issued within the same
connection (thread). So, each cursor has its own lock identifier to
use with table level locking.
- extend return values of thr_lock and thr_multi_lock with
THR_LOCK_TIMEOUT and THR_LOCK_DEADLOCK, since these conditions
are now possible (see comments to thr_lock.c)
mysys/thr_lock.c:
Better support for cursors:
- use THR_LOCK_OWNER * as lock identifier, not pthread_t.
- check and return an error for a trivial deadlock case, when an
update statement is issued to a table locked by a cursor which has
been previously opened in the same connection.
- add support for locking timeouts: with use of cursors, trivial
deadlocks can occur. For now the only remedy is the lock wait timeout,
which is initialized from a new global variable 'table_lock_wait_timeout'
Example of a deadlock (assuming the storage engine does not downgrade
locks):
con1: open cursor for select * from t1;
con2: open cursor for select * from t2;
con1: update t2 set id=id*2; -- blocked
con2: update t1 set id=id*2; -- deadlock
Lock timeouts are active only if a connection is using cursors.
- the check in the wait_for_lock loop has been changed from
data->cond != cond to data->cond != 0. data->cond is zeroed
in every place it's changed.
- added comments
sql/examples/ha_archive.cc:
- extend the handlerton with the info about cursor behaviour at commit.
sql/examples/ha_archive.h:
- ctor moved to .cc to make use of archive handlerton
sql/examples/ha_example.cc:
- add handlerton instance, init handler::ht with it
sql/examples/ha_example.h:
- ctor moved to .cc to make use of ha_example handlerton
sql/examples/ha_tina.cc:
- add handlerton instance, init handler::ht with it
sql/examples/ha_tina.h:
- ctor moved to .cc to make use of CSV handlerton
sql/ha_berkeley.cc:
- init handlerton::flags and handler::ht
sql/ha_berkeley.h:
- ctor moved to .cc to make use of BerkeleyDB handlerton
sql/ha_blackhole.cc:
- add handlerton instance, init handler::ht with it
sql/ha_blackhole.h:
- ctor moved to .cc to make use of blackhole handlerton
sql/ha_federated.cc:
- add handlerton instance, init handler::ht with it
sql/ha_federated.h:
- ctor moved to .cc to make use of federated handlerton
sql/ha_heap.cc:
- add handlerton instance, init handler::ht with it
sql/ha_heap.h:
- ctor moved to .cc to make use of ha_heap handlerton
sql/ha_innodb.cc:
- init handlerton::flags and handler::ht of innobase storage engine
sql/ha_innodb.h:
- ctor moved to .cc to make use of archive handlerton
sql/ha_myisam.cc:
- add handlerton instance, init handler::ht with it
sql/ha_myisam.h:
- ctor moved to .cc to make use of MyISAM handlerton
sql/ha_myisammrg.cc:
- init handler::ht in the ctor
sql/ha_myisammrg.h:
- ctor moved to .cc to make use of MyISAM MERGE handlerton
sql/ha_ndbcluster.cc:
- init handlerton::flags and handler::ht
sql/handler.cc:
- drop support for ISAM storage engine, which was removed from 5.0
- close all "transient" cursors at COMMIT/ROLLBACK. A "transient"
SQL level cursor is a cursor that uses tables that have a transaction-
specific state.
sql/handler.h:
- extend struct handlerton with flags, add handlerton *ht to every
handler instance.
sql/lock.cc:
- extend mysql_lock_tables to send error to the client if
thr_multi_lock returns a timeout or a deadlock error.
sql/mysqld.cc:
- add server option --table_lock_wait_timeout (in seconds)
sql/set_var.cc:
- add new global variable 'table_lock_wait_timeout' to specify
a wait timeout for table-level locks of MySQL (in seconds). The default
timeout is 50 seconds. The timeout is active only if the connection
has open cursors.
sql/sql_class.cc:
- implement Statement_map::close_transient_cursors
- safety suggests that we need an assert ensuring
llock_info->n_cursors is functioning properly, adjust destruction of
the Statement_map to allow such assert in THD::~THD
sql/sql_class.h:
- add support for Cursors registry to Statement map.
sql/sql_prepare.cc:
- maintain a list of cursors that must be closed at commit/rollback.
sql/sql_select.cc:
- extend class Cursor to support specific at-COMMIT/ROLLBACK behavior.
If a cursor uses tables of a storage engine that
invalidates all open tables at COMMIT/ROLLBACK, it must be closed
before COMMIT/ROLLBACK is executed.
sql/sql_select.h:
- add an own lock_id and commit/rollback status flag to class Cursor
tests/mysql_client_test.c:
A test case for Bug#10760 and complementary issues: test a simple
deadlock case too.
mysql-test/var:
New BitKeeper file ``mysql-test/var''
into mysql.com:/home/jimw/my/mysql-5.0-clean
extra/perror.c:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysql-test/r/select.result:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
ndb/src/mgmsrv/main.cpp:
Auto merged
sql/des_key_file.cc:
Auto merged
sql/field_conv.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/t/select.test:
Resolve conflicts
scripts/mysqld_safe.sh:
Resolve conflict
sql/item.cc:
Resolve conflict, don't return FIELD_TYPE_BLOB since VARCHAR
can be longer in 5.0 than 4.1.
sql/log_event.cc:
Resolve conflict
sql/mysql_priv.h:
Resolve conflict
sql/mysqld.cc:
Remove incorrect fix (merge from 4.1)
sql/sql_show.cc:
Resolve conflict
into mishka.local:/home/my/mysql-5.0
client/mysqldump.c:
Auto merged
include/my_sys.h:
Auto merged
mysys/Makefile.am:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tests/mysql_client_test.c:
Auto merged
sql/sql_select.cc:
Auto merged
mysys/default.c:
SCCS merged
into linux.site:/home/reggie/bk/bug7142
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
sql/item.cc:
Auto merged
sql/sql_show.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
Changed defaults option --instance to --defaults-group-suffix
Changed option handling to allow --defaults-file, --defaults-extra-file and --defaults-group-suffix to be given in any order
Changed MYSQL_INSTANCE to MYSQL_GROUP_SUFFIX
mysql_print_defaults now understands --defaults-group-suffix
Remove usage of my_tempnam() (not safe function)
if( -> if ( and while( to while (
BitKeeper/deleted/.del-my_tempnam.c~a8562f15dad3012f:
Delete: mysys/my_tempnam.c
VC++Files/client/mysqlclient.dsp:
Remove not used file my_tempnam.c
VC++Files/client/mysqlclient_ia64.dsp:
Remove not used file my_tempnam.c
VC++Files/libmysql/libmysql.dsp:
Remove not used file my_tempnam.c
VC++Files/libmysql/libmysql_ia64.dsp:
Remove not used file my_tempnam.c
VC++Files/mysys/mysys.dsp:
Remove not used file my_tempnam.c
VC++Files/mysys/mysys_ia64.dsp:
Remove not used file my_tempnam.c
client/mysql.cc:
Change to use get_defaults_options()
Remove compiler warnings
client/mysqldump.c:
Indentation fixes
Use quoted table name for 'primary_key_fields'
extra/my_print_defaults.c:
Add support for --defaults-group-suffix
change to use get_default_options()
extra/replace.c:
Replace my_tempnam() with create_tmp_file() to allow us to remove my_tempnam.c
include/config-win.h:
Added DEFAULT_GROUP_SUFFIX_ENV
include/my_sys.h:
Change defaults_instance -> defaults_group_suffix
Change get_defaults_files -> get_defaults_options
libmysql/Makefile.shared:
Added DEFAULT_GROUP_SUFFIX_ENV
mysys/Makefile.am:
Added DEFAULT_GROUP_SUFFIX_ENV
Remove my_tempnam.c
mysys/default.c:
Changed --instance to --defaults-group-suffix
Changed MYSQL_INSTANCE to MYSQL_GROUP_SUFFIX and moved the name to Makefile.am
(mysys shouldn't by MySQL independent)
Changed option handling to allow --defaults-file, --defaults-extra-file and --defaults-group-suffix to be given in any order
mysys/default_modify.c:
Optimized code to use allocated space more efficently
Reduce code size
Ensure that realloc() works independent of argument size
mysys/my_bitmap.c:
Added missing return
sql/ha_innodb.cc:
Change if( -> if (
sql/ha_ndbcluster.cc:
Change while( -> while (
sql/item_cmpfunc.cc:
Break loop early (simple optimization)
sql/item_strfunc.cc:
Change if( -> if (
sql/log.cc:
Fixed comment
sql/mysqld.cc:
Change if( -> if (
sql/opt_range.cc:
while( -> while (
if( -> if (
sql/parse_file.cc:
Change if( -> if (
sql/sql_cache.cc:
while( -> while (
sql/sql_parse.cc:
Change if( -> if (
sql/sql_prepare.cc:
Added comment
sql/sql_select.cc:
while( -> while (
Removed index variable by incrementing pointer
sql/sql_show.cc:
Change if( -> if (
sql/sql_yacc.yy:
Change if( -> if (
tests/mysql_client_test.c:
Added cast to first argument to bzero()
When all rows are fetched subsequent calls to mysql_stmt_fetch return
now MYSQL_NO_DATA instead of errorcode 1.
libmysql/libmysql.c:
fix for bug#11037
tests/mysql_client_test.c:
added new testcase for bug #11037
information about error".
libmysql/libmysql.c:
Clear the last error on the statement if mysql_stmt_reset succeeded.
tests/mysql_client_test.c:
A test case for Bug#11183 "mysql_stmt_reset() doesn't reset information
about error"
into mysql.com:/opt/local/work/mysql-5.0-root
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
sql/field.cc:
manual merge
tests/mysql_client_test.c:
manual merge
mysql-test/r/select.result:
manual merge
mysql-test/t/select.test:
manual merge
sql/sql_select.cc:
Auto merged
sql/item_func.cc:
Auto merged
in cursors.
libmysql/libmysql.c:
- reset_stmt_handle(): don't reset the server side just because we have
an open cursor: the server will close the cursor automatically if
needed
sql/sql_prepare.cc:
- implement Prepared_statement::close_cursor,
- implicitly close an open cursor in mysql_stmt_execute instead of
issuing an error (to reduce the need to explicitly close cursors
and save network bandwidth).
- cleanup
sql/sql_select.cc:
Remove a destructor: cursor destruction can not be done by simply
calling a destructor, because of cross-references between cursor
and statement memory.
sql/sql_select.h:
- add an empty Cursor destructor
tests/mysql_client_test.c:
- remove a test for dropped functionality
No separate typecode for MEDIUMTEXT/LONGTEXT is added, as we
have no sound decision yet what typecodes and for what types are
sent by the server (aka what constitutes a distinct type in MySQL).
mysql-test/r/ps_2myisam.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_3innodb.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_4heap.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_5merge.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_6bdb.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_7ndb.result:
Test results fixed: new longtext/longblob length (2^32)
sql/field.cc:
A fix for Bug#9735 "mysql_fetch_fields() acts strange on
LONGBLOB/LONGTEXT": fix wrong initialization of field_length
in case of BLOB fields.
tests/mysql_client_test.c:
A test case for Bug#9735 "mysql_fetch_fields() acts strange on
LONGBLOB/LONGTEXT"
tests/mysql_client_test.c:
a fix (bug #11808: Test case 'mysql_client_test' fails in assert 'double_data == o_double_data')
cmp_double() introduced in order to avoid using long double registers
(for local double vars).
The problem here is that columns that have an especially long type
such as an enum type with many options would be longer than 40 chars
but the type column returned from show columns always was defined
as varchar(40).
This is fixed in 5.0 using info schema.
mysql-test/r/ps_1general.result:
update columns which will now be reported as blobs
mysql-test/r/ps_2myisam.result:
update columns which will now be reported as blobs
mysql-test/r/ps_3innodb.result:
update columns which will now be reported as blobs
mysql-test/r/ps_4heap.result:
update columns which will now be reported as blobs
mysql-test/r/ps_5merge.result:
update columns which will now be reported as blobs
sql/item.cc:
report a column as a particular blob type if it's size warrants
sql/sql_show.cc:
Add function to iterate over all the fields of a table and determine
the longest type name.
We call this function at the top of our show fields code. We pass in
either 40 or max_len whichever is longer to the ctor of
Item_empty_string.
tests/mysql_client_test.c:
update columns which will now be reported as blobs
Added api function mysql_get_character_set_info which provides
information about the current client character set.
include/mysql.h:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
libmysql/libmysql.c:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
libmysql/libmysql.def:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
tests/mysql_client_test.c:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
BitKeeper/deleted/.del-Makefile.am~6cfa0db5e7778d09:
Auto merged
BitKeeper/deleted/.del-Makefile.am~41238af048e60515:
Auto merged
mysql-test/Makefile.am:
Auto merged
netware/Makefile.am:
Auto merged
tests/Makefile.am:
Auto merged
vio/Makefile.am:
SCCS merged
into mysql.com:/home/jimw/my/mysql-5.0-clean
include/my_sys.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/libmysql.c:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
tests/mysql_client_test.c:
Clean up merge of new tests