An error occurred fetching the project authors.
- 10 Aug, 2005 1 commit
-
-
unknown authored
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"
-
- 08 Aug, 2005 1 commit
-
-
unknown authored
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"
-
- 07 Aug, 2005 1 commit
-
-
unknown authored
We're out of bits in st_select_lex->options so make TMP_TABLE_FORCE_MYISAM == OPTION_FOUND_COMMENT (the latter is not used by create_tmp_table). mysql-test/r/create.result: Updated the test result mysql-test/r/fulltext_order_by.result: Drop all tables this test uses mysql-test/t/fulltext_order_by.test: Drop all tables this test uses
-
- 06 Aug, 2005 1 commit
-
-
unknown authored
When creating temporary table for UNION, pass TMP_TABLE_FORCE_MYISAM flag to create_tmp_table if we will be using fulltext function(s) when reading from the temp. table. mysql-test/r/fulltext_order_by.result: Testcase for BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error) mysql-test/t/fulltext_order_by.test: Testcase for BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error) sql/mysql_priv.h: BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error): Added TMP_TABLE_FORCE_MYISAM flag sql/sql_select.cc: BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error): In create_tmp_table(), honor the TMP_TABLE_FORCE_MYISAM flag
-
- 02 Aug, 2005 1 commit
-
-
unknown authored
Reversed the changes to fix bug #12095 after review done by SergeyG. Applied a fix suggested by him. sql/sql_class.h: Reversed the changes to fix bug #12095 after review done by SergeyG. Applied a fix suggested by him. sql/sql_select.cc: Reversed the changes to fix bug #12095 after review done by SergeyG. Applied a fix suggested by him.
-
- 31 Jul, 2005 3 commits
-
-
unknown authored
Review of new pushed code client/mysqlbinlog.cc: After merge fixes sql/set_var.cc: After merge fixes sql/sql_select.cc: Removed not needed test (field->maybe_null() also tests field->table->maybe_null)
-
unknown authored
Change bool in C code to my_bool Added to mysqltest --enable_parsning and --disable_parsing to avoid to have to comment parts of tests Added comparison of LEX_STRING's and use this to compare file types for view and trigger files. client/client_priv.h: Added OPT_TRIGGERS (to get rid of compiler warning) client/mysql.cc: Added cast to get rid of compiler warning client/mysqldump.c: Added OPT_TRIGGERS (to get rid of compiler warning) Abort if we can't write to outfile (even if --ignore-errors is given) client/mysqltest.c: Added --enable_parsning and --disable_parsing to avoid to have to comment parts of tests include/my_sys.h: Make my_progname const include/my_time.h: Avoid using 'bool' in C programs mysql-test/lib/init_db.sql: Align with mysql_create_system_tables (Ideally this file should be auto-generated from the above script) mysql-test/r/mysqltest.result: Test for --enable_parsing mysql-test/r/variables.result: Update results after fix for overflow checking of max_heap_table_size mysql-test/t/information_schema.test: USe --enable/disable parsing instead of comments mysql-test/t/mysqltest.test: Test for --enable_parsing mysql-test/t/sp.test: USe --enable/disable parsing instead of comments mysql-test/t/variables.test: Portability fix for 64 bit systems mysql-test/t/view.test: USe --enable/disable parsing instead of comments mysys/my_init.c: May my_progname const mysys/my_static.c: May my_progname const mysys/thr_lock.c: Remove not needed casts sql-common/my_time.c: Change bool -> my_bool as bool is not portable in C programs sql/field.cc: Test number_to_datetime() for -1 instead of < 0 (Safety fix) New prototype for TIME_to_timestamp() sql/item.h: Don't have prototypes for both uint32 and ulong as these 'may' be the same thing sql/item_timefunc.cc: New prototype for TIME_to_timestamp() sql/log.cc: Remove compiler warnings sql/mysql_priv.h: New prototype for TIME_to_timestamp() Added function for comparing LEX_STRING sql/set_var.cc: Added overflow checking when setting ulong variable sql/sql_base.cc: Added function is_equal() Changed strncmp -> is_equal() as strncmp() to not match "V" (instead of "VIEW") sql/sql_class.cc: Added comment sql/sql_select.cc: Portability fixes After review fixes sql/sql_trigger.cc: Use 'tables_alias_charset' for comparing database name Use 'is_equal()' to compare file type. (Old code didn't do the comparison correctly) sql/sql_view.cc: Use 'is_equal()' to compare file type. (Old code didn't do the comparison correctly) sql/time.cc: New prototype for TIME_to_timestamp() to allow easyer mapping to C function sql/tztime.cc: bool -> my_bool (to allow calling C code from C++ code) sql/tztime.h: bool -> my_bool (to allow calling C code from C++ code)
-
unknown authored
Set table->key_read back to 0 regardless of whether join_read_const() succeeded or not.
-
- 30 Jul, 2005 1 commit
-
-
unknown authored
Item_type_holder doesn't store information about length and exact type of original item which results in redefining length to max_length and geometry type to longtext. Changed the way derived tables except unions are built. Now they are created from original field list instead of list of Item_type_holder. mysql-test/r/subselect.result: Fixed wrong test case result. bug#11335 mysql-test/r/view_grant.result: Fixed wrong test case result. bug#11335 mysql-test/r/view.result: Added test case for bug #11335. Fixed wrong test case result. mysql-test/t/view.test: Test case for bug #11335 View redefines TinyInt(1) column definition. sql/sql_union.cc: Fix bug #11335 View redefines TinyInt(1) column definition. Changed the way derived tables except unions are built. Now they are created from original field list instead of list of Item_type_holders. sql/sql_select.cc: Fix bug #11335 View redefines TinyInt(1) column definition. Added special handling of DATE/TIME fields to preserve field's type in tmp field creation. In create_tmp_field() for Item_field added special handling of case when item have to be able to store NULLs but underlaid field is NOT NULL. sql/item_sum.cc: Fix bug #11335 View redefines TinyInt(1) column definition. Added special handling of DATE/TIME fields to preserve field's type while tmp field created in Item_sum_hybrid::create_tmp_field().
-
- 29 Jul, 2005 2 commits
-
-
unknown authored
libmysql/libmysql.def: "get_defaults_files" has been renamed to "get_defaults_options" but was not removed here sql/sql_select.cc: pulled variable out of for() scope to satisfy dumb MSVC6 compiler
-
unknown authored
Added a test case for bug #12095. sql_class.h: Fixed bug #12095: a join query with GROUP_CONCAT over a single row table. Added a flag to the TMP_TABLE_PARAM class forcing to put constant items generated after elimination of a single row table into temp table in some cases (e.g. when GROUP_CONCAT is calculated over a single row table). bk ci sql/item_sum.cc Fixed bug #12095: a join query with GROUP_CONCAT over a single row table. If GROUP_CONCAT is calculated we always put its argument into a temp table, even when the argument is a constant item. sql_select.cc: Fixed bug #12095: a join query with GROUP_CONCAT over one row table. If temp table is used to calculate GROUP_CONCAT the argument should be always put into this table, even when it is a constant item. sql/sql_select.cc: Fixed bug #12095: a join query with GROUP_CONCAT over one row table. If temp table is used to calculate GROUP_CONCAT the argument should be always put into this table, even when it is a constant item. sql/sql_class.h: Fixed bug #12095: a join query with GROUP_CONCAT over a single row table. Added a flag to the TMP_TABLE_PARAM class forcing to put constant items generated after elimination of a single row table into temp table in some cases (e.g. when GROUP_CONCAT is calculated over a single row table). bk ci sql/item_sum.cc Fixed bug #12095: a join query with GROUP_CONCAT over a single row table. If GROUP_CONCAT is calculated we always put its argument into a temp table, even when the argument is a constant item. mysql-test/t/func_gconcat.test: Added a test case for bug #12095. mysql-test/r/func_gconcat.result: Added a test case for bug #12095.
-
- 28 Jul, 2005 1 commit
-
-
unknown authored
Fixed bug #12144. Added an optimization that avoids key access with null keys for the 'ref' method when used in outer joins. The regilar optimization with adding IS NOT NULL expressions is not applied for outer join on expressions as the predicates of these expressions are not pushed down in 4.1. null_key.result, null_key.test: Added a test case for bug #12144. mysql-test/t/null_key.test: Added a test case for bug #12144. mysql-test/r/null_key.result: Added a test case for bug #12144. sql/sql_select.cc: Fixed bug #12144. Added an optimization that avoids key access with null keys for the 'ref' method when used in outer joins. The regilar optimization with adding IS NOT NULL expressions is not applied for outer join on expressions as the predicates of these expressions are not pushed down in 4.1.
-
- 27 Jul, 2005 1 commit
-
-
unknown authored
(This is because conds may not be a constant) This bug caused a failure in the test suite for select.test becasue for prepared statements in one case a 'constant sub query' was not regarded as a constant Sanja will as a separate task check if we can fix that the sub query can be recognized as a constant Bug #12217 sql/sql_select.cc: We have also to test 'conds' even if there was no tables. (This is because conds may not be a constant) This bug caused a failure in the test suite for select.test becasue for prepared statements in one case a 'constant sub query' was not regarded as a constant Sanja will as a separate task check if we can fix that the sub query can be recognized as a constant
-
- 25 Jul, 2005 1 commit
-
-
unknown authored
Fixed bug #11412. Reversed the patch of cs 1.1934 for the function create_tmp_table. Modified the function to support tem_ref objects created for view fields. item_buff.cc: Fixed bug #11412. Modified implementation of new_Cached_item to support cacheing of view fields. item.h: Fixed bug #11412. Changed implementation of Item_ref::get_tmp_table_field and added Item_ref::get_tmp_table_item to support Item_ref objects created for view fields. view.test, view.result: Added a test case for bug #11412. mysql-test/r/view.result: Added a test case for bug #11412. mysql-test/t/view.test: Added a test case for bug #11412. sql/item.h: Fixed bug #11412. Changed implementation of Item_ref::get_tmp_table_field and added Item_ref::get_tmp_table_item to support Item_ref objects created for view fields. sql/item_buff.cc: Fixed bug #11412. Modified implementation of new_Cached_item to support cacheing of view fields. sql/sql_select.cc: Fixed bug #11412. Reversed the patch of cs 1.1934 for the function create_tmp_table. Modified the function to support tem_ref objects created for view fields.
-
- 20 Jul, 2005 1 commit
-
-
unknown authored
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.
-
- 19 Jul, 2005 2 commits
-
-
unknown authored
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''
-
unknown authored
include/my_global.h: Added floatget() to read unaligned flaot mysql-test/r/select.result: Added test for found_rows() mysql-test/t/select.test: Added test for found_rows() sql/des_key_file.cc: Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition sql/field_conv.cc: Added optimizzed varsion of do_cut_string (for simple character sets) sql/item_func.cc: Simplify code (and ensure DBUG_ENTER is excuted before main code) sql/item_strfunc.cc: Safe calculation of max_length This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH) Remove init_des_key_file() as this is not initialized in mysqld.cc sql/item_timefunc.cc: Safe calculation of max_length This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH) sql/log_event.cc: Simplify code sql/mysql_priv.h: Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition sql/mysqld.cc: Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition Revert wrong patch of calling close_connection() in first close_connections() loop. (Bug #7403) Instead we now print a warning for closed connections only if mysqld is sarted with --warnings Added comments to make the close_connections() logic clearer sql/sql_prepare.cc: Use floatget() and doubleget() to protect against unaligned data sql/sql_select.cc: Fixed some cases unlikely cases where found_rows() would return wrong for queries that would return 0 or 1 rows
-
- 18 Jul, 2005 2 commits
-
-
unknown authored
than in previous 4.1.x Wrongly applied optimization were adding NOT NULL constraint which results in rejecting valid rows and reduced result set. The problem was that add_notnull_conds() while checking subquery were adding NOT NULL constraint to left joined table, to which, normally, optimization don't have to be applied. sql/sql_select.cc: Fix bug #11482 Wrongly applied optimization was erroneously rejecting valid rows Constraint were added to optimization appliance test. mysql-test/t/select.test: Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows mysql-test/r/select.result: Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
-
unknown authored
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()
-
- 17 Jul, 2005 2 commits
-
-
unknown authored
Added a test case for bug #11745. sql_select.cc: Fixed bug # 11745. Added support of where clause for queries with FROM DUAL. sql_yacc.yy: Fixed bug # 11745. Added optional where clause for queries with FROM DUAL. sql/sql_yacc.yy: Fixed bug # 11745. Added optional where clause for queries with FROM DUAL. sql/sql_select.cc: Fixed bug # 11745. Added support of where clause for queries with FROM DUAL. mysql-test/t/select.test: Added a test case for bug #11745. mysql-test/r/select.result: Added a test case for bug #11745.
-
unknown authored
Fixed bug #11885. sql_select.cc: Fixed bug #11885. Predicates of the forms 'a IN (v)' 'a NOT IN (v)' now is replaced by 'a=v' and 'a<>v' at the parsing stage. sql_yacc.yy: Fixed bug #11885. Predicates of the forms 'a IN (v)' 'a NOT IN (v)' now is replaced by 'a=v' and 'a<>v' at the parsing stage. sql/sql_yacc.yy: Fixed bug #11885. Predicates of the forms 'a IN (v)' 'a NOT IN (v) now is replaced by 'a=v' and 'a<>v' at the parsing stage. sql/sql_select.cc: Fixed bug #11885. Predicates of the forms 'a IN (v)' 'a NOT IN (v) now is replaced by 'a=v' and 'a<>v' at the parsing stage. mysql-test/t/func_in.test: Fixed bug #11885. mysql-test/r/func_in.result: Fixed bug #11885.
-
- 16 Jul, 2005 1 commit
-
-
unknown authored
disabled if ref is built with a key from the updated table Problem was in add_not_null_conds() optimization function. It contains following code: JOIN_TAB *referred_tab= not_null_item->field->table->reginfo.join_tab; ... add_cond_and_fix(&referred_tab->select_cond, notnull); For UPDATE described in bug report referred_tab is 0 and dereferencing it crashes the server. sql/sql_select.cc: Fix bug #11868 NOT NULL ref optimization in subquery used in update must be disabled if ref is built with a key from the updated table mysql-test/r/update.result: Test case for bug#11868 Update with subquery with ref built with a key from the updated table crashes server. mysql-test/t/update.test: Test case for bug#11868 Update with subquery with ref built with a key from the updated table crashes server
-
- 15 Jul, 2005 1 commit
-
-
unknown authored
than in previous 4.1.x Wrongly applied optimization were adding NOT NULL constraint which results in rejecting valid rows and reduced result set. The problem was that add_notnull_conds() while checking subquery were adding NOT NULL constraint to left joined table, to which, normally, optimization don't have to be applied. sql/sql_select.cc: Fix bug #11482 Wrongly applied optimization was erroneously rejecting valid rows Constraint were added to optimization appliance test. mysql-test/t/select.test: Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows mysql-test/r/select.result: Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
-
- 14 Jul, 2005 3 commits
-
-
unknown authored
mysql-test/r/fulltext_order_by.result: A post-merge fix. mysql-test/t/fulltext_order_by.test: A post-merge fix (a different plan is chosen for a query in 5.0) sql/sql_select.cc: Post-merge fix.
-
unknown authored
This is needed because in some cases range optimization is performed twice and added NOT NULL item must have correct const_table_map() value. mysql-test/r/select.result: Testcase for BUG#11700 mysql-test/t/select.test: Testcase for BUG#11700
-
unknown authored
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
-
- 04 Jul, 2005 1 commit
-
-
unknown authored
- Mostly indentation fixes - Added missing test - Ensure that Item_func_case() checks for stack overruns - Use real_item() instead of (Item_ref*) item - Fixed wrong error handling myisam/mi_unique.c: Improved comments myisam/myisampack.c: Updated version number mysql-test/r/group_by.result: Added test that was lost during earlier merge mysql-test/r/information_schema.result: Safety fix: Drop procedures before used mysql-test/t/group_by.test: Added test that was lost during earlier merge mysql-test/t/information_schema.test: Safety fix: Drop procedures before used mysys/hash.c: Updated comment sql/field.cc: false -> FALSE sql/ha_ndbcluster.cc: Fix some style issues - No () around argument to 'case' - Space before ( in switch and if - Removed 'goto' - Added {} - Added () to make expressions easier to read - my_snprintf -> strmov sql/handler.cc: if( -> if ( sql/item.cc: Indentation changes sql/item.h: false -> FALSE sql/item_cmpfunc.cc: Ensure that Item_func_case() check for stack overrun properly sql/item_cmpfunc.h: Ensure that Item_func_case() check for stack overrun properly sql/item_func.cc: Indentation fixes Fixed wrong goto label sql/mysqld.cc: Remove test for opt_disable_networking as this flag can never be set here sql/opt_range.cc: Simplify code sql/sql_class.h: Move define out from middle of class definition sql/sql_parse.cc: Remove extra empty lines sql/sql_select.cc: use real_item() instead of (Item_ref*) item Modifed function comment to be align with others Simple optimization sql/sql_union.cc: Portability fix: Don't use 'bool_variable|=...' sql/sql_view.cc: Move List_iterator_fast out from loops (rewind is faster than creating a new itearator) strings/ctype-utf8.c: if( -> if ( strings/ctype.c: Remove disabled code strings/decimal.c: Indentation fixes strings/xml.c: Indentation fixes
-
- 02 Jul, 2005 1 commit
-
-
unknown authored
sql/item.cc: new argument of find_field_in_tables() sql/mysql_priv.h: new argument of find_field_in_tables() sql/sp.cc: new argument of find_field_in_tables() sql/sql_base.cc: new argument of find_field_in_tables() sql/sql_help.cc: new argument of find_field_in_tables()
-
- 01 Jul, 2005 7 commits
-
-
unknown authored
-
unknown authored
Added a test case for bug #11543. sql_select.cc: Fixed bug #11543. A ROLLUP query could return a wrong result set when its GROUP BY clause contained references to the same column. sql/sql_select.cc: Fixed bug #11543. A ROLLUP query could return a wrong result set when its GROUP BY clause contained references to the same column. mysql-test/t/olap.test: Added a test case for bug #11543. mysql-test/r/olap.result: Added a test case for bug #11543.
-
unknown authored
sql/sql_prepare.cc: A small fix for the previous patch: we should first free the prepared statement items, and then free the runtime memory root, as some memory used for cleanup is allocated in that mem root. sql/sql_select.cc: - ever free the cursor mem root in close() (it's too early).
-
unknown authored
CURSOR_TYPE_READ_ONLY date/datetime filter server crash". The fix adds support for Item_change_list in cursors (proper rollback of the modified item tree). sql/sql_class.cc: No need to call fatal_error() twice. sql/sql_prepare.cc: - implement proper cleanup of the prepared statement in mysql_stmt_reset if there is a cursor. - take into account thd->change_list when fetching data through a cursor. sql/sql_select.cc: - take into account thd->change_list when fetching data from a cursor: grab it when we open a cursor, and rollback the changes to the parsed tree when we close it. sql/sql_select.h: - Cursor::change_list added tests/mysql_client_test.c: - a test case for Bug#11172 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY date/datetime filter server crash"
-
unknown authored
Fixed the results of a test for group_concat. After the fix foor bug #11639 the results became correct. olap.result, olap.test: Added a test case for bug #11639. sql_select.cc: Fixed bug #11639: a wrong result set when using a view instead of the underlying table in a rollup query executed through filesort. The old code did not take into account that we always use an Item_ref object when referring to a view column. item.h: Fixed bug #11639. Now if two Item_ref items ref1 and ref2 refer to the same field then ref1->eq(ref2) returns 1. sql/item.h: Fixed bug #11639. Now if two Item_ref items ref1 and ref2 refer to the same field then ref1->eq(ref2) returns 1. sql/sql_select.cc: Fixed bug #11639: a wrong result set when using a view instead of the underlying table in a rollup query executed through filesort. The old code did not take into account that we always use an Item_ref object when referring to a view column. mysql-test/t/olap.test: Added a test case for bug #11639. mysql-test/r/olap.result: Added a test case for bug #11639. mysql-test/r/view.result: Fixed the results of a test for group_concat. After the fix foor bug #11639 the results became correct.
-
unknown authored
Add extra check to delete [] to ensure we are not deleting not allocated data sql/sql_select.cc: Optimization Add extra check to delete [] to ensure we are not deleting not allocated data
-
unknown authored
include/my_bitmap.h: new bitmap operation mysql-test/r/view.result: added warnings Correct inserting data check (absence of default value) for view underlying tables (BUG#6443) mysql-test/t/view.test: Correct inserting data check (absence of default value) for view underlying tables (BUG#6443) mysys/my_bitmap.c: new bitmap operation sql/field.h: index of field in table added sql/item.cc: Name resolution context added table list removed from fix_fields() arguments sql/item.h: Name resolution context added table list removed from fix_fields() arguments sql/item_cmpfunc.cc: table list removed from fix_fields() arguments sql/item_cmpfunc.h: table list removed from fix_fields() arguments sql/item_func.cc: table list removed from fix_fields() arguments sql/item_func.h: table list removed from fix_fields() arguments sql/item_row.cc: table list removed from fix_fields() arguments sql/item_row.h: table list removed from fix_fields() arguments sql/item_strfunc.cc: fixed server crash on NULL argument sql/item_strfunc.h: table list removed from fix_fields() arguments sql/item_subselect.cc: table list removed from fix_fields() arguments sql/item_subselect.h: table list removed from fix_fields() arguments sql/item_sum.cc: table list removed from fix_fields() arguments sql/item_sum.h: table list removed from fix_fields() arguments sql/item_timefunc.cc: table list removed from fix_fields() arguments sql/item_timefunc.h: table list removed from fix_fields() arguments sql/item_uniq.h: table list removed from fix_fields() arguments sql/log_event.cc: Name resolution context added sql/log_event.h: Name resolution context added sql/mysql_priv.h: Name resolution context added sql/set_var.cc: table list removed from fix_fields() arguments sql/share/errmsg.txt: new error message sql/sp.cc: Name resolution context added sql/sp_head.cc: table list removed from fix_fields() arguments sql/sp_head.h: Name resolution context added sql/sql_base.cc: table list removed from fix_fields() arguments Name resolution context added sql/sql_class.cc: renamed variable sql/sql_delete.cc: Name resolution context added sql/sql_derived.cc: Name resolution context added sql/sql_do.cc: table list removed from fix_fields() arguments sql/sql_handler.cc: Name resolution context added sql/sql_help.cc: Name resolution context added sql/sql_insert.cc: Name resolution context added table list removed from fix_fields() arguments sql/sql_lex.cc: Name resolution context added sql/sql_lex.h: removed resolve mode (information stored into name resolution context) sql/sql_load.cc: table list removed from fix_fields() arguments sql/sql_olap.cc: Name resolution context added sql/sql_parse.cc: Name resolution context added sql/sql_prepare.cc: table list removed from fix_fields() arguments sql/sql_select.cc: table list removed from fix_fields() arguments sql/sql_show.cc: Name resolution context added sql/sql_trigger.cc: table list removed from fix_fields() arguments sql/sql_udf.h: table list removed from fix_fields() arguments sql/sql_union.cc: Name resolution context added sql/sql_update.cc: Name resolution context added sql/sql_view.cc: Name resolution context added sql/sql_view.h: table list removed from fix_fields() arguments sql/sql_yacc.yy: Name resolution context added sql/table.cc: Name resolution context added merged view processing moved sql/table.h: merged view processing moved
-
- 30 Jun, 2005 1 commit
-
-
unknown authored
bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs mysql-test/r/type_bit.result: test case. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs mysql-test/t/type_bit.test: test case. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs sql/field.h: a fix. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs - max_length() returns length in bits. - introduced set_bit_ptr() function, which sets bit_ptr and bit_ofs. sql/item.cc: a fix. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs - create Field_bit_as_char in case of MYSQL_TYPE_BIT in the Item::tmp_table_field_from_field_type() (we cannot create Field_bit here because of lack of information: bit_ptr, bit_ofs) sql/mysql_priv.h: a fix. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs - table_cant_handle_bit_fields parameter added to the create_tmp_field() sql/sql_select.cc: a fix. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs - create_tmp_field() changes to return create_tmp_field_from_item() result (actually, Field_bit_as_char) if table_cant_handle_bit_fields=1 for bit fields. - create_tmp_field() calls accordingly changed - call set_bit_ptr() for bit fields after the move_field() call during temporary table creation. sql/sql_table.cc: a fix. bug #10617: Insert from same table to same table give incorrect result for bit(4) column. bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs - changed the create_tmp_field() call
-
- 28 Jun, 2005 1 commit
-
-
unknown authored
Added a test case for bug #11414. sql_select.cc: Fixed bug #11414: crash on Windows with some simple GROUP BY queries. It happened to an allocation of an array containing 0 Copy_field elements in setup_copy_fields. The bug had been already fixed in 5.0. sql/sql_select.cc: Fixed bug #11414: crash on Windows with some simple GROUP BY queries. It happened to an allocation of an array containing 0 Copy_field elements in setup_copy_fields. The bug had been already fixed in 5.0. mysql-test/t/group_by.test: Added a test case for bug #11414. mysql-test/r/group_by.result: Added a test case for bug #11414.
-
- 27 Jun, 2005 1 commit
-
-
unknown authored
sql/sql_select.cc: If we use subqueries, we can have double-free of tmp_table_param.copy_field in JOIN::destroy and in JOIN::join_free because.
-
- 24 Jun, 2005 2 commits
-
-
unknown authored
sql/sql_select.cc: According to the conclusion made in the previous patch, we can widen the range of cases when JOINs are fully freed early, and include subqueries to it.
-
unknown authored
sql/sql_select.cc: This assert is not relevant because: - the correct assert is DBUG_ASSERT(! (full && sl->uncacheable)) (prevents freeing of uncacheable JOINs), it breaks view.test - it seems we can free internal JOINs, even if they are uncacheable: if the top level join is evaluated, we're not going to need the internal joins any more
-