Commit graph

73869 commits

Author SHA1 Message Date
Vladislav Vaintroub
e91bbca5fb Initial threadpool implementation for MariaDB 5.5 2011-12-08 19:17:49 +01:00
unknown
5e7b949e61 Fix crash due to wrong my_error() call (5.5 after-merge fix). 2011-12-05 13:17:54 +01:00
Sergei Golubchik
cff0175d2a install my_valgrind.h too 2011-12-02 16:29:02 +01:00
Vladislav Vaintroub
c4f5908a79 Fixed crashes found by application verifier:
- leaking mutex in lf_hash_destroy
- pthread_getspecific() before pthread_key_create() in my_thread_var_dbug()
(called by static C++ object constructors called in sys_vars)
- perfschema destroys mutexes that were  not created.
2011-12-02 15:35:05 +01:00
Vladislav Vaintroub
970bc8cd0b fix failing test cases in 5.5 main suite 2011-12-02 14:38:05 +01:00
Vladislav Vaintroub
5beb816a7e Make it possible to compile without SAFEMALLOC in debug builds
Default to no SAFEMALLOC on Windows, because C runtime malloc
has this functionslity already
2011-12-02 14:35:26 +01:00
Vladislav Vaintroub
5d67eb6b5c Fix Aria unit tests on Windows.
Replace statements connected with bitwise OR with series of "if"s.
The later is guaranteed to execute in order, bitwise OR does not have
specific order for statement execution.
2011-11-30 00:26:32 +01:00
Vladislav Vaintroub
25a9b33591 fix signing and packaging 2011-11-30 00:23:50 +01:00
Sergei Golubchik
ec38c1bbd7 small cleanup 2011-11-28 23:15:12 +01:00
Sergei Golubchik
b27d93f347 by default disable pbxt too 2011-11-28 18:20:51 +01:00
Sergei Golubchik
07209ea34b consistency fixes for mysqld --help 2011-11-28 17:48:19 +01:00
Sergei Golubchik
48b6861198 compilation failure on Solaris 2011-11-28 17:45:17 +01:00
Vladislav Vaintroub
8800cc9003 merge 2011-11-28 13:50:00 +01:00
Vladislav Vaintroub
835d8b6242 merge 2011-11-28 01:23:13 +01:00
Sergei Golubchik
ac8dd6beb9 merged 2011-11-27 17:50:50 +01:00
Sergei Golubchik
dfc1901e80 compilation fixes
cmake/maintainer.cmake:
  don't do -Werror just yet
config.h.cmake:
  according to MSDN PSAPI_VERSION should be 1 in a portable application
mysys/my_thr_init.c:
  first, reset THR_KEY_mysys, and then free dbug data,
  because dbug data are automacially created on the next dbug call,
  unless THR_KEY_mysys is null.
2011-11-27 17:50:08 +01:00
Sergei Golubchik
effed09bd7 5.3->5.5 merge 2011-11-27 17:46:20 +01:00
Vladislav Vaintroub
7e55deea9b Fix MariaDB wasnings on Windows (rmdir not defined unless direct.h is included) 2011-11-26 23:08:46 +01:00
Vladislav Vaintroub
64e308e28d Fix build and packaging on Windows:
- build executables we have in 5.3 (mysql_install_db.exe, mysq_upgrade_service.exe, upgrade wizard), and MSI

- add some missing headers to windows specific source files. 
This needs to be done since 5.5 is using WIN32_LEAN_AND_MEAN preprocessor constant thus windows.h 
no more includes whiole Windows

- do not deliver perl scripts  (mysql_install_db.pl & friends)  -they do not work, are not documented, and we 
have native executables for this functionality. do not pack echo.exe, replace.exe  into MSI, they 
are not needed. Do not build resolveip on Windows, it is not used.

- precache results of  of system checks in cmake/os/WindowsCache.cmake (like it is alreay done for  majority of tests
to speed up cmake run with VS)

