Commit graph

8849 commits

Author SHA1 Message Date
unknown
5aa793f72b backport for #10568: Function 'LAST_DAY(date)' does not return NULL for invalid argument. 2005-06-24 14:04:48 +05:00
unknown
0cc6dd83c4 temporary tables of subquery in the from clause just skipped during processing QC tables (BUG#11522)
mysql-test/r/query_cache.result:
  queries with subquery in the FROM clause
mysql-test/t/query_cache.test:
  queries with subquery in the FROM clause
sql/sql_cache.cc:
  temporary tables of subquery in the from clause just skipped during processing QC tables
2005-06-23 20:06:35 +03:00
unknown
aa4ccff7f7 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
2005-06-23 19:06:35 +02:00
unknown
5d12a0bf49 Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/timka/mysql/src/4.1-virgin
2005-06-23 20:06:35 +03:00
unknown
d9a7e4e0dc Merge rurik.mysql.com:/home/igor/mysql-4.1
into rurik.mysql.com:/home/igor/dev/mysql-4.1-1
2005-06-23 10:06:35 -07:00
unknown
1093237174 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug10151
2005-06-23 19:06:34 +02:00
unknown
d06446af84 sql_parse.cc:
Fix for fix for bug #9728
  Error caused server hang on prepared insert ... select


sql/sql_parse.cc:
  Fix for fix for bug #9728
  Error caused server hang on prepared insert ... select
2005-06-23 21:06:33 +04:00
unknown
98253bd64d func_str.result, func_str.test:
Added a test case for bug #10124.
sql_select.h, item_subselect.cc, sql_select.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
field.cc:
  Fixed bug #10124.
  When ussuing a warning the store methods return 2 instead of 1 now.


sql/field.cc:
  Fixed bug #10124.
  When ussuing a warning the store methods return 2 instead of 1 now.
sql/sql_select.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
sql/item_subselect.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
sql/sql_select.h:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
mysql-test/t/func_str.test:
  Added a test case for bug #10124.
mysql-test/r/func_str.result:
  Added a test case for bug #10124.
2005-06-23 06:15:50 -07:00
unknown
9ec764c4ff Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mishka.local:/home/my/mysql-4.1
2005-06-23 14:04:11 +03:00
unknown
1abe8e6916 Merge mysql.com:/home/timka/mysql/src/4.1-virgin
into mysql.com:/home/timka/mysql/src/4.1-bug-11185
2005-06-23 11:04:40 +03:00
unknown
e4296f5868 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
an unsigned number, the method casts both the current value, and
the constant that we compare with to an unsigned number. As a
result if the constant we compare with is a negative number, it
wraps to some unsigned number, and the comparison is incorrect.

When the optimizer chooses the "range" access method, this problem
causes handler::read_range_next to reject the current key when the
upper bound key is a negative number because handler::compare_key
incorrectly considers the positive and negative keys to be equal.

The current patch does not correct the source of the problem in
Field_longlong::cmp because it is not easy to propagate sign
information about the constant at query execution time. Instead
the patch changes the range optimizer so that it never compares
unsiged fields with negative constants. As an added benefit,
queries that do such comparisons will execute faster because
the range optimizer replaces conditions like:
(a) (unsigned_int [< | <=] negative_constant) == FALSE
(b) (unsigned_int [> | >=] negative_constant) == TRUE
with the corresponding constants.
In some cases this may even result in constant time execution.


mysql-test/r/range.result:
  - Changed incorrect result of an old test
  - Added new results for BUG#11185
mysql-test/t/range.test:
  - Added new tests for BUG#11185
  - Deleted an old comment because now the problem is fixed
sql/opt_range.cc:
  Added a new optimization to the range optimizer where we detect that
  an UNSIGNED field is compared with a negative constant. Depending on
  the comparison operator, we know directly that the result of the
  comparison is either TRUE or FALSE for all input values, and we need
  not check each value.
  
  This optimization is also necessary so that the index range access
  method produces correct results when comparing unsigned fields with
  negative constants.
2005-06-23 10:56:44 +03:00
unknown
6a8945e332 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-4.1


sql/sql_base.cc:
  Auto merged
2005-06-22 20:59:34 +02:00
unknown
396ef56858 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug10151
2005-06-22 20:59:32 +02:00
unknown
256c99fdb2 item.h:
Fix for fix for bug#9728 decreased functionality in "on duplicate key update"
  Have to return false to set flag for whole expression.


sql/item.h:
  Fix for fix for bug#9728 decreased functionality in "on duplicate key update"
  Have to return false to set flag for whole expression.
2005-06-22 22:58:44 +04:00
unknown
19f51d3fa5 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/bug10589
2005-06-22 12:41:33 +02:00
unknown
a6c7fb455a Fix bug #9728 decreased functionality in "on duplicate key update"
Remove changes made by bug fix #8147. They strips list of insert_table_list to
only insert table, which results in error reported in bug #9728.
Added flag to Item to resolve ambigous fields reported in bug #8147.


sql/item.h:
  Fix bug#9728  decreased functionality in "on duplicate key update".
sql/item.cc:
  Fix bug#9728  decreased functionality in "on duplicate key update"
sql/sql_parse.cc:
  Fix bug#9728  decreased functionality in "on duplicate key update"
sql/sql_base.cc:
  Fix bug#9728  decreased functionality in "on duplicate key update".
sql/sql_yacc.yy:
  Fix bug#9728  decreased functionality in "on duplicate key update"
mysql-test/t/insert_select.test:
  Test case for bug#9728 Decreased functionality in "on duplicate key update".
mysql-test/r/insert_select.result:
  Test case for bug#9728 Decreased functionality in "on duplicate key update".
2005-06-22 07:18:42 +04:00
unknown
d785fc60ab BUG#10442 Minor changes from code review
mysql-test/r/rpl_multi_update3.result:
  Changes from code review
mysql-test/t/rpl_multi_update3.test:
  Changes from code review
sql/sql_parse.cc:
  Changes from code review
2005-06-21 15:40:58 -04:00
unknown
5031e9adc8 Merge mysql.com:/Users/emurphy/src/bk-clean/mysql-4.1
into  mysql.com:/Users/emurphy/src/work/mysql-4.1-bug10442
2005-06-21 14:28:55 -04:00
unknown
bedb96f2aa Restore creation of files for temporary tables in the tmpdir,
which was broken by an earlier bug fix. (Bug #11440)


sql/sql_table.cc:
  Restore code to generate temporary tables in
  tmpdir
2005-06-21 11:25:51 -07:00
unknown
a23bf16577 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  moonbone.local:/work/mysql-4.1-bug-10886


sql/sql_insert.cc:
  Auto merged
2005-06-21 22:25:49 +04:00
unknown
8e45c0572b Fix bug #10886 - INSERT ... SELECT ... ON DUPLICATE KEY UPDATE produces bad results
Temporary field wasn't restored to default values after ON DUPLICATE KEY
 UPDATE event, which results in wrong data being inserted in new record.


sql/sql_insert.cc:
  Fix bug #10886 - INSERT ... SELECT ... ON DUPLICATE KEY UPDATE produces bad results
mysql-test/t/insert_select.test:
  Test case for bug #10886 - INSERT ... SELECT ... ON DUPLICATE KEY 
  UPDATE produces bad results
mysql-test/r/insert_select.result:
  Test case for bug #10886 - INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 
  produces bad results
2005-06-21 22:24:58 +04:00
unknown
280b1c33e3 Cleanup during review of new code
Fixed wrong allocation that could cause buffer overrun when using join cache


myisam/mi_open.c:
  Fixed indentation
mysql-test/r/lowercase_table2.result:
  Drop tables and databases used in the test
mysql-test/t/lowercase_table2.test:
  Drop tables and databases used in the test
mysys/my_fopen.c:
  Cleanup of comments and parameter names
  Simple optimization
  Removed compiler warnings
sql/field.cc:
  Fixed wrong allocation that could cause buffer overrun
sql/mysqld.cc:
  Removed not needed code
sql/set_var.cc:
  Simply code
sql/sql_select.cc:
  Use int2store/int2korr to store length of cached VARCHAR fields
  (Not dependent on type and faster code as we avoid one possible call)
2005-06-21 18:18:58 +03:00
unknown
9f4db56284 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into rurik.mysql.com:/home/igor/mysql-4.1
2005-06-21 06:19:06 -07:00
unknown
2af65b1d71 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-4.1


client/mysqltest.c:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
2005-06-21 14:24:13 +02:00
unknown
472a2b511c Merge rurik.mysql.com:/home/igor/mysql-4.1
into rurik.mysql.com:/home/igor/dev/mysql-4.1-1
2005-06-21 04:31:07 -07:00
unknown
7b1ec02732 group_by.result, group_by.test:
Added a test case for bug #11295.
item_buff.cc:
  Fixed bug #11295.
  This a correction for the patch of bug #11088 that takes into
  account a possible NULL values of the BLOB column.


sql/item_buff.cc:
  Fixed bug #11295.
  This a correction for the patch of bug #11088 that takes into
  account a possible NULL values of the BLOB column.
mysql-test/t/group_by.test:
  Added a test case for bug #11295.
mysql-test/r/group_by.result:
  Added a test case for bug #11295.
2005-06-21 04:24:21 -07:00
unknown
06b1e94109 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
2005-06-21 10:35:22 +02:00
unknown
bcec3fa575 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/Users/kent/mysql/bk/mysql-4.1
2005-06-20 21:25:54 +02:00
unknown
36dcc209b6 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into rurik.mysql.com:/home/igor/mysql-4.1
2005-06-20 10:52:38 -07:00
unknown
15b113e186 group_by.result:
Added  a test case for bug #11385.
group_by.test:
  Added  a test case for bug #11385.
field.h:
  Fixed bug #11385.
  The bug was due to not defined method decimals for the class
  Field_datetime.


sql/field.h:
  Fixed bug #11385.
  The bug was due to not defined method decimals for the class
  Field_datetime.
mysql-test/t/group_by.test:
  Added  atest case for bug #11385.
mysql-test/r/group_by.result:
  Added  a test case for bug #11385.
2005-06-20 10:49:04 -07:00
unknown
9e78db81b0 Fix crash when an entry was added to the mysql.tables_priv
table with an empty hostname. (Bug #11330)


mysql-test/r/grant.result:
  Update results
mysql-test/t/grant.test:
  Add new regression test
sql/sql_acl.cc:
  Don't call strlen() on a NULL pointer.
2005-06-20 10:21:35 -07:00
unknown
0f5b946ccf Makefile.am:
Corrected dependency for "lex_hash.h", to avoid occasional make failure


sql/Makefile.am:
  Corrected dependency for "lex_hash.h", to avoid occasional make failure
2005-06-20 18:03:30 +02:00
unknown
84da8b22d5 ha_ndbcluster.cc:
Added CR for readability


sql/ha_ndbcluster.cc:
  Added CR for readability
2005-06-20 17:17:44 +02:00
unknown
b8cbed7c36 Added comment to store_lock 2005-06-20 17:16:22 +02:00
unknown
e0e1adc329 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
2005-06-20 16:13:34 +02:00
unknown
2c7095c82e Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into igor-inspiron.creware.com:/home/igor/mysql-4.1


sql/sql_select.cc:
  Auto merged
2005-06-20 06:13:30 -07:00
unknown
79444fa535 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-bg11060
2005-06-20 16:07:36 +04:00
unknown
78e6794b63 Fix for bug #11060 "Server crashes on re-execution of prepared
INSERT ... SELECT with UNION" (reviewed version).

Altough bug manifest itself only starting from 5.0 it is better to
apply fix to 4.1 to keep some assumptions true and make code more
future-proof.


mysql-test/r/ps.result:
  Added test case for bug #11060 "Server crashes on re-execution of
  prepared INSERT ... SELECT with UNION".
mysql-test/t/ps.test:
  Added test case for bug #11060 "Server crashes on re-execution of
  prepared INSERT ... SELECT with UNION".
sql/sql_insert.cc:
  select_insert::prepare():
    Item::fix_fields() methods operate assuming that LEX::current_select
    points to the select to which current item belongs. Thus
    during check_insert_fields() routine execution LEX::current_select
    should point ot the first select in query since this is the
    select with which items in insert list is associated.
    But if we have INSERT SELECT UNION SELECT type of query
    LEX::current_select will point to the fake_select_lex instead
    since select_insert::prepare() is called during processing of JOIN
    which corresponds to this select_lex.
    So we have set LEX::current_select before calling check_insert_fields()
    and restore it afterwards.
2005-06-20 16:07:00 +04:00
unknown
29397de1e0 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/bug10365


sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2005-06-20 13:08:45 +02:00
unknown
ef920b2879 Fix for BUG#10151: In Item_func_case::find_item don't assume that parameter str != &(this->str_value)
mysql-test/r/case.result:
  Testcase for BUG#10151
mysql-test/t/case.test:
  Testcase for BUG#10151
2005-06-20 11:43:38 +02:00
unknown
f258d561eb Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1


sql/ha_ndbcluster.cc:
  Auto merged
2005-06-20 09:37:31 +02:00
unknown
1bc23847bf ha_ndbcluster.cc:
remove typecheck in ndb handler not needed


sql/ha_ndbcluster.cc:
  remove typecheck in ndb handler not needed
2005-06-20 07:53:53 +02:00
unknown
2e0ac6d642 BUG#10589: des_encrypt functionality always return NULL
- Push warnings if des_encrypt or des_descrypt function fails because of out of resources or wrong params.
 - Push warning if des_encrypt or des_decrypt function is used when server is missing support for openssl.
 - Add test func_encrypt_nossl that is tun when the server is missing support for openssl. 


mysql-test/r/func_encrypt.result:
  Add tests for use of des_* function with invalid parameters
mysql-test/t/func_encrypt.test:
  Add tests for use of des_* function with invalid parameters
sql/item_strfunc.cc:
  Push warning if invalid paremeters are used
  Push warning if out of resources
  Push warning if user tries to use des_* function when the server has been compiled without support for openssl.
2005-06-17 18:07:46 +02:00
unknown
9a27672396 Fix spurious permissions problem when CONVERT_TZ() is used
in a multi-table update query. (Bug #9979)


mysql-test/r/timezone_grant.result:
  Add new results
mysql-test/t/timezone_grant.test:
  Add new test
sql/sql_parse.cc:
  Make sure to check lex->time_zone_tables_used to determine if
  we are using additional tables.
2005-06-17 08:56:04 -07:00
unknown
98ff15531f BUG#10442 Fix replication slave crash when a query with multiupdate and
subselects is used.


sql/sql_parse.cc:
  BUG#10442 Fix crash on replication slave by making sure that table list
  is filled out before it is used.
2005-06-17 11:15:29 -04:00
unknown
5b50ea27ad Fix for bug#10936: Cluster engine shows wrong key value for duplicate key error 2005-06-17 14:45:54 +02:00
unknown
6d41b42e1b Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into rurik.mysql.com:/home/igor/mysql-4.1
2005-06-17 03:56:24 -07:00
unknown
6de6d3ad5c sql_select.cc:
fixed 64bit bug in lenght store/retrive in cache


sql/sql_select.cc:
  fixed 64bit bug in lenght store/retrive in cache
2005-06-17 12:36:09 +02:00
unknown
c0484a301f Fix Bug#9334 "PS API queries in log file" and
Bug#8367 "low log doesn't gives complete information about prepared 
statements"
Implement status variables for prepared statements commands (a port of
the patch by Andrey Hristov).
See details in comments to the changed files.
No test case as there is no way to test slow log/general log in 
mysqltest.


mysql-test/r/ps_grant.result:
  Now execute is logged with tag 'Execute' (changed result file).
sql/mysql_priv.h:
  - remove obsolete macro.
  - add declarations for new status variables.
  - export function log_slow_statement, which now is used in sql_prepare.cc
sql/mysqld.cc:
  Add status variables for prepared statements API: now we record
  mysql_stmt_close, mysql_stmt_reset, mysql_stmt_prepare, mysql_stmt_execute
  mysql_stmt_send_long_data, PREPARE, EXECUTE, DEALLOCATE.
sql/sql_parse.cc:
  - account DEALLOCATE prepare as a Com_stmt_close command (close of a
  prepared statement).
sql/sql_prepare.cc:
  - fix a bug in SQL syntax for prepared statements + logging:
    if we use --log and EXECUTE stmt USING @no_such_variable;, the
    server crashed because the old code assumed that the variable 
    returned by get_var_with_binlog is never NULL.
  - account statistics for 
    mysql_stmt_{prepare,execute,close,reset,send_long_data} in
    Com_stmt_{prepare,execute,close,reset,send_long_data} correspondingly.
  - log slow statements into the slow log early, when thd->query
    points to a valid (with expanded placeholder values) query.
    The previous version was logging it in sql_parse, when thd->query
    is empty. Prevent the server from logging the statement twice by 
    setting thd->enable_slow_log= FALSE.
  - now in case of EXECUTE stmt in SQL syntax for prepared statements the 
    general log gets two queries, e.g.
    Query    EXECUTE stmt USING @a, @b, @c
    Execute  INSERT INTO t1 VALUES (1, 2, 3)
    This makes the behavior consistent with PREPARE command, which
    also logs the statement twice.
2005-06-17 00:11:48 +04:00
unknown
51cd70da3d A fix for Bug#9141 "4.1 does not log into slow log
ALTER, OPTIMIZE and ANALYZE statements".
In 4.1 we disabled logging of slow admin statements. The fix adds an 
option to enable it back.
No test case (slow log is not tested in the test suite), but tested
manually.
+ post-review fixes (word police mainly).


sql/mysql_priv.h:
  - declaration for a new option
sql/mysqld.cc:
  Add server option '--log-slow-admin-statements' to log slow
  optimize/alter/etc statements to the slow log if it's enabled.
  Add warnings that this option works only if the slow log is open.
sql/sql_class.h:
  Rename 'thd->slow_command' to thd->enable_slow_log (negates
  the meaning of this variable, and so resolves the need to negate
  value opt_log_slow_admin_statements when setting it).
sql/sql_parse.cc:
  Implement optional logging of administrative statements in the slow log.
2005-06-16 23:05:38 +04:00