1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-02 14:22:51 +03:00
Commit Graph

76778 Commits

Author SHA1 Message Date
e59e529635 Merge 2013-03-26 00:11:50 -07:00
1009832c13 Added histogams for table columns. 2013-03-25 23:48:29 -07:00
4eb245f030 Correction for the previous fix. 2013-03-20 01:35:05 -07:00
8ab81843cd Fixed some bugs in the function that calculated the selectivity
of the table conditions.
2013-03-20 01:00:25 -07:00
aab3c9febc Fixed a typo that caused a wrong calculation of the selectivity for
pushed down condtions.
2013-03-17 12:02:11 -07:00
fc1c8ffdad The pilot patch for mwl#253. 2013-03-11 07:44:24 -07:00
938d47dcdc Automatic merge 2013-02-27 23:01:33 +02:00
e3ac306157 [NOT] EXISTS to IN transformation. 2013-02-26 01:20:17 +02:00
7042dd38c6 Fixed BUG#51763 Can't delete rows from MEMORY table with HASH key
mysql-test/suite/heap/heap.result:
  Added test case
mysql-test/suite/heap/heap.test:
  Added test case
storage/heap/hp_delete.c:
  Fixed that we don't change order of keys for the current key when we delete them from the hash table.
  Fixed that 'current_hash_ptr' is correct after heap_delete_key().
  Don't "reset current_hash_ptr" on delete; This will improve time a lot for delete of rows when not all rows matches the search criteria.
2013-02-15 20:25:27 +02:00
a555ceb2fb Fix for MDEV-4149, backport from 10.0:
committer: Sergei Golubchik <sergii@pisem.net> 
    fix for a valgrind builds. 
    my_alloca() cannot have MY_THREAD_SPECIFIC, because can be used 
    outside of the THD context.
2013-02-08 02:21:23 +04:00
e648ff111a MDEV-537 Make multi-column non-top level subqueries to be executed via index (index/unique subquery)
instead of single_select_engine

This task changes the IN-EXISTS rewrite for multi-column subqueries
"(a, b) IN (select b, c ...)" to work in the same way as for
single-column subqueries "a IN (select b ...) with respect to the
injection of NULL-rejecting predicates.
 
More specifically, the method
Item_in_subselect::create_row_in_to_exists_cond()
adds Item_is_not_null_test and Item_func_trig_cond only if the left
IN operand can be NULL. Not having these predicates when not necessary,
makes it possible to rewrite the subquery into a "unique_subquery" or
"index_subquery" when there is a suitable index on the only
subquery table.
2013-02-07 15:33:24 +02:00
c7fa9fa72b set THR_THD key and current_thd=NULL as early as possible,
otherwise safemalloc and my_malloc_size_cb_func will use
current_thd before it's defined
2013-02-05 10:43:26 +01:00
1f85b1e069 MDEV-3873: post-merge fix. 2013-02-04 17:25:10 +02:00
330d3a7d1f missing cast added 2013-02-04 11:47:57 +01:00
ffdbdd7feb MDEV-4091: Dynamic columns C functions should be included in libmysqlclient 2013-02-04 11:31:05 +02:00
a5ad8d15f6 MDEV-4121: binlog.binlog_row_binlog sporadic test failure
Add a wait for binlog checkpoint to avoid thread scheduling
giving different binlog order at random.
2013-01-31 11:29:58 +01:00
5267af5e9e don't disable the cassandra engine by default 2013-01-30 22:33:25 +01:00
ea5632e9d7 MDEV-3984: Double free of Master_info * when CHANGE MASTER fails.
When CHANGE MASTER fails, it may or may not have already added
the Master_info * to the index. Implement logic that properly
handles removal and freeing in both cases.
2013-01-30 15:11:36 +01:00
6f2680a73c move cassandra-related code from cmake/cpack_rpm.cmake
to storage/cassandra/CMakeLists.txt
2013-01-29 19:14:43 +01:00
97d3402b9c buildbot fixes for storage/cassandra/CMakeLists.txt
storage/cassandra/CMakeLists.txt:
  more thourough CHECK_CXX_SOURCE_COMPILES test, that checks whether
  boost::shared_ptr can work with --fno-rtti
  
  don't install anything in INSTALL_SYSCONFDIR, if the latter is unset
