Analysis:
The optimizer distinguishes two kinds of 'constant' conditions:
expensive ones, and non-expensive ones. The non-expensive conditions
are evaluated inside make_join_select(), and if false, already the
optimizer detects empty query results.
In order to avoid arbitrarily expensive optimization, the evaluation of
expensive constant conditions is delayed until execution. These conditions
are attached to JOIN::exec_const_cond and evaluated in the beginning of
JOIN::exec. The relevant execution logic is:
JOIN::exec()
{
if (! join->exec_const_cond->val_int())
{
produce an empty result;
stop execution
}
continue execution
execute the original WHERE clause (that contains exec_const_cond)
...
}
As a result, when an expensive constant condition is
TRUE, it is evaluated twice - once through
JOIN::exec_const_cond, and once through JOIN::cond.
When the expensive constant condition is a subquery,
predicate, the subquery is evaluated twice. If we have
many levels of subqueries, this logic results in a chain
of recursive subquery executions that walk a perfect
binary tree. The result is that for subquries with depth N,
JOIN::exec is executed O(2^N) times.
Solution:
Notice that the second execution of the constant conditions
happens inside do_select(), in the branch:
if (join->table_count == join->const_tables) { ... }
In this case exec_const_cond is equivalent to the whole WHERE
clause, therefore the WHERE clause has already been checked in
the beginnig of JOIN::exec, and has been found to be true.
The bug is addressed by not evaluating the WHERE clause if there
was exec_const_conds, and it was TRUE.
sql/sql_insert.cc:
CREATE ... IF NOT EXISTS may do nothing, but
it is still not a failure. don't forget to my_ok it.
******
CREATE ... IF NOT EXISTS may do nothing, but
it is still not a failure. don't forget to my_ok it.
sql/sql_table.cc:
small cleanup
******
small cleanup
warnings after uncompressed_length
UNCOMPRESSED_LENGTH() did not validate its argument. In
particular, if the argument length was less than 4 bytes,
an uninitialized memory value was returned as a result.
Since the result of COMPRESS() is either an empty string or
a 4-byte length prefix followed by compressed data, the bug was
fixed by ensuring that the argument of UNCOMPRESSED_LENGTH() is
either an empty string or contains at least 5 bytes (as done in
UNCOMPRESS()). This is the best we can do to validate input
without decompressing.
mysql-test/r/func_compress.result:
Added a test case for bug #44796.
mysql-test/t/func_compress.test:
Added a test case for bug #44796.
sql/item_strfunc.cc:
Make sure that the argument of UNCOMPRESSED_LENGTH() contains
at least 5 bytes (as done in UNCOMPRESS()).
test case was executed.
mysql-test/r/func_compress.result:
Update test case result.
mysql-test/r/innodb_bug34300.result:
Update test case result.
mysql-test/t/func_compress.test:
Disconnect connection and reset max_allowed_packet to it's
default value.
mysql-test/t/innodb_bug34300.test:
Disconnect connection and reset max_allowed_packet to it's
default value and enable query log.
set but is ignored".
This patch makes @@session.max_allowed_packed and
@@session.net_buffer_length read-only as suggested in the bug
report. The user will have to use SET GLOBAL (and reconnect)
to alter the session values of these variables.
The error string ER_VARIABLE_IS_READONLY is introduced.
Tests are modified accordingly.
sql/set_var.cc:
The class sys_var_thd_ulong_session_readonly is introduced as
a specialization of sys_var_thd_ulong implementing a read-only
session variable. The class overrides check() and
check_default() to achieve the read-only property for the
session part of the variable.
sql/set_var.h:
The class sys_var_thd_ulong_session_readonly is introduced as
a specialization of sys_var_thd_ulong implementing a read-only
session variable. The class overrides check() and
check_default() to achieve the read-only property for the
session part of the variable.
sql/share/errmsg.txt:
New error ER_VARIABLE_IS_READONLY.
We don't set null_value to 0 in the Item_func_compress::val_str() for
not-NULL results.
mysql-test/r/func_compress.result:
Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
- test result.
mysql-test/t/func_compress.test:
Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
- test case.
sql/item_strfunc.cc:
Fix for bug #23254: COMPRESS(NULL) makes all futher COMPRESS() calls on same Item return NULL
- set null_value.
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
BitKeeper/etc/ignore:
auto-union
BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921:
Auto merged
BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56:
Auto merged
BitKeeper/deleted/.del-mysys.dsp~32695fee91189326:
Auto merged
BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833:
Auto merged
BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048:
Auto merged
BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f:
Auto merged
client/mysql.cc:
Auto merged
client/mysqlbinlog.cc:
Auto merged
client/mysqlcheck.c:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
dbug/dbug.c:
Auto merged
extra/perror.c:
Auto merged
extra/yassl/src/yassl_imp.cpp:
Auto merged
extra/yassl/src/yassl_int.cpp:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/libmysql.c:
Auto merged
mysql-test/r/cast.result:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/federated.result:
Auto merged
mysql-test/r/func_compress.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/gis-rtree.result:
Auto merged
mysql-test/r/gis.result:
Auto merged
mysql-test/r/im_daemon_life_cycle.result:
Auto merged
mysql-test/r/im_utils.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/mysqlcheck.result:
Auto merged
mysql-test/r/rpl_sp.result:
Auto merged
mysql-test/r/rpl_trigger.result:
Auto merged
mysql-test/r/sp-code.result:
Auto merged
mysql-test/r/sp-security.result:
Auto merged
mysql-test/r/strict.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/r/type_datetime.result:
Auto merged
mysql-test/r/type_ranges.result:
Auto merged
mysql-test/r/udf.result:
Auto merged
mysql-test/r/user_var.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/func_group.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/im_daemon_life_cycle.imtest:
Auto merged
mysql-test/t/im_life_cycle.imtest:
Auto merged
mysql-test/t/im_utils.imtest:
Auto merged
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/mysqlcheck.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/rpl_trigger.test:
Auto merged
mysql-test/t/sp-security.test:
Auto merged
mysql-test/t/strict.test:
Auto merged
mysql-test/t/udf.test:
Auto merged
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/protocol.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
sql-common/client.c:
Auto merged
sql-common/my_time.c:
Auto merged
sql/table.h:
Auto merged
storage/ndb/src/kernel/error/ndbd_exit_codes.c:
Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
mysql-test/r/im_life_cycle.result:
e
use local
mysql-test/r/ps.result:
use local
client/Makefile.am:
Manual merge.
client/mysqlimport.c:
Manual merge.
configure.in:
Manual merge.
mysql-test/mysql-test-run.pl:
Manual merge.
mysql-test/r/mysqldump.result:
Manual merge.
mysql-test/r/mysqltest.result:
Manual merge.
mysql-test/r/ndb_basic.result:
Manual merge.
mysql-test/r/rpl_view.result:
Manual merge.
mysql-test/r/show_check.result:
Manual merge.
mysql-test/r/sp-error.result:
Manual merge.
mysql-test/r/sp.result:
Manual merge.
mysql-test/r/union.result:
Manual merge.
mysql-test/t/mysqldump.test:
Manual merge.
mysql-test/t/mysqltest.test:
Manual merge.
mysql-test/t/ndb_basic.test:
Manual merge.
mysql-test/t/rpl_sp.test:
Manual merge.
mysql-test/t/rpl_view.test:
Manual merge.
mysql-test/t/show_check.test:
Manual merge.
mysql-test/t/sp-error.test:
Manual merge.
mysql-test/t/sp.test:
Manual merge.
sql/item_sum.cc:
Manual merge.
sql/mysql_priv.h:
Manual merge.
sql/sp_head.cc:
Manual merge.
sql/sql_db.cc:
Manual merge.
sql/sql_delete.cc:
Manual merge.
sql/sql_lex.h:
Manual merge.
sql/sql_show.cc:
Manual merge.
sql/sql_table.cc:
Manual merge.
sql/sql_trigger.cc:
Manual merge.
sql/sql_yacc.yy:
Manual merge.
tests/mysql_client_test.c:
Manual merge.
into sunlight.local:/local_work/tmp_merge-5.1-opt-mysql
mysql-test/r/auto_increment.result:
Auto merged
mysql-test/r/binlog_row_blackhole.result:
Auto merged
mysql-test/r/binlog_stm_blackhole.result:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/func_compress.result:
Auto merged
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_math.result:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/func_system.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/gis.result:
Auto merged
mysql-test/r/group_by.result:
Auto merged
mysql-test/r/group_min_max.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/olap.result:
Auto merged
mysql-test/r/partition_pruning.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/rpl_get_lock.result:
Auto merged
mysql-test/r/rpl_master_pos_wait.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/group_min_max.test:
Auto merged
mysql-test/t/partition_pruning.test:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/table.h:
Auto merged
- Make the range-et-al optimizer produce E(#table records after table
condition is applied),
- Make the join optimizer use this value,
- Add "filtered" column to EXPLAIN EXTENDED to show
fraction of records left after table condition is applied
- Adjust test results, add comments
mysql-test/r/archive_gis.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/auto_increment.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/bdb_gis.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/bench_count_distinct.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/binlog_stm_blackhole.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/case.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/cast.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/compress.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ctype_collate.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ctype_cp1250_ch.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/date_formats.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/distinct.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/fulltext.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_compress.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_crypt.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_default.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_encrypt.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_gconcat.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_group.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_if.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_in.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_like.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_math.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_op.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_regexp.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_set.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_str.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_system.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_test.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_time.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/gis.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/group_by.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/group_min_max.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/having.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/heap.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/heap_hash.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/index_merge.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/index_merge_innodb.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/index_merge_ror.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/innodb_gis.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/insert_update.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/join.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/join_nested.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/key_diff.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/myisam.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ndb_gis.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/negation_elimination.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/null.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/olap.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/partition_pruning.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/query_cache.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/row.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/rpl_get_lock.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/rpl_master_pos_wait.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/select.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ssl.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ssl_compress.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/subselect.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/type_blob.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/union.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/varbinary.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/variables.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/view.result:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/ctype_cp1250_ch.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/func_like.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/group_min_max.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/index_merge_ror.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/index_merge_ror_cpk.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/join.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/partition_pruning.test:
BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
sql/opt_range.cc:
BUG#14940: Make range/index_merge/group-min-max optimizer produce TABLE::quick_condition_rows -
estimate of #records that will match the table condition.
sql/sql_class.cc:
BUG#14940: Add "filtered" column to output of EXPLAIN EXTENDED
sql/sql_select.cc:
BUG#14940:
- Make the join optimizer to use TABLE::quick_condition_rows=
= E(#table records after filtering with table condition)
- Add "filtered" column to output of EXPLAIN EXTENDED
sql/sql_select.h:
BUG#14940: Added comments
sql/table.h:
BUG#14940: Added comments
- Add a check that length of field to uncompress is longer than 4 bytes.
This can be dones as the length of uncompressed data is written as
first four bytes of field and thus it can't be valid compressed data.
mysql-test/r/func_compress.result:
Update test results
sql/item_strfunc.cc:
Is size of field is less than or equal to 4 bytes, indicate data is uncompressable/corrupt.
The UNCOMPRESS() function was not marked as maybe_null, even though
it returns NULL on invalid data. This confused the optimizer.
mysql-test/r/func_compress.result:
Add new results
mysql-test/t/func_compress.test:
Add new regression test
sql/item_strfunc.h:
Set maybe_null within Item_func_uncompress::fix_length_and_dec()
The problem was that we restored SQL_CACHE, SQL_NO_CACHE flags in SELECT
statement from internal structures based on value set later at runtime, not
the original value set by the user.
The solution is to remember that original value.
mysql-test/r/auto_increment.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/func_compress.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/func_math.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/func_system.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/func_time.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/information_schema.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/query_cache.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/rpl_get_lock.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/rpl_master_pos_wait.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/show_check.result:
Add result for bug#17203.
mysql-test/r/subselect.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/type_blob.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/variables.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/r/view.result:
Update result to not report SQL_NO_CACHE if it wasn't there at first place.
mysql-test/t/show_check.test:
Add test case for bug#17203.
sql/sql_lex.cc:
Reset SELECT_LEX::sql_cache together with SELECT_LEX::options.
sql/sql_lex.h:
Add SELECT_LEX::sql_cache field to store original user setting.
sql/sql_select.cc:
Output SQL_CACHE and SQL_NO_CACHE depending on stored original user setting.
sql/sql_yacc.yy:
Make effect of SQL_CACHE and SQL_NO_CACHE mutually exclusive. Ignore
SQL_CACHE if SQL_NO_CACHE was used. Remember what was set by the user.
Reset SELECT_LEX::sql_cache together with SELECT_LEX::options.
mysql-test/r/func_compress.result:
clean-up. The length of compress() may depend on zlib version, etc.
mysql-test/t/func_compress.test:
clean-up. The length of compress() may depend on zlib version, etc.
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)
BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
Added DBUG statements
Added call of my_end() to free all used memory on exit
heap/hp_info.c:
After merge fixes
heap/hp_open.c:
After merge fixes
include/heap.h:
After merge fixes
include/m_ctype.h:
Use pchar instead of 'int' for character parameters.
Added 'my_binary_compare()'
include/m_string.h:
Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
After merge fixes
innobase/srv/srv0start.c:
After merge fixes
mysql-test/r/alter_table.result:
Fixed results after merge
mysql-test/r/auto_increment.result:
Fixed results after merge
mysql-test/r/bdb.result:
Fixed results after merge
mysql-test/r/binary.result:
Fixed results after merge
mysql-test/r/create.result:
Fixed results after merge
mysql-test/r/ctype_mb.result:
Fixed results after merge
mysql-test/r/ctype_tis620.result:
Fixed results after merge
mysql-test/r/ctype_utf8.result:
Fixed results after merge
mysql-test/r/delete.result:
Fixed results after merge
mysql-test/r/func_compress.result:
Fixed results after merge
mysql-test/r/func_gconcat.result:
Fixed results after merge
mysql-test/r/func_group.result:
Fixed results after merge
mysql-test/r/func_str.result:
Fixed results after merge
mysql-test/r/innodb.result:
Fixed results after merge
mysql-test/r/insert.result:
Fixed results after merge
mysql-test/r/insert_select.result:
Fixed results after merge
mysql-test/r/key.result:
Fixed results after merge
mysql-test/r/loaddata.result:
Fixed results after merge
mysql-test/r/lock.result:
Fixed results after merge
mysql-test/r/myisam.result:
Fixed results after merge
mysql-test/r/null.result:
Fixed results after merge
mysql-test/r/null_key.result:
Fixed results after merge
mysql-test/r/order_by.result:
Fixed results after merge
mysql-test/r/query_cache.result:
Fixed results after merge
mysql-test/r/range.result:
Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
Fixed results after merge
mysql-test/r/rpl_until.result:
Fixed results after merge
mysql-test/r/subselect.result:
Fixed results after merge
mysql-test/r/subselect_innodb.result:
Fixed results after merge
mysql-test/r/type_blob.result:
Fixed results after merge
mysql-test/r/type_datetime.result:
Fixed results after merge
mysql-test/r/type_decimal.result:
Fixed results after merge
mysql-test/r/type_enum.result:
Fixed results after merge
mysql-test/r/type_float.result:
Fixed results after merge
mysql-test/r/type_ranges.result:
Fixed results after merge
mysql-test/r/type_time.result:
Fixed results after merge
mysql-test/r/type_timestamp.result:
Fixed results after merge
mysql-test/r/type_uint.result:
Fixed results after merge
mysql-test/r/type_year.result:
Fixed results after merge
mysql-test/r/variables.result:
Fixed results after merge
mysql-test/r/warnings.result:
Fixed results after merge
mysql-test/t/case.test:
Fixed shifted error messages
mysql-test/t/create.test:
Fixed shifted error messages
mysql-test/t/ctype_collate.test:
Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
Fixed shifted error messages
mysql-test/t/derived.test:
Fixed shifted error messages
mysql-test/t/fulltext.test:
Fixed shifted error messages
mysql-test/t/func_in.test:
Fixed shifted error messages
mysql-test/t/func_str.test:
Fixed shifted error messages
mysql-test/t/func_test.test:
Fixed shifted error messages
mysql-test/t/grant.test:
Fixed shifted error messages
mysql-test/t/innodb.test:
Change to 4.1 syntax
mysql-test/t/key_cache.test:
Fixed shifted error messages
mysql-test/t/myisam.test:
New test of blob and end space
mysql-test/t/row.test:
Fixed shifted error messages
mysql-test/t/rpl_until.test:
Fixed shifted error messages
mysql-test/t/subselect.test:
Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
Fix test to take into account foreign key constraints
mysql-test/t/union.test:
Fixed shifted error messages
mysql-test/t/user_var.test:
Fixed shifted error messages
mysql-test/t/variables.test:
Fixed shifted error messages
mysys/my_handler.c:
Merge with 4.0 code
sql/ha_heap.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
After merge fixes
sql/item_cmpfunc.cc:
Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
More DBUG statements
Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
After merge fixes
sql/sql_db.cc:
After merge fixes
sql/sql_handler.cc:
After merge fixes
Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Added function comment for setup_group()
sql/sql_string.cc:
Added stringcmp() for binary comparison.
Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
Added stringcmp()
sql/sql_table.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
sql/sql_yacc.yy:
Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
Strip only end space, not other space characters.
strings/ctype-bin.c:
Removed some not needed functions.
Added function comments
Don't remove end space in comparisons
Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
Strip only end space, not other space characters.
strings/ctype-gbk.c:
Strip only end space, not other space characters.
strings/ctype-latin1.c:
Strip only end space, not other space characters.
strings/ctype-mb.c:
Strip only end space, not other space characters.
strings/ctype-simple.c:
Strip only end space, not other space characters.
strings/ctype-sjis.c:
Strip only end space, not other space characters.
strings/ctype-tis620.c:
Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
Strip only end space, not other space characters.
Fixed indentation
strings/strto.c:
Code cleanup
Deprecate the use of TYPE=... Preferred syntax is ENGINE=
include/mysqld_error.h:
New warning for deprecated syntax
sql/lex.h:
Introduce ENGINE keyword
Sort order of symbols
sql/share/czech/errmsg.txt:
New warning for deprecated syntax
sql/share/danish/errmsg.txt:
New warning for deprecated syntax
sql/share/dutch/errmsg.txt:
New warning for deprecated syntax
sql/share/english/errmsg.txt:
New warning for deprecated syntax
sql/share/estonian/errmsg.txt:
New warning for deprecated syntax
sql/share/french/errmsg.txt:
New warning for deprecated syntax
sql/share/german/errmsg.txt:
New warning for deprecated syntax
sql/share/greek/errmsg.txt:
New warning for deprecated syntax
sql/share/hungarian/errmsg.txt:
New warning for deprecated syntax
sql/share/italian/errmsg.txt:
New warning for deprecated syntax
sql/share/japanese/errmsg.txt:
New warning for deprecated syntax
sql/share/korean/errmsg.txt:
New warning for deprecated syntax
sql/share/norwegian-ny/errmsg.txt:
New warning for deprecated syntax
sql/share/norwegian/errmsg.txt:
New warning for deprecated syntax
sql/share/polish/errmsg.txt:
New warning for deprecated syntax
sql/share/portuguese/errmsg.txt:
New warning for deprecated syntax
sql/share/romanian/errmsg.txt:
New warning for deprecated syntax
sql/share/russian/errmsg.txt:
New warning for deprecated syntax
sql/share/serbian/errmsg.txt:
New warning for deprecated syntax
sql/share/slovak/errmsg.txt:
New warning for deprecated syntax
sql/share/spanish/errmsg.txt:
New warning for deprecated syntax
sql/share/swedish/errmsg.txt:
New warning for deprecated syntax
sql/share/ukrainian/errmsg.txt:
New warning for deprecated syntax
sql/sql_show.cc:
Change TYPE= with ENGINE=
sql/sql_yacc.yy:
Introduce ENGINE keyword,
Deprecate TYPE= syntax,
Introduce SHOW ENGINE syntax,
Deprecate SHOW INNODB/BDB syntax.
mysql-test/r/alias.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/alter_table.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/auto_increment.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb-alter-table-1.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb-crash.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb-deadlock.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/bdb_cache.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/case.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/cast.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/constraints.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/create.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_collate.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_latin1_de.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_many.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_mb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_recoding.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/ctype_ucs.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/delete.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/distinct.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext2.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext_distinct.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/fulltext_left_join.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_compress.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_date_add.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_group.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_if.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_str.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_system.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_test.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/func_time.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/gis-rtree.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/group_by.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/handler.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap_auto_increment.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap_btree.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/heap_hash.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/help.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb-deadlock.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb_cache.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/innodb_handler.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/insert_select.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/isam.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/join.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/join_crash.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/join_outer.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/key.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/lock.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/lock_tables_lost_commit.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/merge.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/mix_innodb_myisam_binlog.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/multi_update.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/myisam.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/null.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/null_key.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/order_by.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/query_cache.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/range.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/repair_part1.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/replace.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rollback.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl000006.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl_flush_tables.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl_insert_id.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/rpl_relayrotate.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/select.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/select_found.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/show_check.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/sql_mode.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/status.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/subselect.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/subselect2.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/subselect_innodb.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/symlink.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/temp_table.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_blob.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_datetime.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_enum.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_nchar.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/type_set.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/union.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/update.result:
Change occurances of TYPE= to ENGINE=
mysql-test/r/warnings.result:
Change occurances of TYPE= to ENGINE=
mysql-test/t/alias.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/alter_table.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/auto_increment.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb-alter-table-1.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb-crash.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb-deadlock.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/bdb_cache.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/create.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/ctype_ucs.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/delete.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/distinct.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext2.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext_distinct.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/fulltext_left_join.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_compress.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_date_add.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_group.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_if.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_str.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_test.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/func_time.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/gis-rtree.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/group_by.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/handler.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap_auto_increment.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap_btree.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/heap_hash.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/help.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb-deadlock.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb_cache.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/innodb_handler.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/insert_select.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/isam.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/join.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/join_crash.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/join_outer.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/key.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/lock.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/lock_tables_lost_commit.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/merge.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/mix_innodb_myisam_binlog.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/multi_update.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/myisam.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/null.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/null_key.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/order_by.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/outfile.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/query_cache.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/query_cache_merge.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/range.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/repair_part1.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/replace.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rollback.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl000006.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl_flush_tables.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl_insert_id.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/rpl_relayrotate.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/select.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/select_found.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/show_check.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/sql_mode.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/status.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/subselect.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/subselect2.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/subselect_innodb.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/symlink.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/temp_table.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/type_datetime.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/type_set.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/union.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/update.test:
Change occurances of TYPE= to ENGINE=
mysql-test/t/warnings.test:
Change occurances of TYPE= to ENGINE=
New test for deprecated syntax
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.
BUILD/compile-pentium-valgrind-max:
Remove double printing of warning
VC++Files/libmysqld/libmysqld.dsp:
Added strfunc.cc
VC++Files/sql/mysqld.dsp:
Added strfunc.cc
VC++Files/sql/mysqldmax.dsp:
Added strfunc.cc
VC++Files/strings/strings.dsp:
added my_strtoll10.c
include/m_ctype.h:
Removed MY_LEX_FOUND_IDENT (not used)
include/m_string.h:
Added my_strtoll10()
include/mysqld_error.h:
simplified 'wrong xxx name' error messages
include/sql_state.h:
simplified 'wrong xxx name' error messages
libmysqld/Makefile.am:
Added strfunc.cc
mysql-test/mysql-test-run.sh:
Simplified some options
changed $@ to "$@" in an attempt to handle options with space (Didn't succeed; Problem will disappear when mysql-test-run is rewritten in C)
mysql-test/r/ctype_latin1_de.result:
Added new tests
mysql-test/r/ctype_recoding.result:
Extended tests
mysql-test/r/date_formats.result:
Cleaned up tests
Disabled some tests that can't yet be run
mysql-test/r/func_compress.result:
New error message
mysql-test/r/rpl_temporary.result:
Added new test
mysql-test/t/create.test:
Changed error numbers
mysql-test/t/ctype_latin1_de.test:
New tests
mysql-test/t/ctype_recoding.test:
Extended tests
mysql-test/t/date_formats-master.opt:
Removed datetime_format as we can't handle options with space in mysql-test-run
mysql-test/t/date_formats.test:
Cleaned up tests
Disabled some tests that can't yet be run
mysql-test/t/rpl_temporary.test:
Added testing of open temporary table on slave shutdown
mysql-test/t/symlink.test:
Fixed error numbers
mysys/default.c:
Fixed core dump when doing --print-defaults
sql/Makefile.am:
Added strfunc.cc
sql/derror.cc:
Fixed compiler warning
sql/field.cc:
Changed argument to str_to_TIME() from bool to uint
Removed THD argument from str_to_TIME()
Moved find_enum() and find_set() to strfunc.cc
sql/field.h:
Changed type of last argument to get_date() to be able to handle more options
sql/init.cc:
Remove not used variable dayord
sql/item.cc:
Changed type of last argument to get_date() to be able to handle more options
Removed THD* element from item.
Don't use make_date_time() to generate date/time/datetimes
sql/item.h:
Changed type of last argument to get_date() to be able to handle more options
Removed THD* from Item
sql/item_create.cc:
Indentation cleanup
sql/item_func.cc:
Use new find_type()
sql/item_func.h:
Changed type of last argument to get_date() to be able to handle more options
sql/item_strfunc.h:
space change
sql/item_timefunc.cc:
Changed month_names[] to be easier to use
Moved check_names[] to strfunc.cc
Added back old make_datetime() function
Optimized extract_date_time()
Use my_strtoll10() insetad of my_strntoll()
Optimized make_date_time()
Replaced short variable names with long ones.
Use new functions make_time(), make_date() and make_datetime()
Dates as strings are now of type my_charset_bin instead of default_charset()
Changed Item_func_str_to_date() to by default return a date.
sql/item_timefunc.h:
Changed charset for date string from default_charset() to my_charset_bin
Changed type of last argument to get_date() to be able to handle more options
Use defines instead of integers for date/time/datetime string lengths
sql/mysql_priv.h:
Fixed/added new prototypes
sql/mysqld.cc:
Removed opt_datetime_format_names
Cleaned up handling of date_time format handling. (Fixed core dump when mysqld had error on startup)
Removed some unnecessary double init of collation variables
sql/protocol.cc:
Changed back protocol functions to always return dates in ISO format
sql/set_var.cc:
Added variables time_format, date_format and datetime_format
This had to be recoded becasue checking was done in 'update' method and not in 'check' method.
sql/set_var.h:
Removed class sys_var_datetime_format() as this defined a variable (which doesn't work) instead of updating a variable
sql/share/czech/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/danish/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/dutch/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/english/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/estonian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/french/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/german/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/greek/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/hungarian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/italian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/japanese/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/korean/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/norwegian-ny/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/norwegian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/polish/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/portuguese/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/romanian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/russian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/serbian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/slovak/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/spanish/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/swedish/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/share/ukrainian/errmsg.txt:
simplified 'wrong xxx name' error messages
sql/sql_base.cc:
Use new find_type()
sql/sql_class.cc:
Allocate/free date_time format variables
sql/sql_class.h:
Define datetime_format variables
sql/sql_db.cc:
Use new ER_WRONG_NAME error
sql/sql_lex.cc:
Change lex to generate IDENT_QUOTED for quoted identifiers or identifers that are using characters > 128.
This enabled us to not have to copy and convert the identifier to utf8 for simpe identifiers
sql/sql_parse.cc:
Use new ER_WRONG_NAME error
Use new find_type() function
sql/sql_prepare.cc:
Use new defines
sql/sql_table.cc:
Use new ER_WRONG_NAME error
sql/sql_yacc.yy:
Don't copy and convert simple identifiers to utf8.
Replace __FORMAT_TYPE defines with TIMESTAMP... defines
sql/structs.h:
Renamed DATETIME_FORMAT to DATE_TIME format to indicate that it's for date/time/datetime formats
Renamed WRONT_TIMESTAMP_FULL to TIMESTAMP_DATETIME_ERROR and TIMESTAMP_FULL to TIMESTAMP_DATETIME
Added KNOWN_DATE_TIME_FORMAT struct for Item_func_get_format
sql/time.cc:
Prepare str_to_TIME and str_to_time() for general date/time handling
Removed THD from str_to... functions
Renamed date/time/datetime functions to use 'date_time' instead of 'datetime'
Added functions to make and copy DATE_TIME_FORMAT's
Added trivial functions 'make_time()', 'make_date()' and 'make_datetime()'
strings/Makefile.am:
Added my_strtoll10()
strings/ctype-bin.c:
Cleared upper part of binary state map to be able to easily identify simple identifiers
strings/my_vsnprintf.c:
F
mysql-test/r/func_compress.result:
Test for the bug #1333: COMPRESS(NULL) segfaults.
mysql-test/t/func_compress.test:
Test for the bug #1333: COMPRESS(NULL) segfaults.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted