implementation of AVG(DISTINCT) which utilizes the approach with Fields.
The patch implemented in October is portede to the up-to-date tree
containing DECIMAL type.
Tests for AVG(DISTINCT) (although there is not much to test provided
that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT()
will follow in another changeset.
sql/field.cc:
A handy way to init create_field used for use with virtual tmp tables.
Feel free to extend it for your own needs.
sql/field.h:
Declaration for create_field::init_for_tmp_table()
sql/item.cc:
Implementation for a framework used to easily handle different result
types of SQL expressions. Instead of having instances of each possible
result type (integer, decimal, double) in every item, variables
of all used types are moved to struct Hybrid_type.
Hybrid_type can change its dynamic type in runtime, and become,
for instance, DECIMAL from INTEGER.
All type-specific Item operations are moved to the class hierarchy
Hybrid_type_traits. Item::decimals and Item::max_length can
be moved to Hybrid_type as well.
sql/item.h:
Declaration for Hybrid_type framework. See also comments for item.cc
in this changeset.
sql/item_sum.cc:
Rewritten implementation for Item_sum_sum_distinct (SUM(DISTINCT))
and added implementation for Item_sum_avg_distinct (AVG(DISTINCT)).
The classes utilize Hybrid_type class hierarchy and Fields to
convert SUM/AVG arguments to binary representation and store in a RB-tree.
sql/item_sum.h:
Declarations for Item_sum_distinct (the new intermediate class used
for SUM and AVG distinct), Item_sum_sum_distinct, Item_sum_avg_distinct.
sql/sql_select.cc:
Implementatio of create_virtual_tmp_table().
sql/sql_select.h:
Declaration for create_virtual_tmp_table.
sql/sql_yacc.yy:
Grammar support for Item_sum_avg_distinct.
implementation of AVG(DISTINCT) which utilizes the approach with Fields.
The patch implemented in October is portede to the up-to-date tree
containing DECIMAL type.
Tests for AVG(DISTINCT) (although there is not much to test provided
that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT()
will follow in another changeset.
sql/field.cc:
a fix (bug #9029 Traditional: Wrong SQLSTATE returned for string truncation).
Should issue ER_DATA_TOO_LONG in 'traditional' mode when data truncated.
mysql-test/r/cast.result:
test result
mysql-test/r/func_group.result:
test result
mysql-test/t/cast.test:
test case
sql/field.cc:
this assert isn't correct actually
(Found during build process)
extra/comp_err.c:
Remove compiler warnings
extra/perror.c:
Remove compiler warnings
innobase/dict/dict0dict.c:
Remove compiler warnings
innobase/dict/dict0load.c:
Remove compiler warnings
innobase/pars/pars0sym.c:
Remove compiler warnings
innobase/row/row0row.c:
Remove compiler warnings
innobase/row/row0sel.c:
Remove compiler warnings
libmysqld/lib_sql.cc:
Remove not used variables
myisam/mi_key.c:
Remove compiler warnings
regex/engine.c:
Added comment
sql/derror.cc:
Remove not used variables
sql/examples/ha_archive.cc:
Fixed bug in blob handling
Removed not used variable
sql/field.cc:
Remove compiler warnings
Remove not used variables
sql/filesort.cc:
Remove compiler warnings
sql/ha_heap.cc:
Remove not used variable
sql/ha_innodb.cc:
Remove not used variables
Remove compiler warnings
sql/handler.cc:
Remove compiler warnings and remove not used variables
sql/item.cc:
Remove compiler warnings and remove not used variables
sql/item_subselect.cc:
Remove compiler warnings
sql/item_sum.cc:
Remove compiler warnings
sql/item_sum.h:
Remove compiler warnings and remove not used variables
sql/log.cc:
Remove compiler warnings and remove not used variables
sql/log_event.cc:
Remove compiler warnings
sql/mysqld.cc:
Remove compiler warnings and remove not used variables
sql/opt_range.cc:
Remove compiler warnings and remove not used variables
sql/slave.cc:
Remove compiler warnings and remove not used variables
sql/sp_pcontext.cc:
Remove compiler warnings and remove not used variables
sql/sql_acl.cc:
Remove compiler warnings and remove not used variables
sql/sql_analyse.cc:
Remove compiler warnings and remove not used variables
sql/sql_base.cc:
Remove compiler warnings and remove not used variables
sql/sql_db.cc:
Remove compiler warnings and remove not used variables
sql/sql_help.cc:
Remove compiler warnings and remove not used variables
sql/sql_insert.cc:
Remove compiler warnings and remove not used variables
sql/sql_load.cc:
Remove compiler warnings and remove not used variables
sql/sql_parse.cc:
Remove compiler warnings and remove not used variables
sql/sql_prepare.cc:
Remove compiler warnings and remove not used variables
sql/sql_select.cc:
Remove compiler warnings and remove not used variables
sql/sql_show.cc:
Remove compiler warnings and remove not used variables
sql/sql_table.cc:
Remove compiler warnings
sql/sql_union.cc:
Remove compiler warnings
sql/sql_update.cc:
Remove compiler warnings and remove not used variables
sql/sql_yacc.yy:
Remove compiler warnings and remove not used variables
sql/strfunc.cc:
Remove compiler warnings and remove not used variables
strings/ctype-ucs2.c:
Remove compiler warnings
tests/mysql_client_test.c:
Remove compiler warnings and remove not used variables
tools/mysqlmanager.c:
Remove compiler warnings and remove not used variables
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)
Change string->float conversion to delay division as long as possible.
This gives us more exact integer->float conversion for numbers of type '123.45E+02' (Bug #7740)
client/mysql.cc:
Fix wront usage of charset (found during review of pushed code)
include/m_string.h:
Backported my_strtod() from 5.0
mysql-test/mysql-test-run.sh:
Run also mysql_client_test with --debug
mysql-test/r/ps_1general.result:
Safety fix (if mysql_client_test.test fails)
mysql-test/r/type_float.result:
More test
mysql-test/t/mysql_client_test.test:
Comments for what to do if this test fails
mysql-test/t/ps_1general.test:
Safety fix (if mysql_client_test.test fails)
mysql-test/t/type_float.test:
More test to better test new strtod() function
Test also bug #7740 (wrong comparsion between integer and float-in-integer-range)
sql/field.cc:
Backport my_strntod() from 5.0
sql/item.cc:
Backport my_strntod() from 5.0
sql/item.h:
Backport my_strntod() from 5.0
sql/item_func.h:
Backport my_strntod() from 5.0
sql/item_strfunc.cc:
Backport my_strntod() from 5.0
sql/item_sum.cc:
Backport my_strntod() from 5.0
sql/item_sum.h:
Backport my_strntod() from 5.0
sql/procedure.h:
Backport my_strntod() from 5.0
strings/ctype-simple.c:
Backport my_strntod() from 5.0
strings/ctype-ucs2.c:
Backport my_strntod() from 5.0
strings/strtod.c:
Backport my_strntod() from 5.0
Change conversion to delay division as long as possible.
This gives us more exact integer-> float conversion for numbers of type '123.45E+02'
Change string->float conversion to delay division as long as possible.
This gives us more exact integer->float conversion for numbers of type '123.45E+02' (Bug #7740)
Portability fix
Note: rpl_trunc_binlog fails, but Sergei has promised to fix it, so I will ignore it for now
sql/field.cc:
use dbug_print_decimal instead of DBUG_EXECUTE
sql/item.h:
Portability fix
sql/my_decimal.cc:
Fix error in last changeset (not pushed)
VC++Files/libmysqld/libmysqld.dsp:
added sql/my_decimal.cc
VC++Files/sql/mysqld.dsp:
added my_decimal.cpp
VC++Files/strings/strings.dsp:
added decimal.c
sql/field.cc:
conversion fixes for windows compilation
sql/item.h:
fix for windows compilation
sql/item_func.cc:
fixed conversion for windows (cast from ulonglong to double
is not supported)
sql/item_sum.cc:
typecast fix for windows compilation
sql/sp_head.cc:
typecast fix fo windows compilation
sql/sql_cache.cc:
typecast fix for windows compilation
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/triggers/post-commit:
Auto merged
innobase/row/row0mysql.c:
Auto merged
myisam/ft_boolean_search.c:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/distinct.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_list.h:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_string.h:
Auto merged
vio/viosocket.c:
Auto merged
scripts/mysql_create_system_tables.sh:
simple merge
sql/field.cc:
simple merge
sql/item.h:
simple merge
sql/sql_lex.h:
simple merge
sql/sql_yacc.yy:
Merge
(join_table_list was not comptely merged. Need to run test to know how things works...)
sql/table.cc:
Keep code from 5.0, except delted one not needed line
strings/ctype-ucs2.c:
Auto merge
Simple optimzations done while reviewing code
client/mysqltest.c:
Added options --enable-ps-warnings and --disable-ps-warnings
(to fix failing test case)
mysql-test/t/row.test:
Disable warnings that comes from 'parse' parth
sql/field.cc:
Removed calls to is_null() in field functions.
(Not needed as NULL handling is done on the level above fields)
Indentation fixes
Removed calls to alloca() as buffer needed was quite small.
sql/field.h:
Indentation changes and comment fixes
sql/filesort.cc:
Simple optimization during code review
sql/item.cc:
Indentation fixes
Removed some unnecessary tests (added DBUG_ASSERTS() instead)
sql/item_buff.cc:
Indentation fixes
sql/my_decimal.cc:
Indentation fixes
Simple optimization
Fixed compiler warning
sql/sql_update.cc:
Removed unnessessary assignment
mysql-test/r/ctype_ucs.result:
Test case
mysql-test/t/ctype_ucs.test:
Test case
sql/field.cc:
Fixed minus check to be UCS2-compatible
strings/ctype-ucs2.c:
Missing my_scan_ucs2() was added.
After merge fixes
Don't give duplicate warnings for some ::store() functions
mysql-test/mysql-test-run.sh:
Added back missing line
mysql-test/r/ps_2myisam.result:
Update results after removing duplicate warnings from ::store()
mysql-test/r/ps_3innodb.result:
Update results after removing duplicate warnings from ::store()
mysql-test/r/ps_4heap.result:
Update results after removing duplicate warnings from ::store()
mysql-test/r/ps_5merge.result:
Update results after removing duplicate warnings from ::store()
sql/field.cc:
Don't give duplicate warnings for some ::store() functions
Before we could get different number of warnings in the test suite for different platforms
sql/field.h:
Update results after removing duplicate warnings from ::store()
sql/sql_class.h:
Update results after removing duplicate warnings from ::store()
sql/sql_error.cc:
Update results after removing duplicate warnings from ::store()
sql/sql_list.h:
After merge fix
client/mysqlcheck.c:
Auto merged
myisam/ft_boolean_search.c:
Auto merged
myisam/ft_static.c:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/t/func_group.test:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/union.test:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/ha_myisam.h:
Auto merged
sql/handler.h:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/field.cc:
Clean up merge
bug#7833: Wrong datatype of aggregate column is returned
mysql-test/r/func_group.result:
Test case for bug 7833: Wrong datatype of aggregate column is returned
mysql-test/r/union.result:
Test case for bug 6931: Date Type column problem when using UNION-Table.
mysql-test/t/func_group.test:
Test case for bug 7833: Wrong datatype of aggregate column is returned
mysql-test/t/union.test:
Test case for bug 6931: Date Type column problem when using UNION-Table.
mysql-test/t/type_date.test:
Add new regression test
mysql-test/r/type_date.result:
Add result
sql/field.cc:
Set YEAR to 0 when set to a non-numeric string, not 2000,
and issue a warning.
into patrick-galbraiths-computer.local:/Users/patg/mysql-5.0
BitKeeper/etc/logging_ok:
auto-union
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_federated.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
-New tests and results
logging_ok:
Logging to logging@openlogging.org accepted
ha_federated.h:
removed quote_data and type_quote (now in the Field class)
ha_federated.cc:
moved quote_data and type_quote to field class
field.h:
new methods quote_data and needs_quotes declared
field.cc:
new field class methods quote_data and needs_quotes (per Monty's request)
federated.test:
more tests, joins, index tests
have_federated_db.require:
new name of federated system var
federated.result:
new test results for federated handler
have_federated_db.inc:
changed name of variable in test due to change in vars
sql_analyse.cc:
over-ridden append_escaped to take (String *, char *, uint) per requirements of 'create_where_from_key' method in federated handler.
mysql_priv.h:
define over-ridden append_escaped to take arguments from 'create_where_from_key' method in federated handler
ha_federated.cc:
implemented "create_where_from_key" to deal properly with two-byte prefix and multi keys. Initial testing shows it works, but I still need to move quoting to field class and also look at changes per Segei's suggestions.
sql/mysql_priv.h:
define over-ridden append_escaped to take arguments from 'create_where_from_key' method in federated handler
sql/sql_analyse.cc:
over-ridden append_escaped to take (String *, char *, uint) per requirements of 'create_where_from_key' method in federated handler.
mysql-test/include/have_federated_db.inc:
changed name of variable in test due to change in vars
mysql-test/r/federated.result:
new test results for federated handler
mysql-test/r/have_federated_db.require:
new name of federated system var
mysql-test/t/federated.test:
more tests, joins, index tests
sql/field.cc:
new field class methods quote_data and needs_quotes (per Monty's request)
sql/field.h:
new methods quote_data and needs_quotes declared
sql/ha_federated.cc:
moved quote_data and type_quote to field class
sql/ha_federated.h:
removed quote_data and type_quote (now in the Field class)
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
-New tests and results
logging_ok:
Logging to logging@openlogging.org accepted
ha_federated.h:
removed quote_data and type_quote (now in the Field class)
ha_federated.cc:
moved quote_data and type_quote to field class
field.h:
new methods quote_data and needs_quotes declared
field.cc:
new field class methods quote_data and needs_quotes (per Monty's request)
federated.test:
more tests, joins, index tests
have_federated_db.require:
new name of federated system var
federated.result:
new test results for federated handler
have_federated_db.inc:
changed name of variable in test due to change in vars
sql_analyse.cc:
over-ridden append_escaped to take (String *, char *, uint) per requirements of 'create_where_from_key' method in federated handler.
mysql_priv.h:
define over-ridden append_escaped to take arguments from 'create_where_from_key' method in federated handler
ha_federated.cc:
implemented "create_where_from_key" to deal properly with two-byte prefix and multi keys. Initial testing shows it works, but I still need to move quoting to field class and also look at changes per Segei's suggestions.
into gw.mysql.r18.ru:/usr/home/ram/work/5.0.b6999
mysql-test/r/strict.result:
Auto merged
mysql-test/t/strict.test:
Auto merged
sql/field.cc:
Auto merged