Commit graph

76902 commits

Author SHA1 Message Date
Michael Widenius
2dbce3d089 Fixed the CREATE TABLE IF EXIST generates warnings instead of errors
mysql-test/r/create.result:
  Updated test results
mysql-test/t/create.test:
  Updated test
sql/sql_base.cc:
  Use push_internal_handler/pop_internal_handler to avoid errors & warnings instead of clear_error
  Give a warnings instead of an error for CREATE TABLE IF EXISTS
sql/sql_parse.cc:
  Check if we failed because of table exists (can only happen from create)
sql/sql_table.cc:
  Check if we failed because of table exists (can only happen from create)
2012-12-17 22:34:56 +02:00
unknown
d7a0148758 MDEV-3818: Query against view over IS tables worse than equivalent query without view
Analysis:
The reason for the suboptimal plan when querying IS tables through a view
was that the view columns that participate in an equality are wrapped by
an Item_direct_view_ref and were not recognized as being direct column
references.

Solution:
Use the original Item_field objects via the real_item() method.
2012-12-17 15:23:58 +02:00
Michael Widenius
a334e87d65 Remember original table row pack type for ALTER TABLE if table is not copied. 2012-12-16 20:51:48 +02:00
Michael Widenius
b31909ffbb Removed lock wait timeout warning when using CREATE TABLE IF EXISTS
mysql-test/r/create.result:
  Added test case to show that CREATE TABLE also is not waiting if table exists.
mysql-test/t/create.test:
  Added test case to show that CREATE TABLE also is not waiting if table exists.
sql/sql_base.cc:
  Clear also warnings from acquire_locks if we retry.
2012-12-16 20:49:57 +02:00
Michael Widenius
33f3a11e2d Implemented MDEV-3941: CREATE TABLE xxx IF NOT EXISTS should not block if table exists.
- Added option to check_if_table_exists() to quickly check if table exists (either SHARE or .FRM)
- Extended lock_table_names() to not wait for meta data locks if CREATE IF NOT EXISTS is used.

mysql-test/r/create.result:
  New test case
mysql-test/t/create.test:
  New test case
sql/sql_base.cc:
  Added option to check_if_table_exists() to quickly check if table exists (either SHARE or .FRM)
  Extended lock_table_names() to not wait for meta data locks if CREATE IF NOT EXISTS is used.
sql/sql_base.h:
  Updated prototype
sql/sql_db.cc:
  Added extra argument to call to check_if_table_exists()
2012-12-16 16:13:17 +02:00
Michael Widenius
a6a8f12fa3 Automatic merge 2012-12-16 12:04:26 +02:00
Michael Widenius
4ba960569b Removed extra '+' from some lines (remains of old merge) 2012-12-14 20:21:50 +02:00
Harin Vadodaria
d8876ff2fb Bug#15912213: BUFFER OVERFLOW IN ACL_GET()
Description: A very large database name causes buffer
             overflow in functions acl_get() and
             check_grant_db() in sql_acl.cc. It happens
             due to an unguarded string copy operation.
             This puts required sanity checks before
             copying db string to destination buffer.
2012-12-06 17:02:09 +05:30
Igor Babaev
dd119466c3 Addressed the following issues from the review of the patch:
1. The PERSISTENT FOR clause of the ANALYZE command overrides
the setting of the system variable use_stat_tables: 
with this clause ANALYZE unconditionally collects persistent
statistics.
2. ANALYZE collects persistent statistics only for tables of
the USER category. So it never collects persistent statistics
for system tables.
2012-12-05 22:51:11 -08:00
Vladislav Vaintroub
c4b35f9279 MDEV-3918: myisamchk bogus error for files larger than 4GB.
The failure is caused by failing stat() call . C Runtime function stat() uses old struct with 32bit st_size member,
and since Visual Studio 2010 , it returns an error on st_size overflow (i.e on files larger than 4GB)

