fixed IN optimisation bug
mysql-test/r/subselect.result:
test of IN optimisation bug
mysql-test/t/subselect.test:
test of IN optimisation bug
sql/item_subselect.cc:
fixed IN optimisation bug
sql/mysql_priv.h:
constant for additional IN subquery condition detecting
sql/mysqld.cc:
constant for additional IN subquery condition detecting
sql/sql_select.cc:
removing additional IN subquery condition
uninitialized value fixed
sql/item_cmpfunc.cc:
fixed uninitialized used_tables_cache
othyer caches moved on proper place
sql/item_subselect.cc:
fixed reported table bit
sql/mysql_priv.h:
after merge chenges.
sql/sql_parse.cc:
used same new operator for all allocation in subroutine
sql/sql_union.cc:
fake st_select_lex should have item list for ref_array allocation
sql/sql_yacc.yy:
after merge changing
sql/item.cc:
As far as now transformer called after setup_wild() it is impossible to have '*' Item
sql/item.h:
As far as now transformer called after setup_wild() it is impossible to have '*' Item
sql/item_subselect.cc:
replaced Item_ref_on_list_position (which need erly ref_array initialisation)
sql/mysql_priv.h:
setup_ref_array moved to st_select_lex class
sql/sql_delete.cc:
setup_ref_array moved to st_select_lex class
sql/sql_derived.cc:
setup_ref_array moved to st_select_lex class
sql/sql_lex.cc:
removed double initialisation
select_n_having_items moved to any query initializations, because it used in setup_ref_array method
setup_ref_array moved to st_select_lex class
sql/sql_lex.h:
setup_ref_array moved to st_select_lex class
sql/sql_select.cc:
setup_ref_array moved to st_select_lex class
sql/sql_table.cc:
setup_ref_array moved to st_select_lex class
sql/sql_union.cc:
setup_ref_array moved to st_select_lex class
sql/sql_update.cc:
setup_ref_array moved to st_select_lex class
fixed number of rows of external field reported to optimizer
added check of choosen key (checked left expression tag)
(SCRUM fix for simple IN optimisation)
mysql-test/r/subselect.result:
new EXPLAIN results ufter fixing used_tables() of Item_cache
sql/item_cmpfunc.cc:
fixed used_tables asignment
sql/item_subselect.cc:
added left expression referenca tag
sql/item_subselect.h:
fixed layout
sql/mysql_priv.h:
left expression reference tag
sql/mysqld.cc:
left expression reference tag
sql/sql_select.cc:
checked left expression reference tag
fixed number of rows in outer reference (it should be constant)
into sanja.is.com.ua:/home/bell/mysql/bk/work-simple_in-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_derived.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/item.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
mysql-test/r/subselect.result:
merge
fixed test
mysql-test/t/subselect.test:
merge
fixed test
by MAX/MIN in some cases:
SELECT coercibility(max(s1)) from t1;
Subselect collation and derivation was not processed
correctly:
create table a select (select s1 from t1);
select * from t1 where s1 = (select s2 from t1);
removerd unused loop_id
mysql-test/r/subselect.result:
test of BUG#922
mysql-test/t/subselect.test:
test of BUG#922
sql/item.cc:
removerd unused loop_id
we need count HAVING clause elements, because agregate function can be present in it
sql/item.h:
removerd unused loop_id
sql/item_subselect.cc:
new name of field
sql/sql_derived.cc:
new name of field
sql/sql_lex.cc:
new name of field
sql/sql_lex.h:
new name of field
sql/sql_select.cc:
new name of field
sql/sql_union.cc:
new name of field
mysql-test/r/subselect.result:
results of new optimisation
mysql-test/t/subselect.test:
results of new optimisation
sql/item_cmpfunc.h:
function type
sql/item_func.h:
function type
sql/item_subselect.cc:
new optimisation for ref_or_null
sql/item_subselect.h:
new optimisation for ref_or_null
sql/sql_select.cc:
new optimisation for ref_or_null
sql/sql_select.h:
item_subselect.cc need safe_index_read
(SCRUM) (part of WL#818)
mysql-test/r/subselect.result:
test of new engine
mysql-test/t/subselect.test:
test of new engine
sql/item_subselect.cc:
new engine added
some common operation moved in separate method
sql/item_subselect.h:
new engine added
some common operation moved in separate method
sql/sql_select.cc:
new engine added
some common operation moved in separate method
sql/sql_select.h:
some common operation moved in separate method
(SCRUM) (part of WL#818)
mysql-test/r/subselect.result:
test of new optimisation
mysql-test/t/subselect.test:
test of new optimisation
sql/item_subselect.cc:
new engine for simple IN with primary index
sql/item_subselect.h:
new engine for simple IN with primary index
sql/sql_lex.h:
fixed typo
sql/sql_select.cc:
engine changing
report_error can't be static, because it used in new engine
sql/sql_select.h:
new JT_ type (just for information in EXPLAIN statement)
report_error can't be static, because it used in new engine
It looks like samll revolution in SELECT_LEX tree, but it was only natural way to solve problem with name resolution of external fields inside subselect which belongs to global order of union
also it have following advantages:
- removed mess with current_select type conversion
- type checking/converting
- a lot of virtual methods
- fake select for union execution allocated only once (it was allocated for every subselect with union executing)
changes:
fixed bug with outer fields name resolution of subqueries which belong to global ORDER BY clause
remuved select_lex() function, now thd->lex.current_select always have type SELECT_LEX
new SELECT_LEX (fake_select_lex) will be allocated in case of UNION for using in UNION processing
fake_select_lex allocated for union hold global ORDER BY & LIMIT clauses and have linkage equal to GLOBAL_OPTIONS_TYPE
new description of SELECT_LEX tree
(SCRUM)
sql/item.cc:
global parameters moved to fake_select_lex
sql/item_subselect.cc:
global parameters moved to fake_select_lex
sql/item_sum.cc:
no need type checking & converion now
sql/sql_delete.cc:
no need type checking & converion now
sql/sql_derived.cc:
global parameters moved to fake_select_lex
sql/sql_lex.cc:
not used fields/mrthods moved from st_select_lex_node to st_select_lex
global parameters moved to fake_select_lex
sql/sql_lex.h:
comments about new tree of select_lex s
not used fields/mrthods moved from st_select_lex_node to st_select_lex
global parameters moved to fake_select_lex
sql/sql_parse.cc:
global parameters moved to fake_select_lex
allocation of fake_select_lex on demand
sql/sql_select.cc:
now fake_select_lex marked as GLOBAL_OPTIONS_TYPE
sql/sql_union.cc:
global parameters moved to fake_select_lex
sql/sql_yacc.yy:
global parameters moved to fake_select_lex
fixed dependence of items from reduced subquery
(SCRUM)
sql/item.cc:
fixed dependence of items from reduced subquery
sql/item.h:
fixed dependence of items from reduced subquery
Item tree iterator
sql/item_cmpfunc.cc:
Item tree iterator
sql/item_cmpfunc.h:
Item tree iterator
sql/item_func.cc:
Item tree iterator
sql/item_func.h:
Item tree iterator
sql/item_row.cc:
Item tree iterator
sql/item_row.h:
Item tree iterator
sql/item_strfunc.h:
Item tree iterator
sql/item_subselect.cc:
Item tree iterator
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item.cc:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item.h:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_cmpfunc.cc:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_cmpfunc.h:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_func.cc:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_func.h:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_row.cc:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_row.h:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_strfunc.h:
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_subselect.cc:
after review changes
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/item_subselect.h:
after review changes
removed outer resolving flag (because of movingtransformation after fix_fields)
sql/mysql_priv.h:
after review changes
sql/sql_base.cc:
after review changes
sql/sql_lex.cc:
after review changes
sql/sql_lex.h:
after review changes
sql/sql_select.cc:
after review changes
sql/sql_union.cc:
after review changes
into sanja.is.com.ua:/home/bell/mysql/bk/work-top2-4.1
mysql-test/r/subselect.result:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
fixed BUG #726
mysql-test/r/subselect.result:
test of bug #726
mysql-test/t/subselect.test:
test of bug #726
sql/item_cmpfunc.cc:
cond_count moved to SELECT_LEX_NODE
sql/item_subselect.cc:
fixed current_select pointer
sql/sql_base.cc:
cond_count moved to SELECT_LEX_NODE
sql/sql_class.cc:
cond_count moved to SELECT_LEX_NODE
sql/sql_class.h:
cond_count moved to SELECT_LEX_NODE
sql/sql_lex.cc:
cond_count moved to SELECT_LEX_NODE
sql/sql_lex.h:
cond_count moved to SELECT_LEX_NODE
sql/sql_select.cc:
cond_count moved to SELECT_LEX_NODE
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_subselect.h:
Auto merged
sql/sql_derived.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
mysql-test/r/subselect.result:
merging (wiil be fixed after building)
sql/item_subselect.cc:
merging
sql/sql_select.cc:
merging
into sanja.is.com.ua:/home/bell/mysql/bk/work-item-4.1
sql/item.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
(bug #518 fixed)
mysql-test/r/subselect.result:
test of bug #518
mysql-test/t/subselect.test:
test of bug #518
sql/item_subselect.cc:
test and switch mem_root if it is necessary
exec() - wrapper around engine->exec() to test and switch mem_root if necessary
sql/item_subselect.h:
added storing THD for mem_root testinmg & switching
exec() - wrapper around engine->exec() to test and switch mem_root if necessary
mysql-test/r/func_group.result:
new tests
mysql-test/t/func_group.test:
new tests
sql/item.cc:
count items in select list
sql/item_subselect.cc:
use number of item in select list for array creation
sql/item_sum.cc:
with_sum_func now is boolean
sql/sql_derived.cc:
use number of item in select list for array creation
sql/sql_lex.cc:
create_refs changed with parsing_place enum variable
sql/sql_lex.h:
added items in select list counter
create_refs changed with parsing_place enum variable
with_sum_func now is boolean
sql/sql_select.cc:
use number of item in select list for array creation
sql/sql_union.cc:
use number of item in select list for array creation
sql/sql_yacc.yy:
create_refs changed with parsing_place enum variable
into sanja.is.com.ua:/home/bell/mysql/bk/work-top-4.1
mysql-test/r/subselect.result:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
removed "of is null" if it is possible
(this cset should be SCRUM related, but not approved as scrum task yet)
mysql-test/r/subselect.result:
new subselect test result (new place of error detecting & and more subselect reducing)
sql/item.cc:
layout fix
sql/item.h:
unneed ';'
fixed print pethod
sql/item_cmpfunc.cc:
new method to support transformation after fix_fields
sql/item_cmpfunc.h:
new method to support transformation after fix_fields
fixed Item printing
sql/item_subselect.cc:
new transformation
sql/item_subselect.h:
new transformation
sql/sql_derived.cc:
'table' & 'table_list' now is not union
sql/sql_lex.cc:
'table' & 'table_list' now is not union to support reinit only shared tables (but all)
sql/sql_lex.h:
mark fake st_select_lex
sql/sql_olap.cc:
fixed table assignment
TODO added
sql/sql_select.cc:
'table' & 'table_list' now is not union
transforming subselect
sql/sql_union.cc:
prepare make on fix_fields
sql/sql_yacc.yy:
fixed layout
sql/table.h:
'table & 'table_list' now is different fields
Fixed memory leak in new filesort code
Optimzed sub selects to use keys with outer references.
Increased max tables in join to 62
client/Makefile.am:
Remve test programs
myisam/mi_check.c:
Remove compiler warnings
myisam/mi_delete.c:
Remove 'rnd' variable to make usage repeatable
myisam/mi_open.c:
Remove 'rnd' variable to make usage repeatable
myisam/mi_write.c:
Remove 'rnd' variable to make usage repeatable
myisam/myisamdef.h:
Remove 'rnd' variable to make usage repeatable
myisam/myisamlog.c:
Remove 'rnd' variable to make usage repeatable
mysql-test/r/subselect.result:
new test
mysql-test/t/join.test:
Updated test
mysql-test/t/subselect.test:
new test
sql/filesort.cc:
Added function to free buffers allocated by filesort
sql/item.cc:
Sub select optimization
sql/item_cmpfunc.cc:
Sub select optimization
sql/item_subselect.cc:
Sub select optimization
sql/item_sum.cc:
Removed compiler warnings
sql/item_sum.h:
Simple code cleanup
sql/log.cc:
Removed compiler warning
sql/mysql_priv.h:
Made table_map ulonglong to allow 62 tables in join
sql/records.cc:
Moved free of filesort buffers to own function
sql/sql_select.cc:
subselect optimization
Call filesort_free_buffers() to free memory from filesort
sql/unireg.h:
Sub select optimization
mysql-test/r/subselect.result:
new test results
test of bug 185
mysql-test/t/subselect.test:
test of bug 185
sql/item.h:
new method
sql/item_cmpfunc.cc:
new Item to control NULL value in HAVING clouse
sql/item_cmpfunc.h:
new Item to control NULL value in HAVING clouse
sql/item_subselect.cc:
if IN was rewrited through WHERE thien it will be rewrited in following way:
WHERE left_expr=item or is null(item) heving is_not_null_test(item)
sql/item_subselect.h:
Item_is_not_null_test can change was_null flag
sql/sql_select.cc:
some layout fix
sql/item_subselect.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
like number-to-string-convertion-result, now
takes current database character set, instead of
thread character set. This makes it easy to be
SQL99 conformant and 4.0 compatible.
Item->thd_charset() is renamed to Item->default_charset()
as old name doesn't describe its nature anymore.
new fatal_error interface to assign is_fatal_error and ne.report_error
commant about Item_row
mysql-test/r/subselect.result:
test of inheritence of uncacheability
mysql-test/t/subselect.test:
test of inheritence of uncacheability
sql/item.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/item_func.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/item_row.cc:
comment about row
sql/item_subselect.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
(message should be sent by allocate routine
sql/log_event.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/mysqld.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/protocol.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_base.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_class.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_class.h:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_delete.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_insert.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_lex.h:
fixed bug in determinating uncacheable queries
sql/sql_parse.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_prepare.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_select.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_show.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_union.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/sql_update.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
sql/thr_malloc.cc:
new fatal_error interface to assign is_fatal_error and ne.report_error
fixed length of fields created in fubselect
fixed resolving fields of reduced in derived table subselect
mysql-test/r/subselect.result:
test of created with subselect fields
mysql-test/t/subselect.test:
test of created with subselect fields
sql/item.cc:
fixed length of fields created in fubselect
fixed resolving fields of reduced in derived table subselect
sql/item_subselect.cc:
improving of fields list creation in derived tables and unions
sql/mysql_priv.h:
improving of fields list creation in derived tables and unions
sql/sql_derived.cc:
improving of fields list creation in derived tables and unions
sql/sql_lex.h:
improving of fields list creation in derived tables and unions
sql/sql_parse.cc:
improving of fields list creation in derived tables and unions
sql/sql_prepare.cc:
improving of fields list creation in derived tables and unions
sql/sql_select.cc:
improving of fields list creation in derived tables and unions
sql/sql_select.h:
improving of fields list creation in derived tables and unions
sql/sql_union.cc:
improving of fields list creation in derived tables and unions
sql/sql_update.cc:
improving of fields list creation in derived tables and unions
merging with switching on static tables optimization (SCRUM)
fixed subselects with uncacheable results
added test for fixed bugs from bugreports
mysql-test/r/subselect.result:
changes in subselect test after switching on static tables optimization
fixed bug test added
uncacheable subselects
mysql-test/t/subselect.test:
changes in subselect test after switching on static tables optimization
fixed bug test added
uncacheable subselects
sql/item_create.cc:
fixed subselects with uncacheable results
sql/item_func.cc:
fixed subselects with uncacheable results
sql/item_subselect.cc:
fixed subselects with uncacheable results
clean up
sql/item_subselect.h:
fixed subselects with uncacheable results
sql/sql_lex.cc:
fixed subselects with uncacheable results
sql/sql_lex.h:
fixed subselects with uncacheable results
sql/sql_select.cc:
fixed bugs in temporary tables in subselect implementation
fixed subselects with uncacheable results
sql/sql_union.cc:
fixed subselects with uncacheable results
sql/sql_yacc.yy:
fixed subselects with uncacheable results
fixed derived tables with subselect inside
mysql-test/r/derived.result:
test of subselects inside derived tables
mysql-test/t/derived.test:
test of subselects inside derived tables
mysql-test/t/subselect.test:
subselect test (not finished)
sql/item.cc:
after merge fix
sql/item.h:
after merge fix
sql/item_cmpfunc.h:
after merge fix
sql/item_subselect.cc:
after merge fix
sql/item_sum.h:
after merge fix
sql/mysql_priv.h:
fixed derived tables with subselect inside
sql/sql_class.h:
after merge fix
sql/sql_derived.cc:
fixed derived tables with subselect inside
sql/sql_lex.cc:
fixed derived tables with subselect inside
sql/sql_lex.h:
fixed derived tables with subselect inside
sql/sql_parse.cc:
fixed derived tables with subselect inside
after merge fix
sql/sql_prepare.cc:
after merge fix
sql/sql_select.cc:
after merge fix
fixed derived tables with subselect inside
sql/item.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_list.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_olap.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
fixed memory leacks
mysql-test/r/subselect.result:
some changes in subselect tests
mysql-test/t/subselect.test:
some changes in subselect tests
sql/item.cc:
some item made copyable
methods for creating copy of item list
tmp_table_field() splited
sql/item.h:
some item made copyable
methods for creating copy of item list
tmp_table_field() splited
sql/item_cmpfunc.cc:
changed references creation
sql/item_cmpfunc.h:
changed references creation
sql/item_func.cc:
some item made copyable
methods for creating copy of item list
changed references creation
sql/item_func.h:
some item made copyable
methods for creating copy of item list
changed references creation
tmp_table_field() splited
sql/item_subselect.cc:
changed references creation
sql/item_sum.cc:
some item made copyable
methods for creating copy of item list
sql/item_sum.h:
some item made copyable
methods for creating copy of item list
sql/item_timefunc.h:
tmp_table_field() splited
sql/item_uniq.h:
some item made copyable
methods for creating copy of item list
sql/mysql_priv.h:
fixed subselects with temporary tables
sql/sql_base.cc:
fixed subselects with temporary tables
sql/sql_class.h:
fixed subselects with temporary tables
sql/sql_delete.cc:
fixed subselects with temporary tables
sql/sql_derived.cc:
fixed subselects with temporary tables
sql/sql_do.cc:
fixed subselects with temporary tables
sql/sql_insert.cc:
fixed subselects with temporary tables
sql/sql_lex.cc:
fixed subselects with temporary tables
sql/sql_lex.h:
fixed subselects with temporary tables
sql/sql_list.h:
fixed subselects with temporary tables
sql/sql_load.cc:
fixed subselects with temporary tables
sql/sql_olap.cc:
fixed subselects with temporary tables
sql/sql_parse.cc:
fixed subselects with temporary tables
sql/sql_prepare.cc:
fixed subselects with temporary tables
sql/sql_select.cc:
fixed subselects with temporary tables
sql/sql_select.h:
fixed subselects with temporary tables
sql/sql_table.cc:
fixed subselects with temporary tables
sql/sql_union.cc:
fixed subselects with temporary tables
sql/sql_update.cc:
fixed subselects with temporary tables
sql/sql_yacc.yy:
fixed subselects with temporary tables
reordered Item_row class variables to be sorted by memory size
mysql-test/r/subselect.result:
fix result of subselect test
sql/item.cc:
postreviews fix
sql/item.h:
postreviews fix
sql/item_cmpfunc.h:
postreviews fix
sql/item_row.cc:
postreviews fix
sql/item_row.h:
reordered class variables to be sorted by memory size
postreviews fix
sql/item_strfunc.cc:
postreviews fix
sql/item_subselect.cc:
postreviews fix