An error occurred fetching the project authors.
- 11 Dec, 2004 1 commit
-
-
unknown authored
refernces if subqueri is not in HAVING clause (BUG#7079) and the same used for subquery transformetion mysql-test/r/subselect.result: reference on changable fields from subquery mysql-test/t/subselect.test: reference on changable fields from subquery sql/item.cc: new reference which refer to current value not to result used sql/item.h: new reference which refer to current value not to result used sql/item_subselect.cc: new reference which refer to current value not to result used
-
- 25 Nov, 2004 1 commit
-
-
unknown authored
mysql-test/r/subselect.result: Equal operation under row and empty subquery mysql-test/t/subselect.test: Equal operation under row and empty subquery sql/item.h: init values to avoid junk returning in case of null value asking without assigning value
-
- 21 Nov, 2004 1 commit
-
-
unknown authored
of <parameter> IS NULL": we must not only set Item::null_value in Item_param, but implement Item_param::is_null() to work well with IS NULL/IS NOT NULL clauses. mysql-test/r/ps.result: Test case for Bug#6297: test results fixed. mysql-test/t/ps.test: A test case for Bug#6297 "prepared statement, wrong handling of <parameter> IS NULL" sql/item.h: A fix for Bug#6297: we must not only set null_value in Item_param, but also implement Item_param::is_null() to work well with IS NULL/ IS NOT NULL. Item::is_null() commented.
-
- 10 Nov, 2004 1 commit
-
-
unknown authored
the result takes its charset/collation attributes from the character string, e.g. SELECT func(NULL, _latin2'string') now returns a latin2 result. This is done by introducing a new derivation (aka coercibility) level DERIVATION_IGNORABLE, which is used with Item_null. 2. 'Pure' NULL is now BINARY(0), not CHAR(0). I.e. NULL is now more typeless. mysql-test/r/metadata.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/r/null.result: Testing mixing NULL with a character string with a number of functions. mysql-test/r/ps_2myisam.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/r/ps_3innodb.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/r/ps_4heap.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/r/ps_5merge.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/r/ps_6bdb.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/r/ps_7ndb.result: Fixing test results: CHAR(0) -> BINARY(0) for NULLs mysql-test/t/null.test: Testing mixing NULL with a character string with a number of functions. sql/item.cc: New derivation level. sql/item.h: New derivation level.
-
- 02 Nov, 2004 1 commit
-
-
unknown authored
Allow mixing of different character sets for more SQL functions. item_func.h: Allow mixing of different character sets for more SQL functions.. sql/item_cmpfunc.cc: Allow mixing of different character sets for more SQL functions. sql/item_func.cc: Allow mixing of different character sets for more SQL functions. sql/item_func.h: Allow mixing of different character sets for more SQL functions.. sql/item_strfunc.cc: Allow mixing of different character sets for more SQL functions. sql/item.cc: Allow mixing of different character sets for more SQL functions. sql/item.h: Allow mixing of different character sets for more SQL functions. mysql-test/t/ctype_recoding.test: Allow mixing of different character sets for more SQL functions. mysql-test/r/ctype_recoding.result: Allow mixing of different character sets for more SQL functions.
-
- 29 Oct, 2004 1 commit
-
-
unknown authored
constant with a column. The string is converted into the column character set. It conversion doesn't lose data, then operation is possible. Otherwise, give an error, as it was earlier. sql/item.h: Change bool argument to uint flags: we have now two different flags.
-
- 22 Oct, 2004 3 commits
-
-
unknown authored
sql/item.cc: Fix valgrind errors: we need Item::name to point to PS memory as well. sql/item.h: set_field no longer can be reused as is for PS purposes. sql/sql_union.cc: Item_field::set_field -> Item_field::reset_field.
-
unknown authored
Fixed checking of privilege handling in CREATE ... SELECT (Bug #6094) client/mysql.cc: Fix compiler warnings client/mysqltest.c: Fix wrong counting of lines Remove compiler warnings heap/hp_hash.c: Fix compiler warnings innobase/dict/dict0load.c: Fix compiler warnings innobase/include/mem0mem.h: Fix compiler warnings libmysql/client_settings.h: Fix compiler warnings myisam/ft_nlq_search.c: Add comments about compiler warnings myisam/rt_index.c: Add comments about compiler warnings myisam/rt_mbr.c: Add comments about compiler warnings mysql-test/r/ps.result: Test case for bug#6094 mysql-test/t/ps.test: Test case for bug#6094 mysys/hash.c: Fix compiler warnings mysys/my_handler.c: Add comments about compiler warnings mysys/my_thr_init.c: Add comments about compiler warnings ndb/include/mgmapi/mgmapi.h: Fix compiler warnings regex/main.c: Fix compiler warnings sql/item.h: Fix compiler warnings sql/item_func.h: Add comments about compiler warnings sql/spatial.h: Add comments about compiler warnings sql/sql_lex.h: Fix compiler warning sql/sql_list.h: Fix compiler warning sql/sql_parse.cc: Move testing of access rights of tables in CREATE ... SELECT to create_table_precheck() to fix privilege checking in CREATE ... SELECT (Bug #6094) sql/sql_prepare.cc: Remove not needed empty line sql/sql_string.h: Fix compiler warnings strings/ctype-mb.c: Fix compiler warnings
-
unknown authored
names with ident. tables fr. diff. schemata": revise all uses of Item_field and make them prepared-statements friendly when necessary. mysql-test/r/ps.result: Test results fixed: the test case for Bug#6050 mysql-test/r/ps_1general.result: Test results fixed: in prepared statements we expand '*' to a list of fully qualified fields (db.table.column). mysql-test/t/ps.test: A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with ident. tables fr. diff. schemata" sql/item.cc: Revise all Item_field constructors: we need to make sure that no Item_field object points to unaccessible memory in prepared statements. sql/item.h: Revise all Item_field constructors: we need to make sure that no Item_field object points to unaccessible memory in prepared statements. sql/sql_base.cc: Item_field use changed to be prepared statements friendly. sql/sql_class.h: New check of Item_arena state. sql/sql_union.cc: Fixing the problem with name resolving in UNION and prepared statements: In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of selected items is represented as a List<Item_field>, where each Item_field points to a field of temporary table. But the temporary table is created anew on each execution of the prepared statement. So on each subsequent execution we should reset Item_field items to point to fields from freshly-created temporary table. sql/table.h: Comment TABLE member.
-
- 12 Oct, 2004 1 commit
-
-
unknown authored
A fix for Bug#6042 "constants propogation works olny once (prepared statements)": reset item->marker in Item::cleanup, as it's used in propogate_cond_constants. No test case as the only way I could come up with to show the problem is EXPLAIN, and EXPLAIN is painful to use in the test suite. sql/item.h: A fix for Bug#6042 "constants propogation works olny once (prepared statements)": reset item->marker in Item::cleanup, as it's used in propogate_cond_constants
-
- 09 Oct, 2004 1 commit
-
-
unknown authored
crashes server (prepared statements)": the bug was that all boolean items always recovered its original arguments at statement cleanup stage. This collided with Item_subselect::select_transformer, which tries to permanently change the item tree to use a transformed subselect instead of original one. So we had this call sequence for prepare: mysql_stmt_prepare -> JOIN::prepare -> Item_subselect::fix_fields -> the item tree gets transformed -> Item_bool_rowready_func2::cleanup, item tree is recovered to original state, while it shouldn't have been; mysql_stmt_execute -> attempts to execute a broken tree -> crash. Now instead of bluntly recovering all arguments of bool functions in Item_bool_rowready_func2::cleanup, we recover only those which were changed, and do it in one place. There still would exist a possibility for a collision with subselect tranformation, if permanent and temporary changes were performed at the same stage. But fortunately subselect transformation is always done first, so it doesn't conflict with the optimization done by propogate_cond_constants. Now we have: mysql_stmt_prepare -> JOIN::prepare -> subselect transformation permanently changes the tree -> cleanup doesn't recover anything, because nothing was registered for recovery. mysql_stmt_execute -> JOIN::prepare (the tree is already transformed, so it doesn't change), JOIN::optimize -> propogate_cond_constants -> temporary changes the item tree with constants -> JOIN::execute -> cleanup -> the changes done by propogate_cond_constants are recovered, as they were registered for recovery. mysql-test/r/ps.result: Bug#5987: test results fixed. mysql-test/t/ps.test: A test for bug#5987 "subselect in bool function crashes server (prepared statements)" sql/item.cc: resolve_const_item is now responsible to register all changes of the item tree for recovery sql/item.h: resolve_const_item signagture changed sql/item_cmpfunc.h: Arguments of boolean functions are now recovered using the centralized registry of THD. sql/sql_class.cc: It's crucial to add new items to the beginning of the recovery list, so that the recovery is performed in LIFO mode: otherwise if we change one node of a tree twice, it will be recovered to some intermediate state. sql/sql_select.cc: change_cond_ref_to_const and propogate_cond_constants are now responsible to register all changes of the item tree for recovery. The recovery is done using the centralized THD registry of changed tree items.
-
- 08 Oct, 2004 2 commits
-
-
unknown authored
registration changing ITEM_SUM arguments added sql/item.cc: cleunup for Item_result_field sql/item.h: cleunup for Item_result_field sql/item_sum.cc: args_copy and cleunup() removed from Item_sum sql/item_sum.h: args_copy and cleunup() removed from Item_sum sql/sql_select.cc: registration changing ITEM_SUM arguments
-
unknown authored
doesn't need to have it's own recovery mechanism. sql/item.cc: Deployment of centralized Item change registry, step 2: Item_ref doesn't need to have it's own recovery mechanism, so it was simplified. sql/item.h: Deployment of centralized Item change registry, step 2: Item_ref doesn't need to have it's own recovery mechanism, so it was simplified. sql/item_cmpfunc.cc: - Item::split_sum_func now requires THD - use THD::register_item_tree_change sql/item_cmpfunc.h: - Item::split_sum_func now requires THD sql/item_func.cc: - Item::split_sum_func now requires THD - use THD::register_item_tree_change sql/item_func.h: - Item::split_sum_func now requires THD sql/item_row.cc: - Item::split_sum_func now requires THD - use THD::register_item_tree_change sql/item_row.h: - Item::split_sum_func now requires THD sql/item_strfunc.cc: - Item::split_sum_func now requires THD - use THD::register_item_tree_change to register changes in the item tree sql/item_strfunc.h: - Item::split_sum_func now requires THD sql/item_subselect.cc: - use updated Item_ref constructor sql/sql_base.cc: - Item::split_sum_func now requires THD sql/sql_select.cc: - Item::split_sum_func now requires THD sql/sql_yacc.yy: - use updated Item_ref constructor
-
- 07 Oct, 2004 1 commit
-
-
unknown authored
crashes mysqld": implementation for a generic item tree modifications registry. Every item tree modification which should be rolled back for subsequent execution of a prepared statement or stored procedure should be saved in the registry. All such modifications are rolled back at once during cleanup stage of PS. Actual fix for the bug just adds a call to register modifications to convert_constant_item. Post review fixes implemented. mysql-test/r/ps.result: A fix for bug#5748, test results fixed. mysql-test/t/ps.test: A test case for Bug#5748 "Prepared statement with BETWEEN and bigint values crashes mysqld" sql/item.cc: Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values crashes mysqld": First step in removing up item-specific cleanups: now all such tree modifications should be done using the genericm mechanism implemented in this changeset. sql/item.h: Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values crashes mysqld": no need for an item-specific change record any more. sql/item_cmpfunc.cc: A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values crashes mysqld": register item tree transformation performed by convert_constant_item. sql/sql_class.cc: Implementation for item tree transformations registry. sql/sql_class.h: Declarations, necessary for the tree transformations registry. sql/sql_parse.cc: Assert that the item tree transformations registry is not used for conventional execution. sql/sql_prepare.cc: Use of the item tree modifications registry in prepared statements: rollback all modifications in the end of statement prepare and execute. Also we now always set thd->current_arena to be able to determine that this is an execution of prepared statement inside the registry code. tests/client_test.c: A typo fixed.
-
- 25 Sep, 2004 1 commit
-
-
unknown authored
-
- 16 Sep, 2004 1 commit
-
-
unknown authored
of EXPLAIN SELECT, rather than binary strings.
-
- 01 Sep, 2004 1 commit
-
-
unknown authored
from Item_bool_func2 into DTCollation to make it reusable for other types of items.
-
- 31 Aug, 2004 1 commit
-
-
unknown authored
mysql-test/r/negation_elimination.result: new tests of negation elimination mysql-test/t/negation_elimination.test: new tests of negation elimination sql/item.h: test of boolean functions added sql/item_cmpfunc.cc: NOT subtree is already checked, so wee need to return just argument sql/item_cmpfunc.h: test of boolean functions added sql/mysql_priv.h: 'place' to detect WHERE clause sql/sql_parse.cc: function for creation negated expression sql/sql_select.cc: removed unused function sql/sql_select.h: removed unused function sql/sql_yacc.yy: 'place' to detect WHERE clause
-
- 11 Aug, 2004 1 commit
-
-
unknown authored
-
- 28 Jun, 2004 1 commit
-
-
unknown authored
-
- 26 Jun, 2004 1 commit
-
-
unknown authored
mysql-test/r/ps.result: eq() for parameters test mysql-test/t/ps.test: eq() for parameters test sql/item.h: correct eq() method for Item_param
-
- 25 Jun, 2004 1 commit
-
-
unknown authored
mysql-test/r/ps.result: parameters from variables (for field creation) mysql-test/t/ps.test: parameters from variables (for field creation) sql/item.cc: type of parameter assignment for parameters from variables sql/item.h: removed spaces at line ends in Item_param definition
-
- 18 Jun, 2004 1 commit
-
-
unknown authored
character set introducer": add new item type to be returned before from Item_param until it's value is set. This way items like Item_bool_func2 and udf_handler won't treat this item as constant literal when statement is prepared. mysql-test/r/ps.result: Test results fixed (test case for bug #4105) mysql-test/t/ps.test: Followup to bug #4105: a test case. sql/item.cc: Fix for bug#4105 "Server crash on attempt to prepare a statement with character set introducer": add new item type to be returned before from Item_param until it's value is set. sql/item.h: Fix for bug#4105 "Server crash on attempt to prepare a statement with character set introducer": add new item type to be returned before from Item_param until it's value is set.
-
- 17 Jun, 2004 1 commit
-
-
unknown authored
sql/field.cc: method getting maximum display length for fields sql/field.h: method getting maximum display length for fields sql/item.cc: code cleanup switch replaced with new method sql/item.h: method getting maximum display length for fields
-
- 16 Jun, 2004 2 commits
-
-
unknown authored
-
unknown authored
mysql-test/r/subselect.result: new length in UNION mysql-test/r/union.result: new length in UNION test of int with wrong display length mysql-test/t/union.test: test of int with wrong display length sql/item.cc: new length detection for non-string sql/item.h: new length detection for non-string
-
- 08 Jun, 2004 1 commit
-
-
unknown authored
is broken (prepared statements)": fixed date handling in many places of prepared statements code. libmysql/libmysql.c: Fix for Bug#4026: - now buffer_length is defined for any buffer type. Network buffer preallocation cleaned up. - added constants for maximum buffer sizes necessary for MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME types. - TIME/DATETIME packing/unpacking functions fixed - now result set metadata is always updated from fields sent to COM_EXECUTE. This is necessary to make 'SELECT ?' queries work without conversions. sql/item.cc: - added implementatoin of Item_param::get_date sql/item.h: - added enum_field_types Item_param::param_type. First step for proper handling of placeholders. - added get_date() implementation to prevent date -> string -> date conversions when MYSQL_TYPE_DATE/DATETIME parameter is used in temporal context. sql/protocol.cc: Fix for Bug#4026: - PACKET_BUFFET_EXTRA_ALLOC -> PACKET_BUFFER_EXTRA_ALLOC. The define itself was moved to .cc as it's used only in protocol.cc - fixed Protocol_prep::store_time() call. sql/protocol.h: - PACKET_BUFFER_EXTRA_ALLOC moved to protocol.cc sql/sql_prepare.cc: Fix for Bug#4026: - MYSQL_TYPE_TIME/DATETIME handling fixed. - added initialization for Item_param::param_type in setup_one_conversion_function tests/client_test.c: Test case for Bug#4026
-
- 07 Jun, 2004 1 commit
-
-
unknown authored
mysql-test/r/ps.result: Better error message mysys/my_error.c: Comments added sql/item.cc: Moved a chunk of code from sql_prepare.cc to Item_param::set_from_user_var sql/item.h: Moved a chunk of code from sql_prepare.cc to Item_param::set_from_user_var sql/item_func.cc: Code cleanup sql/mysql_priv.h: Code cleanup sql/sql_class.cc: Code cleanup sql/sql_parse.cc: use user_var_entry::val_str in PREPARE stmt FROM @var. sql/sql_prepare.cc: Post-review fixes and code cleanup. sql/sql_yacc.yy: Coding style fixes
-
- 31 May, 2004 1 commit
-
-
unknown authored
result": new Item_param member for use in val_str() sql/item.cc: Fix for Bug#3796: - return str_value_ptr from val_str to prevent modifications of parameter value. sql/item.h: Fix for bug#3796: - Item::val_str() method semantics documented - new member of Item_param tests/client_test.c: Test case for bug #3796 added. A few compile-time warnings removed.
-
- 24 May, 2004 1 commit
-
-
unknown authored
after Monty's review. - Item_param was rewritten. - it turns out that we can't convert string data to character set of connection on the fly, because they first should be written to the binary log. To support efficient conversion we need to rewrite prepared statements binlogging code first. include/my_global.h: Macro swap(a, b, c) was renamed to resolve name conflict with String::swap() method. include/my_sys.h: Added declaration of escape_string_for_mysql() include/mysql_com.h: Removed and moved back: a macro which is visible to libmysql user but has sence only in prepared statement protocol implementation. isam/_search.c: swap -> swap_variables isam/test2.c: swap -> swap_variables libmysql/libmysql.c: - sub_escape_string moved to mysys/charset.c to be visible in sql/ - few cleanups myisam/mi_test2.c: swap -> swap_variables mysys/charset.c: sub_escape_string was moved from libmysql.c to be able to use it in sql/ code. mysys/my_chsize.c: rename: swap -> swap_variables mysys/my_compress.c: swap -> swap_variables mysys/my_handler.c: swap -> swap_variables sql/field.cc: Field::store_time refactored to use TIME_to_string function from time.cc sql/item.cc: New implementation of Item_param class: added support for character sets conversion. sql/item.h: Item_param: - 'state' member introduced instead of many boolean variables. - put ltime, int_value and real_value into union to save space. - remove unimplemented members - set_value renamed to set_str sql/item_timefunc.cc: Refactored to use functions from time.cc sql/lock.cc: rename: swap -> swap_variables sql/mysql_priv.h: - added declarations for TIME_to_ulonglong_*, TIME_to_string functions - const specifiers for make_date, make_time, make_datetime arguments sql/opt_range.cc: rename: swap -> swap_variables sql/protocol.cc: - added character set conversion support to binary protocol. - Protocol::convert changed to point at shared buffer in THD. This lets us use one convert buffer for binary and simple protocol. The same buffer is used for client->server conversions in prepared statements code. - string conversion code refactored to Protocol::store_string_aux function. - few more comments sql/protocol.h: - Protocol::convert now points at THD::convert_buffer: we want to share one buffer between all protocol implementations. sql/sql_class.cc: - implementation of THD::convert_string using THD::convert_buffer (conversion of strings allocated in the system heap). sql/sql_class.h: - THD::convert_buffer is shared between THD and network Protocols and used for character set conversion of strings. - new function to convert String object from one charset to another using THD::convert_buffer sql/sql_insert.cc: A little fix in a comment. sql/sql_parse.cc: Shrink convert buffer in the end of each statement. sql/sql_prepare.cc: Many changes: - static specifier for set_param_* family of functions. - FIELD_TYPE -> MYSQL_TYPE - added set_param_binary as handler for BLOB types. - added character set support - added support for param typecode in mysql_stmt_get_longdata (mysql_stmt_send_long_data handler) - changes in Item_param deployed - few cleanups sql/sql_select.cc: rename: swap -> swap_variables sql/sql_string.cc: - String::append rewritten to support character set conversion for single-byte encodings. - added String::swap method to efficiently exchange two string objects. sql/sql_string.h: Declraration for String::swap(). sql/time.cc: - function TIME_to_string to convert TIME to String in default MySQL format - family of functions TIME_to_ulonglong_* tests/client_test.c: Test for support for character set conversions in prepared statements (binary and text data).
-
- 21 May, 2004 1 commit
-
-
unknown authored
mysql-test/r/ps.result: Added tests for PREPARE stmt1 FROM @var syntax mysql-test/t/ps.test: Added tests for PREPARE stmt1 FROM @var syntax mysys/my_error.c: Added support for "%.*s" format sql/item.cc: Removed one redundant Item_param::set_value function sql/item.h: Removed one redundant Item_param::set_value function sql/mysqld.cc: Reformmated the code sql/share/czech/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/dutch/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/english/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/estonian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/french/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/german/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/greek/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/hungarian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/italian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/japanese/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/korean/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/norwegian-ny/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/norwegian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/polish/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/portuguese/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/romanian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/russian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/slovak/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/spanish/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/swedish/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/share/ukrainian/errmsg.txt: Changed ER_UNKNOWN_STMT_HANDLER format string sql/sql_class.h: SQL Prepared statements now can't be used by binary protocol commands sql/sql_lex.h: Added support for PREPARE stmt1 FROM @var syntax. sql/sql_parse.cc: Added support for PREPARE stmt1 FROM @var syntax. sql/sql_prepare.cc: Code cleanup sql/sql_yacc.yy: Added support for PREPARE stmt1 FROM @var syntax.
-
- 06 May, 2004 1 commit
-
-
unknown authored
Change strtoll -> my_strtoll10() Fixed bug in my_strntoul() and my_strntol() where we got different values on 32 and 64 bit systems (Bug #3472) configure.in: Fixed problem on IRIX64 (One can't have AC_MSG_RESULT on same row as AC_DEFINE extra/my_print_defaults.c: Fixed wrong definition for 'verbose' include/my_global.h: Portability fix (IRIX64) libmysql/client_settings.h: Remove compiler warnings libmysql/libmysql.c: Remove compiler warnings mysql-test/r/func_str.result: Updated results mysql-test/r/key_cache.result: Updated results to not depend on key_blocks_unused mysql-test/t/func_str.test: More test of long overflow mysql-test/t/key_cache.test: Updated results to not depend on key_blocks_unused sql/item.cc: Portability fix (don't use strtoll()) sql/item.h: Portability fix (don't use strtoll()) sql/item_sum.h: Portability fix (don't use strtoll()) sql/item_timefunc.cc: Fixed compiler warning strings/ctype-simple.c: Fixed bug in my_strntoul() and my_strntol() where we got different values on 32 and 64 bit systems strings/ctype-ucs2.c: Fixed bug in my_strntoul() and my_strntol() where we got different values on 32 and 64 bit systems
-
- 05 May, 2004 1 commit
-
-
unknown authored
Make Item_param::val_int and Item_param::val_str follow the used convention and return 0 if null_value==1. sql/item.h: Added comments about Item::valxx() behavior if Item's value is NULL.
-
- 04 May, 2004 1 commit
-
-
unknown authored
"mysql_send_long_data() API call is completely broken". Now we are resetting some members (long_data_supplied/null_value...) of Item_param to its initial state after each execution of prepared statement. We also manipulating Item_param::maybe_null/null_value only via Item_param::set_* setters which makes code a bit more robust. sql/item.cc: Now we are assuming that Item_param may be NULL until we know this fact exactly. Added non-empty implementation of Item_param::reset() method which should be used for restoring Item_param state after each statment execution. (We need to clear long_data_supplied flag, we also clear some other Item_param members here since it makes code simpler.) sql/item.h: Now Item_param::reset() method really does something. sql/sql_prepare.cc: Now we are calling Item_param::reset() for each parameter after execution for resetting Item_param to initial state. So we no longer don't need Prepared_statement::long_data_flag. We also set Item_param::null_value/maybe_null value in Item_param::set_* and reset() methods instead of doing it explicitly in insert_params_* functions (this by the way lowers probability that we will forget to update one of such functions). tests/client_test.c: Added test for Bug#1664 "mysql_send_long_data() API call is broken".
-
- 28 Apr, 2004 1 commit
-
-
unknown authored
Ensure that raid_chunks is not set to higher than 255 as this could cause problems with DROP DATABASE. (Bug #3182) mysql-test/r/raid.result: Test of raid_chunks > 255 mysql-test/t/raid.test: Test of raid_chunks > 255 sql/item.cc: Fixed wrong usage of str_value in Item::save_in_field This could caused a stack overrun with some very special INSERT ... SELECT ... GROUP BY queries where the GROUP BY value was an expression that generated a NULL value. (Bug #3265) The Item_copy_string::save_in_field() function is from 4.1 and helps optimized this case a bit sql/item.h: Fixed wrong usage of str_value in Item_copy_string::save_in_field sql/sql_insert.cc: More debug information sql/table.cc: Ensure that raid_chunks is not set to higher than 255 as this could cause problems with DROP DATABASE. Another problem with values > 255 is that in the .frm file we store the chunks value in one byte. (Bug #3182)
-
- 11 Apr, 2004 1 commit
-
-
unknown authored
sql/item.cc: Smple optimization
-
- 05 Apr, 2004 1 commit
-
-
unknown authored
SQL Syntax for Prepared Statements (WL#1622) ps.test, ps.result: new file sql/item.cc: SQL Syntax for Prepared Statements (WL#1622) sql/item.h: SQL Syntax for Prepared Statements (WL#1622) sql/lex.h: SQL Syntax for Prepared Statements (WL#1622) sql/mysql_priv.h: SQL Syntax for Prepared Statements (WL#1622) sql/mysqld.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_class.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_class.h: SQL Syntax for Prepared Statements (WL#1622) sql/sql_lex.h: SQL Syntax for Prepared Statements (WL#1622) sql/sql_parse.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_prepare.cc: SQL Syntax for Prepared Statements (WL#1622) sql/sql_yacc.yy: SQL Syntax for Prepared Statements (WL#1622)
-
- 31 Mar, 2004 1 commit
-
-
unknown authored
table resolution". Added members to Item_ident for storing original db, table and field names since those that set later from Field have shorter life-time than required by prep. stmt. So we need to restore original names in Item_ident::cleanup(). Also now using special construnctor for creation of Item_field from Field object that ensures that table and field name have big enough life-time. "Fix" for bug #2050 "10 to 1 performance drop with server 4.1.1" Clean ups in implementation of caching of field number in table. Added caching of table in which field is found in find_field_in_tables(). sql/item.cc: Added members to Item_ident for storing original db, table and field names since those that set later from Field have shorter life-time than required by prep. stmt. So we need to restore original names in Item_ident::cleanup(). Added Item_ident::cached_table for caching table there we found our field. Added special constructor for creation of Item_field from Field object that ensures that table and field name have big enough life-time. sql/item.h: Added members to Item_ident for storing original db, table and field names since those that set later from Field have shorter life-time than required by prep. stmt. So we need to restore original names in Item_ident::cleanup(). Changed type of Item_ident::cached_field_index from int to uint (and so NO_CACHED_FIELD_INDEX is UINT_MAX now) because we want to save one comparison in find_field_in_table(). Added Item_ident::cached_table for caching table there we found our field. Added special constructor for creation of Item_field from Field object that ensures that table and field name have big enough life-time. sql/mysql_priv.h: Changed type of cached_field_index_ptr from int* to uint* (and so NO_CACHED_FIELD_INDEX is UINT_MAX now) because we want to save one comparison in find_field_in_table(). sql/sql_acl.cc: Changed type of find_field_in_table() paremeter to make it faster. sql/sql_base.cc: find_field_in_table(): small optimization and soime clean ups in caching of field index. find_field_in_tables(): added aggresive caching of table in which field is found in Item_ident::cached_table. insert_fields(): using special construnctor for creation of Item_field from Field object that ensures that table and field name have big enough life-time.
-
- 28 Mar, 2004 1 commit
-
-
unknown authored
Actually it is not a bug but right behavior observed as pefomance degradation after we have forced Item_field::fix_fields() to re-execute each time when we are executing prep stmt. This patch implements small optimization which heals this bad behavior. We are caching field position in TABLE::field array in Item's member and are using this position for speeding up field lookups in fix_fields() in case of its re-execution. sql/item.cc: Added cached_field_index member to Item_ident for caching field position in TABLE::field array for quicker field lookup in case fix_fields() is executed twice. sql/item.h: Added cached_field_index member to Item_ident for caching field position in TABLE::field array for quicker field lookup in case fix_fields() is executed twice. sql/mysql_priv.h: Now find_field_in_table has one more in-out parameter which is used for caching field index in TABLE::field array stored for quicker field look up. sql/sql_acl.cc: Now find_field_in_table has one more in-out parameter which is used for caching field index in TABLE::field array stored for quicker field look up. sql/sql_base.cc: Optimization: Now when we are looking up Field by its name we are caching its position in TABLE::field array in Item_ident::cached_field_index, so when we will call fix_fields() second time for this item (e.g. when we are re-executing prep statement) we can reuse this index to speed up this lookup. sql/table.cc: Now we storing in TABLE::name_hash pointers to elements of TABLE::field array, because this allows easily retrieve index of field in this array when it is looked up by its name. sql/table.h: Added comment claryfying what we store in TABLE::name_hash. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
-
- 25 Mar, 2004 1 commit
-
-
unknown authored
include/mysql.h: cleanup of load data infile patch libmysql/libmysql.c: cleanup of load data infile patch myisam/mi_search.c: Added missing assert.h mysql-test/r/func_time.result: Make test more secure mysql-test/t/func_time.test: Make test more secure sql/item.cc: restore to use str_value in item::save_in_field sql/item.h: Simple cleanup sql/item_cmpfunc.cc: Safety fix sql/item_cmpfunc.h: Simple optimization sql/item_func.cc: Updated comment sql/sql_base.cc: Simple optimization sql/sql_select.cc: Simple optimization sql/sql_union.cc: safey fixes
-