correctly.
The Item_func::print method was used to print the Item_func_encode and the
Item_func_decode objects. The last argument to ENCODE and DECODE functions
is a plain C string and thus Item_func::print wasn't able to print it.
The print() method is added to the Item_func_encode class. It correctly
prints the Item_func_encode and the Item_func_decode objects.
mysql-test/t/func_str.test:
Added a test case for bug#23409: Arguments of the ENCODE() and the
> DECODE() functionswere not printed correctly.
mysql-test/r/func_str.result:
Added a test case for bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
sql/item_strfunc.h:
Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
The print() method is added to the Item_func_encode class.
sql/item_strfunc.cc:
Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
The print() method is added to the Item_func_encode class. It correctly
prints the Item_func_encode and the Item_func_decode objects.
WHERE is present.
If a DELETE statement with ORDER BY and LIMIT contains a WHERE clause
with conditions that for sure cannot be used for index access (like in
WHERE @var:= field) the execution always follows the filesort path.
It happens currently even when for the above case there is an index that
can be used to speedup sorting by the order by list.
Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE
clause conditions that cannot be used to build any quick select then
the mysql_delete() tries to use an index like there is no WHERE clause at all.
mysql-test/t/delete.test:
Added a test case for bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting
WHERE is present.
mysql-test/r/delete.result:
Added a test case for bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present.
sql/sql_delete.cc:
Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present.
Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE
clause conditions that cannot be used to build any quick select then
the mysql_delete() tries to use an index like there is no WHERE clause at all.
Reverted change for bug#13859, applied smaller patch from Marko
innobase/buf/buf0buf.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/dict/dict0dict.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/fil/fil0fil.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/ha/ha0ha.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/ha/hash0hash.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/include/hash0hash.h:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/lock/lock0lock.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/log/log0recv.c:
Reverted change for bug#13859, applied smaller patch from Marko
innobase/thr/thr0loc.c:
Reverted change for bug#13859, applied smaller patch from Marko
- When cache memory can't be allocated size is recaclulated using 3/4 of
the requested memory. This number is rounded up to the nearest
min_cache step.
However with the previous implementation the new cache size might
become bigger than requested because of this rounding and thus we get
an infinit loop.
- This patch fixes this problem by ensuring that the new cache size
always will be smaller on the second and subsequent iterations until
we reach min_cache.
mysys/mf_iocache.c:
- Added mask to cachesize to ensure that algorithm always produce a
smaller cache size than current, until we reach 'min_cache' size.
into trift2.:/MySQL/M41/push-4.1
VC++Files/mysql.dsw:
Null-merge: Removal of BerkeleyDB is limited to 4.0
VC++Files/libmysqld/libmysqld.dsp:
Null-merge: Removal of BerkeleyDB is limited to 4.0
VC++Files/mysqldemb/mysqldemb.dsp:
Null-merge: Removal of BerkeleyDB is limited to 4.0
VC++Files/mysqlserver/mysqlserver.dsp:
Null-merge: Removal of BerkeleyDB is limited to 4.0
VC++Files/sql/mysqld.dsp:
Null-merge: Removal of BerkeleyDB is limited to 4.0
VC++Files/sql/mysqldmax.dsp:
Null-merge: Removal of BerkeleyDB is limited to 4.0
into trift2.:/MySQL/M41/push-4.1
mysys/my_read.c:
Auto merged
scripts/make_binary_distribution.sh:
Null merge, because "--platform" is already a real argument in 4.1
support-files/MySQL-shared-compat.spec.sh:
Null merge, because the 4.1 version already uses two digits
for "version40" and "version41".
2nd version
During tmp tables cleanup we get the handler for temporary table
and delete table using handler method.
sql/mysql_priv.h:
added function prototype
sql/mysqld.cc:
added call of mysql_rm_tmp_tables() function
sql/sql_base.cc:
mysql_rm_tmp_tables()
-removed from table_cache_init
-During tmp tables cleanup we get the handler for temporary table
and delete table using handler method.
it allows to remove orphan records from data dictionary(InnoDB)
In the method Item_field::fix_fields we try to resolve the name of
the field against the names of the aliases that occur in the select
list. This is done by a call of the function find_item_in_list.
When this function finds several occurrences of the field name
it sends an error message to the error queue and returns 0.
Yet the code did not take into account that find_item_in_list
could return 0 and tried to dereference the returned value.
mysql-test/r/order_by.result:
Added a test case for bug #25427.
mysql-test/t/order_by.test:
Added a test case for bug #25427.
sql/item.cc:
Fixed bug #25427.
In the method Item_field::fix_fields we try to resolve the name of
the field against the names of the aliases that occur in the select
list. This is done by a call of the function find_item_in_list.
When this function finds several occurrences of the field name
it sends an error message to the error queue and returns 0.
Yet the code did not take into account that find_item_in_list
could return 0 and tried to dereference the returned value.
into moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-bug23443
heap/hp_block.c:
Auto merged
sql/item_func.cc:
Auto merged
heap/hp_write.c:
Manual merge.
server
The problem was that when memory was exhausted HEAP engine could crash
(GROUP BY uses HEAP TABLE). Alternatively, if SET was used, it could
report an error "You may only use constant expressions with SET" instead
of "Out of memory (Needed NNNNNN bytes)".
The solution is:
- pass MY_WME to (some) calls to my_malloc() to get correct message.
- fix heap_write() so that the first key is skipped during cleanup
on ENOMEM because it wasn't inserted and doesn't have to be
deleted.
No test case is provided because we can't test out-of-memory behaviour
in our current test framework.
heap/hp_block.c:
If allocation fails, write an error message.
heap/hp_write.c:
On ENOMEM, skip the first key in cleanup, as it wasn't inserted yet.
sql/item_func.cc:
Add MY_WME so that OOM error will be reported.
- "make_binary_distribution" accepts a dummy "--platform=" argument.
- "MySQL-shared-compat.spec" uses a "version40" define symbol internally.
scripts/make_binary_distribution.sh:
Newer versions of the release build tools call this with a "--platform=" argument
which we seem not to need in 4.0, but which makes the tool crash (happened on SCO).
Rather than add another version check into the build tools, just accept a "--platform="
argument and ignore it, just give a message.
support-files/MySQL-shared-compat.spec.sh:
The current version of "Do-shared-compat" needs two digits to identify the release families
(to differ between 4.0 and 4.1), so the variable "version4" must get renamed to "version40".
Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
correct "libgcc.a" path is returned for the 32/64 bit architecture
scripts/make_binary_distribution.sh:
Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
correct "libgcc.a" path is returned for the 32/64 bit architecture
support-files/mysql.spec.sh:
Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
correct "libgcc.a" path is returned for the 32/64 bit architecture
The function mi_get_pointer_length() computed too small
pointer size for very large tables.
Inserted missing 'else' between the branches for very
large tables.
myisam/mi_create.c:
Bug#24607 - MyISAM pointer size determined incorrectly
Inserted missing 'else' between the branches for very
large tables.
Harmonized literals "(longlong) 1" and "1L" to "ULL(1)"
where they are used for "ulonglong file_length".
mysql-test/r/myisam.result:
Bug#24607 - MyISAM pointer size determined incorrectly
Added the test result.
mysql-test/t/myisam.test:
Bug#24607 - MyISAM pointer size determined incorrectly
Added the test.
libmysqld/lib_sql.cc:
error message moved to 'stmt'
mysql-test/t/distinct.test:
temporary disabled in embedded server
mysql-test/t/mysqladmin.test:
disabled in embedded server
sql/sql_prepare.cc:
superfluous #ifndef removed
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/buf/buf0buf.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/dict/dict0dict.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/fil/fil0fil.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/ha/ha0ha.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/ha/hash0hash.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/include/hash0hash.h:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/lock/lock0lock.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/log/log0recv.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
innobase/thr/thr0loc.c:
Renamed hash_create() not to clash with imap using embedded server (bug#13859)
Portable handling of "echo" without newline (bug#24605)
check-cpu:
In developer script safe to use "printf", not "echo -n"
BUILD/check-cpu:
In developer script safe to use "printf", not "echo -n"
scripts/mysql_secure_installation.sh:
Portable handling of "echo" without newline (bug#24605)