macros.
It does not fixes any bugs in 4.0. But it prevents from future error in
any bugfixes that may use these macros. Also after merging into 4.1 tree
this cleanup will fix bug #7884 "Able to add invalid unique index on
TIMESTAMP prefix".
sql/field.h:
Since FIELDFLAG_INTERVAL, FIELDFLAG_BITFIELD, FIELDFLAG_BLOB and
FIELDFLAG_GEOM flags occupy the same space as number of decimals for
FIELDFLAG_NUMBER fields, it is safer to check in "f_is_geom()"-type
macros that we have non-number field, like we already do in f_is_blob()
macro.
not default_charset_into. It fixes the
problem that in some cases numbers where
treated as CHAR(N), not as BINARY(N), e.g.
wrong 'charsetnr' when sent to the client side.
2. IFNULL didn't aggregate argument charsets
and collations, so IFNULL(1,'a') produced
a CHAR(N). Now produces a BINARY(N).
3. SELECT PROCEDURE ANALIZE now returns
BINARY columns, which is much better than it worked
previously: CHAR with the default character set.
But in the future it's worth to fix the fields
'Field_name' and 'Optimal_fieldtype' to use UTF8,
and 'Min_value' and 'Max_value' to inherit their charsets
from the original items. But it is not important,
and BINARY(N) is OK for now.
4. Tests were fixed accordingly. No new tests were
made, as the old onces cover everything.
mysql-test/r/analyse.result:
SELECT PROCEDURE ANALIZE now returns
BINARY columns, which is much better than it worked
previously: CHAR with the default character set.
But in the future it's worth to fix the fields
'Field_name' and 'Optimal_fieldtype' to use UTF8,
and 'Min_value' and 'Max_value' to inherit their charsets
from the original items. But it is not important,
and BINARY(N) is OK for now.
mysql-test/r/case.result:
Test fix according to the changes
mysql-test/r/metadata.result:
Test fix according to the changes
mysql-test/r/ps_1general.result:
Test fix according to the changes
mysql-test/r/ps_2myisam.result:
Test fix according to the changes
mysql-test/r/ps_3innodb.result:
Test fix according to the changes
mysql-test/r/ps_4heap.result:
Test fix according to the changes
mysql-test/r/ps_5merge.result:
Test fix according to the changes
mysql-test/r/ps_6bdb.result:
Test fix according to the changes
mysql-test/r/ps_7ndb.result:
Test fix according to the changes
mysql-test/r/union.result:
Test fix according to the changes
sql/item.cc:
Item is now BINARY by default
sql/item_cmpfunc.cc:
IFNULL now collects arguments collations/charsets
like other functions do.
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
libmysql/libmysql.c:
Auto merged
myisam/mi_open.c:
Auto merged
mysql-test/r/order_by.result:
Auto merged
sql/filesort.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/t/order_by.test:
Merge
sql/sql_lex.cc:
Merge
sql/sql_yacc.yy:
Use local copy
set to a negative value. (Bug #7700)
sql/field_conv.cc:
Don't treat real fields as identical when destination is unsigned and
the source is not.
mysql-test/t/type_float.test:
Add test for setting double unsigned to a negative value from a signed double
mysql-test/r/type_float.result:
Add test results
Working around hang of master < 3.23.50 on SELECT @@unknown_var
(to enable 3.23.49->4.1.10 replication)
sql/slave.cc:
Working around hang of master < 3.23.50 on SELECT @@unknown_var
(to enable 3.23.49->4.1.10 replication)
and the default character set is multi-byte, which will result in character
column size changes. (Bug #6913)
sql/table.cc:
Print a warning when an old table is opened and the
default character set is multi-byte that warns about
character column sizes possibly getting changed
sql_lex.cc:
Set query to not cacheable if we are using multistatements and there are multiple statements in this query
sql/sql_lex.cc:
Set query to not cacheable if we are using multistatements and there are multiple statements in this query
sql/mysqld.cc:
To allow builds without InnoDB ("classic"), the reference to 'innobase_use_checksums' must be guarded by an appropriate '#ifdef' (bug#7961).