Fix replaces stat() by my_stat(), the later is backed by 64bit-able stat64().
2012-12-06 00:37:06 +01:00
unknown
0aad592f49 MDEV-3914 fix.
Fixed algorithm of detecting of first real table in view/subquery-in-the-FROM-clase.
2012-12-05 21:06:00 +02:00
Igor Babaev
81563081e5 Adjusted results for a test.
The adjustment was supposed to be done in the previous commit.
2012-12-05 09:57:34 -08:00
Gleb Shchepa
e5424d196b Bug #15948123: SERVER WORKS INCORRECT WITH LONG TABLE ALIASES
After-push cleanup: removal of unneeded assertions.
2012-12-05 20:47:21 +04:00
Gleb Shchepa
d538d394b8 Bug #15948123: SERVER WORKS INCORRECT WITH LONG TABLE ALIASES
Code in MDL subsystem assumes that identifiers of objects can't
be longer than NAME_LEN characters. This assumption was broken
when one tried to construct MDL_key based on table alias, which
can have arbitrary length. Since MDL_key's (and MDL locks) are
not really used for table aliases this patch changes code to
not initialize MDL_key object for table list element representing
aliases.
2012-12-05 17:24:45 +04:00
Igor Babaev
b110132516 Changed the names of the system tables for statistical data:
table_stat  -> table_stats
  column_stat -> column_stats
  index_stat  -> index_stats
to be in line with the names of innodb statistical tables 
from mysql-5.6: innodb_table_stats and innodb_index_stats.
2012-12-05 00:31:05 -08:00
Igor Babaev
f8bfb65b13 Merge 5.5->mwl248 2012-12-04 19:04:25 -08:00
Igor Babaev
5e345281e3 Fixed bug mdev-3888.
When inserting a record with update on duplicate keys the server calls
the ha_index_read_idx_map handler function to look for the record
that violates unique key constraints. The third parameter of this call
should mark only the base components of the index where the server is
searched for the record. Possible hidden components of the primary key
are to be unmarked.
2012-12-04 16:06:07 -08:00
Sergei Golubchik
eff07bf08e proactive s/strmov/strnmov/ in sql_acl.cc and related test cases 2012-12-04 17:08:02 +01:00
Vladislav Vaintroub
b057f95d42 fix openssl_1 test 2012-12-01 18:01:59 +01:00
Vladislav Vaintroub
77269f589e MDEV-3901: Wrong SSL error messages
Fixed typo (missing comma)
2012-12-01 16:33:22 +01:00
unknown
2cbf2e643b applying patch for BUG15912213 2012-11-29 19:34:47 +01:00
Sergei Golubchik
7c5f62a313 5.5.28a 2012-11-27 12:26:15 +01:00
Vladislav Vaintroub
5fddd4a7f0 Fix yet another regression after MDEV-3885.
If connection kills itself (or own query), it will get an error consistently,
with both COM_PROCESSKILL and with "KILL [QUERY] id"
2012-11-27 15:47:08 +01:00
Vladislav Vaintroub
0497ecc2c8 fix regression in sp_notembedded after MDEV-3885 2012-11-27 12:34:13 +01:00
Vladislav Vaintroub
0f8450b2fb MDEV-3885 - connection suicide via mysql_kill() causes assertion in server
Assertion happened because sql_kill did not set OK status in diagnostic area
in the case of connection suicide (id to kill == thd->thread_id), issued 
via  COM_PROCESS_KILL , e.g using mysql_kill()