2013-01-29 17:42:51 +01:00
0af4b6c6ee 5.5 merge 2013-01-29 15:10:47 +01:00
52fbe44fbb more changes for fedora18 2013-01-29 12:27:31 +01:00
78e47eb004 fix 'compat' rpm for fedora18 2013-01-29 10:46:05 +01:00
52747434e5 fix embedded build with for cmake 2.6.2 (older cmake could not handle IF(NOT MATCHES) 2013-01-28 17:24:50 +01:00
cf20de000b my_alloca() when it's mapped to malloc() works most certainly MY_THREAD_SPECIFIC 2013-01-28 15:06:36 +01:00
f65e5841d7 Fix for MDEV-3948, and backport of the following collection of fixes and backports
from MariaDB 10.0.
  
The bug in mdev-3948 was an instance of the problem fixed by Sergey's patch
in 10.0 - namely that the range optimizer could change table->[read | write]_set,
and not restore it.
  
revno: 3471
committer: Sergey Petrunya <psergey@askmonty.org>
branch nick: 10.0-serg-fix-imerge
timestamp: Sat 2012-11-03 12:24:36 +0400
message:
  # MDEV-3817: Wrong result with index_merge+index_merge_intersection, InnoDB table, join, AND and OR conditions
  Reconcile the fixes from:
  #
  # guilhem.bichot@oracle.com-20110805143029-ywrzuz15uzgontr0
  # Fix for BUG#12698916 - "JOIN QUERY GIVES WRONG RESULT AT 2ND EXEC. OR
  # AFTER FLUSH TABLES [-INT VS NULL]"
  #
  # guilhem.bichot@oracle.com-20111209150650-tzx3ldzxe1yfwji6
  # Fix for BUG#12912171 - ASSERTION FAILED: QUICK->HEAD->READ_SET == SAVE_READ_SET
  # and
  #
  and related fixes from: BUG#1006164, MDEV-376:
  
  Now, ROR-merged QUICK_RANGE_SELECT objects make no assumptions about the values
  of table->read_set and table->write_set.
  Each QUICK_ROR_SELECT has (and had before) its own column bitmap, but now, all 
  QUICK_ROR_SELECT's functions that care: reset(), init_ror_merged_scan(), and 
  get_next()  will set table->read_set when invoked and restore it back to what 
  it was before the call before they return.

  This allows to avoid the mess when somebody else modifies table->read_set for 
  some reason.
2013-01-28 15:13:39 +02:00
87de27e46b 5.3 merge 2013-01-28 13:36:05 +01:00
f08a404a6d MDEV-4091: Dynamic columns C functions should be included in libmysqlclient 2013-01-28 13:49:14 +02:00
34e84c227f 5.2 merge 2013-01-28 09:12:23 +01:00
5138bf4238 compilation error with -Wuninitialized -Werror 2013-01-28 09:10:01 +01:00
0791692bdc MDEV-3875 Wrong result (missing row) on a DISTINCT query with the same subquery in the SELECT list and GROUP BY
fix remove_dup_with_hash_index() and remove_dup_with_compare() to take NULLs into account
2013-01-26 22:33:18 +01:00
1c654f1602 Merge MDEV-3842, MDEV-3923, MDEV-3971 2013-01-26 22:23:27 +01:00
772bd60a1b Automatic merge 2013-01-26 01:59:27 +02:00
8199838a49 fix embedded 2013-01-25 23:34:46 +01:00
ea1d5943c5 Fixed MDEV-3890: Server crash inserting record on a temporary table after truncating it
The problem was that a temporary table was re-created as a non-temporary table.


mysql-test/suite/maria/truncate.result:
  Added test cases
mysql-test/suite/maria/truncate.test:
  Added test cases
sql/sql_truncate.cc:
  Mark that table to be created is a temporary table
storage/maria/ha_maria.cc:
  Ensure that temporary tables are not transactional.
2013-01-25 21:40:42 +02:00
db26ab8a3f Fix embedded build 2013-01-25 18:59:30 +01:00
76400fcc25 MDEV-3842, MDEV-3923 :
Miscellaneous workarounds for  drop-in compatibility problems with Linux distributions, arounf versioning of the 
MySQL 5.5 client shared library. There seems to be 3 different ways major distributions handle versioning

1. Fedora  (also Mageia, and likely  other Redhat descendants) way 
   old, 5.1 API functions are given version libmysqlclient_16
   new API functions  (client plugins, mysql_stmt_next ) are given version libmysqlclient_18
   some extra functions beyond API are exported.
   some functions are renamed.

2.Debian Wheezy way 
  all functions are given libmysqlclient_18 version

3. Ubuntu  way (or MySQL/MariaDB download packages)
  no versioning

UIp to this fix, MariaDB distributions did not have any versioning in the libraries, this rendered client library incompatible to distributions 
thus exchanging  distribution's libmysqlclient.so.18.0.0  with MariaDB's did not work nicely (anywhere but on Ubuntu)


THE FIX  
is to build libraries the same way as distributions do it 
- when building RPMs, use  same version script as Fedora does, Make sure to export extra-symbols, the same as Fedora exports.
- when building DEBs, use the same version script as Debian Wheezy
- do not use version scripts otherwise


Also, makes sure that extensions of  MySQL APIs (asynchronous client functionality) is exported by  the shared libraries.
2013-01-25 17:26:10 +01:00
e400450f2d 5.1 merge 2013-01-25 17:22:21 +01:00
8864940583 MDEV-3971 : problems installing MariaDB packages (conflicts with mysql-libs-5.5)
FIx  : make "shared" RPM obsolete/provide mysql-libs
2013-01-25 16:50:14 +01:00
298008dc4f The problem was that expression with field after transformation (on the first execution)
reached by fix_fields() (via reference) before row which it belongs to (on the second execution)
and fix_field for row did not follow usual protocol for Items with argument
(first check that the item fixed then call fix_fields).

Item_row::fix_field fixed.
2013-01-25 16:56:57 +02:00
7f208d3c35 MDEV-729 lp:998028 - Server crashes on normal shutdown in closefrm after executing a query from MyISAM table
don't write a key value into the record buffer - a key length can be larger then the record length.
2013-01-25 14:29:46 +01:00
326d2d56fe MDEV-759 lp:998340 - Valgrind complains on simple selects containing expression DAY(FROM_UNIXTIME(-1))
check item->null_value before using the result of item->val_int()
2013-01-25 12:26:35 +01:00
672b293860 5.3 merge
client/mysqltest.cc:
  make --error to work for --change_user errors
2013-01-25 11:24:42 +01:00
de10e21411 5.2 merge 2013-01-25 10:20:45 +01:00
9142c50b07 MDEV-4040 Replace deprecated SET OPTION syntax in mysqldump
mysqldump.c: s/SET OPTION/SET/
(OPTION was, hm, optional since 3.21, so there's no need to use SET OPTION even
in the old compatibility modes)
2013-01-25 10:19:35 +01:00
fa7d0c4fdf MDEV-3909 remote user enumeration
instead of returning Access denied on the incorrect user name,
emulate the complete failed logic procedure, possibly with
the change plugin packet.
2013-01-25 09:41:26 +01:00
82c022f2d5 report "using password: YES/NO" correctly for the COM_CHANGE_USER failures 2013-01-25 00:20:53 +01:00
bfc71e63a7 MDEV-3915 COM_CHANGE_USER allows fast password brute-forcing
allow only three failed change_user per connection.
successful change_user do NOT reset the counter

tests/mysql_client_test.c:
  make --error to work for --change_user errors
2013-01-25 00:17:39 +01:00
a48c2f461e fix ha_cassandra to compile 2013-01-24 17:52:25 +01:00
259a9404f3 workaround for incorrectly (?) generated code on
gcc 4.2.4-1ubuntu4 with -fPIE
(which is added automatically because of DEB_BUILD_HARDENING=1)
2013-01-24 17:24:21 +01:00