An error occurred fetching the project authors.
- 31 May, 2005 1 commit
-
-
unknown authored
Stop ignoring name parts and check for validity mysql-test/r/create.result: Test for bug#10413 mysql-test/t/create.test: Test for bug#10413 sql/sql_yacc.yy: Bug#10413 Stop ignoring parts of fully qualified names.
-
- 27 May, 2005 2 commits
-
-
unknown authored
by simply disabling FLUSH for stored functions. (I can't really work.) mysql-test/r/sp-error.result: New test case for BUG#8409. mysql-test/t/sp-error.test: New test case for BUG#8409. sql/sql_yacc.yy: Disable FLUSH for stored functions.
-
unknown authored
We can't have Item_trigger_field as aggregated object inside of sp_instr_set_trigger_field class since in this case its destructor will be called twice. So instead let us create this Item separately and store pointer to it in instruction object. sql/sp_head.cc: sp_instr_set_trigger_field: We can't have Item_trigger_field as aggregated object since in this case its destructor will be called twice, so let us store pointer to this Item (Another way to avoid this is to exclude this Item from free_list but this can't be done in elegant way in 5.0 and will also cause additional problems with Item::cleanup()). sql/sp_head.h: sp_instr_set_trigger_field: We can't have Item_trigger_field as aggregated object since in this case its destructor will be called twice, so let us store pointer to this Item (Another way to avoid this is to exclude this Item from free_list but this can't be done in elegant way in 5.0 and will also cause additional problems with Item::cleanup()). sql/sql_yacc.yy: We can't have Item_trigger_field as aggregated object inside of sp_instr_set_trigger_field class since in this case its destructor will be called twice. So instead let us create this Item separately and store pointer to it in instruction object.
-
- 25 May, 2005 1 commit
-
-
unknown authored
We will however give a warning when opening such a table that users should use ALTER TABLE ... FORCE to fix the table. In future release we will fix that REPAIR TABLE will be able to handle this case sql/sql_lex.h: Support for ALTER TABLE ... FORCE sql/sql_table.cc: CHECK TABLE now gives a note if table->s->crashed was set sql/sql_yacc.yy: Support for ALTER TABLE ... FORCE sql/table.cc: Fix that we can read tables with the 'older' decimal format used in 5.0.3 & 5.0.4 (Now we store display length in the .frm table while we previously stored precision) sql/table.h: Store in TABLE_SHARE version number of MySQL where table was created (or checked)
-
- 20 May, 2005 1 commit
-
-
unknown authored
procedure. by simply disabling 'load' in stored procedures, like it's already disabled for prepared statements. (They must be made "re-execution" safe before working with either PS or SP.) mysql-test/r/sp-error.result: New test case for BUG#10537. mysql-test/t/sp-error.test: New test case for BUG#10537. sql/sql_yacc.yy: Disable LOAD in stored procedures (just as for prepared statements).
-
- 18 May, 2005 2 commits
- 17 May, 2005 3 commits
-
-
unknown authored
sql/sql_update.cc: Add missing join method
-
unknown authored
Rename some functions more fine-grained sp privileges make grant/revoke sp grammar less ambigious mysql-test/r/sp-security.result: change test for new syntax mysql-test/r/system_mysql_db.result: change test for new syntax mysql-test/t/sp-security.test: change test for new syntax scripts/mysql_create_system_tables.sh: now store routine_type for procs_priv scripts/mysql_fix_privilege_tables.sql: now store routine_type for procs_priv sql/item_func.cc: rename of function sql/mysql_priv.h: rename of function sql/sp_head.cc: extra arg for check_some_routine_access sql/sql_acl.cc: rename of function. now handle func/proc acls seperately sql/sql_acl.h: rename of function sql/sql_parse.cc: rename of function grants for procs handled distinctly from funcs sql/sql_show.cc: check_some_routine_access extra arg sql/sql_base.cc: fix for build sql/sql_yacc.yy: fix for build
-
unknown authored
missing semicolon added sql_base.cc: bad merge fixed sp_head.cc, view.test, view.result: Correct restoring view name in SP table locking BUG#9758 configure.in: restore -fno-implicit-templates -fno-exceptions -fno-rtti in configure configure.in: restore -fno-implicit-templates -fno-exceptions -fno-rtti in configure mysql-test/r/view.result: Correct restoring view name in SP table locking BUG#9758 mysql-test/t/view.test: Correct restoring view name in SP table locking BUG#9758 sql/sp_head.cc: Correct restoring view name in SP table locking BUG#9758 sql/sql_base.cc: bad merge fixed sql/sql_yacc.yy: missing semicolon added
-
- 16 May, 2005 1 commit
-
-
unknown authored
mysql-test/r/alter_table.result: Fixed results after merge sql/handler.cc: Trivial optimzation sql/sql_table.cc: Trvial optimization sql/sql_yacc.yy: After merge fix sql/unireg.cc: Removed argument 'null_fields' from make_empty_rec() as it was not needed Moved assert() to right place to take bit fields into account
-
- 13 May, 2005 1 commit
-
-
unknown authored
mysql-test/r/select.result: Better error message mysql-test/t/select.test: Better error message sql/hostname.cc: Join identical code sql/sql_yacc.yy: Combine code (and get a better error message) strings/ctype-ucs2.c: Cast pointer differencess
-
- 09 May, 2005 1 commit
-
-
unknown authored
Detect conflicting options in SELECT mysql-test/r/select.result: Test for bug#8733 mysql-test/t/select.test: Test for bug#8733 sql/mysql_priv.h: New bit for ALL sql/sql_yacc.yy: We want to complain if DISTINCT or ALL is used in SELECT when a conflicting option is already selected.
-
- 08 May, 2005 1 commit
-
-
unknown authored
Fix bug + include test case. Enable outfile tests. mysql-test/t/outfile.test: Reenable outfile tests Add test for Bug#8191 sql/sql_yacc.yy: Fix Bug#8191 BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
-
- 07 May, 2005 1 commit
-
-
unknown authored
Fix bug by moving TRUE/FALSE in with other literals. mysql-test/r/create.result: Test for Bug#9666 mysql-test/t/create.test: Test for Bug#9666 sql/sql_yacc.yy: Move TRUE/FALSE in with other literals. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
-
- 06 May, 2005 1 commit
-
-
unknown authored
Added option --count to mysqlshow (to show number of rows) Fixed possible core dump in information schema client/client_priv.h: --count for mysqlshow client/mysqlshow.c: Added option --count to be used when the user want's number of rows per table in the output (We shouldn't use count(*) as default as this can be a slow operation) mysys/my_thr_init.c: Correct comment sql/ha_berkeley.cc: Remove not used variable sql/ha_berkeley.h: Remove not used variable sql/ha_innodb.cc: Remove not used function sql/ha_ndbcluster.cc: false -> FALSE true -> TRUE sql/handler.cc: Added and fixed comments Remove 'strange' code to remove compiler warnings (better to do things like this with attribute) sql/item.cc: false -> FALSE sql/item_cmpfunc.cc: Fixed indentation sql/item_cmpfunc.h: marked BETWEEN as a bool function sql/item_func.cc: Simple optimzation sql/key.cc: Removed wrong code sql/log.cc: Check result from open_index_file() sql/mysql_priv.h: Simplyfy some test of netware sql/mysqld.cc: Fixed indentation Check result form open_index_file() Simplify code with IF_NETWARE() sql/opt_range.cc: false -> FALSE true -> TRUE Fixed indentation sql/opt_sum.cc: Fixed comments sql/sp_head.cc: Simple optimzation Move variable declarations to begining of blocks sql/sql_acl.cc: Fix long lines Rename xx -> column Move declaration to beginning of block sql/sql_parse.cc: Removed comment sql/sql_select.cc: Indentation fixes sql/sql_show.cc: Fixed reference outside of array (possible core dump) sql/sql_table.cc: Simplify code Combine common code sql/sql_test.cc: false -> FALSE sql/sql_trigger.cc: false -> false true -> TRUE sql/sql_yacc.yy: Simpler test sql/unireg.cc: Added comment
-
- 26 Apr, 2005 2 commits
-
-
unknown authored
Results for the above test case union.test: A test case for bug #10032 involving UNION's and ORDER BY clause sql_yacc.yy: Fix for a bug #10032 involving a parser bug with UNION's and ORDER BY sql/sql_yacc.yy: Fix for a bug #10032 involving a parser bug with UNION's and ORDER BY mysql-test/t/union.test: A test case for bug #10032 involving UNION's and ORDER BY clause mysql-test/r/union.result: Results for the above test case
-
unknown authored
We simply have to disallow any kind of result set being sent back from a function. Can't see any way to make that to work. mysql-test/r/sp-error.result: New test case for BUG#8408. mysql-test/t/sp-error.test: New test case for BUG#8408. sql/item_func.cc: Disable result sets from functions but temporarily turning CLIENT_MULTI_RESULTS off. sql/share/errmsg.txt: Added error message for statements not allowed in functions (detected during parsing). sql/sql_yacc.yy: Don't allow result sets in functions.
-
- 20 Apr, 2005 1 commit
-
-
unknown authored
by simply disallowing alter procedure/function in an SP (as for drop). mysql-test/r/sp-error.result: Added test case for BUG#7047. mysql-test/t/sp-error.test: Added test case for BUG#7047. sql/share/errmsg.txt: Modified error message for "update procedure/function" too. sql/sql_yacc.yy: Don't allow alter procedure/function in an SP.
-
- 19 Apr, 2005 1 commit
-
-
unknown authored
Initialization of fields for sp return type was not complete. mysql-test/r/sp.result: Bug#9102 Test for bug mysql-test/t/sp.test: Bug#9102 Test for bug sql/mysql_priv.h: Bug#9102 new function: sp_prepare_create_field() sql/sp_head.cc: Strip spaces and do charset conversion for sp function typelibs sql/sql_table.cc: Bug#9102 new function - sp_prepare_create_field() prepares create_field in similar way to mysql_prepare_table() sql/sql_yacc.yy: Bug#9102
-
- 15 Apr, 2005 3 commits
-
-
unknown authored
don't set lex->lock_option=TL_READ in the parser for SELECT
-
unknown authored
New more SP-locking friendly approach to handling locks in multi-update. Now we mark all tables of multi-update as needing write lock at parsing stage and if possible downgrade lock at execution stage (For its work SP-locking mechanism needs to know all lock types right after parsing stage). mysql-test/r/sp-threads.result: Added test for bug #9486 "Can't perform multi-update in stored procedure". mysql-test/t/sp-threads.test: Added test for bug #9486 "Can't perform multi-update in stored procedure". sql/sp_head.cc: SP_TABLE, sp_head::merge_table_list()/add_used_tables_to_table_list(): Since some queries during their execution (e.g. multi-update) may change type of lock for some of their tables and thus change lock_type member for some of elements of table list, we should store type of lock in SP_TABLE struct explicitly instead of using lock_type member of TABLE_LIST object pointed by SP_TABLE::table. sql/sql_lex.h: Removed no longer used LEX::multi_lock_option member. sql/sql_prepare.cc: mysql_test_update(): We don't need to bother about LEX::multi_lock_option if we convert multi-update to update anymore. Since nowdays multi-update uses TABLE_LIST::lock_type for specifying lock level of updated tables instead of LEX::multi_lock_option. sql/sql_update.cc: mysql_update()/mysql_multi_update_prepare(): Now we mark all tables of multi-update as needing write lock at parsing stage and if possible downgrade lock at execution stage. Old approach (don't set lock type until execution stage) was not working well with SP-locking (For its work SP-locking mechanism needs to know all lock types right after parsing stage). mysql_multi_update(): We should return FALSE if no error occurs. sql/sql_yacc.yy: update: Now we mark all tables of multi-update as needing write lock at parsing stage and if possible downgrade lock at execution stage. Old approach (don't set lock type until execution stage) was not working well with SP-locking (For its work SP-locking mechanism needs to know all lock types right after parsing stage).
-
unknown authored
... actually, it was a query cache problem. (It shouldn't cache such queries) mysql-test/r/sp.result: Added testcase for BUG#9902. mysql-test/t/sp.test: Added testcase for BUG#9902. sql/sql_yacc.yy: Don't cache queries which are calling stored functions.
-
- 13 Apr, 2005 1 commit
-
-
unknown authored
mysql-test/r/sp.result: Added test case for BUG#6129. mysql-test/t/sp.test: Added test case for BUG#6129. sql/sp_pcontext.h: Only need one handler counter. sql/sql_yacc.yy: Count handlers correctly.
-
- 12 Apr, 2005 3 commits
-
-
unknown authored
correct result after bugfix sql/sql_class.cc initialize net.query_cache_query mysql-test/r/flush_block_commit.result: correct result after bugfix sql/sql_class.cc: initialize net.query_cache_query sql/sql_yacc.yy: oops
-
unknown authored
mysql-test/r/flush_block_commit.result: FLUSH TABLES WITH READ LOCK should block writes to binlog too it does not yet mysql-test/t/flush_block_commit.test: FLUSH TABLES WITH READ LOCK should block writes to binlog too it does not yet
-
unknown authored
mysql-test/r/sp.result: Added test case for BUG#7185. mysql-test/t/sp.test: Added test case for BUG#7185. sql/sql_yacc.yy: Allow non-reserved words as stored procedure names.
-
- 08 Apr, 2005 1 commit
-
-
unknown authored
mysql-test/r/sp-error.result: Added test case for BUG#9073. mysql-test/t/sp-error.test: Added test case for BUG#9073. sql/share/errmsg.txt: New error message for duplicate condition handlers in stored procedures. sql/sp_pcontext.cc: Keep track on condition handlers in the same block for error checking. sql/sp_pcontext.h: Keep track on condition handlers in the same block for error checking. sql/sql_yacc.yy: Keep track on condition handlers in the same block for error checking.
-
- 06 Apr, 2005 2 commits
- 03 Apr, 2005 1 commit
-
-
unknown authored
minor cleanups XA tests include/m_ctype.h: minor cleanup sql/field.cc: minor cleanup sql/handler.cc: XID SQL syntax sql/handler.h: XID SQL syntax sql/item_sum.h: minor cleanup sql/lock.cc: comments sql/sql_class.cc: minor cleanup sql/sql_lex.h: XID SQL syntax sql/sql_parse.cc: XID SQL syntax sql/sql_yacc.yy: XID SQL syntax cleanups
-
- 30 Mar, 2005 1 commit
-
-
unknown authored
Sedond attempt: Simply disallow CHECK in SPs, since it can't work. mysql-test/r/sp-error.result: New test cast for BUG#6600 mysql-test/r/sp.result: Removed old test case for BUG#6600 mysql-test/t/sp-error.test: New test cast for BUG#6600 mysql-test/t/sp.test: Removed old test case for BUG#6600 sql/share/errmsg.txt: Made the SP bad statement error message more general. sql/sp_head.cc: CHECK is not possible in stored procedures. sql/sql_parse.cc: Undid attempt to fix CHECK in stored procedures, it didn't work. sql/sql_yacc.yy: CHECK is not possible in stored procedures. (And updated error messages for LOCK/UNLOCK.)
-
- 29 Mar, 2005 1 commit
-
-
unknown authored
ndb/src/ndbapi/DictCache.cpp: Simpler bit handling code sql/sql_acl.cc: Fix for bool parameter sql/sql_yacc.yy: Removed compiler warning
-
- 22 Mar, 2005 1 commit
-
-
unknown authored
New privilege CREATE USER (CREATE_USER_ACL, Create_user_priv) added grant2.test: new tests (mostly backported from jani's patch) system_mysql_db.result, sp.result, grant2.result, grant.result: results updated mysql-test/r/grant.result: results updated mysql-test/r/grant2.result: results updated mysql-test/r/sp.result: results updated mysql-test/r/system_mysql_db.result: results updated mysql-test/t/grant2.test: new tests (mostly backported from jani's patch) scripts/mysql_create_system_tables.sh: Create_user_priv added scripts/mysql_fix_privilege_tables.sql: Create_user_priv added sql/sql_acl.cc: Create_user_priv added sql/sql_acl.h: Create_user_priv added sql/sql_parse.cc: Create_user_priv added sql/sql_show.cc: Create_user_priv added sql/sql_yacc.yy: Create_user_priv added BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
-
- 16 Mar, 2005 4 commits
-
-
unknown authored
Removed some optional arguments Fixed portability problem in federated tests client/sql_string.cc: update from sql/sql_string.cc client/sql_string.h: update from sql/sql_string.h mysql-test/r/federated.result: Fixed error message sql/field.cc: Cleanup during review Remove const in 'const unsigned int' sql/field.h: Remove const in 'const unsigned int' sql/ha_federated.cc: Better error string. Add missing argument to error (before 'errno' was picked up from stack) sql/handler.cc: Removed compiler warning sql/item_func.cc: Cleanup during review sql/item_sum.cc: Cleanup during review sql/lock.cc: Remove optional arguments sql/log_event.cc: Remove optional arguments sql/mysql_priv.h: Remove optional arguments cahnge preapre_create_fields to use pointers instead of references sql/opt_range.cc: Fix arguments so that return value is last sql/sql_base.cc: Remove optional arguments sql/sql_delete.cc: Remove optional arguments sql/sql_error.cc: Remove optional arguments sql/sql_help.cc: Remove optional arguments sql/sql_parse.cc: Remove optional arguments sql/sql_prepare.cc: Remove optional arguments sql/sql_rename.cc: Remove optional arguments sql/sql_select.cc: Remove optional arguments sql/sql_show.cc: Cleanup during review sql/sql_string.cc: Simple optimization sql/sql_table.cc: Remove optional arguments Fixed indentation sql/sql_update.cc: Remove optional arguments sql/sql_yacc.yy: Change references to pointers
-
unknown authored
The idea is to use TABLE_LIST::lock_type for passing type of lock for target table to mysql_load() instead of using LEX::lock_option (which were rewritten by first subselect in SET clause). This should also fix potential problem with LOAD DATA in SP (it is important for them to have right lock_type in the table list by the end of statement parsing). mysql-test/r/loaddata.result: Added nice test for LOAD DATA with subquery. mysql-test/t/loaddata.test: Added nice test for LOAD DATA with subquery. sql/log_event.cc: Now we don't pass type of lock for target table to mysql_load() explicitly . Instead we use TABLE_LIST::lock_type for this table which is already properly set here. sql/mysql_priv.h: Now we don't pass type of lock for target table to mysql_load() explicitly . Instead we properly set TABLE_LIST::lock_type for this table in parser. sql/sql_load.cc: Now we don't pass type of lock for target table to mysql_load() explicitly . Instead we properly set TABLE_LIST::lock_type for this table in parser. sql/sql_parse.cc: Now we don't pass type of lock for target table to mysql_load() explicitly . Instead we properly set TABLE_LIST::lock_type for this table in parser. sql/sql_yacc.yy: load_data: Let us use TABLE_LIST::lock_type for passing type of lock for target table to mysql_load() instead of using LEX::lock_option (which will be rewritten by first subselect in SET clause).
-
unknown authored
Now one can use user variables as target for data loaded from file (besides table's columns). Also LOAD DATA got new SET-clause in which one can specify values for table columns as expressions. For example the following is possible: LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1; This patch also implements new way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event client/mysqlbinlog.cc: Added support of two new binary log events Begin_load_query_log_event and Execute_load_query_log_Event which are used to replicate LOAD DATA INFILE. mysql-test/r/ctype_ucs.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/insert_select.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/loaddata.result: Added tests for new LOAD DATA features. mysql-test/r/mix_innodb_myisam_binlog.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results (don't dare to get rid from binlog positions completely since it seems that this test uses them). mysql-test/r/mysqlbinlog.result: New approach for binlogging of LOAD DATA statement. Now we store it as usual query and rewrite part in which file is specified when needed. So now mysqlbinlog output for LOAD DATA much more closer to its initial form. Updated test'd results accordingly. mysql-test/r/mysqldump.result: Made test more robust to other tests failures. mysql-test/r/rpl000015.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_change_master.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results. mysql-test/r/rpl_charset.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly mysql-test/r/rpl_deadlock.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly mysql-test/r/rpl_error_ignored_table.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/rpl_flush_log_loop.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_flush_tables.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/rpl_loaddata.result: New way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event... Updated test's results wwith new binlog positions. mysql-test/r/rpl_loaddata_rule_m.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. Since now LOAD DATA is replicated much in the same way as usual query --binlog_do/ignore_db work for it inthe same way as for usual queries. mysql-test/r/rpl_loaddata_rule_s.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_loaddatalocal.result: Added nice test for case when it is important that LOAD DATA LOCAL ignores duplicates. mysql-test/r/rpl_log.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly (don't dare to get rid from binlog positions completely since it seems that this test uses them). mysql-test/r/rpl_log_pos.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_max_relay_size.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_multi_query.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_relayrotate.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_replicate_do.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_reset_slave.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_rotate_logs.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_server_id1.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_server_id2.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly. mysql-test/r/rpl_temporary.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/rpl_timezone.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/rpl_until.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results accordingly and tweaked test a bit to bring it back to good shape. mysql-test/r/rpl_user_variables.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/r/user_var.result: Addition of two new types of binary log events shifted binlog positions. Updated test's results and made it more robust for future similar changes. mysql-test/t/ctype_ucs.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and made it more robust for future similar changes. mysql-test/t/insert_select.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and made it more robust for future similar changes. mysql-test/t/loaddata.test: Added test cases for new LOAD DATA functionality. mysql-test/t/mix_innodb_myisam_binlog.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/mysqlbinlog.test: New way of replicating LOAD DATA local. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event... Thus we need new binlog positions for LOAD DATA events. mysql-test/t/mysqlbinlog2.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/mysqldump.test: Made test more robust for failures of other tests. mysql-test/t/rpl_charset.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/rpl_deadlock.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/rpl_error_ignored_table.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and made it more robust for future similar changes. mysql-test/t/rpl_flush_tables.test: Addition of two new types of binary log events shifted binlog positions. Made test more robust for future similar changes. mysql-test/t/rpl_loaddata.test: New way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event... Apropritely updated comments in test. mysql-test/t/rpl_loaddata_rule_m.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and made it more robust for future similar changes. Since now LOAD DATA is replicated much in the same way as usual query --binlog_do/ignore_db work for it inthe same way as for usual queries. mysql-test/t/rpl_loaddata_rule_s.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/rpl_loaddatalocal.test: Added nice test for case when it is important that LOAD DATA LOCAL ignores duplicates. mysql-test/t/rpl_log.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly (don't dare to get rid from binlog positions completely since it seems that this test uses them). mysql-test/t/rpl_log_pos.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/rpl_multi_query.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly. mysql-test/t/rpl_temporary.test: Addition of two new types of binary log events shifted binlog positions. Made test more robust for future similar changes. mysql-test/t/rpl_timezone.test: Addition of two new types of binary log events shifted binlog positions. Made test more robust for future similar changes. mysql-test/t/rpl_until.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and tweaked it a bit to bring it back to good shape. mysql-test/t/rpl_user_variables.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and made it more robust for future similar changes. mysql-test/t/user_var.test: Addition of two new types of binary log events shifted binlog positions. Updated test accordingly and made it more robust for future similar changes. sql/item_func.cc: Added Item_user_var_as_out_param class that represents user variable which used as out parameter in LOAD DATA. Moved code from Item_func_set_user_var::update_hash() function to separate static function to be able to reuse it in this new class. sql/item_func.h: Added Item_user_var_as_out_param class that represents user variable which used as out parameter in LOAD DATA. sql/log_event.cc: New way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event. sql/log_event.h: New way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event. sql/mysql_priv.h: Now mysql_load() has two more arguments. They are needed to pass list of columns and corresponding expressions from new LOAD DATA's SET clause. sql/share/errmsg.txt: Added new error message which is used to forbid loading of data from fixed length rows to variables. sql/sql_lex.h: Added LEX::fname_start/fname_end members. They are pointers to part of LOAD DATA statement which should be rewritten during replication (file name + little extra). sql/sql_load.cc: Added support for extended LOAD DATA. Now one can use user variables as target for data loaded from file (besides table's columns). Also LOAD DATA got new SET-clause in which one can specify values for table columns as expressions. Updated mysql_load()/read_fixed_length()/read_sep_field() to support this functionality (now they can read data from file to both columns and variables and assign do calculations and assignments specified in SET clause). We also use new approach for LOAD DATA binlogging/replication. sql/sql_parse.cc: mysql_execute_command(): Since now we have SET clause in LOAD DATA we should also check permissions for tables used in its expressions. Also mysql_load() has two more arguments to pass information about this clause. sql/sql_repl.cc: New way of replicating LOAD DATA. Now we do it similarly to other queries. We store LOAD DATA query in new Execute_load_query event (which is last in the sequence of events representing LOAD DATA). When we are executing this event we simply rewrite part of query which holds name of file (we use name of temporary file) and then execute it as usual query. In the beggining of this sequence we use Begin_load_query event which is almost identical to Append_file event. sql/sql_repl.h: struct st_load_file_info: Removed memebers which are no longer needed for LOAD DATA binnlogging. sql/sql_yacc.yy: Added support for extended LOAD DATA syntax. Now one can use user variables as target for data loaded from file (besides table's columns). Also LOAD DATA got new SET-clause in which one can specify values for table columns as expressions. For example the following is possible: LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1; Also now we save pointers to the beginning and to the end of part of LOAD DATA statement which should be rewritten during replication.
-
unknown authored
Rework to resolve ambigious grammer: conflict in join expression handling of parentheses for nested joins and derived tables. Tests included of failing statements Optimize item construction for AND/OR logical expressions mysql-test/r/select.result: Bug#8670 Tests for failing expressions mysql-test/t/select.test: Bug#8670 Tests for failing expressions sql/sql_parse.cc: Bug#8670 method st_select_lex::end_nested_join() returns NULL when there are no elements in the join. sql/sql_yacc.yy: Optimize construction for Item_cond_or and Item_cond_and Reduces object count in case of complex expressions. Bug#8670 Solve ambigious grammar. Fix handling of parentheses in join expressions to correct handling of nested joins and derived tables.
-
- 13 Mar, 2005 1 commit
-
-
unknown authored
implementation of AVG(DISTINCT) which utilizes the approach with Fields. The patch implemented in October is portede to the up-to-date tree containing DECIMAL type. Tests for AVG(DISTINCT) (although there is not much to test provided that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT() will follow in another changeset. sql/field.cc: A handy way to init create_field used for use with virtual tmp tables. Feel free to extend it for your own needs. sql/field.h: Declaration for create_field::init_for_tmp_table() sql/item.cc: Implementation for a framework used to easily handle different result types of SQL expressions. Instead of having instances of each possible result type (integer, decimal, double) in every item, variables of all used types are moved to struct Hybrid_type. Hybrid_type can change its dynamic type in runtime, and become, for instance, DECIMAL from INTEGER. All type-specific Item operations are moved to the class hierarchy Hybrid_type_traits. Item::decimals and Item::max_length can be moved to Hybrid_type as well. sql/item.h: Declaration for Hybrid_type framework. See also comments for item.cc in this changeset. sql/item_sum.cc: Rewritten implementation for Item_sum_sum_distinct (SUM(DISTINCT)) and added implementation for Item_sum_avg_distinct (AVG(DISTINCT)). The classes utilize Hybrid_type class hierarchy and Fields to convert SUM/AVG arguments to binary representation and store in a RB-tree. sql/item_sum.h: Declarations for Item_sum_distinct (the new intermediate class used for SUM and AVG distinct), Item_sum_sum_distinct, Item_sum_avg_distinct. sql/sql_select.cc: Implementatio of create_virtual_tmp_table(). sql/sql_select.h: Declaration for create_virtual_tmp_table. sql/sql_yacc.yy: Grammar support for Item_sum_avg_distinct.
-
- 04 Mar, 2005 1 commit
-
-
unknown authored
Crashes with stored procedure return non-string values Also fixes Bug#2773 mysql-test/r/information_schema.result: Bug#3788 Fix results for bugfix mysql-test/r/sp.result: Bug#3788 Tests for Bug Fix results for bugfix mysql-test/t/sp.test: Bug#3788 New tests for bug sql/item.cc: Fix unrelated crash in view test with --ps-protocol. sql/item_func.cc: Bug#3788 Alter how SP function result types are handled. sql/item_func.h: Bug#3788 Alter how SP function result types are handled. sql/mysql_priv.h: Bug#3788 Prototypes for new global functions sql/sp.cc: Bug#3788 Alter how function return type is reported sql/sp_head.cc: Bug#3788 Change how function return types are stored for SPs sql/sp_head.h: Bug#3788 Change how function return types are stored for SPs sql/sql_parse.cc: Bug#3788 Split out field construction into its own function sql/sql_table.cc: Bug#3788 Split out field preparation code into its own function sql/sql_yacc.yy: Bug#3788 Change how function return types are stored for SPs sql/unireg.cc: Bug#3788 Add assertion check
-