Commit graph

77117 commits

Author SHA1 Message Date
Sergei Golubchik
6a839ff40d handlerton::discover_table_existence() method 2013-04-09 15:35:57 +02:00
Sergei Golubchik
934115184b convenience helpers for get_table_share() and tdc_open_view().
Pass db and table_name into a function instead of the table_list,
when only db and table name are needed.
2013-04-09 15:35:24 +02:00
Sergei Golubchik
b0a5dd73fa * remove ha_check_if_table_exists() and get_table_share_with_discover().
* rename check_if_table_exists() -> table_exists() and remove unneeded arguments
2013-04-09 15:35:15 +02:00
Sergei Golubchik
87a9d60ec6 revert
"
  revision-id: sanja@askmonty.org-20110511110948-4kdevwzomvk56y1w
  committer: sanja@askmonty.org
  branch nick: work-maria-5.1-CREATE-merge
  timestamp: Wed 2011-05-11 14:09:48 +0300
    Bugfix: New table creation/renaming block added if old encoded table present
"
the old behavior was less inconsistent than the new one.
In the new one the error message was sometimes different (under LOCK TABLES e.g.),
and there were race conditions (if this CREATE happened when a concurrent ALTER
has renamed the old table away but haven't put the new table in place)

The old one was like "(when using old table names) for DML #mysql50# prefix
is optional, for DDL it's required".
2013-04-09 15:35:07 +02:00
Sergei Golubchik
b9f42f4b7a rename open_binary_frm() to TABLE_SHARE::init_from_binary_frm_image()
simplify open_table_def()
2013-04-09 15:34:58 +02:00
Sergei Golubchik
474e5ecd1f Don't hold LOCK_open over open_table_def/open_binary_frm call 2013-04-09 15:34:49 +02:00
Sergei Golubchik
d71b75c90d moving LOCK_open into get_table_share() 2013-04-09 15:34:27 +02:00
Sergei Golubchik
163882665e * don't use 1-8 numbers for open_table_error codes, use an enum.
* print "table doesn't exist in engine" when a table doesn't exist in the engine,
  instead of "file not found" (if no file was involved)
* print a complete filename that cannot be found ('t1.MYI', not 't1')
* it's not an error for a DROP if a table doesn't exist in the engine (or some table
  files cannot be found) - if the DROP succeeded regardless
2013-04-09 15:34:17 +02:00
Sergei Golubchik
5ad68a0d2f don't use I_S constants for open_table_def and get_table_share,
have a specially defined enum with clearly named values
2013-04-09 15:34:09 +02:00
Sergei Golubchik
cda52b2cb2 remove dead HAVE_CRYPTED_FRM code
and now-unused read_string() function
2013-04-09 15:33:58 +02:00
Sergei Golubchik
0d1a595875 make the open_table_def to read the whole frm in memory
and let open_binary_frm to parse it from the buffer, not a file.
this avoids jumping back in forth in the frm file, and doing
intermediate buffer mallocs.
2013-04-09 15:33:49 +02:00
Sergei Golubchik
03dfb2c121 file-based table discovery for discovering storage engines
also:
* move few tests from archive/archive.test to archive/discover.test
* fix (unintentionally) bug#34104, updated result files
2013-04-09 15:31:29 +02:00
Sergei Golubchik
2a9662b401 find_files(): don't sort files in my_dir(), sort table names
after all engines have discovered their tables
  
side effect: correct alphabetical sorting as in ORDER BY ... COLLATE utf8_bin,
information_schema is no longer the first after find_files(),
tables like #mysql50#zzz are sorted first (as per table name),
not last (as per file name zzz).
2013-04-07 17:17:25 +02:00
Sergei Golubchik
8980e67693 * use Dynamic_array<> instead of List<> for the list of found tables in sql_show.cc
* make find_files static
2013-04-07 17:11:19 +02:00
Sergei Golubchik
69ba585a1e remove #if MYSQL_VERSION_ID
there is no "upstream" OQGraph version that needs to stay compatible
with different MariaDB releases.
2013-04-07 17:09:05 +02:00
Sergei Golubchik
58e62d701e * move bas_ext from the handler to the handlerton
* provide a default bas_ext value of the empty list
2013-04-07 17:08:49 +02:00
Sergei Golubchik
09ece94fac remove handlerton::find_files (new implementation is coming),
and handlerton::table_exists_in_engine (new implementation is coming),
and handlerton::license (redundant)
2013-04-07 15:57:38 +02:00
Sergei Golubchik
94753d8b94 small cleanup - remove prehistoric DB_TYPE_xxx values 2013-04-07 15:44:19 +02:00
Sergei Golubchik
0d405ed02f remove long time obsolete xyz_ci() copies of xyz() macros 2013-04-07 15:40:59 +02:00
Sergei Golubchik
73f79ac83f simpler fix for mysql bug #56085, no need to write an error interceptor,
when the function has a dedicated flag for this very use case.
2013-04-07 15:37:47 +02:00
Sergei Golubchik
028ce66c9e simplify test case 2013-04-07 15:36:37 +02:00
Sergei Golubchik
ccc9238335 s/st_ha_create_information/HA_CREATE_INFO/ 2013-04-07 15:35:39 +02:00
Sergei Golubchik
e727741614 typo fixed 2013-04-07 15:27:35 +02:00
Sergei Golubchik
8b4d967798 bugfix: MYSQL_THDVAR_STR plugins with PLUGIN_VAR_MEMALLOC didn't work
(PLUGIN_VAR_MEMALLOC ix 0x8000 and cannot be saved in a char as such)
2013-04-07 15:26:58 +02:00
Sergei Golubchik
0614af18a6 macro do {} while(0) safety 2013-04-07 15:20:58 +02:00
Sergei Golubchik
bbbd7cedf5 my_dir() cleanup
* replace pointer acrobatics with a struct
* make sorting explicit: MY_DONT_SORT -> MY_WANT_SORT
(if you want something to be done - say it. fixes all places where
my_dir() was used without thinking)
* typo s/number_off_files/number_of_files/
* directory_file_name() doesn't need to be extern
* remove #ifdef __BORLANDC__
* ignore '.' and '..' entries
2013-04-07 15:19:45 +02:00
Sergei Golubchik
fdcaa6cb32 clarify CREATE grammar 2013-04-07 14:54:43 +02:00
Sergei Golubchik
e7036ec1a2 mtr bug: files outside of both the suite dir and the overlay dir, were
treated as coming from the overlay.
  
(example: archive suite, test_sql_discovery overlay, mysql-test/include/have_archive.inc)
2013-04-07 14:51:16 +02:00
Sergei Golubchik
48bb551328 remove the service for installing the closed-source mysql thread pool plugin 2013-04-07 14:50:01 +02:00
Sergei Golubchik
78c0642073 consistency in declaring service symbols 2013-04-07 14:43:26 +02:00
Sergei Golubchik
daac5b511c cleanup 2013-04-07 14:41:05 +02:00
Sergei Golubchik
37ad8d06e1 cleanup 2013-04-07 14:40:45 +02:00
Sergei Golubchik
a6fa724b7f split THD::make_lex_string() in two 2013-04-07 14:36:53 +02:00
Sergei Golubchik
e56cad4b15 small cleanup 2013-04-07 14:03:43 +02:00
Sergei Golubchik
4ec6fe10e5 remove ULL() and LL(), because they're totally unnecessary
and sometimes harmful (used with expressions)
2013-04-07 14:00:16 +02:00
Sergey Petrunya
ef5241ae05 Fix buildbot failure in show_explain.test:
mysqltest: At line 477: query 'show explain for $thr2' failed: 1933: Target is not running an EXPLAINable command

After the fix for MDEV-4144, subquery with WHERE pk= (select ...) became a degenerate, constant 
SELECT.  It is not executed in normal way anymore, so it is not possible to catch it in-execution.
2013-04-02 20:23:08 +04:00
Igor Babaev
0f3f93532b Merge 5.5->10.0-base 2013-03-31 15:18:55 -07:00
unknown
599a1384af Fix for MDEV-4144
Analysis:
The reason for the inefficent plan was that Item_subselect::is_expensive()
didn't detect the special case when a subquery was optimized, but had no
join plan because it either has no table, or its tables have been optimized
away, or the optimizer detected that the result set is empty.
  
Solution:
Identify the special cases above in the Item_subselect::is_expensive(),
and consider such degenerate subqueries inexpensive.
2013-03-29 17:53:21 +02:00
Vladislav Vaintroub
fa01b76be7 MDEV-4243 : remove several clang warnings. 2013-03-29 14:56:09 +01:00
Igor Babaev
e91e8c8c0b Merge 5.3->5.5. 2013-03-28 19:18:36 -07:00
Igor Babaev
a2c3d7d371 Merge 2013-03-27 22:22:52 -07:00
Igor Babaev
323fdd7ac6 Fixed bug mdev-4311 (bug #68749).
This bug was introduced by the patch for WL#3220.
If the memory allocated for the tree to store unique elements
to be counted is not big enough to include all of them then
an external file is used to store the elements.
The unique elements are guaranteed not to be nulls. So, when 
reading them from the file we don't have to care about the null
flags of the read values. However, we should remove the flag 
at the very beginning of the process. If we don't do it and
if the last value written into the record buffer for the field
whose distinct values needs to be counted happens to be null,
then all values read from the file  are considered to be nulls
and are not counted in.
The fix does not remove a possible null flag for the read values.
Rather it just counts the values in the same way it was done
before WL #3220.
2013-03-27 19:17:32 -07:00
Sergei Golubchik
993ea79f2d 5.5 merge 2013-03-27 23:41:02 +01:00
Igor Babaev
d4de82d93e Merge. 2013-03-27 08:58:16 -07:00
Sergei Golubchik
6599fd3e9c 5.3 merge 2013-03-27 10:03:28 +01:00
Sergei Golubchik
102a7a2a76 MDEV-4307 Support at least 48 utf8 characters in username in server and PAM
Extend plugin auth api to support up to 512 bytes in the user names.
Use the API versioning to support old auth plugins too!
2013-03-26 19:17:26 +01:00
Sergei Golubchik
e308d7417b 5.2 merge 2013-03-26 19:09:47 +01:00
Alexey Botchkov
045c498691 GEOMETRYCOLLECTION EMPTY handling fixed.
The get_mbr() method shouldn't return the error, rather an invalid MBR
          in this case.
2013-03-26 21:47:06 +04:00
Sergei Golubchik
1d46ee77d1 fix @@external_user variable 2013-03-26 17:57:36 +01:00
Sergei Golubchik
48be80cd95 5.1 merge 2013-03-26 17:39:45 +01:00