Fixed bugs in group_concat with ORDER BY and DISTINCT (Bugs #2695, #3381 and #3319)
Fixed crash when doing rollback in slave and the io thread catched up with the sql thread
Set locked_in_memory properly
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().
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.
Problem is that Item::save_in_field modifies str_value member
before it calls val_str but Item_copy_string::val_str just returns
this str_value as the result.
I added local String variable to the Item::save_in_field
COM_EXECUTE packet" and #2795 "prepare + execute without bind_param crashes
server" and #2473 "seg fault running tests/client_test.c":
- length checking added to packet parser
- default impelemntation of Item_param::set_param_func will work in
case of malformed packet.
No test cases are possible in our test suite, as there are no tests
operating on protocol layer.
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
added setting of 'neg' in Item_param::set_time() (looks like the only forgotten
member).
It's the second place I find where 'neg' was forgotten.
The symptom was unexpected negative times in the binary log when running
tests/client_test.c (test_date() in fact):
# at 43009
#040210 15:46:42 server id 1 log_pos 43009 Query thread_id=1 exec_time=0 error_code=0
SET TIMESTAMP=1076424402;
INSERT INTO test_date VALUES('2000-01-10 11:16:20','-11:16:20' etc
Cleaned up embedded library access and query cache handling
Changed min stack size to 128K (to allow longer MyISAM keys)
Fixed wrong priority for XOR (should be less than NEG to get -1^1 to work)
Signed auto_increment keys for HASH tables (like for MyISAM tables in 4.0)
nitialize system_charset_info() early. Fixes core dump when starting windows service
Don't dump data for MRG_ISAM or MRG_MYISAM tables. (Bug #1846)
Ensure that 'lower_case_table_names' is always set on case insensitive file systems. (Bug #1812)
One can now configure MySQL as windows service as a normal user. (Bug #1802)
Database names is now compared with lower case in ON clause when lower_case_table_names is set. (Bug #1736)
IGNORE ... LINES option didn't work when used with fixed length rows. (Bug #1704)
Change INSERT DELAYED ... SELECT... to INSERT .... SELECT (Bug #1983)
Safety fix for service 'mysql start' (Bug #1815)
Fixed compiler warnings (a lot of hidden variables detected by the Forte compiler)
Added a lot of 'version_xxx' strings to 'show variables'
Prevent copying of TMP_TABLE_PARAM (This caused core dump bug on Solaris)
Fixed problem with printing sub selects to debug log
We treat Item_param whose value is not set as non-const.
This allows us to avoid use of Item_param's value (not yet existing) in
those fix_fields and fix_length_and_dec that do calculations if their
Items arguments are const. So we can call fix_fields for such items from
mysql_prepare safely.
The right way to fix this is to change the Field::store(longlong) method to be
Field::store(longlong, bool unsigned_flag), but this is better to do in 4.1 than in 4.0
Cleaned up (and disabled part of) date/time/datetime format patch. One can't anymore change default read/write date/time/formats.
This is becasue the non standard datetime formats can't be compared as strings and MySQL does still a lot of datetime comparisons as strings
Changed flag argument to str_to_TIME() and get_date() from bool to uint
Removed THD from str_to_xxxx functions and Item class.
Fixed core dump when doing --print-defaults
Move some common string functions to strfunc.cc
Dates as strings are now of type my_charset_bin instead of default_charset()
Introduce IDENT_QUOTED to not have to create an extra copy of simple identifiers (all chars < 128)
Removed xxx_FORMAT_TYPE enums and replaced them with the old TIMESTAMP_xxx enums
Renamed some TIMESTAMP_xxx enums to more appropriate names
Use defines instead of integers for date/time/datetime string lengths
Added to build system and use the new my_strtoll10() function.
http://bugs.mysql.com/bug.php?id=1022
Description: When a table contains a 'float' field, and one of the functions
MAX, MIN, or AVG is used on that field, the system crashes.
- correct table name shown in EXPLAIN Iindex reference)
- pointer on freed memmory (reallocation of table name in reusing table entry) can't be used in EXPLAIN
(BUG#1584)