This patch ensures that diagnostic area is initialized in this specific case.
2012-11-27 00:45:29 +01:00
unknown
b8b875cb79 Fix of MDEV-3874: Server crashes in Item_field::print on a SELECT from a MERGE view with materialization+semijoin, subquery, ORDER BY.
The problem was that in debugging binaries it try to print item to assign human readable name to the item.
But subquery item was already freed (join_free/cleanup with full cleanup) so Item_field refers to temporary
table which memory had been already freed.
2012-11-26 21:22:44 +02:00
Sergei Golubchik
980664bf23 mysql-test: sys_vars stub for a new xtradb config variable; tc_log_mmap test; 2012-11-26 18:50:29 +01:00
Vladislav Vaintroub
f8f2cdf21f Fix broken feedback plugin after MDEV-712.
Link feedback plugin with yassl libraries, if with-ssl=bundled is used, since mysqld does not export SSL symbols anymore.
2012-11-26 13:33:24 +01:00
Vladislav Vaintroub
3b572cd119 MDEV-712 - LP:1024239 - Mysqlclient exports the same symbols as openssl
Compile yassl and taocrypt using -fvisibility=hidden, when possible.  This prevent symbols from being exported.
2012-11-23 13:50:46 +01:00
Sergei Golubchik
b01fbb8e48 bump the version to 5.3.11 2012-11-23 13:11:31 +01:00
Igor Babaev
431ded10b8 Merge 2012-11-22 10:30:39 -08:00
Vladislav Vaintroub
089119cab5 merge 5.1 2012-11-22 18:29:53 +01:00
Vladislav Vaintroub
3fa3561066 Feedback plugin now recognizes Windows 8 / Windows Server 2012. 2012-11-22 18:27:02 +01:00
Sergei Golubchik
c499fa1ef3 XtraDB from Percona-Server-5.5.28-rel29.1 2012-11-22 11:43:55 +01:00
Sergei Golubchik
a48a91d90f 5.3->5.5 merge 2012-11-22 10:19:31 +01:00
Igor Babaev
db1db8fa8c Fixed LP bug #1002146 (bug mdev-645).
If the setting of system variables does not allow to use join buffer
for a join query with GROUP BY <f1,...> / ORDER BY <f1,...> then
filesort is not needed if the first joined table is scanned in
the order compatible with order specified by the list <f1,...>.
2012-11-21 21:55:04 -08:00
Sergei Golubchik
b1b939f4f7 bzr ignore 'Percona-Server-*.tar.gz' 2012-11-21 23:25:38 +01:00
Sergei Golubchik
0893c29874 Percona-Server-5.5.28-rel29.1.tar.gz 2012-11-21 23:24:18 +01:00
unknown
6058b654f7 MDEV-3861: Assertion in TC_LOG_MMAP.
Root cause was that number of entries in commit checkpoint buffer
was bigger than total available entries in the mmap()'ed score
file. This causes TC_LOG_MMAP to run out of entries before even
the first checkpoint is started, which causes a hang.

Fixed by making sure we have fewer entries within one commit
checkpoint than total available scorefile entries.

Another part of this bug was discovery of severel unrelated bugs
in TC_LOG_MMAP dating back to 5.1. These were fixed in 5.1 and
will be merged up (the problem this patch fixes exists only in
10.0).
2012-11-20 14:20:26 +01:00
unknown
6d179d7c73 MDEV-3862 Lift limitation for merging VIEWS with Subqueries in SELECT list. 2012-11-20 15:11:22 +02:00
unknown
49b1d95e4c Merge MariaDB 10.0-base -> 10.0 2012-11-20 14:22:51 +01:00
unknown
ecf04668a2 Merge MariaDB 5.2->5.3 2012-11-20 13:57:49 +01:00
unknown
cbae294396 Merge MariaDB 5.1->5.2. 2012-11-20 13:40:13 +01:00
unknown
47c5018f59 MDEV-3861: assertions in TC_LOG_MMAP.
Fix some problems in the TC_LOG_MMAP commit processing, which could
lead to assertions in some cases.

Problems are mostly reproducible in MariaDB 10.0 with asynchroneous
commit checkpoints, but most of the problems were present in earlier
versions also.
2012-11-20 13:28:53 +01:00
Igor Babaev
e42024cd0a Fixed bug mdev-3866.
The invalid implementation of the method Field_bit::cmp_max could
trigger a valgrind complain or could lead to incorrect statistical
data when collecting engine-independent statistics on BIT fields.
2012-11-19 13:04:37 -08:00
unknown
dd2d59924e MDEV-3801
Adjust unstable test case.
2012-11-19 18:17:46 +02:00
unknown
60a7b05871 MDEV-3801 Reproducible sub select join crash on 5.3.8 and 5.3.9
Properly drop all unused keys.
Patch by Igor Babaev.
2012-11-19 15:38:27 +02:00
Sergei Golubchik
9e7d870b36 potential crash in the feedback plugin 2012-11-19 11:18:40 +01:00
Sergei Golubchik
632dc05ded MDEV-3850 too early pthread_mutex_unlock in TC_LOG_MMAP::log_xid 2012-11-17 19:04:13 +01:00
Sergei Golubchik
13ba0dd286 MDEV-736 LP:1004615 - Unexpected warnings "Encountered illegal value '' when converting to DECIMAL" on a query with aggregate functions and GROUP BY
fix: don't call field->val_decimal() if the field->is_null()
because the buffer at field->ptr might not hold a valid decimal value

sql/item_sum.cc:
  do not call field->val_decimal() if the field->is_null()
storage/maria/ma_blockrec.c:
  cleanup
storage/maria/ma_rrnd.c:
  cleanup
strings/decimal.c:
  typo
2012-11-17 16:50:15 +01:00