- make feedback plugin DEFAULT on Windows (so MSI works if user enables plugin), 
fix null pointer access in PSI_register
2011-11-26 23:07:53 +01:00
Vladislav Vaintroub
6be24a771a Avoid mysqld dependency on libaio.so by linking xtradb statically to libaio.
A variable XTRADB_PREFER_STATIC_LIBAIO should be set to 1 (or TRUE
 or ON) for static linking.

Even if mysqld can avoid dependency on shared libaio, shared libraries 
libmysqld.so or ha_innodb.so cannot link without it.

Given that the patch primarily addresses building tar.gz package, and 
shared libraries mentioned above deemed less important than mysqld
executable, we accept shared lib dependency on libaio.so
2011-11-25 20:50:14 +01:00
Vladislav Vaintroub
74da49894f fix linking on Windows (iphlpapi missing) 2011-11-23 19:29:39 +01:00
Vladislav Vaintroub
a0331fecf9 Fix package names, by removing a trailing "-MariaDB" ,as we already have leading "mariadb-".
Hardcode -MariaDB suffix for MYSQL_SERVER_VERSION in mysql_version.h
2011-11-23 19:02:08 +01:00
Sergei Golubchik
7189f09aa6 compiler warnings/errors 2011-11-23 18:25:07 +01:00
Sergei Golubchik
feba65a554 merged 2011-11-22 18:51:33 +01:00
Sergei Golubchik
b81d8b2e5a Add support for signed sysvars.
Make max_user_connections signed, with min allowed value being -1.
2011-11-22 18:05:34 +01:00
Sergei Golubchik
d2755a2c9c 5.3->5.5 merge 2011-11-22 18:04:38 +01:00
Alexey Botchkov
12e60c4989 Small fixes to make compilers happy. 2011-11-22 17:57:33 +04:00
Alexey Botchkov
ae0ebd8a6b Windows has no 'nearbyint' in libraries.
So removed.
2011-11-22 17:32:05 +04:00
unknown
eabcd6205c Merge default materialization=on. 2011-11-22 12:06:46 +02:00
unknown
3e7bcc80c1 Correct test file. 2011-11-21 22:16:01 +02:00
unknown
b9d6bff883 Fix test to pass on 32-bit machines by reducing
the depth of subquery nestedness to less than 31
(sizeof(ulong)-1).
2011-11-21 22:01:47 +02:00
Igor Babaev
76d03e7af5 Merge. 2011-11-21 11:21:30 -08:00
Igor Babaev
b2e5a3f603 Fixed LP bug #887496.
This bug in the function Loose_scan_opt::check_ref_access_part1 could lead
to choosing an invalid execution plan employing a loose scan access to a
semi-join table even in the cases when such access could not be used at all.
This could result in wrong answers for some queries with IN subqueries.
2011-11-21 09:06:35 -08:00
unknown
f8dbbc010f Fix bug lp:833777
Analysis:
The optimizer distinguishes two kinds of 'constant' conditions:
expensive ones, and non-expensive ones. The non-expensive conditions
are evaluated inside make_join_select(), and if false, already the
optimizer detects empty query results.

In order to avoid arbitrarily expensive optimization, the evaluation of
expensive constant conditions is delayed until execution. These conditions
are attached to JOIN::exec_const_cond and evaluated in the beginning of
JOIN::exec. The relevant execution logic is:

JOIN::exec()
{
  if (! join->exec_const_cond->val_int())
  {
    produce an empty result;
    stop execution
  }
  continue execution
  execute the original WHERE clause (that contains exec_const_cond)
 ...
}

As a result, when an expensive constant condition is
TRUE, it is evaluated twice - once through
JOIN::exec_const_cond, and once through JOIN::cond.
When the expensive constant condition is a subquery,
predicate, the subquery is evaluated twice. If we have
many levels of subqueries, this logic results in a chain
of recursive subquery executions that walk a perfect
binary tree. The result is that for subquries with depth N,
JOIN::exec is executed O(2^N) times.

