Bug#7834 Illegal mix of collations in IN operator
IN was the first function supporting
character set convertion.
agg_arg_charsets() was written afterwards,
which is more flexible.
Now IN just reuses this function.
sql/item_cmpfunc.cc:
Bug#7834 Illegal mix of collations in IN operator
IN was the first function supporting
character set convertion.
agg_arg_charsets() was written afterwards,
which is more flexible.
Now IN just reuses this function.
include/mysql_com.h:
Flag which prevent sending error after EOF or OK sent
mysql-test/r/kill.result:
test of blocking of sending ERROR after OK or EOF
mysql-test/t/kill.test:
test of blocking of sending ERROR after OK or EOF
sql/item_func.cc:
typo fixed
sql/net_serv.cc:
initialization of flag
sql/protocol.cc:
check and set of flag no_send_error
sql/sql_parse.cc:
droping flag no_send_error before new command/query execution
Made user_limits.test scheduling independant (this solves failure on QNX).
Made sys_var_max_user_conn variable int sized. Changed
max_user_connections from ulong to uint to be able to use it in
sys_var_max_user_conn::value_ptr() (solves failures on 64-bit platforms).
mysql-test/r/user_limits.result:
Made test scheduling independant.
mysql-test/t/user_limits.test:
Made test scheduling independant.
sql/mysql_priv.h:
Made max_user_connections to be the same size as
USER_RESOURCES::user_conn (to be able to use them in
sys_var_max_user_conn::value_ptr()).
sql/mysqld.cc:
Made max_user_connections to be the same size as
USER_RESOURCES::user_conn (to be able to use them in
sys_var_max_user_conn::value_ptr()).
sql/set_var.cc:
sys_var::item():
Added support for int system variables.
sql/set_var.h:
Made sys_var_max_user_conn to be int sized variable.
Version for 5.0. Committed for merge.
If the result table is one of the select tables in INSERT SELECT,
we must not disable the result tables indexes before selecting.
Now the preparation is split into two prepare methods.
The first detects the situation and defers some preparations
until the second phase.
mysql-test/r/insert_select.result:
BUG#6034 - Error code 124: Wrong medium type.
The test results.
mysql-test/t/insert_select.test:
BUG#6034 - Error code 124: Wrong medium type.
The test case.
sql/sql_class.h:
BUG#6034 - Error code 124: Wrong medium type.
Added a new method for deferred preparation actions.
sql/sql_insert.cc:
BUG#6034 - Error code 124: Wrong medium type.
If the insert table is one of the select tables, a part
of the result table preparations like disabling indexes
has to be done after the select phase.
This is now done in the new method select_insert::prepare2().
sql/sql_select.cc:
BUG#6034 - Error code 124: Wrong medium type.
The result table preparation is now split into prepare() and
prepare2(). Disabling indexes and other preparation stuff
is deferred until after the selection phase.
Version for 4.1. Committed for merge.
If the result table is one of the select tables in INSERT SELECT,
we must not disable the result tables indexes before selecting.
mysql_execute_command() detects the match for other reasons and
adds the flag OPTION_BUFFER_RESULT to the 'select_options'.
In this case the result is put into a temporary table first.
Hence, we can defer the preparation of the insert
table until the result is to be used.
mysql-test/r/insert_select.result:
BUG#6034 - Error code 124: Wrong medium type.
The test results.
mysql-test/t/insert_select.test:
BUG#6034 - Error code 124: Wrong medium type.
The test case.
sql/sql_select.cc:
BUG#6034 - Error code 124: Wrong medium type.
With OPTION_BUFFER_RESULT in the 'select_options',
defer the preparation of the insert table until the
result is to be used.
Version for 4.0. Committed for merge.
If the result table is one of the select tables in INSERT SELECT,
we must not disable the result tables indexes before selecting.
mysql_execute_command() detects the match for other reasons and
adds the flag OPTION_BUFFER_RESULT to the 'select_options'.
In this case the result is put into a temporary table first.
Hence, we can defer the preparation of the insert
table until the result is to be used.
mysql-test/r/insert_select.result:
BUG#6034 - Error code 124: Wrong medium type.
The test results.
mysql-test/t/insert_select.test:
BUG#6034 - Error code 124: Wrong medium type.
The test case.
sql/sql_select.cc:
BUG#6034 - Error code 124: Wrong medium type.
With OPTION_BUFFER_RESULT in the 'select_options',
defer the preparation of the insert table until the
result is to be used. Unfortunately, this happens
at several places.
into mysql.com:/dbdata/psergey/mysql-5.0-bug7885
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/item_subselect.cc:
Auto merged
into gw.mysql.r18.ru:/usr/home/ram/work/5.0.b6999
mysql-test/r/strict.result:
Auto merged
mysql-test/t/strict.test:
Auto merged
sql/field.cc:
Auto merged
into mysql.com:/home/jonas/src/mysql-5.0-ndb
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/mysqld.cc:
Auto merged
out-of-sync test and result.
mysql-test/r/type_float.result:
Warning message text changed
mysql-test/t/symlink.test:
Re-enable part of test
mysql-test/r/symlink.result:
Update results to match test
mysql-test/r/type_float.result:
Auto merged
mysql-test/t/type_float.test:
Auto merged
sql/field_conv.cc:
Auto merged
sql/table.cc:
Merge warning of multi-byte charset being applied
to table of unknown charset.
mysql-test/r/union.result:
result for a test case for the wrong examined rows with UNION's
mysql-test/t/union.test:
test case for the wrong examined rows with UNION's
sql/sql_union.cc:
a patch for the wrong examined rows with UNION's
mysql-test/r/join_outer.result:
Corrected table names
mysql-test/t/join_outer.test:
Corrected table names
sql/item_cmpfunc.h:
Fix for valgrind failure (unitialized read Item_func_trig_cond->const_item_cache in get_mm_tree):
Since get_mm_tree can be called for an instance of Item_func_trig_cond, make Item_func_trig_cond::const_item() return false.
get_mm_tree will assume Item_func_trig_cond are unknown functions and will not build range access plans for them
mysql-test/r/view.result:
Resolving view fields in subqueries in VIEW
mysql-test/t/view.test:
Resolving view fields in subqueries in VIEW
sql/table.cc:
emulation of main table list by ancestor list added to view preparation routine to allow subqueries resolve item from outer query corectly
into mysql.com:/home/dlenev/src/mysql-5.0-merges
mysql-test/r/alter_table.result:
Auto merged
mysql-test/t/alter_table.test:
Auto merged
sql/field.h:
Auto merged
prefix", which roots were fixed in 4.0 tree.
mysql-test/r/alter_table.result:
Added test for bug #7884 "Able to add invalid unique index on TIMESTAMP
prefix".
mysql-test/t/alter_table.test:
Added test for bug #7884 "Able to add invalid unique index on TIMESTAMP
prefix".
mysql-test/r/subselect.result:
Testcase for BUG#7885
mysql-test/t/subselect.test:
Testcase for BUG#7885
sql/item_subselect.cc:
Fix for BUG#7885: In Item_subselect::fix_fields, return error if engine->prepare fails.
Also removed redundant code line.
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.