--Bug#52157 various crashes and assertions with multi-table update, stored function
--Bug#54475 improper error handling causes cascading crashing failures in innodb/ndb
--Bug#57703 create view cause Assertion failed: 0, file .\item_subselect.cc, line 846
--Bug#57352 valgrind warnings when creating view
--Recently discovered problem when a nested materialized derived table is used
before being populated and it leads to incorrect result
We have several modes when we should disable subquery evaluation.
The reasons for disabling are different. It could be
uselessness of the evaluation as in case of 'CREATE VIEW'
or 'PREPARE stmt', or we should disable subquery evaluation
if tables are not locked yet as it happens in bug#54475, or
too early evaluation of subqueries can lead to wrong result
as it happened in Bug#19077.
Main problem is that if subquery items are treated as const
they are evaluated in ::fix_fields(), ::fix_length_and_dec()
of the parental items as a lot of these methods have
Item::val_...() calls inside.
We have to make subqueries non-const to prevent unnecessary
subquery evaluation. At the moment we have different methods
for this. Here is a list of these modes:
1. PREPARE stmt;
We use UNCACHEABLE_PREPARE flag.
It is set during parsing in sql_parse.cc, mysql_new_select() for
each SELECT_LEX object and cleared at the end of PREPARE in
sql_prepare.cc, init_stmt_after_parse(). If this flag is set
subquery becomes non-const and evaluation does not happen.
2. CREATE|ALTER VIEW, SHOW CREATE VIEW, I_S tables which
process FRM files
We use LEX::view_prepare_mode field. We set it before
view preparation and check this flag in
::fix_fields(), ::fix_length_and_dec().
Some bugs are fixed using this approach,
some are not(Bug#57352, Bug#57703). The problem here is
that we have a lot of ::fix_fields(), ::fix_length_and_dec()
where we use Item::val_...() calls for const items.
3. Derived tables with subquery = wrong result(Bug19077)
The reason of this bug is too early subquery evaluation.
It was fixed by adding Item::with_subselect field
The check of this field in appropriate places prevents
const item evaluation if the item have subquery.
The fix for Bug19077 fixes only the problem with
convert_constant_item() function and does not cover
other places(::fix_fields(), ::fix_length_and_dec() again)
where subqueries could be evaluated.
Example:
CREATE TABLE t1 (i INT, j BIGINT);
INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2);
SELECT * FROM (SELECT MIN(i) FROM t1
WHERE j = SUBSTRING('12', (SELECT * FROM (SELECT MIN(j) FROM t1) t2))) t3;
DROP TABLE t1;
4. Derived tables with subquery where subquery
is evaluated before table locking(Bug#54475, Bug#52157)
Suggested solution is following:
-Introduce new field LEX::context_analysis_only with the following
possible flags:
#define CONTEXT_ANALYSIS_ONLY_PREPARE 1
#define CONTEXT_ANALYSIS_ONLY_VIEW 2
#define CONTEXT_ANALYSIS_ONLY_DERIVED 4
-Set/clean these flags when we perform
context analysis operation
-Item_subselect::const_item() returns
result depending on LEX::context_analysis_only.
If context_analysis_only is set then we return
FALSE that means that subquery is non-const.
As all subquery types are wrapped by Item_subselect
it allow as to make subquery non-const when
it's necessary.
mysql-test/r/derived.result:
test case
mysql-test/r/multi_update.result:
test case
mysql-test/r/view.result:
test case
mysql-test/suite/innodb/r/innodb_multi_update.result:
test case
mysql-test/suite/innodb/t/innodb_multi_update.test:
test case
mysql-test/suite/innodb_plugin/r/innodb_multi_update.result:
test case
mysql-test/suite/innodb_plugin/t/innodb_multi_update.test:
test case
mysql-test/t/derived.test:
test case
mysql-test/t/multi_update.test:
test case
mysql-test/t/view.test:
test case
sql/item.cc:
--removed unnecessary code
sql/item_cmpfunc.cc:
--removed unnecessary checks
--THD::is_context_analysis_only() is replaced with LEX::is_ps_or_view_context_analysis()
sql/item_func.cc:
--refactored context analysis checks
sql/item_row.cc:
--removed unnecessary checks
sql/item_subselect.cc:
--removed unnecessary code
--added DBUG_ASSERT into Item_subselect::exec()
which asserts that subquery execution can not happen
if LEX::context_analysis_only is set, i.e. at context
analysis stage.
--Item_subselect::const_item()
Return FALSE if LEX::context_analysis_only is set.
It prevents subquery evaluation in ::fix_fields &
::fix_length_and_dec at context analysis stage.
sql/item_subselect.h:
--removed unnecessary code
sql/mysql_priv.h:
--Added new set of flags.
sql/sql_class.h:
--removed unnecessary code
sql/sql_derived.cc:
--added LEX::context_analysis_only analysis intialization/cleanup
sql/sql_lex.cc:
--init LEX::context_analysis_only field
sql/sql_lex.h:
--New LEX::context_analysis_only field
sql/sql_parse.cc:
--removed unnecessary code
sql/sql_prepare.cc:
--removed unnecessary code
--added LEX::context_analysis_only analysis intialization/cleanup
sql/sql_select.cc:
--refactored context analysis checks
sql/sql_show.cc:
--added LEX::context_analysis_only analysis intialization/cleanup
sql/sql_view.cc:
--added LEX::context_analysis_only analysis intialization/cleanup
mutually-nested subqueries
Queries of the form
SELECT * FROM (SELECT 1) AS t1,
(SELECT 2) AS t2,...
(SELECT 32) AS t32
caused the "Too high level of nesting for select" error
as if the query has a form
SELECT * FROM (SELECT 1 FROM (SELECT 2 FROM (SELECT 3 FROM...
The table_factor parser rule has been modified to adjust
the LEX::nest_level variable value after every derived table.
mysql-test/r/derived.result:
Added test case for bug #41156.
mysql-test/t/derived.test:
Added test case for bug #41156.
sql/sql_yacc.yy:
Bug #41156: List of derived tables acts like a chain of
mutually-nested subqueries
The select_derived2 parser rule calls mysql_new_select()
calls push_context() and nest_level++, however only
the pop_context() was called at the end of derived table
parsing at the table_factor rule.
The table_factor parser rule has been modified to adjust
the LEX::nest_level variable value after every derived table.
into magare.gmz:/home/kgeorge/mysql/work/B31221-5.1-opt
mysql-test/r/derived.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/type_datetime.result:
Auto merged
mysql-test/t/type_date.test:
Auto merged
BitKeeper/deleted/.del-ps_6bdb.result:
Auto merged
mysql-test/suite/ndb/r/ps_7ndb.result:
Auto merged
sql/field.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/type_date.result:
merge 5.0-opt -> 5.1-opt
No warning was generated when a TIMESTAMP with a non-zero time part
was converted to a DATE value. This caused index lookup to assume
that this is a valid conversion and was returning rows that match
a comparison between a TIMESTAMP value and a DATE keypart.
Fixed by generating a warning on such a truncation.
mysql-test/r/derived.result:
Bug #31221: fixed an existing not-precise test case
mysql-test/r/ps_2myisam.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/ps_3innodb.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/ps_4heap.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/ps_5merge.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/ps_6bdb.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/ps_7ndb.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/type_date.result:
Bug #31221: Warnings cased by existing tests
mysql-test/r/type_datetime.result:
Bug #31221: test case
mysql-test/t/derived.test:
Bug #31221: fixed an existing not-precise test case
mysql-test/t/type_date.test:
Bug #31221: test case
sql/field.cc:
Bug #31221:
- Upgraded fix for bug 29729
- issue a warning only if the hh:mm:ss.msec is not zero consistently
for all the Field_newdate::store function
sql/item_timefunc.cc:
Bug #31221: don't ignore the errors when storing data
- Renamed "Using join cache" to "Using join buffer".
- "Using join buffer" is now printed on the last
table that "reads" from the join buffer cache.
mysql-test/r/archive_gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/compress.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ctype_utf8.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/derived.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/distinct.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/func_group.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/func_group_innodb.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/greedy_optimizer.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/group_by.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/group_min_max.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/index_merge_myisam.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/information_schema.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/innodb_gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/innodb_mysql.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/join.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/join_nested.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/key_diff.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/myisam.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ndb_condition_pushdown.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ndb_gis.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/range.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/row.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/select.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ssl.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/ssl_compress.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/subselect.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/subselect3.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/union.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
mysql-test/r/view.result:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
sql/sql_select.cc:
Bug #27531: renamed "Using join cache" to "Using join buffer"
and moved to the last table in the batch.
- added join cache indication in EXPLAIN (Extra column).
- prefer filesort over full scan over
index for ORDER BY (because it's faster).
- when switching from REF to RANGE because
RANGE uses longer key turn off sort on
the head table only as the resulting
RANGE access is a candidate for join cache
and we don't want to disable it by sorting
on the first table only.
mysql-test/r/archive_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/compress.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ctype_utf8.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/derived.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/distinct.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/func_group.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/func_group_innodb.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/greedy_optimizer.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/group_by.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/group_min_max.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/index_merge_myisam.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/information_schema.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/innodb_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/innodb_mysql.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/join.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/join_nested.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/key_diff.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/myisam.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/ndb_condition_pushdown.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/ndb_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/range.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/row.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/select.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ssl.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ssl_compress.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/subselect.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/subselect3.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/union.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/view.result:
bug #27531: join cache in EXPLAIN
sql/sql_select.cc:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over
index for ORDER BY.
- disable sorting on the first table only
when switching from REF to RANGE.
- Use mysql_system_tables.sql to create MySQL system tables in
all places where we create them(mysql_install_db, mysql-test-run-pl
and mysql_fix_privilege_tables.sql)
BitKeeper/deleted/.del-init_db.sql:
Rename: mysql-test/init_db.sql -> BitKeeper/deleted/.del-init_db.sql
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
Rename: mysql-test/lib/init_db.sql -> BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8
BitKeeper/deleted/.del-mysql_create_system_tables.sh:
Rename: scripts/mysql_create_system_tables.sh -> BitKeeper/deleted/.del-mysql_create_system_tables.sh
BitKeeper/etc/ignore:
Added scripts/mysql_fix_privilege_tables.sql to the ignore list
mysql-test/Makefile.am:
lib/init_db.sql has been removed
mysql-test/mysql-test-run.pl:
- Build var/tmp/bootstrap.sql from mysql_system_tables.sql,
mysql_test_data_timezone.sql and fill_help_tables.sql and use
it when bootsraping the system tables to use during test.
mysql-test/r/create.result:
Update result file
mysql-test/r/derived.result:
Update result file
mysql-test/r/join.result:
Update result file
mysql-test/r/mysql_upgrade.result:
Update result file
mysql-test/r/sp-security.result:
Update result file
mysql-test/t/create.test:
Add user mysqltest_1 before trying to connect as that user - no
anon users by default anymore
mysql-test/t/derived.test:
Add user mysqltest_1 before trying to connect as that user - no
anon users by default anymore
mysql-test/t/grant2.test:
Add anonymous users for part of thes that need it.
mysql-test/t/grant_cache.test:
Add anonymous users for part of thes that need it.
mysql-test/t/init_connect.test:
Add anonymous users for part of thes that need it.
mysql-test/t/lock_multi.test:
Add anonymous users for part of thes that need it.
mysql-test/t/ndb_basic.test:
Connect as "root", blank user will take currently logged in
username
mysql-test/t/ndb_index_ordered.test:
Connect as "root", blank user will take currently logged in
username
mysql-test/t/ndb_multi.test:
Connect as "root", blank user will take currently logged in
username
mysql-test/t/overflow.test:
Connect as root - no anonymous users by default anymore
mysql-test/t/rpl_temporary.test:
Add anonymous users for the test
mysql-test/t/xa.test:
Connect as "root", blank user wil pick currently logged in user
scripts/Makefile.am:
Remove mysql_create_system_tables.sh
Add mysql_system_tables.sql and mysql_test_data_timezone.sql
Build mysql_fix_privilege_tables.sql from mysql_system_tables.sql
and mysql_fix_privilege_tables.sql.in
scripts/mysql_fix_privilege_tables.sh:
Update message describing what the script does
scripts/mysql_fix_privilege_tables.sql.in:
Remove the part that creates system tables as that will be added to
mysql_fix_privileg_tables.sql from mysql_system_tables.sql
Change all comments to use #
scripts/mysql_install_db.sh:
Use mysql_system_tables.sql to create the MySQL system tables
Update comments and indentation
Add more descriptive comments about --windows switch
Reduce number of hardcoded names for the SQL files the script
looks for
mysql-test/include/add_anonymous_users.inc:
New BitKeeper file ``mysql-test/include/add_anonymous_users.inc''
mysql-test/include/delete_anonymous_users.inc:
New BitKeeper file ``mysql-test/include/delete_anonymous_users.inc''
scripts/mysql_system_tables.sql:
New BitKeeper file ``scripts/mysql_system_tables.sql''
scripts/mysql_test_data_timezone.sql:
New BitKeeper file ``scripts/mysql_test_data_timezone.sql''
"real" table fails in JOINs".
This is a regression caused by the fix for Bug 18444.
This fix removed the assignment of empty_c_string to table->db performed
in add_table_to_list, as neither me nor anyone else knew what it was
there for. Now we know it and it's covered with tests: the only case
when a table database name can be empty is when the table is a derived
table. The fix puts the assignment back but makes it a bit more explicit.
Additionally, finally drop sp.result.orig which was checked in by mistake.
BitKeeper/deleted/.del-sp.result.orig:
Delete: mysql-test/r/sp.result.orig
mysql-test/r/derived.result:
Updated result file.
mysql-test/r/sp.result:
Test results fixed (Bug#21002)
mysql-test/t/derived.test:
New error return for the case when MULTI-DELETE tries to delete from
a derived table: now derived tables belong to their own db (""), and
MUTLI-DELETE can't find the correspondent table for it in the
DELETE list, as it can't resolve tables in different dbs by alias
(See Bug#21148 for details)
mysql-test/t/sp.test:
Add a test case for Bug#21002 "Derived table not selecting from a "real"
table fails in JOINs"
sql/sp.cc:
Make empty_c_string globally accessible.
sql/sql_class.cc:
Add empty_c_string definition.
sql/sql_class.h:
Add a comment for the constructor of Table_ident which is
used for derived tables. Make sure this constructor also initializes
the database name, not only the table name.
sql/sql_parse.cc:
Don't call check_db_name for empty database.
Currently the only case when a table database name can be empty
is when the table is a derived table.
Report the right error if the database name is wrong (ER_WRONG_DB_NAME,
not ER_WRONG_TABLE_NAME).
"Process NATURAL and USING joins according to SQL:2003".
* Some of the main problems fixed by the patch:
- in "select *" queries the * expanded correctly according to
ANSI for arbitrary natural/using joins
- natural/using joins are correctly transformed into JOIN ... ON
for any number/nesting of the joins.
- column references are correctly resolved against natural joins
of any nesting and combined with arbitrary other joins.
* This patch also contains a fix for name resolution of items
inside the ON condition of JOIN ... ON - in this case items must
be resolved only against the JOIN operands. To support such
'local' name resolution, the patch introduces a stack of
name resolution contexts used at parse time.
NOTICE:
- This patch is not complete in the sense that
- there are 2 test cases that still do not pass -
one in join.test, one in select.test. Both are marked
with a comment "TODO: WL#2486".
- it does not include a new test specific for the task
mysql-test/include/ps_query.inc:
Adjusted according to standard NATURAL/USING join semantics.,
mysql-test/r/bdb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/derived.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/errors.result:
The column as a whole cannot be resolved, so different error message.
mysql-test/r/fulltext.result:
Adjusted according to standard JOIN ... ON semantics =>
the ON condition can refer only to the join operands.
mysql-test/r/fulltext_order_by.result:
More detailed error message.
mysql-test/r/innodb.result:
Adjusted according to standard NATURAL/USING join semantics.
This test doesn't pass completetly yet!
mysql-test/r/insert_select.result:
More detailed error message.
mysql-test/r/join.result:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one test case that still fails, and it is
commeted out and marked with WL#2486 in the test file.
mysql-test/r/join_crash.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/join_nested.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/join_outer.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/multi_update.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/null_key.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/order_by.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_2myisam.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_3innodb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_4heap.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_5merge.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_6bdb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/ps_7ndb.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/select.result:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one failing test case which is commented with
WL#2486 in the test file.
mysql-test/r/subselect.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/type_ranges.result:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/r/union.result:
More detailed error message.
mysql-test/t/bdb.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/errors.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/fulltext.test:
Adjusted according to standard JOIN ... ON semantics =>
the ON condition can refer only to the join operands.
mysql-test/t/fulltext_order_by.test:
More detailed error message.
mysql-test/t/innodb.test:
Adjusted according to standard NATURAL/USING join semantics.
This test doesn't pass completetly yet!
mysql-test/t/insert_select.test:
More detailed error message.
mysql-test/t/join.test:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one test case that still fails, and it is
commeted out and marked with WL#2486 in the test file.
mysql-test/t/join_crash.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/join_nested.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/join_outer.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/null_key.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/order_by.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/select.test:
Adjusted according to standard NATURAL/USING join semantics.
NOTICE: there is one test case that still fails, and it is
commeted out and marked with WL#2486 in the test file.
mysql-test/t/subselect.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/type_ranges.test:
Adjusted according to standard NATURAL/USING join semantics.
mysql-test/t/union.test:
More detailed error message.
sql/item.cc:
- extra parameter to find_field_in_tables
- find_field_in_real_table renamed to find_field_in_table
- fixed comments/typos
sql/item.h:
- added [first | last]_name_resolution_table to class
Name_resolution_context
- commented old code
- standardized formatting
sql/mysql_priv.h:
- refactored the find_field_in_XXX procedures,
- added a new procedure for natural join table references,
- renamed the find_field_in_XXX procedures to clearer names
sql/sp.cc:
- pass the top-most list of the FROM clause to setup_tables
- extra parameter to find_field_in_tables
sql/sql_acl.cc:
- renamed find_field_in_table => find_field_in_table_ref
- extra parameter to find_field_in_table_ref
- commented old code
sql/sql_base.cc:
This file contains the core of the implementation of the processing
of NATURAL/USING joins (WL#2486).
- added many comments to old code
- refactored the group of find_field_in_XXX procedures, and added a
new procedure for natural joins. There is one find_field_in_XXX procedure
per each type of table reference (stored table, merge view, or natural
join); one meta-procedure that selects the correct one depeneding on the
table reference; and one procedure that goes over a list of table
referenes.
- NATURAL/USING joins are processed through the procedures:
mark_common_columns, store_natural_using_join_columns,
store_top_level_join_columns, setup_natural_join_row_types.
The entry point to processing NATURAL/USING joins is the
procedure 'setup_natural_join_row_types'.
- Replaced the specialized Field_iterator_XXX iterators with one
generic iterator over the fields of a table reference.
- Simplified 'insert_fields' and 'setup_conds' due to encapsulation of
the processing of natural joins in a separate set of procedures.
sql/sql_class.h:
- Commented old code.
sql/sql_delete.cc:
- Pass the FROM clause to setup_tables.
sql/sql_help.cc:
- pass the end name resolution table to find_field_in_tables
- adjust the list of tables for name resolution
sql/sql_insert.cc:
- Changed the code that saves and restores the current context to
support the list of tables for name resolution -
context->first_name_resolution_table, and
table_list->next_name_resolution_table.
Needed to support an ugly trick to resolve inserted columns only in
the first table.
- Added Name_resolution_context::[first | last]_name_resolution_table.
- Commented old code
sql/sql_lex.cc:
- set select_lex.parent_lex correctly
- set correct state of the current name resolution context
sql/sql_lex.h:
- Added a stack of name resolution contexts to support local
contexts for JOIN ... ON conditions.
- Commented old code.
sql/sql_load.cc:
- Pass the FROM clause to setup_tables.
sql/sql_olap.cc:
- Pass the FROM clause to setup_tables.
sql/sql_parse.cc:
- correctly set SELECT_LEX::parent_lex
- set the first table of the current name resoltion context
- added support for NATURAL/USING joins
- commented old code
sql/sql_select.cc:
- Pass the FROM clause to setup_tables.
- Pass the end table to find_field_in_tables
- Improved comments
sql/sql_show.cc:
- Set SELECT_LEX::parent_lex.
sql/sql_update.cc:
- Pass the FROM clause to setup_tables.
sql/sql_yacc.yy:
- Added support for a stack of name resolution contexts needed to
implement name resolution for JOIN ... ON. A context is pushed
for each new JOIN ... ON, and popped afterwards.
- Added support for NATURAL/USING joins.
sql/table.cc:
- Added new class Natural_join_column to hide the heterogeneous
representation of column references for stored tables and for
views.
- Added a new list TABLE_LIST::next_name_resolution_table to
support name resolution with NATURAL/USING joins. Also added
other members to TABLE_LIST to support NATURAL/USING joins.
- Added a generic iterator over the fields of table references
of various types - class Field_iterator_table_ref
sql/table.h:
- Added new class Natural_join_column to hide the heterogeneous
representation of column references for stored tables and for
views.
- Added a new list TABLE_LIST::next_name_resolution_table to
support name resolution with NATURAL/USING joins. Also added
other members to TABLE_LIST to support NATURAL/USING joins.
- Added a generic iterator over the fields of table references
of various types - class Field_iterator_table_ref
tests/mysql_client_test.c:
Adjusted according to standard NATURAL JOIN syntax.
Column names weren't checked for uniqueness for subqueries.
Code for names uniqueness checking used for view creation moved into
separate function named check_duplicate_names(). It's called on
preparation of subqueries to check uniqueness of names. If duplicate names
are found then error is raised.
sql/sql_derived.cc:
Fix bug #11864 non unique names are allowed in subquery
Added check for names uniqueness in select list.
sql/sql_view.cc:
Fix bug #11864 non unique names are allowed in subquery
Code for checking uniqueness of names in item list moved into separate function to make in available for use from other places.
sql/sql_view.h:
Fix bug #11864 non unique names are allowed in subquery
Added check_duplicate_names() function prototype.
mysql-test/t/derived.test:
Fixed test case results after bug fix#11864
Added test case for bug#11864 non unique names are allowed in subquery.
mysql-test/t/select_safe.test:
Fixed test case results after bug fix#11864
mysql-test/r/derived.result:
Added test case for bug #11864 non unique names are allowed in subquery.
Fixed test case results after bug fix#11864
mysql-test/r/select_safe.result:
Fixed test case results after bug fix#11864
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
extra/my_print_defaults.c:
Auto merged
include/m_string.h:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/user_var.result:
Auto merged
mysql-test/t/user_var.test:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
strings/ctype-simple.c:
Auto merged
strings/ctype-ucs2.c:
Auto merged
strings/ctype-utf8.c:
Auto merged
libmysql/libmysql.c:
ul
mysql-test/r/ps_1general.result:
Merge
mysql-test/t/derived.test:
Merge
mysql-test/t/ps_1general.test:
Merge
mysql-test/t/type_float.test:
Merge
sql/field.cc:
ul
sql/item.cc:
ul
sql/item.h:
ul
sql/item_func.h:
ul
sql/item_strfunc.cc:
ul
sql/item_sum.cc:
ul
sql/item_sum.h:
ul
sql/procedure.h:
ul
sql/sql_derived.cc:
Trivial merge
sql/sql_parse.cc:
ul
sql/sql_update.cc:
Trivial merge
strings/strtod.c:
Use updated code from 4.1
This is bascily same code as we had before or 5.0, execpt that we now have higher accuracy for floating points value that are integers (like 123.45E+02)
mysql-test/r/derived.result:
test of union subquery in the FROM clause with complex distinct/all
mysql-test/t/derived.test:
test of union subquery in the FROM clause with complex distinct/all
sql/sql_derived.cc:
removed wrong distinct UNION detection
sql/item.cc:
After merge fixes (bug during merge)
sql/sql_show.cc:
Ensure that lex->all_select_list is properly reset on function end
(Caused crashes after merge)
mysql-test/r/derived.result:
DISTINCT over grouped select on subquery in the FROM clause
mysql-test/t/derived.test:
DISTINCT over grouped select on subquery in the FROM clause
sql/sql_select.cc:
used current join copy for test
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
VC++Files/libmysqld/libmysqld.dsp:
Auto merged
VC++Files/sql/mysqld.dsp:
Auto merged
client/mysql.cc:
Auto merged
client/mysqlbinlog.cc:
Auto merged
client/mysqltest.c:
Auto merged
include/config-netware.h:
Auto merged
include/my_base.h:
Auto merged
include/my_global.h:
Auto merged
include/my_sys.h:
Auto merged
include/mysql_com.h:
Auto merged
include/sql_state.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/row/row0sel.c:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
myisam/mi_check.c:
Auto merged
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/connect.result:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/derived.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_like.result:
Auto merged
mysql-test/r/func_sapdb.result:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/insert.result:
Auto merged
mysql-test/r/insert_select.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/key.result:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/null.result:
Auto merged
mysql-test/r/null_key.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/rpl_rotate_logs.result:
Auto merged
mysql-test/r/rpl_server_id1.result:
Auto merged
mysql-test/r/rpl_until.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/system_mysql_db.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/rpl000015.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
mysys/mf_iocache2.c:
Auto merged
mysys/my_bitmap.c:
Auto merged
mysys/my_pthread.c:
Auto merged
netware/Makefile.am:
Auto merged
netware/my_manage.c:
Auto merged
netware/mysql_test_run.c:
Auto merged
netware/BUILD/compile-linux-tools:
Auto merged
netware/BUILD/compile-netware-standard:
Auto merged
netware/BUILD/mwenv:
Auto merged
netware/BUILD/nwbootstrap:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_berkeley.h:
Auto merged
sql/ha_heap.h:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_create.h:
Auto merged
sql/item_func.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/item_timefunc.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/net_serv.cc:
Auto merged
sql/protocol.cc:
Auto merged
sql/protocol.h:
Auto merged
sql/records.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_acl.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_derived.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_string.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/structs.h:
Auto merged
sql-common/client.c:
Auto merged
configure.in:
Merge with 4.1
include/mysqld_error.h:
New errors from 4.1
libmysqld/Makefile.am:
Merge with 4.1
myisam/myisamchk.c:
Merge with 4.1
myisam/myisamdef.h:
Merge with 4.1
myisam/sort.c:
Merge with 4.1
mysql-test/r/mysqlbinlog.result:
Merge with 4.1
mysql-test/r/range.result:
Merge with 4.1
mysql-test/r/rpl_flush_log_loop.result:
Merge with 4.1
mysql-test/r/rpl_replicate_do.result:
Merge with 4.1
mysql-test/r/rpl_temporary.result:
Merge with 4.1
mysql-test/r/rpl_user_variables.result:
Merge with 4.1
mysql-test/t/func_time.test:
Merge with 4.1
scripts/mysql_create_system_tables.sh:
Merge with 4.1
scripts/mysql_fix_privilege_tables.sql:
Merge with 4.1
sql/Makefile.am:
Merge with 4.1
sql/filesort.cc:
Merge with 4.1
sql/ha_innodb.cc:
Merge with 4.1
sql/ha_innodb.h:
Merge with 4.1
sql/ha_myisam.cc:
Merge with 4.1
sql/handler.cc:
Merge with 4.1
sql/handler.h:
Merge with 4.1
sql/item_func.cc:
Merge with 4.1
sql/item_timefunc.cc:
Merge with 4.1
sql/log.cc:
Merge with 4.1
sql/log_event.cc:
Merge with 4.1
sql/mysqld.cc:
Merge with 4.1
sql/opt_range.cc:
Merge with 4.1
sql/opt_range.h:
Merge with 4.1
sql/share/czech/errmsg.txt:
Merge with 4.1
Updated english error messages
sql/share/danish/errmsg.txt:
Merge with 4.1
sql/share/dutch/errmsg.txt:
Merge with 4.1
sql/share/english/errmsg.txt:
Merge with 4.1
sql/share/estonian/errmsg.txt:
Merge with 4.1
sql/share/french/errmsg.txt:
Merge with 4.1
sql/share/german/errmsg.txt:
Merge with 4.1
sql/share/greek/errmsg.txt:
Merge with 4.1
sql/share/hungarian/errmsg.txt:
Merge with 4.1
sql/share/italian/errmsg.txt:
Merge with 4.1
sql/share/japanese/errmsg.txt:
Merge with 4.1
sql/share/korean/errmsg.txt:
Merge with 4.1
sql/share/norwegian-ny/errmsg.txt:
Merge with 4.1
sql/share/norwegian/errmsg.txt:
Merge with 4.1
sql/share/polish/errmsg.txt:
Merge with 4.1
sql/share/portuguese/errmsg.txt:
Merge with 4.1
sql/share/romanian/errmsg.txt:
Merge with 4.1
sql/share/russian/errmsg.txt:
Merge with 4.1
sql/share/serbian/errmsg.txt:
Merge with 4.1
sql/share/slovak/errmsg.txt:
Merge with 4.1
sql/share/spanish/errmsg.txt:
Merge with 4.1
sql/share/swedish/errmsg.txt:
Merge with 4.1
sql/share/ukrainian/errmsg.txt:
Merge with 4.1
sql/slave.cc:
Merge with 4.1
sql/sql_class.cc:
Merge with 4.1
sql/sql_class.h:
Merge with 4.1
sql/sql_db.cc:
Merge with 4.1
sql/sql_insert.cc:
Merge with 4.1
sql/sql_lex.cc:
Merge with 4.1
sql/sql_lex.h:
Merge with 4.1
sql/sql_parse.cc:
Merge with 4.1 tree
Changed // comments to /* */
sql/sql_prepare.cc:
Merge with 4.1
sql/sql_select.cc:
Merge with 4.1
sql/sql_table.cc:
Merge with 4.1
sql/sql_yacc.yy:
Merge with 4.1
sql/table.h:
Merge with 4.1
tests/client_test.c:
Merge with 4.1
If cost(full_scan_on_shortest_covering_index) < cost(best_range_scan) < cost(full_table_scan)
use full_scan_on_shortest_covering_index
(before this fix best_range_scan was used)
mysql-test/r/derived.result:
explain of hidden subselect changed according to review
mysql-test/r/subselect.result:
explain of hidden subselect changed according to review
mysql-test/r/union.result:
explain of hidden subselect changed according to review
sql/sql_class.h:
we bo not need sign for now
sql/sql_lex.h:
we do not need sign for now
EXPLAIN of hidden SELECT of UNION
mysql-test/r/derived.result:
explain of hidden select
mysql-test/r/subselect.result:
explain of hidden select
mysql-test/r/union.result:
explain of hidden select
correct error messages on explain
mysql-test/t/subselect.test:
show eliminated costants in WHERE clause
mysql-test/t/union.test:
correct error messages on EXPLAIN with union
sql/item.cc:
fixed name constructing for global ORDER BY items
sql/sql_class.h:
select ID can be negative (for hidden SELECTs)
removed unused field
sql/sql_lex.cc:
new flag of UNION EXPLAIN
sql/sql_lex.h:
new flag of UNION EXPLAIN
select ID can be negative (for hidden SELECTs)
sql/sql_select.cc:
EXPLAIN UNION using same routing which used for execution
explain for hidden SELECT of UNION
sql/sql_union.cc:
EXPLAIN UNION using same routing which used for execution
Portability fixes
mysql-test/resolve-stack:
Turn off EOLN_NATIVE flag
mysql-test/t/ansi.test:
Turn off EOLN_NATIVE flag
mysql-test/t/backup-master.sh:
Turn off EOLN_NATIVE flag
mysql-test/t/bdb-alter-table-2-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/bdb-deadlock.test:
Turn off EOLN_NATIVE flag
mysql-test/t/bdb_cache-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/bdb_cache.test:
Turn off EOLN_NATIVE flag
mysql-test/t/bool.test:
Turn off EOLN_NATIVE flag
mysql-test/t/cast.test:
Turn off EOLN_NATIVE flag
mysql-test/t/connect.test:
Turn off EOLN_NATIVE flag
mysql-test/t/constraints.test:
Turn off EOLN_NATIVE flag
mysql-test/t/count_distinct3.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_big5.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_collate.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_cp1251-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_cp1251.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_create.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_latin1_de-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_latin1_de.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_many.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_mb.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_recoding.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_tis620-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_tis620.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_ucs.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_ujis.test:
Turn off EOLN_NATIVE flag
mysql-test/t/ctype_utf8.test:
Turn off EOLN_NATIVE flag
mysql-test/t/date_formats-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/date_formats.test:
Turn off EOLN_NATIVE flag
mysql-test/t/drop_temp_table.test:
Turn off EOLN_NATIVE flag
mysql-test/t/fulltext2.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_compress.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_concat.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_default.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_encrypt-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/func_gconcat.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_if.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_isnull.test:
Turn off EOLN_NATIVE flag
mysql-test/t/func_sapdb.test:
Turn off EOLN_NATIVE flag
mysql-test/t/gcc296.test:
Turn off EOLN_NATIVE flag
mysql-test/t/gis-rtree.test:
Turn off EOLN_NATIVE flag
mysql-test/t/gis.test:
Turn off EOLN_NATIVE flag
mysql-test/t/grant.test:
Turn off EOLN_NATIVE flag
mysql-test/t/grant2.test:
Turn off EOLN_NATIVE flag
mysql-test/t/grant_cache-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/grant_cache.test:
Turn off EOLN_NATIVE flag
mysql-test/t/heap_auto_increment.test:
Turn off EOLN_NATIVE flag
mysql-test/t/heap_btree.test:
Turn off EOLN_NATIVE flag
mysql-test/t/heap_hash.test:
Turn off EOLN_NATIVE flag
mysql-test/t/help.test:
Turn off EOLN_NATIVE flag
mysql-test/t/init_connect-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/init_connect.test:
Turn off EOLN_NATIVE flag
mysql-test/t/init_file-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/init_file.test:
Turn off EOLN_NATIVE flag
mysql-test/t/innodb-deadlock.test:
Turn off EOLN_NATIVE flag
mysql-test/t/innodb_cache-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/innodb_cache.test:
Turn off EOLN_NATIVE flag
mysql-test/t/innodb_handler.test:
Turn off EOLN_NATIVE flag
mysql-test/t/insert_update.test:
Turn off EOLN_NATIVE flag
mysql-test/t/isam.test:
Turn off EOLN_NATIVE flag
mysql-test/t/key_cache-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/key_cache.test:
Turn off EOLN_NATIVE flag
mysql-test/t/loaddata.test:
Turn off EOLN_NATIVE flag
mysql-test/t/lock_multi.test:
Turn off EOLN_NATIVE flag
mysql-test/t/lock_tables_lost_commit-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/lock_tables_lost_commit.test:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table.test:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table2.test:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table3-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table3.test:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table_qcache-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/lowercase_table_qcache.test:
Turn off EOLN_NATIVE flag
mysql-test/t/mix_innodb_myisam_binlog.test:
Turn off EOLN_NATIVE flag
mysql-test/t/multi_statement.test:
Turn off EOLN_NATIVE flag
mysql-test/t/multi_update-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/myisam-blob-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/myisam-blob.test:
Turn off EOLN_NATIVE flag
mysql-test/t/mysqlbinlog-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/mysqlbinlog.test:
Turn off EOLN_NATIVE flag
mysql-test/t/mysqldump.test:
Turn off EOLN_NATIVE flag
mysql-test/t/negation_elimination.test:
Turn off EOLN_NATIVE flag
mysql-test/t/packet.test:
Turn off EOLN_NATIVE flag
mysql-test/t/preload.test:
Turn off EOLN_NATIVE flag
mysql-test/t/query_cache.test:
Turn off EOLN_NATIVE flag
mysql-test/t/query_cache_merge.test:
Turn off EOLN_NATIVE flag
mysql-test/t/repair_part1.test:
Turn off EOLN_NATIVE flag
mysql-test/t/repair_part2-master.sh:
Turn off EOLN_NATIVE flag
mysql-test/t/repair_part2.test:
Turn off EOLN_NATIVE flag
mysql-test/t/row.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl000001-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_EE_error.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_alter.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_chain_temp_table.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_change_master.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_do_grant.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_empty_master_crash.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_error_ignored_table-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_error_ignored_table.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_failsafe.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_flush_log_loop-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_flush_log_loop-master.sh:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_flush_log_loop-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_flush_log_loop-slave.sh:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_flush_log_loop.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_flush_tables.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_get_lock.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_heap.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_ignore_grant-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_ignore_grant.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_init_slave-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_init_slave.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_insert_id-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_insert_id.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_loaddata.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_loaddata_rule_m-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_loaddata_rule_m.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_loaddata_rule_s-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_loaddata_rule_s.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_loaddatalocal.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_log-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_log-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_master_pos_wait.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_max_relay_size.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_misc_functions-slave.sh:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_misc_functions.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_multi_delete-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_multi_delete.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_multi_update.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_openssl.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_optimize.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_relayrotate-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_relayrotate.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_relayspace-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_relayspace.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_reset_slave.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_skip_error-slave.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_skip_error.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_temporary.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_trunc_binlog.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_until.test:
Turn off EOLN_NATIVE flag
mysql-test/t/rpl_user_variables.test:
Turn off EOLN_NATIVE flag
mysql-test/t/sql_mode.test:
Turn off EOLN_NATIVE flag
mysql-test/t/subselect.test:
Turn off EOLN_NATIVE flag
mysql-test/t/subselect2.test:
Turn off EOLN_NATIVE flag
mysql-test/t/subselect_innodb.test:
Turn off EOLN_NATIVE flag
mysql-test/t/system_mysql_db.test:
Turn off EOLN_NATIVE flag
mysql-test/t/system_mysql_db_fix-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/system_mysql_db_fix.test:
Turn off EOLN_NATIVE flag
mysql-test/t/system_mysql_db_refs.test:
Turn off EOLN_NATIVE flag
mysql-test/t/timezone-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/timezone.test:
Turn off EOLN_NATIVE flag
mysql-test/t/type_nchar.test:
Turn off EOLN_NATIVE flag
mysql-test/t/type_set.test:
Turn off EOLN_NATIVE flag
mysql-test/t/union-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/variables-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/t/warnings-master.opt:
Turn off EOLN_NATIVE flag
mysql-test/r/ansi.result:
Turn off EOLN_NATIVE flag
mysql-test/r/bdb-deadlock.result:
Turn off EOLN_NATIVE flag
mysql-test/r/bdb_cache.result:
Turn off EOLN_NATIVE flag
mysql-test/r/bool.result:
Turn off EOLN_NATIVE flag
mysql-test/r/cast.result:
Turn off EOLN_NATIVE flag
mysql-test/r/check_var_limit.require:
Turn off EOLN_NATIVE flag
mysql-test/r/connect.result:
Turn off EOLN_NATIVE flag
mysql-test/r/constraints.result:
Turn off EOLN_NATIVE flag
mysql-test/r/count_distinct3.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_big5.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_collate.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_cp1251.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_create.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_latin1_de.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_mb.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_recoding.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_tis620.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_ucs.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_ujis.result:
Turn off EOLN_NATIVE flag
mysql-test/r/ctype_utf8.result:
Turn off EOLN_NATIVE flag
mysql-test/r/date_formats.result:
Turn off EOLN_NATIVE flag
mysql-test/r/delete.result:
Turn off EOLN_NATIVE flag
mysql-test/r/drop_temp_table.result:
Turn off EOLN_NATIVE flag
mysql-test/r/errors.result:
Turn off EOLN_NATIVE flag
mysql-test/r/foreign_key.result:
Turn off EOLN_NATIVE flag
mysql-test/r/fulltext2.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_compress.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_concat.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_default.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_gconcat.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_if.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_isnull.result:
Turn off EOLN_NATIVE flag
mysql-test/r/func_sapdb.result:
Turn off EOLN_NATIVE flag
mysql-test/r/gcc296.result:
Turn off EOLN_NATIVE flag
mysql-test/r/gis-rtree.result:
Turn off EOLN_NATIVE flag
mysql-test/r/gis.result:
Turn off EOLN_NATIVE flag
mysql-test/r/grant.result:
Turn off EOLN_NATIVE flag
mysql-test/r/grant2.result:
Turn off EOLN_NATIVE flag
mysql-test/r/grant_cache.result:
Turn off EOLN_NATIVE flag
mysql-test/r/have_big5.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_compress.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_crypt.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_met_timezone.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_query_cache.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_tis620.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_ucs2.require:
Turn off EOLN_NATIVE flag
mysql-test/r/have_ujis.require:
Turn off EOLN_NATIVE flag
mysql-test/r/heap_auto_increment.result:
Turn off EOLN_NATIVE flag
mysql-test/r/heap_btree.result:
Turn off EOLN_NATIVE flag
mysql-test/r/heap_hash.result:
Turn off EOLN_NATIVE flag
mysql-test/r/help.result:
Turn off EOLN_NATIVE flag
mysql-test/r/init_connect.result:
Turn off EOLN_NATIVE flag
mysql-test/r/innodb-deadlock.result:
Turn off EOLN_NATIVE flag
mysql-test/r/innodb_cache.result:
Turn off EOLN_NATIVE flag
mysql-test/r/innodb_handler.result:
Turn off EOLN_NATIVE flag
mysql-test/r/insert_update.result:
Turn off EOLN_NATIVE flag
mysql-test/r/isam.result:
Turn off EOLN_NATIVE flag
mysql-test/r/key_cache.result:
Turn off EOLN_NATIVE flag
mysql-test/r/loaddata.result:
Turn off EOLN_NATIVE flag
mysql-test/r/lock_multi.result:
Turn off EOLN_NATIVE flag
mysql-test/r/lock_tables_lost_commit.result:
Turn off EOLN_NATIVE flag
mysql-test/r/lowercase0.require:
Turn off EOLN_NATIVE flag
mysql-test/r/lowercase2.require:
Turn off EOLN_NATIVE flag
mysql-test/r/lowercase_table.result:
Turn off EOLN_NATIVE flag
mysql-test/r/lowercase_table2.result:
Turn off EOLN_NATIVE flag
mysql-test/r/lowercase_table3.result:
Turn off EOLN_NATIVE flag
mysql-test/r/lowercase_table_qcache.result:
Turn off EOLN_NATIVE flag
mysql-test/r/mix_innodb_myisam_binlog.result:
Turn off EOLN_NATIVE flag
mysql-test/r/multi_statement.result:
Turn off EOLN_NATIVE flag
mysql-test/r/myisam-blob.result:
Turn off EOLN_NATIVE flag
mysql-test/r/mysqlbinlog.result:
Turn off EOLN_NATIVE flag
mysql-test/r/mysqldump.result:
Turn off EOLN_NATIVE flag
mysql-test/r/negation_elimination.result:
Turn off EOLN_NATIVE flag
mysql-test/r/not_embedded.require:
Turn off EOLN_NATIVE flag
mysql-test/r/overflow.result:
Turn off EOLN_NATIVE flag
mysql-test/r/packet.result:
Turn off EOLN_NATIVE flag
mysql-test/r/preload.result:
Turn off EOLN_NATIVE flag
mysql-test/r/query_cache.result:
Turn off EOLN_NATIVE flag
mysql-test/r/query_cache_merge.result:
Turn off EOLN_NATIVE flag
mysql-test/r/repair_part1.result:
Turn off EOLN_NATIVE flag
mysql-test/r/repair_part2.result:
Turn off EOLN_NATIVE flag
mysql-test/r/row.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_EE_error.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_alter.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_chain_temp_table.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_change_master.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_do_grant.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_empty_master_crash.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_error_ignored_table.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_failsafe.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_flush_log_loop.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_flush_tables.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_get_lock.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_heap.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_ignore_grant.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_init_slave.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_insert_id.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_loaddata.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_loaddata_rule_m.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_loaddata_rule_s.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_loaddatalocal.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_master_pos_wait.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_max_relay_size.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_misc_functions.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_multi_delete.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_multi_update.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_openssl.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_optimize.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_relayrotate.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_relayspace.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_reset_slave.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_skip_error.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_temporary.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_trunc_binlog.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_until.result:
Turn off EOLN_NATIVE flag
mysql-test/r/rpl_user_variables.result:
Turn off EOLN_NATIVE flag
mysql-test/r/sql_mode.result:
Turn off EOLN_NATIVE flag
mysql-test/r/subselect.result:
Turn off EOLN_NATIVE flag
mysql-test/r/subselect2.result:
Turn off EOLN_NATIVE flag
mysql-test/r/subselect_innodb.result:
Turn off EOLN_NATIVE flag
mysql-test/r/system_mysql_db.result:
Turn off EOLN_NATIVE flag
mysql-test/r/system_mysql_db_refs.result:
Turn off EOLN_NATIVE flag
mysql-test/r/timezone.result:
Turn off EOLN_NATIVE flag
mysql-test/r/true.require:
Turn off EOLN_NATIVE flag
mysql-test/r/type_nchar.result:
Turn off EOLN_NATIVE flag
mysql-test/r/type_set.result:
Turn off EOLN_NATIVE flag
mysql-test/r/warnings.result:
Turn off EOLN_NATIVE flag
BitKeeper/etc/config:
Ensure that we use unix file format (no \r\n) for all new files
client/mysqltest.c:
Fix for previous push (long delimiters)
mysql-test/r/derived.result:
Fixed results
mysql-test/r/rpl000009.result:
Fixed results
mysql-test/t/derived.test:
Make test portable (for lower_case_table_names=2)
mysql-test/t/rpl000009.test:
After merge fix
into sanja.is.com.ua:/home/bell/mysql/bk/work-derived2-4.1
mysql-test/r/derived.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/r/derived.result:
test of error handling in derived tables with UPDATE & DELETE
mysql-test/t/derived.test:
test of error handling in derived tables with UPDATE & DELETE
sql/mysql_priv.h:
opened tables counter added to avoid loop of tables calculating in lock_tables
sql/sql_acl.cc:
opened tables counter added to avoid loop of tables calculating in lock_tables, here it is just for compatibility
sql/sql_base.cc:
removed unneeded assignment
opened tables counter added to avoid loop of tables calculating in lock_tables
commentary fixed
sql/sql_derived.cc:
mysql_derived made static
variable res moved in place where it used
priveleges written in correct place
sql/sql_handler.cc:
opened tables counter added to avoid loop of tables calculating in lock_tables
sql/sql_parse.cc:
mistyping in commentary fixed
Fixed output from mysqlbinlog when using --skip-comments
Fixed warnings from valgrind
Fixed ref_length when used with HEAP tables
More efficent need_conversion()
Fixed error handling in UPDATE with not updateable tables
Fixed bug in null handling in CAST to signed/unsigned
client/client_priv.h:
cleanup & added OPT_COMPACT
client/mysqldump.c:
Added option --compact to get a compact readable dump.
Ensure that SET CHARACTER_SET_CLIENT is not done if we have not remembered the old character set
Print optimization comments even if --skip-comments are given as these are not true comments. (Before these where only printed at end, which was a bug)
mysql-test/r/cast.result:
More cast tests
mysql-test/r/derived.result:
Removed warnings
mysql-test/r/mysqldump.result:
Update results after fixing mysqlbinlog
mysql-test/r/query_cache.result:
Make test usable with --extern
more tests
mysql-test/r/rpl_until.result:
Make test repeatable under valgrind
mysql-test/r/sql_mode.result:
Fix test result
mysql-test/r/subselect.result:
Make test smaller. Update wrong results
mysql-test/t/cast.test:
More cast tests
mysql-test/t/derived.test:
Removed warnings
mysql-test/t/query_cache.test:
Make test usable with --extern
more tests
mysql-test/t/rpl_until.test:
fix for valgrind. Becasue of unknown reason one got 'Slave_SQL_Running=yes' in this setup
mysql-test/t/subselect.test:
Make test case smaller
sql/field.cc:
Updated need_conversion() to use new arguments
sql/ha_heap.cc:
Moved initialization of ref_length to right place. This fixed problem that we had a ref_length of 8 for heap tables, which was not efficent.
sql/item_func.cc:
Cleanup
sql/item_func.h:
Fixed bug in null_handling for cast to signed/unsigned
sql/item_strfunc.cc:
Optimized/cleaned up Item_func_conv_charset3
sql/item_sum.cc:
Cleanup.
Ensure that some flag variables are cleared in cleanup()
sql/item_sum.h:
Fixed references to uninitialized memory
sql/opt_range.cc:
Fixed spelling error
sql/sql_class.cc:
Fixed wrong return code, which could case protocol problems
sql/sql_class.h:
After merge fix
sql/sql_prepare.cc:
Added comments
sql/sql_show.cc:
Cleanup
sql/sql_string.cc:
Optimzed usage of need_conversion().
- Removed not used argument
- Save diff lenght in 'offset' to not have to recalculate length several times.
Cleaned up comment
Optimized copy_aligned() based on the knowledge that it's only called when you have wrong data
sql/sql_string.h:
Updated need_conversion() and copy_aligned() to use new arguments
sql/sql_update.cc:
Fixed error handling with non-updateable tables
sql/sql_yacc.yy:
Ensure that lex->lock_options are set correctly (to get rid of warnings from valgrind)
Ensure that cast_type sets lex->charset and lex->length. Without these CONVERT() didn't work properly
(BUG#2120 sfter merge)
mysql-test/r/derived.result:
correct results of derived tble EXPLAIN
test of "Using Index" with derived tables
mysql-test/t/derived.test:
test of "Using Index" with derived tables
sql/mysql_priv.h:
way to force derived table save JOIN after execution
sql/sql_derived.cc:
way to force derived table save JOIN after execution
sql/sql_lex.h:
way to force derived table save JOIN after execution
sql/sql_select.cc:
make JOIN::prepare, JOIN::optimize only once for EXPLAIN of derived table
fixed BUG#2120 and other problem with EXPLAINing derived tables
mysql-test/r/derived.result:
correct tables names & Co in derived tables
test case for BUG#2120
mysql-test/t/derived.test:
test case for BUG#2120
sql/mysql_priv.h:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/repl_failsafe.cc:
correct initialization of TABLE_LIST
sql/sql_acl.cc:
used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
sql/sql_base.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/sql_delete.cc:
all tables processing is done during opening
sql/sql_derived.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables) to sutisfy "all query tables locking" at the moment
sql/sql_insert.cc:
all tables processing is done during opening
correct initialization of TABLE_LIST
sql/sql_lex.cc:
now table list will be created for whole query
layout fix
correct check of updated table in subqueries
sql/sql_lex.h:
now table list will be created for whole query
correct check of updated table in subqueries
sql/sql_olap.cc:
THIS FUNCTION IS USED NOWHERE
it will be good to remove it at all (handle_olaps)
sql/sql_parse.cc:
derived tables processing moved after open/locking all tables (in open_and_lock_tables)
sql/sql_prepare.cc:
new creating list parameters
all tables processing is done during opening
sql/sql_select.cc:
all tables processing is done during opening
sql/sql_select.h:
now it used only within file where is defined
sql/sql_udf.cc:
used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
sql/sql_update.cc:
all tables processing is done during opening
sql/sql_parse.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/derived.result:
SCCS merged
mysql-test/t/derived.test:
e
merge
moved LIMIT initialialization, because it is need only for single select derived table
mysql-test/r/derived.result:
test suite for BUG#2349
mysql-test/t/derived.test:
test suite for BUG#2349
sql/sql_derived.cc:
assigned correct lex->current_select (BUG#2349)
moved LIMIT initialialization, because it is need only for single select
allow delete table by alias in multi-delete statement
include/mysqld_error.h:
new error message about non-updateable table
mysql-test/r/derived.result:
test of multi-update and multi-delete
mysql-test/t/derived.test:
test of multi-update and multi-delete
sql/share/czech/errmsg.txt:
new error message about non-updateable table
sql/share/danish/errmsg.txt:
new error message about non-updateable table
sql/share/dutch/errmsg.txt:
new error message about non-updateable table
sql/share/english/errmsg.txt:
new error message about non-updateable table
sql/share/estonian/errmsg.txt:
new error message about non-updateable table
sql/share/french/errmsg.txt:
new error message about non-updateable table
sql/share/german/errmsg.txt:
new error message about non-updateable table
sql/share/greek/errmsg.txt:
new error message about non-updateable table
sql/share/hungarian/errmsg.txt:
new error message about non-updateable table
sql/share/italian/errmsg.txt:
new error message about non-updateable table
sql/share/japanese/errmsg.txt:
new error message about non-updateable table
sql/share/korean/errmsg.txt:
new error message about non-updateable table
sql/share/norwegian-ny/errmsg.txt:
new error message about non-updateable table
sql/share/norwegian/errmsg.txt:
new error message about non-updateable table
sql/share/polish/errmsg.txt:
new error message about non-updateable table
sql/share/portuguese/errmsg.txt:
new error message about non-updateable table
sql/share/romanian/errmsg.txt:
new error message about non-updateable table
sql/share/russian/errmsg.txt:
new error message about non-updateable table
sql/share/serbian/errmsg.txt:
new error message about non-updateable table
sql/share/slovak/errmsg.txt:
new error message about non-updateable table
sql/share/spanish/errmsg.txt:
new error message about non-updateable table
sql/share/swedish/errmsg.txt:
new error message about non-updateable table
sql/share/ukrainian/errmsg.txt:
new error message about non-updateable table
sql/sql_parse.cc:
allow delete table by alias
separate error message for try to delete derived table
sql/sql_update.cc:
test "is updated table derived?"
sql/sql_yacc.yy:
error message in case of try to update derived table
into deer.(none):/home/hf/work/mysql-4.1.1727
mysql-test/r/derived.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
sql/sql_lex.cc:
Auto merged
New multi-key-cache handling. This was needed becasue the old one didn't work reliable with MERGE tables.
ALTER TABLE table_name ... CHARACTER SET ... now changes all char/varchar/text columns to the given character set
(One must use ALTER TABLE ... DEFAULT CHARACTER SET ... to change the default character set)
Fixed that have_compress is detected properly (fixes problems with func_compress.test on platforms without zlib)
New syntax for CACHE INDEX ('keys' is optional if no index name is given and one mentions the key cache name only ones)
Removed compiler warnings
Added mysql_set_server_option() to allow clients like PHP to easaily set/reset the multi-statement flag.
BUILD/compile-pentium-valgrind-max:
Add test of isam
client/mysql.cc:
CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
include/my_base.h:
Remove HA_EXTRA_SET_KEY_CACHE
include/my_no_pthread.h:
Add defines to ignore rw-locks when running without threads
include/my_sys.h:
Added function for multi-key-caches
include/myisam.h:
Added function to handle multi-key-caches
include/mysql.h:
Added mysql_set_server_option
include/mysql_com.h:
CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
Added enum_mysql_set_option
include/mysqld_error.h:
Added error message for unknown key cache
innobase/srv/srv0start.c:
Removed warning that is confused for MySQL users
libmysql/libmysql.c:
Added mysql_set_server_option()
libmysql/libmysql.def:
Added mysql_set_server_option()
myisam/ft_nlq_search.c:
Removed compiler warning
myisam/ft_static.c:
Removed compiler warning and fixed wrong return value
myisam/mi_check.c:
Clean up multi-key-cache usage
myisam/mi_checksum.c:
Removed not used variable
myisam/mi_close.c:
keycache -> key_cache
myisam/mi_delete_all.c:
keycache -> key_cache
myisam/mi_extra.c:
keycache -> key_cache
Removed HA_EXTRA_SET_KEY_CACHE
myisam/mi_keycache.c:
Changed logic so that it's MyISAM that is responsible for assign tables to different key caches instead of the upper level
myisam/mi_locking.c:
Don't change key cache on unlock (must be done before)
myisam/mi_open.c:
Fetch key cache to use from multi_key_cache_search()
myisam/mi_page.c:
keycache -> key_cache
myisam/mi_panic.c:
keycache -> key_cache
myisam/mi_preload.c:
keycache -> key_cache
myisam/mi_test1.c:
Use KEY_CACHE_BLOCK_SIZE
myisam/mi_test2.c:
Always test resize_key_cache()
myisam/mi_test3.c:
Use KEY_CACHE_BLOCK_SIZE instead of 512
myisam/myisamchk.c:
update for multiple key caches
myisam/myisamdef.h:
Remove reg_keycache
Add unique_name_length for storing length of unique_file_name
myisam/myisamlog.c:
Change how end_key_cache() is called
mysql-test/mysql-test-run.sh:
Fixed web link
Added name of failed test to abort row.
mysql-test/r/alter_table.result:
Testing of ALTER TABLE ... [DEFAULT] CHARACTER SET
mysql-test/r/case.result:
Update result for DEFAULT CHARSET...
mysql-test/r/cast.result:
Update result for DEFAULT CHARSET...
mysql-test/r/create.result:
Update result for DEFAULT CHARSET...
mysql-test/r/ctype_collate.result:
Update result for DEFAULT CHARSET...
mysql-test/r/ctype_latin1_de.result:
Update result for DEFAULT CHARSET...
mysql-test/r/ctype_many.result:
Update result for DEFAULT CHARSET...
mysql-test/r/ctype_mb.result:
Update result for DEFAULT CHARSET...
mysql-test/r/ctype_recoding.result:
Update result for DEFAULT CHARSET...
mysql-test/r/ctype_ucs.result:
Update result for DEFAULT CHARSET...
mysql-test/r/derived.result:
Use STRAIGHT_JOIN to make join order predictable
mysql-test/r/fulltext.result:
Update result for DEFAULT CHARSET...
mysql-test/r/func_str.result:
Update result for DEFAULT CHARSET...
mysql-test/r/func_system.result:
Update result for DEFAULT CHARSET...
mysql-test/r/gis-rtree.result:
Update result for DEFAULT CHARSET...
mysql-test/r/innodb.result:
Update result for DEFAULT CHARSET...
mysql-test/r/key_cache.result:
Update test for new key cache syntax.
Added more tests
mysql-test/r/merge.result:
Update result for DEFAULT CHARSET...
mysql-test/r/preload.result:
New syntax
mysql-test/r/show_check.result:
Update result for DEFAULT CHARSET...
mysql-test/r/sql_mode.result:
Update result for DEFAULT CHARSET...
mysql-test/r/subselect.result:
Update result for DEFAULT CHARSET...
mysql-test/r/type_blob.result:
Update result for DEFAULT CHARSET...
mysql-test/r/type_enum.result:
Update result for DEFAULT CHARSET...
mysql-test/r/type_nchar.result:
Update result for DEFAULT CHARSET...
mysql-test/r/type_set.result:
Update result for DEFAULT CHARSET...
mysql-test/r/union.result:
Use STRAIGHT_JOIN to make join order predictable
mysql-test/t/alter_table.test:
Testing of ALTER TABLE ... [DEFAULT] CHARACTER SET
mysql-test/t/ctype_many.test:
Update result for DEFAULT CHARSET...
mysql-test/t/derived.test:
Use STRAIGHT_JOIN to make join order predictable
mysql-test/t/isam.test:
Use disable warnings for test loop
mysql-test/t/join.test:
Update test now when we only support 61 tables in join
mysql-test/t/key_cache.test:
Update test for new key cache syntax.
Added more tests
mysql-test/t/preload.test:
Update for new syntax
mysql-test/t/union.test:
Use STRAIGHT_JOIN to make join order predictable
mysys/Makefile.am:
Added mf_keycaches.c
mysys/hash.c:
TRUE -> 1
mysys/mf_keycache.c:
Removed compiler warnings
Striped end space
Fixed indentation and improved function comments
TRUE -> 1
Changed parameters to end_key_cache() to make it easer to use
Fixed bug when using key blocks size > 1024 bytes (First part of index file could be overwritten with wrong data)
Split function flush_key_blocks into two functions to not get mutex used twice when called from flush_all_key_blocks()
mysys/my_bitmap.c:
More debugging
Safe bitmap_free()
Fixed indentation
mysys/my_getopt.c:
Ensure that we initialize option->value, option->max_value and value from GET_ASK_ADDR
mysys/my_thr_init.c:
Remove not used mutex THR_LOCK_keycache
mysys/typelib.c:
Fixed function comments
sql-common/client.c:
CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
Fixed the multi_result flag is set also on SELECT;s
sql/ha_myisam.cc:
Fixed multiple key_cache handling
(Now done on MyISAM level)
sql/ha_myisammrg.cc:
Fixed multiple key_cache handling
(Now done on MyISAM level)
sql/handler.cc:
New multi key cache handling
sql/handler.h:
New multi key cache handling
Added support for default character set
sql/item.h:
Added function cleanup() (Needed for prepared statements / cursors)
sql/item_cmpfunc.h:
Added cleanup function
sql/item_func.cc:
Indentation cleanup
sql/mysql_priv.h:
New multi-key-cache functions
Removed LOCK_assign
sql/mysqld.cc:
New multi-key-cache handling
Fixed that variable have_compress is set correctly
sql/protocol.cc:
SELECT didn't work reliable in multi-statements
sql/set_var.cc:
Support for new key cache variables
sql/set_var.h:
Support for new key cache variables
sql/share/czech/errmsg.txt:
New error messages
sql/share/danish/errmsg.txt:
New error messages
sql/share/dutch/errmsg.txt:
New error messages
sql/share/english/errmsg.txt:
New error messages
sql/share/estonian/errmsg.txt:
New error messages
sql/share/french/errmsg.txt:
New error messages
sql/share/german/errmsg.txt:
New error messages
sql/share/greek/errmsg.txt:
New error messages
sql/share/hungarian/errmsg.txt:
New error messages
sql/share/italian/errmsg.txt:
New error messages
sql/share/japanese/errmsg.txt:
New error messages
sql/share/korean/errmsg.txt:
New error messages
sql/share/norwegian-ny/errmsg.txt:
New error messages
sql/share/norwegian/errmsg.txt:
New error messages
sql/share/polish/errmsg.txt:
New error messages
sql/share/portuguese/errmsg.txt:
New error messages
sql/share/romanian/errmsg.txt:
New error messages
sql/share/russian/errmsg.txt:
New error messages
sql/share/serbian/errmsg.txt:
New error messages
sql/share/slovak/errmsg.txt:
New error messages
sql/share/spanish/errmsg.txt:
New error messages
sql/share/swedish/errmsg.txt:
New error messages
sql/share/ukrainian/errmsg.txt:
New error messages
sql/sql_base.cc:
Removed all key_cache handling (this is now done on MyISAM level)
Change table_charset -> default_table_charset
sql/sql_db.cc:
table_charset -> default_table_charset
sql/sql_delete.cc:
table_charset -> default_table_charset
sql/sql_lex.cc:
CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
sql/sql_lex.h:
New option to store a name and length
sql/sql_parse.cc:
Support for mysql_set_server_option()
Reset "default" keycache status variables in 'FLUSH STATUS' (Need to be improved later)
sql/sql_show.cc:
Add DEFAULT before CHARSET (for table character sets)
Fetch key cache variables from 'sql_key_cache'
sql/sql_table.cc:
table_charset -> default_table_charset
New multi-key-cache handling
sql/sql_test.cc:
Write information from all key caches
sql/sql_yacc.yy:
Changed syntax for CACHE INDEX ...
Force user to use DEFAULT before database/table level character sets
sql/structs.h:
Added SHOW_KEY_CACHE_LONG (to get values from sql_key_cache)
sql/table.cc:
table_charset -> default_table_charset
sql/table.h:
New key cache handling (this is now done in mysys/mf_keycaches.c)
sql/unireg.h:
A
another version of the fix.
Here i removed a loop that seems to be superfluous
mysql-test/r/derived.result:
appropriate test result added
mysql-test/t/derived.test:
test case for the bug 1727
sql/sql_lex.cc:
we don't need loop here
mysql-test/r/derived.result:
fixed results after merge
mysql-test/r/func_in.result:
small fix to amke all names uniform
mysql-test/r/func_math.result:
forgot to change
sql/item.cc:
fix
sql/item_create.cc:
small fix to amke all names uniform
- 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)
mysql-test/r/derived.result:
test moved to derived table tests
added test of BUG#1584
mysql-test/r/subselect.result:
test moved to derived table tests
mysql-test/t/derived.test:
test moved to derived table tests
added test of BUG#1584
mysql-test/t/subselect.test:
test moved to derived table tests
sql/item.cc:
layout fix
sql/sql_select.cc:
correct table name assigned to temporary table field
fixed incorrect table name in test
mysql-test/r/derived.result:
fixed incorrect table name in test
new test of derived table
mysql-test/t/derived.test:
fixed incorrect table name in test
new test of derived table
sql/sql_yacc.yy:
prohibited using derived tables in UPDATE command