Solution:
Notice that the second execution of the constant conditions
happens inside do_select(), in the branch:
if (join->table_count == join->const_tables) { ... }
In this case exec_const_cond is equivalent to the whole WHERE
clause, therefore the WHERE clause has already been checked in
the beginnig of JOIN::exec, and has been found to be true.
The bug is addressed by not evaluating the WHERE clause if there
was exec_const_conds, and it was TRUE.
2011-11-21 18:00:55 +02:00
unknown
e9a6502f26 Merge enabling materialization=on by default. 2011-11-21 17:48:25 +02:00
Igor Babaev
0693f4d916 Corrected the patch that made the optimizer switch for index condition pushdown
set to 'on' by default.
2011-11-21 07:00:14 -08:00
unknown
f0d9908fc3 Merge enabling of materialization=on by default with main tree. 2011-11-21 16:56:32 +02:00
Igor Babaev
af3d1da31d Made the optimizer switch for index condition pushdown set to 'on' by default. 2011-11-21 05:16:16 -08:00
Igor Babaev
3c496ea9ad Fixed LP bug #892725.
A non-first execution of a prepared statement missed a call of the
TABLE_LIST::process_index_hints() method in the code of the function
setup_tables().
At some scenarios this could lead to the choice of a quite inefficient
execution plan for the base query of the prepared statement.
2011-11-20 04:53:07 -08:00
Alexey Botchkov
5a4c91003a Fix for bug #809849 spatial operations must be KILL-able.
Checks for thd->killed state added to the long loops in geometry calculations.

per-file comments:
  sql/gcalc_slicescan.cc
Fix for bug #809849 spatial operations must be KILL-able.
        checks for TERMINATED_STATE added.
  sql/gcalc_slicescan.h
Fix for bug #809849 spatial operations must be KILL-able.
        defines added to include checks for termination in the
        library.
  sql/gcalc_tools.cc
Fix for bug #809849 spatial operations must be KILL-able.
        checks for TERMINATED_STATE added.
  sql/gcalc_tools.h
Fix for bug #809849 spatial operations must be KILL-able.
        TERMINATED_STATE pointers added.
  sql/item_geofunc.cc
Fix for bug #809849 spatial operations must be KILL-able.
  sql/item_geofunc.h
Fix for bug #809849 spatial operations must be KILL-able.
2011-11-20 12:30:43 +04:00
Igor Babaev
8ea398292e Fixed LP bug #891995.
This bug in the function setup_semijoin_dups_elimination() could 
lead to invalid choice of the sequence of tables for which semi-join
duplicate elimination was applied.
2011-11-18 13:32:21 -08:00
Igor Babaev
6ed9c13643 Fixed LP bug #891953.
Due to this bug the function SEL_IMERGE::or_sel_tree_with_checks()
could build an inconsistent merge tree if one of the SEL_TREEs in the
resulting index merge happened to contain a full key range.
This could trigger an assertion failure.
2011-11-18 09:35:51 -08:00
Alexey Botchkov
fbb22ca4a7 unused variable removed. 2011-11-18 18:15:06 +04:00
Alexey Botchkov
47022d2ee2 GCALC_CHECK_WITH_FLOAT disabled.
That's not a good option for an onrdinary user.
2011-11-18 17:56:42 +04:00
Igor Babaev
3433cf3e4f Fixed LP bug #800184.
The function key_and() erroneously called SEL_ARG::increment_use_count()
when SEL_ARG::incr_refs() should had been called. This could lead to
wrong values of use_count for some SEL_ARG trees.
2011-11-18 04:41:25 -08:00
Igor Babaev
e31887b592 Merge. 2011-11-17 08:00:22 -08:00
Alexey Botchkov
9cde33f9ef small fixes to make compiler happy. 2011-11-17 18:03:47 +04:00
Alexey Botchkov
b525abefb2 test results updated. 2011-11-17 17:12:58 +04:00
Igor Babaev
6bb5bc2044 Corrected the fix for bug 891052. 2011-11-17 03:24:20 -08:00
Alexey Botchkov
b2b035134f merging. 2011-11-17 14:27:00 +04:00