Commit graph

27935 commits

Author SHA1 Message Date
Michael Widenius
6d8d6afb64 Merge with main 5.3 2011-06-11 11:09:17 +03:00
Michael Widenius
3516b4b5d1 Merge with 5.2 2011-06-10 12:09:21 +03:00
Sergey Petrunya
9c11646fcd [No BUG#] end_tab_idx==-1 passed as parameter to JOIN::get_partial_cost_and_fanout()
- Handle the case when the subquery's join is degenerate and so has zero tables.
2011-06-10 12:36:06 +04:00
Michael Widenius
13f55aac67 A bit better fix for tmp-table problem
Fixed reference to not initialized memory detected by valgrind

sql/sql_select.cc:
  A bit better fix for tmp-table problem:
  Use only dynamic_record format for group by and distinct.
storage/maria/ma_create.c:
  DYNAMIC_RECORD format doesn't pack VARCHAR fields.
  This change fixes a non-fatal uninitialized memory copy.
2011-06-10 02:02:58 +03:00
Michael Widenius
97e834e151 Use dynamic row format when creating temporary tables without sumary fields.
The reason for this is that BLOCK_RECORD format is not good when there is a lot of duplicated keys as it first writes the data (to get the row position) and
then writes the key (and thus checks for duplicates).
2011-06-09 20:22:03 +03:00
Michael Widenius
3600e6b81c Fixed problem that global status variables 'bytes_recieved' and 'binlog_bytes_written' where not correctly updated 2011-06-09 16:17:45 +03:00
Michael Widenius
60bd2133d7 Fixed compile failure when we don't use system zlib
Fixed crash when setting query_cache_type to 0.

client/Makefile.am:
  Added zlib include (needed by checksum.c)
sql/set_var.cc:
  Updated call to disable_query_cache()
sql/sql_cache.cc:
  Don't give warning if we start mysqld with --query_cache_type=0 --query_cache-size=0
  Fixed crash when setting query_cache_type to 0 (we shouldn't call query_cache.disable_query_cache() when there is no current_thd)
sql/sql_cache.h:
  Added THD to disable_query_cache()
2011-06-09 13:35:01 +03:00
Michael Widenius
8d7f810894 Upgraded to latest handlersocket code. This fixed LP:766870 "Assertion `next_insert_id == 0' failed with handlersocket"
sql/handler.cc:
  Added DBUG_ code
2011-06-07 14:19:49 +03:00
Michael Widenius
2740edcf56 Fixed that mysqld --no-defaults --help --verbose doesn't give a lot of irrelevant error messages.
sql/mysql_priv.h:
  Make opt_help global
sql/mysqld.cc:
  Don't give (double) warnings about lower case file systems if --help is given.
  Don't give warning about non existing data directory if --help is given.
sql/sql_plugin.cc:
  Give a better warning if --help is used and plugin table doesn't exists
2011-06-07 10:54:37 +03:00
Michael Widenius
370f79e389 Fixed strict alias problem by replacing = with memcpy() 2011-06-07 10:29:08 +03:00
Igor Babaev
059aff15cd Fixed LP bug #784441.
The code that added semi-join transformations missed checking
the state of the fixed flag for the items built with the
and_items function before calls of the fix_fields method.
This could lead to an abort failure when the first argument
of and_items() happened to be NULL.
2011-06-06 15:50:46 -07:00
Michael Widenius
7e04f7c8fb Fixed that SHOW COLUMNS for a virtual persistent column shows 'PERSISTENT' instead of 'VIRTUAL'
Strict mode now gives error if one tries to update a virtual column.

mysql-test/suite/vcol/r/vcol_column_def_options_innodb.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_column_def_options_myisam.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_keys_innodb.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_keys_myisam.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_misc.result:
  Added new test for 'show columns' and error handling when trying to update a virtual column.
mysql-test/suite/vcol/t/vcol_misc.test:
  Added new test for 'show columns' and error handling when trying to update a virtual column.
sql/sql_base.cc:
  Strict mode now gives error if one tries to update a virtual column.
sql/sql_show.cc:
  Show PERSISTENT instead of VIRTUAL for persistent columns.
2011-06-06 17:25:01 +03:00
Michael Widenius
6ae42b75b8 Fixed lock sorting and lock check issues with thr_lock that caused warnings when running test suite.
Safety check that could cause core dump when doing create table with virtual column.

mysql-test/mysql-test-run.pl:
  Show also warnings from thr_lock (which starts with just Warning, not Warning:)
mysql-test/r/lock.result:
  Added test that showed not relevant warning when using table locks.
mysql-test/t/lock.test:
  Added test that showed not relevant warning when using table locks.
mysys/thr_lock.c:
  Fixed sorting of locks.
  (Old sort code didn't handle case where TL_WRITE_CONCURRENT_INSERT must be sorted before TL_WRITE)
  Added more information to check_locks warning output.
  Fixed wrong testing of multiple different write locks for same table.
sql/item_cmpfunc.cc:
  Safety check that could cause core dump when doing create table with virtual column.
2011-06-06 16:39:06 +03:00
Sergey Petrunya
f0f2ec3086 Buildbot fixes:
- make sp.test work both with and without query_cache (attempt 2)
- fix compile warning in make_sort_key(), as directed by SergeiG
2011-06-03 21:45:24 +04:00
Vladislav Vaintroub
668d79e87c Fixed compiler warning in central header file mysql_priv.h. 2011-06-03 15:06:13 +02:00
Sergey Petrunya
3fa0c9f468 Merge 2011-06-03 09:38:59 +04:00
Igor Babaev
33c8796beb Merge 2011-06-02 17:33:08 -07:00
Sergey Petrunya
9482e387e6 Change optimizer_use_mrr=auto|disable|force
to be optimizer_switch flags mrr=on|off and mrr_cost_based=on|off.
2011-06-03 00:25:58 +04:00
Sergey Petrunya
ebb130b189 BUG#787299: Valgrind complains on a join query with two IN subqueries
- Don't attempt to construct FirstMatch access method if we've 
  just figured three lines above that it can't be used (because join
  prefix doesn't have the needed tables), and so have set 
    pos->first_firstmatch_table= MAX_TABLES 
  Attempts to analyze join->positions[MAX_TABLES] caused valgrind warnings
2011-06-02 23:48:33 +04:00
Igor Babaev
8bf69ab7bf Corrected the previous patch concerning elimination of SQL_SELECT::original_cond.
Corrected the code from the patch for  LP bug 702322.
2011-05-31 09:39:35 -07:00
Sergey Petrunya
0cf912c23f - Remove compiler warning
- Remove garbage comments
2011-05-30 11:19:40 +04:00
Sergey Petrunya
922830830a Merge 5.3-main -> MWL#90 2011-05-30 10:51:41 +04:00
Igor Babaev
5dc9a53d19 Eliminated the member original_cond from the class SQL_SELECT
introduced at the latest merge 5.1->5.2->5.3.
It is basically not needed since if SQL_SELECT::pre_idx_push_select_cond 
is not NULL then SQL_SELECT::original_cond would point to the same condition
as SQL_SELECT::pre_idx_push_select_cond. Otherwise SQL_SELECT::original_cond
would be equal to SQL_SELECT::cond.
2011-05-29 20:48:14 -07:00
Sergey Petrunya
037e16583e Remove garbage comments 2011-05-29 13:22:38 +04:00
Sergey Petrunya
5cd18326c2 Merge 5.3->main -> 5.3-mwl90 2011-05-29 12:58:44 +04:00
Sergey Petrunya
4efe046352 Update pbxt suite test results 2011-05-29 11:38:32 +04:00
Igor Babaev
8ce2e1bcbe Fixed the abort failure of a test case from vcol.vcol_misc.
The fix blocks execution of any constant sub-expressions of
the defining expressions for virtual columns when context
analysis if these expressions is performed.

Fixed a compiler warning.
2011-05-28 22:07:56 -07:00
Sergey Petrunya
ded7342daa - Update test results (trivial)
- Code cleanup: remove garbage comments
2011-05-29 01:47:24 +04:00
Sergey Petrunya
6f17421c27 Buildbot fixes:
- Don't call table_list->process_index_hints() for JTBM pseudo-tables
- Update test results
2011-05-29 01:24:36 +04:00
Sergey Petrunya
0b69585dec Buildbot fixes
- Update test results (checked)
- Fix compiler warning
2011-05-29 00:41:41 +04:00
Vladislav Vaintroub
1e1755be86 Fix gcc warning. 2011-05-28 19:28:39 +02:00
Sergey Petrunya
77c4c4d8ea post-merge fixes: get MWL#90 code to work with MWL#89's
way of processing prepared statements:
- conversion subquery_predicate -> TABLE_LIST is once per-statement
- However, the code must take into account that materialized temptable
  is dropped and re-created on each execution (the tricky part is that 
  at start of n-th EXECUTE we have TABLE_LIST object but not its TABLE object)
- IN-equality is injected into WHERE on every execution.
2011-05-28 20:34:04 +04:00
Vladislav Vaintroub
b519f2b626 Fix compile errors and warnings and test errors introduced by microseconds push.
Also, change windows timespec definition to be Unix-ish - simplifies handling a lot.
2011-05-28 16:57:58 +02:00
Michael Widenius
2894d50e3e automatic merge with 5.3 2011-05-28 05:58:16 +03:00
Michael Widenius
bf33056ef9 automatic merge with 5.2 2011-05-28 05:17:24 +03:00
Michael Widenius
f197991f41 Merge with 5.1-microseconds
A lot of small fixes and new test cases.

client/mysqlbinlog.cc:
  Cast removed
client/mysqltest.cc:
  Added missing DBUG_RETURN
include/my_pthread.h:
  set_timespec_time_nsec() now only takes one argument
mysql-test/t/date_formats.test:
  Remove --disable_ps_protocl as now also ps supports microseconds
mysys/my_uuid.c:
  Changed to use my_interval_timer() instead of my_getsystime()
mysys/waiting_threads.c:
  Changed to use my_hrtime()
sql/field.h:
  Added bool special_const_compare() for fields that may convert values before compare (like year)
sql/field_conv.cc:
  Added test to get optimal copying of identical temporal values.
sql/item.cc:
  Return that item_int is equal if it's positive, even if unsigned flag is different.
  Fixed Item_cache_str::save_in_field() to have identical null check as other similar functions
  Added proper NULL check to Item_cache_int::save_in_field()
sql/item_cmpfunc.cc:
  Don't call convert_constant_item() if there is nothing that is worth converting.
  Simplified test when years should be converted
sql/item_sum.cc:
  Mark cache values in Item_sum_hybrid as not constants to ensure they are not replaced by other cache values in compare_datetime()
sql/item_timefunc.cc:
  Changed sec_to_time() to take a my_decimal argument to ensure we don't loose any sub seconds.
  Added Item_temporal_func::get_time() (This simplifies some things)
sql/mysql_priv.h:
  Added Lazy_string_decimal()
sql/mysqld.cc:
  Added my_decimal constants max_seconds_for_time_type, time_second_part_factor
sql/table.cc:
  Changed expr_arena to be of type CONVENTIONAL_EXECUTION to ensure that we don't loose any items that are created by fix_fields()
sql/tztime.cc:
  TIME_to_gmt_sec() now sets *in_dst_time_gap in case of errors
  This is needed to be able to detect if timestamp is 0
storage/maria/lockman.c:
  Changed from my_getsystime() to set_timespec_time_nsec()
storage/maria/ma_loghandler.c:
  Changed from my_getsystime() to my_hrtime()
storage/maria/ma_recovery.c:
  Changed from my_getsystime() to mmicrosecond_interval_timer()
storage/maria/unittest/trnman-t.c:
  Changed from my_getsystime() to mmicrosecond_interval_timer()
storage/xtradb/handler/ha_innodb.cc:
  Added support for new time,datetime and timestamp
unittest/mysys/thr_template.c:
  my_getsystime() -> my_interval_timer()
unittest/mysys/waiting_threads-t.c:
  my_getsystime() -> my_interval_timer()
2011-05-28 05:11:32 +03:00
Vladislav Vaintroub
9ace4da571 merge 2011-05-27 19:05:35 +02:00
Michael Widenius
73f78f7766 Fixed memory overrun in mysql_tzinfo_to_sql 2011-05-26 18:35:26 +03:00
Vladislav Vaintroub
192672d072 Fix line endings. 2011-05-26 13:42:22 +02:00
Sergey Petrunya
aa551f1b9e Post-merge fixes part#2 2011-05-26 15:01:26 +04:00
Sergey Petrunya
f0038da8f6 Post-merge fixes part #1. 2011-05-26 11:30:14 +04:00
Vladislav Vaintroub
decb9c639a Fixed sql_perror() to return appropriate error messages on Windows,
The error message is now based on GetLastError() rather than errno. 

Background: errno is C runtime specific and in many circumstances 
it is not set, e.g when using Win32 API or socket functions.
2011-05-26 02:01:47 +02:00
Vladislav Vaintroub
79afbf7646 On Windows, collect mysql error log with Windows Error Reporting.
This simplifies postmortem analysis for crashes reported via Winqual.
2011-05-26 00:37:08 +02:00
Sergey Petrunya
77b3b960b1 Merge MWL#90 with 5.3-main 2011-05-25 19:31:13 +04:00
unknown
8a314700f9 MWL#89 automatic merge with 5.3 2011-05-23 11:54:26 +03:00
unknown
742dfc92a2 MWL#89: Address review feedback (by Sergey Petrunia)
mysql-test/r/subselect4.result:
  Moved test case for LP BUG#718593 into the correct test file subselect_mat_cost_bugs.test.
mysql-test/t/subselect4.test:
  Moved test case for LP BUG#718593 into the correct test file subselect_mat_cost_bugs.test.
2011-05-23 10:56:05 +03:00
Sergei Golubchik
306ed65302 unix_timestamp() and from_unixtime() supports microseconds.
unix_timestamp() and time_to_sec() are hybrid items,
  returning integer or double depending on the argument.
2011-05-22 11:58:48 +02:00
Sergei Golubchik
dda9577d55 comments 2011-05-21 18:41:56 +02:00
Sergei Golubchik
7c459960ec db_low_byte_first is gone 2011-05-20 23:56:13 +02:00
Michael Widenius
f610296d98 Changed MariaDB error numbers to start from 1900 to not conflict with MySQL error numbers
extra/comp_err.c:
  Allow one to have multiple start-error-numbers in the same error.txt file.
  Generate 'empty' error strings for the missing error numbers in the errmsg.sys file
mysql-test/r/bigint.result:
  Update results to use new error numbers
mysql-test/r/dyncol.result:
  Update results to use new error numbers
mysql-test/r/func_math.result:
  Update results to use new error numbers
mysql-test/r/func_str.result:
  Update results to use new error numbers
mysql-test/r/plugin.result:
  Update results to use new error numbers
mysql-test/r/table_options.result:
  Update results to use new error numbers
mysql-test/r/type_newdecimal.result:
  Update results to use new error numbers
mysql-test/r/warnings.result:
  Update results to use new error numbers
mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result:
  Update results to use new error numbers
mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result:
  Update results to use new error numbers
mysql-test/suite/vcol/r/vcol_misc.result:
  Update results to use new error numbers
sql/derror.cc:
  Ensure we don't read a errmsg.sys with a missing required error message;  This change was needed as errmsg.sys may now contain empty error messages between the MySQL and MariaDB error messages.
  If error message file didn't exist and we have not read one in the past, don't continue.
  Give better error message if the errmsg.sys header has changed.
sql/share/errmsg.txt:
  Create new section, starting from 1900, for MariaDB error messages
2011-05-21 00:46:18 +03:00