Commit graph

1168 commits

Author SHA1 Message Date
guilhem@mysql.com
a4e778f34d First push for WL#3146 "less locking in auto_increment". It is a 0-real-change patch.
New prototype for get_auto_increment() (but new arguments not yet used), to be able
to reserve a finite interval of auto_increment values from cooperating engines.
A hint on how many values to reserve is found in handler::estimation_rows_to_insert,
filled by ha_start_bulk_insert(), new wrapper around start_bulk_insert().
NOTE: this patch changes nothing, for all engines. But it makes the API ready for those
engines which will want to do reservation.
More csets will come to complete WL#3146.
2006-06-02 22:21:32 +02:00
jani@ua141d10.elisa.omakaista.fi
dea377fafc Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-new-marvel
2006-06-01 20:39:12 +03:00
svoj@may.pils.ru
77ab3b28a7 BUG#19192 - CHECK TABLE EXTENDED / REPAIR TABLE show no errors.
ALTER TABLE crashes
Executing fast alter table (one that doesn't need to copy data)
on tables created by mysql versions prior to 4.0.25 could result
in posterior server crash when accessing these tables.

There was a bug prior to mysql-4.0.25. Number of null fields was
calculated incorrectly. As a result frm and data files gets out of
sync after fast alter table. There is no way to determine by which
mysql version (in 4.0 and 4.1 branches) table was created, thus we
disable fast alter table for all tables created by mysql versions
prior to 5.0 branch.
See BUG#6236.
2006-06-01 18:08:57 +05:00
tomas@poseidon.ndb.mysql.com
eed7775dff Bug #18483 Cannot create table with FK constraint
- remove error set for auto partitioned tables
2006-06-01 14:51:58 +02:00
serg@sergbook.mysql.com
2e16f1eccc after review fixes 2006-05-31 18:07:32 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
c81b4c01bf Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new
2006-05-30 16:07:49 +03:00
gluh@eagle.intranet.mysql.r18.ru
ae72df07f2 Bug#17204 "second CALL to procedure crashes Server"
Bug#18282 "INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views"
This bug caused crashes or resulted in wrong data being returned
when one tried to obtain information from I_S tables about views
using stored functions.

It was caused by the fact that we were using LEX representing
statement which were doing select from I_S tables as active LEX
when contents of I_S table were built. So state of this LEX both
affected and was affected by open_tables() calls which happened
during this process. This resulted in wrong behavior and in
violations of some of invariants which caused crashes.

This fix tries to solve this problem by properly saving/resetting
and restoring part of LEX which affects and is affected by the
process of opening tables and views in get_all_tables() routine.
To simplify things we separated this part of LEX in a new class
and made LEX its descendant.
2006-05-30 10:45:23 +05:00
serg@sergbook.mysql.com
71657322fd Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.1
2006-05-28 14:54:28 +02:00
serg@sergbook.mysql.com
fe97dbb587 handlerton cleanup:
duplicate fields removed, st_mysql_storage_engine added to support
run-time handlerton initialization (no compiler warnings), handler API
is now tied to MySQL version, handlerton->plugin mapping added
(slot-based), dummy default_hton removed, plugin-type-specific
initialization generalized, built-in plugins are now initialized too,
--default-storage-engine no longer needs a list of storage engines
in handle_options().

mysql-test-run.pl bugfixes
2006-05-28 14:51:01 +02:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
bd349cff14 BUG#19695: Showed partition options when table options were not shown 2006-05-27 17:36:45 -04:00
svoj@april.(none)
0674c702b0 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  april.(none):/home/svoj/devel/mysql/BUG17001/mysql-5.0
2006-05-24 15:13:49 +05:00
rburnett@bk-internal.mysql.com
da6e25d86d Merge bk-internal.mysql.com:/data0/bk/mysql-5.1-new
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
2006-05-18 17:24:29 +02:00
knielsen@mysql.com
a061c90d8a Merge mysql.com:/usr/local/mysql/tmp_merge
into  mysql.com:/usr/local/mysql/merge-5.1
2006-05-18 11:56:50 +02:00
svoj@april.(none)
3afbfc5fed BUG#17001 - Table and server crash on ALTER TABLE
frm and data files for tables created by earlier MySQL
versions becomes out of sync after certain ALTER TABLE statements:
- One that changes column default value;
- One that changes table comment;
- One that changes table password.

As a result one can expirience either server crash or data corruption/loss.

This fix ensures that running ALTER TABLE on tables created by earlier
MySQL versions recreates data files.
2006-05-16 18:37:23 +05:00
konstantin@mysql.com
85c6883146 Merge mysql.com:/opt/local/work/mysql-5.0-root
into  mysql.com:/opt/local/work/mysql-5.0-runtime-merge
2006-05-15 00:51:12 +04:00
holyfoot@mysql.com
250e07b652 Merge bk@192.168.21.1:mysql-5.1-new
into mysql.com:/home/hf/work/mysql-5.1.14573
2006-05-14 20:56:22 +05:00
acurtis@xiphis.org
4e2c63a7ba Merge bk-internal:/home/bk/mysql-5.1-new
into  xiphis.org:/home/acurtis/mysql-5.1-merge
2006-05-12 17:40:58 -07:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
640a4de065 Merge c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19140
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19010
2006-05-12 15:44:15 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
c85be97f50 Merge c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1-new
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19010
2006-05-12 12:22:31 -04:00
acurtis@xiphis.org
9ba0ac9579 manual merge bug#10952 2006-05-12 08:50:31 -07:00
holyfoot@deer.(none)
034508f6ca bug #14573 (Error on adding auto_increment on to a column with '0' values) 2006-05-12 18:02:42 +05:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
5de2150b85 Merge c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1-new
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19067
2006-05-11 16:03:12 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
56b97747de BUG#19010: Fix issues with that ALTER TABLE from auto-partitioned NDB table doesn't work unless primary key exists on table. 2006-05-10 12:53:40 -04:00
acurtis@xiphis.org
7c9b4c2792 Merge acurtis@bk-internal:/home/bk/mysql-5.0-engines
into  xiphis.org:/home/antony/work2/p1-bug10952.1
2006-05-09 13:34:31 -07:00
acurtis@xiphis.org
47e89f208a bug#10952
"alter table from MyISAM to MERGE lost data without errors and warnings"
  Add new handlerton flag which prevent user from altering table storage
  engine to storage engines which would lose data. Both 'blackhole' and 
  'merge' are marked with the new flag.
  Tests included.
2006-05-09 13:31:46 -07:00
dlenev@mysql.com
b9d49ee894 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg12472
2006-05-09 16:48:23 +04:00
dlenev@mysql.com
589daad10f Fix for bugs#12472/#15137 'CREATE TABLE ... SELECT ... which explicitly
or implicitly uses stored function gives "Table not locked" error'

CREATE TABLE ... SELECT ... statement which was explicitly or implicitly
(through view) using stored function gave "Table not locked" error.

The actual bug resides in the current locking scheme of CREATE TABLE SELECT
code, which first opens and locks tables of the SELECT statement itself,
and then, having SELECT tables locked, creates the .FRM, opens the .FRM and
acquires lock on it. This scheme opens a possibility for a deadlock, which
was present and ignored since version 3.23 or earlier. This scheme also
conflicts with the invariant of the prelocking algorithm -- no table can
be open and locked while there are tables locked in prelocked mode.

The patch makes an exception for this invariant when doing CREATE TABLE ...
SELECT, thus extending the possibility of a deadlock to the prelocked mode.
We can't supply a better fix in 5.0.
2006-05-09 16:39:11 +04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
b8227de1bf BUG#19140: Create index caused crash 2006-05-08 21:41:10 -04:00
monty@mysql.com
8c7783c1e0 Don't use row level logging on optimize or repair table.
(Fixes core dump in rpl_failed_optimize.test)
Ensure we end active transcations if we do an admin command (like optimize, repair etc)
2006-05-05 20:08:40 +03:00
monty@mysql.com
3ddc1f9956 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
2006-05-04 15:58:30 +03:00
monty@mysql.com
86b2be8d35 After merge fixes
Remove compiler warnings
Fix some broken tests
Workaround for syncronization bug in NDB (Bug #16445)
2006-05-04 06:28:24 +03:00
monty@mysql.com
8f6ed291a7 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/my/mysql-5.1
2006-05-04 01:58:21 +03:00
holyfoot@mysql.com
2f7ac18f22 Merge bk@192.168.21.1:mysql-5.0
into mysql.com:/home/hf/work/mysql-5.0.mrg
2006-05-04 02:17:17 +05:00
pekka@mysql.com
ec42119233 Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/space/pekka/ndb/version/my50
2006-05-03 23:17:16 +02:00
holyfoot@mysql.com
e5a22d1bca Merge bk@192.168.21.1:mysql-4.1
into mysql.com:/home/hf/work/mysql-4.1.mrg
2006-05-04 00:03:58 +05:00
monty@mysql.com
d689f2fa70 Cleanups after review of WL#602
Fixed warnings from test suite
Some fixes in mysql-test-run script to catch more warnings
2006-05-03 19:40:52 +03:00
monty@mysql.com
343644dd5d Added support for key_block_size for key and table level (WL#602)
Added support for key_block_size to MyISAM.
Simplify interface to 'new Key' to make it easier to add new key options.
mysqld option --new is used to define where key options are printed.
(In 5.3 we should move all key options to after key part definition to avoid problem with reserved names)
Fixed some compiler warnings and a memory leak in ssl
2006-05-03 15:59:17 +03:00
holyfoot@deer.(none)
81e625ac4a merging fix 2006-05-03 17:43:32 +05:00
holyfoot@mysql.com
7ee205f67a merging 2006-05-03 16:42:39 +05:00
holyfoot@mysql.com
9de68b8122 merging 2006-05-03 16:33:42 +05:00
holyfoot@mysql.com
0007484c26 Merge mysql.com:/home/hf/work/mysql-4.1.15225
into mysql.com:/home/hf/work/mysql-4.1.mrg
2006-05-03 15:51:19 +05:00
mikael@zim.(none)
fdb8043efe Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  zim.(none):/home/mikael/bug19313
2006-05-03 01:04:14 -07:00
ramil@mysql.com
b337e83db2 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b7643
2006-05-02 11:33:26 +05:00
cmiller@zippy.(none)
21bec19920 Merge zippy.(none):/home/cmiller/work/mysql/mysql-5.0
into  zippy.(none):/home/cmiller/work/mysql/mysql-5.1-new
2006-05-01 13:41:40 -04:00
cmiller@zippy.(none)
6af3f88f07 Merge zippy.(none):/home/cmiller/work/mysql/merge/tmp_merge
into  zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.0
2006-05-01 09:46:00 -04:00
elliot@mysql.com
604b5836bb BUG#19145: mysqld crashes if you set the default value of an enum field to NULL
Now test for NULLness the pointers returned from objects created from the
default value. Pushing patch on behalf of cmiller.
2006-04-28 12:15:29 -04:00
mikael@zim.(none)
5b3bf39987 BUG#19313: Crash after mysqld starts and stops immediately afterwards. 2006-04-25 14:33:54 -07:00
ingo@mysql.com
d49ecc49c8 Merge mysql.com:/home/mydev/mysql-5.1
into  mysql.com:/home/mydev/mysql-5.1-bug18129
2006-04-25 16:32:38 +02:00
ramil@mysql.com
815da9ccee Fix for bug #7643: ALTER TABLE fails for CSV, EXAMPLE, ARCHIVE engines 2006-04-25 15:27:28 +05:00
Magnus@hugo.
0f51bcc35d Fix windows compile problem 2006-04-22 13:29:05 +02:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
33eccd0c1e WL 2826: Error handling of ALTER TABLE for partitioning
Fixed merge issue
2006-04-22 04:38:19 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
c949342101 Merge mronstrom@bk-internal.mysql.com:/home/bk/bugs/bug16002
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug16002
2006-04-21 09:52:51 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
82dfff9d08 BUG#19067: Crash when ALTER TABLE for default subpartitioned table 2006-04-21 08:43:07 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
6473c10445 WL 2826: Error handling of ALTER TABLE for partitioning
Final review fixes
2006-04-21 08:35:25 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
14d75e5b9f WL 2826: Error handling of ALTER TABLE for partitioning
Fixed up create_handler_files call
2006-04-19 21:43:30 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
09e95da616 Merge c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1-new
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
2006-04-19 21:22:35 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
c9085e5189 WL2826: Error handling of ALTER TABLE for partitioning
Actual error reported in my_errno from my_delete
2006-04-19 20:57:42 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
dd257b22dc WL 2826: Error handling of ALTER TABLE for partitioning
Various bug fixes (mostly mixed to and from in replace methods)
2006-04-19 20:04:00 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
0a053c3d8c Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-wl2826
into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
2006-04-19 16:19:21 -04:00
mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se
f78195049d WL 2826: Error handling of ALTER TABLE for partitioning
Fixed a number of bugs
2006-04-19 16:08:59 -04:00
bar@mysql.com
cedafc30e8 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/home/bar/mysql-5.1-new.b17870v1
2006-04-19 09:50:17 +05:00
mikron@c-ae09e253.1238-1-64736c10.cust.bredbandsbolaget.se
eb60344d78 WL 2826: Error handling of ALTER TABLE for partitioning
Use \0 to indicate frm-file
Add more comments
Add more #ifdef code missing previously
2006-04-18 16:58:12 +02:00
mikael@c-4909e253.1238-1-64736c10.cust.bredbandsbolaget.se
cef06fdb61 BUG#16002: Make partition functions that are unsigned work properly 2006-04-17 22:51:34 -04:00
mikael@c-4908e253.1238-1-64736c10.cust.bredbandsbolaget.se
8ae26a2868 WL 2826: Error handling of ALTER TABLE for partitioning
After review changes
2006-04-15 21:49:13 -04:00
brian@zim.(none)
5d1d27c016 Final patch to remove the last of the OS2 support. 2006-04-15 18:17:32 -07:00
ingo@mysql.com
56d414b057 Bug#18129 - Fast (online) add index leaves temporary table frm in case of errors
ALTER TABLE temporarily creates a new table with a .frm
file and optionally other files. For fast ALTER TABLE
only the .frm file is created. If the operation succeeds,
The temporary files are renamed to their final target.

In case of an error, the temporary file was forgotten to
remove.

Manually tested. The test requires to look at files,
which I think cannot be done portably with the test suite.
The test file is attached to the bug report.
2006-04-13 16:19:19 +02:00
holyfoot@deer.(none)
c2acfc5b7c bug #15860 (SPATIAL keys in INNODB) 2006-04-12 22:05:23 +05:00
bar@mysql.com
e8e0d5c5fe bug#17870 Table names conflict with Windows device names
It was impossible to create some table names on Windows
(e.g. LPT1, AUX, COM1, etc).

Fixed to pad dangerous names with thee "at" signs
(e.g. LPT1@@@, AUX@@@, COM1@@@, and so on).
2006-04-11 18:16:14 +05:00
marty@linux.site
950e258fde Fixes for fast alter table for ndbcluster 2006-04-11 14:06:32 +02:00
ingo@mysql.com
c228bd4179 Merge mysql.com:/home/mydev/mysql-5.1-bug18477
into  mysql.com:/home/mydev/mysql-5.1-aid
2006-04-06 08:40:38 +02:00
mikael@c-4908e253.1238-1-64736c10.cust.bredbandsbolaget.se
e94274f0cd Fixes 2006-04-03 12:26:35 -04:00
mikael@c-4908e253.1238-1-64736c10.cust.bredbandsbolaget.se
0a02cbb5f6 Merge c-4908e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1-new
into  c-4908e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
2006-04-01 16:31:53 -05:00
mikron@c-2509e253.1238-1-64736c10.cust.bredbandsbolaget.se
635b0a9dc0 WL 2826: Error handling of ALTER TABLE for partitioning
More review fixes
2006-04-01 16:37:36 +02:00
igor@rurik.mysql.com
d6af1b6e39 Merge rurik.mysql.com:/home/igor/dev/mysql-5.0-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-04-01 02:57:56 -08:00
reggie@linux.site
b05f270c1f Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  linux.site:/home/reggie/work/mysql-5.1-bug17631
2006-03-31 11:42:12 -06:00
reggie@linux.site
795659e775 cleaned up a few method comments
moved several functions from sql_partition to be member functions
2006-03-31 11:39:44 -06:00
gluh@mysql.com
486a48d46c Merge mysql.com:/home/gluh/MySQL/Merge/5.0
into mysql.com:/home/gluh/MySQL/Merge/5.1-new
2006-03-31 13:17:45 +05:00
ingo@mysql.com
7253099cf3 Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
InnoDB requires a full table rebuild for foreign key changes.
It was not possible in compare_tables() to detect such changes.

On Heikkis proposal I added a new flag to the syntax parser
where foreign key definition changes are done. I test for
this flag in compare_tables() now.
2006-03-30 20:55:54 +02:00
evgen@sunlight.local
eb075f2255 Manual merge 2006-03-30 17:14:55 +04:00
evgen@sunlight.local
47f9b46564 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into sunlight.local:/local_work/15560-bug-4.1-mysql
2006-03-30 10:22:03 +04:00
gluh@eagle.intranet.mysql.r18.ru
70a8f32d81 post-merge fix 2006-03-30 09:13:25 +05:00
gluh@mysql.com
ea56026e4f Merge 2006-03-30 08:13:28 +05:00
evgen@moonbone.local
1c13e54890 Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
The GROUP_CONCAT uses its own temporary table. When ROLLUP is present
it creates the second copy of Item_func_group_concat. This copy receives the
same list of arguments that original group_concat does. When the copy is
set up the result_fields of functions from the argument list are reset to the
temporary table of this copy.
As a result of this action data from functions flow directly to the ROLLUP copy
and the original group_concat functions shows wrong result.
Since queries with COUNT(DISTINCT ...) use temporary tables to store
the results the COUNT function they are also affected by this bug.

The idea of the fix is to copy content of the result_field for the function
under GROUP_CONCAT/COUNT from  the first temporary table to the second one,
rather than setting result_field to point to the second temporary table.
To achieve this goal force_copy_fields flag is added to Item_func_group_concat
and Item_sum_count_distinct classes. This flag is initialized to 0 and set to 1
into the make_unique() member function of both classes.
To the TMP_TABLE_PARAM structure is modified to include the similar flag as
well.
The create_tmp_table() function passes that flag to create_tmp_field().
When the flag is set the create_tmp_field() function will set result_field
as a source field and will not reset that result field to newly created 
field for Item_func_result_field and its descendants. Due to this there
will be created copy func to copy data from old result_field to newly 
created field.
2006-03-29 23:30:34 +04:00
gluh@eagle.intranet.mysql.r18.ru
2545c7d414 Fix for bug#15316 SET value having comma not correctly handled
disallow the use of comma in SET members
2006-03-29 19:52:26 +05:00
monty@mysql.com
1994ed49ec Fixed compiler and valgrind warnings
Added missing DBUG_xxx_RETURN statements
Fixed some usage of not initialized variables (as found by valgrind)
Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
This will allow Tomas to continue with his work to use namelocks to syncronize things.

Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests
2006-03-29 14:27:36 +03:00
dlenev@mysql.com
880d1ccd64 Merge mysql.com:/home/dlenev/mysql-5.0-bg18153
into  mysql.com:/home/dlenev/mysql-5.1-merges
2006-03-25 02:24:05 +03:00
dlenev@mysql.com
8643070cda Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/dlenev/mysql-5.1-merges
2006-03-25 02:24:04 +03:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
24897407d6 BUG#16806: ALTER TABLE with new field in before position fails
Review fixes
2006-03-24 18:21:43 -05:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
f8088c1804 WL 2826: Error handling of ALTER TABLE for partitioning
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
Fixed mysqlish method intro's
Fixed warning statements
5.1.7 was released still with partition states in clear text

Fixed io_size bug
Fixed bug in open that TRUNCATED before reading :)
file_entry => file_entry_buf
Don't open DDL log until first write call to DDL log
handler_type => handler_name
no => num
2006-03-24 18:19:13 -05:00
dlenev@mysql.com
4d1d8ed335 Follow-up for the fix for bug #18153 "ALTER/OPTIMIZE/REPAIR on transactional
tables corrupt triggers".

It turned out that we also have relied at certain places that
(new_table != table_name) were always true on Windows and for transactional
tables. Since our fix for the bug brakes this assumption we have to add new
flag to pass this information around.
This code needs to be refactored but I dare not to do this in 5.0.
2006-03-24 22:46:33 +03:00
dlenev@mysql.com
3205f00449 Merge mysql.com:/home/dlenev/mysql-5.0-bg18153
into  mysql.com:/home/dlenev/mysql-5.1-merges
2006-03-24 19:46:01 +03:00
dlenev@mysql.com
891e9424f2 Fix for bug #18153 "ALTER/OPTIMIZE/REPAIR on transactional tables corrupt
triggers".

Applying ALTER/OPTIMIZE/REPAIR TABLE statements to transactional table or to
table of any type on Windows caused disappearance of its triggers.
Bug was introduced in 5.0.19 by my fix for bug #13525 "Rename table does not
keep info of triggers" (see comment for sql_table.cc for more info).
.
2006-03-24 14:58:18 +03:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
2d2bd9fe7a BUG #16806: ALTER TABLE fails when creating new field not last in table
Moved some code to else path to avoid delete, create, delete, create scenarios.
Fixed up the partition info object for some cases where we move from default
partitioning in NDB to default partitioning using partitioning.
2006-03-23 16:00:58 -05:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
3dc4635c70 Merge c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-5.1-new
into  c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
2006-03-21 10:44:59 -05:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
4d2b8f8ef6 Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug17754
2006-03-20 22:47:48 -05:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
738176c15f Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug17754
2006-03-20 14:41:50 -05:00
pappa@c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se
bd77396a94 BUG#17754
Added new syntax ALTER TABLE t1 REMOVE PARTITIONING,
changed semantics of ALTER TABLE t1 ENGINE=X; to not remove partitioning
Fix a number of mix engine bugs in partitioning
2006-03-20 14:36:21 -05:00
holyfoot@vva.(none)
a68742f460 bug #17290 (sp with delete, create and rollback causes MySQLD core)
additional fixes
2006-03-20 17:30:01 +04:00
holyfoot@vva.(none)
8074262eda bug 17290 and bug 14350
added THD::work_part_info member where we now store modified
partition_info structure.
It allows no solve problem when different parts of the part_info get
into different mem_roots
2006-03-18 18:48:21 +04:00
jimw@mysql.com
d7762d4eb2 Merge mysql.com:/home/jimw/my/mysql-5.1-17497
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2006-03-13 06:18:04 -08:00
jimw@mysql.com
45cfa42004 Bug #17497: Partitions: crash if add partition on temporary table
Temporary tables are no longer allowed to be partitioned.
2006-03-08 09:48:40 -08:00
mats@mysql.com
8d10f7b7a1 Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new
2006-03-07 10:00:13 +01:00
mskold@mysql.com
7380a4dd22 Fix for Bug#17888 DD: ADD INDEX causes error 756 'Index on disk column is not supported 2006-03-06 10:24:06 +01:00
mats@mysql.com
e0f5d35ceb Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new
2006-03-03 09:57:42 +01:00
tomas@poseidon.ndb.mysql.com
47cb191a79 Bug #17499 Alter table of ndb partitioned tables causes mysqld to core
- moved used_partitions initialization
2006-02-28 14:29:48 +01:00
tomas@poseidon.ndb.mysql.com
4dee17f159 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new
2006-02-28 12:40:19 +01:00
mats@mysql.com
1e66bc0d16 Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new
2006-02-28 10:06:58 +01:00
dlenev@mysql.com
8dbdf5237e Merge mysql.com:/home/dlenev/src/mysql-5.0-bg13525
into  mysql.com:/home/dlenev/src/mysql-5.1-merges2
2006-02-27 20:00:07 +03:00
dlenev@mysql.com
6cb5c38c14 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13525
2006-02-27 20:00:03 +03:00
tomas@poseidon.ndb.mysql.com
bfc43d5745 Bug #17499 Alter table of ndb partitioned tables causes mysqld to core 2006-02-27 17:04:49 +01:00
dlenev@mysql.com
4ca3409390 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13525
2006-02-26 21:20:13 +03:00
dlenev@mysql.com
0b422c635d Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13525
2006-02-26 16:38:48 +03:00
guilhem@mysql.com
eb4688330d Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/home/mysql_src/mysql-5.1-new
2006-02-25 22:22:12 +01:00
guilhem@mysql.com
0071749595 WL#2977 and WL#2712 global and session-level variable to set the binlog format (row/statement),
and new binlog format called "mixed" (which is statement-based except if only row-based is correct,
in this cset it means if UDF or UUID is used; more cases could be added in later 5.1 release):
SET GLOBAL|SESSION BINLOG_FORMAT=row|statement|mixed|default;
the global default is statement unless cluster is enabled (then it's row) as in 5.1-alpha.
It's not possible to use SET on this variable if a session is currently in row-based mode and has open temporary tables (because CREATE
TEMPORARY TABLE was not binlogged so temp table is not known on slave),  or if NDB is enabled (because
NDB does not support such change on-the-fly, though it will later), of if in a stored function (see below).
The added tests test the possibility or impossibility to SET, their effects, and the mixed mode,
including in prepared statements and in stored procedures and functions.
Caveats:
a) The mixed mode will not work for stored functions: in mixed mode, a stored function will
always be binlogged as one call and in a statement-based way (e.g. INSERT VALUES(myfunc()) or SELECT myfunc()).
b) for the same reason, changing the thread's binlog format inside a stored function is
refused with an error message.
c) the same problems apply to triggers; implementing b) for triggers will be done later (will ask
Dmitri).
Additionally, as the binlog format is now changeable by each user for his session, I remove the implication
which was done at startup, where row-based automatically set log-bin-trust-routine-creators to 1
(not possible anymore as a user can now switch to stmt-based and do nasty things again), and automatically
set --innodb-locks-unsafe-for-binlog to 1 (was anyway theoretically incorrect as it disabled
phantom protection).
Plus fixes for compiler warnings.
2006-02-25 22:21:03 +01:00
brian@zim.(none)
f40705eb9b Merge zim.(none):/home/brian/mysql/mysql-5.0
into  zim.(none):/home/brian/mysql/dep-5.1
2006-02-24 23:31:57 -08:00
dlenev@mysql.com
0c15039e74 Fix for bug #13525 "Rename table does not keep info of triggers".
Let us transfer triggers associated with table when we rename it (but only if
we are not changing database to which table belongs, in the latter case we will
emit error).
2006-02-24 23:50:36 +03:00
mats@mysql.com
13a61982a9 Merge mysqldev@production.mysql.com:my/mysql-5.1-release
into  mysql.com:/home/bk/w3023-mysql-5.1-new
2006-02-24 16:31:38 +01:00
konstantin@mysql.com
af62c4a959 Merge mysql.com:/opt/local/work/mysql-4.1-13134
into  mysql.com:/opt/local/work/mysql-5.0-runtime
2006-02-24 00:00:15 +03:00
konstantin@mysql.com
442c2ba8af A fix and a test case for Bug#13134 "Length of VARCHAR() utf8
column is increasing when table is recreated with PS/SP":
make use of create_field::char_length more consistent in the code.
Reinit create_field::length from create_field::char_length
for every execution of a prepared statement (actually fixes the 
bug).
2006-02-21 19:52:20 +03:00
evgen@moonbone.local
e6924206cd Fixed bug#17530: Incorrect key truncation on table creation caused server crash.
When a too long field is used for a key, only a prefix part of the field is 
used. Length is reduced to the max key length allowed for storage. But if the
field have a multibyte charset it is possible to break multibyte char
sequence. This leads to the failed assertion in the innodb code and 
server crash when a record is inserted.

The make_prepare_table() now aligns truncated key length to the boundary of
multibyte char.
2006-02-21 18:09:32 +03:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
dd17f48630 Merge c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-5.1-bugs
into  c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
2006-02-20 16:41:46 -05:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
d42757f87e WL 2826: Error handling of ALTER TABLE for partitioning
Bug fixes
2006-02-20 16:22:19 -05:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
6ee7ab8aa3 WL 2826: Error handling of ALTER TABLE for partitioning
Fix compiler issues
2006-02-20 15:07:03 -05:00
holyfoot@mysql.com
78cc24e284 Merge bk@192.168.21.1:mysql-4.1
into mysql.com:/home/hf/work/mysql-4.1.15225
2006-02-20 18:01:59 +04:00
jimw@mysql.com
10b96ec4c8 Merge mysql.com:/home/jimw/my/mysql-5.1-17169
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2006-02-17 10:55:43 -08:00
tomas@poseidon.ndb.mysql.com
9495f8c56a Bug #17210 Create temp table call to ha_ndbcluster::create_handler_files caused core
- do not try to create ndb temp tables even if default storage is ndb
2006-02-17 17:12:35 +01:00
holyfoot@mysql.com
be02944df6 Merging 5.0->5.1 2006-02-17 11:26:03 +04:00
holyfoot@mysql.com
f500cbf83c Merge bk@192.168.21.1:mysql-5.0
into mysql.com:/home/hf/work/mysql-5.0.w2645
2006-02-17 10:56:54 +04:00
holyfoot@deer.(none)
053d90a234 WL#2645 (CHECK TABLE FOR UPGRADE)
necessary implementation in the server
mysql_upgrade script added
2006-02-17 10:52:32 +04:00
jimw@mysql.com
d30dbf6efa Bug #17169: Partitions: out of memory if add partition and unique.
When creating a new partition, a bogus memory allocation problem was
reported.
2006-02-16 08:15:36 -08:00
mats@mysql.com
43bc3c4068 Merge mysql.com:/home/bkroot/mysql-5.1-new
into  mysql.com:/home/bk/w3023-mysql-5.1-new
2006-02-16 08:46:45 +01:00
mats@mysql.com
2884408c75 WL#3023 (Use locks in a statement-like manner):
Table maps are now written on aquiring locks to tables and released
  at the end of each logical statement.
2006-02-16 08:30:53 +01:00
mikron@mikael-ronstr-ms-dator.local
aec1c506a5 WL 2826: Error handling of ALTER TABLE for partitioning
First step for handling errors in ALTER TABLE for partitioning
2006-02-14 14:22:21 +01:00
mikron@mikael-ronstr-ms-dator.local
5b99026ac7 WL 2826: Error handling of ALTER TABLE for partitioning
Added action code for recovery
2006-02-14 11:08:58 +01:00
ingo@mysql.com
b4b5dc18c4 Merge mysql.com:/home/mydev/mysql-5.0-bug8841
into  mysql.com:/home/mydev/mysql-5.1-bug8841
2006-02-14 09:29:37 +01:00
mikron@mikael-ronstr-ms-dator.local
5a20f2d0b4 WL 2826: Error handling of ALTER TABLE for partitioning
Introduce log entry to handle replace of frm file
2006-02-13 13:52:23 +01:00
bar@mysql.com
53a0372d87 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/home/bar/mysql-5.1-new.fscs
2006-02-13 11:53:56 +04:00
bar@mysql.com
611cbc2f4d renamedb.test, renamedb.result:
new file
Many files:
  WL#757 RENAME DATABASE
2006-02-13 11:49:28 +04:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
12647d736b Compile fixes 2006-02-11 00:41:52 -05:00
mikron@c-370be253.1238-1-64736c10.cust.bredbandsbolaget.se
10c5b8f3ba WL 2826: Error handling of ALTER TABLE for partitioning
Make lots of fixes to handle the most complex case of reorganising
of partitions where two-phased processes are needed in some cases.
2006-02-10 22:36:01 +01:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
abe4952fcd Don't use free'd memory, bad idea
Free all memory with mutex and destroy mutex as final step
2006-02-10 13:33:08 -05:00
mikron@c-370be253.1238-1-64736c10.cust.bredbandsbolaget.se
d7f164a927 WL 2826: Error handling of ALTER TABLE for partitioning
New function to set exec_log_entry
Moving code outside lock of table log
Fixing some initialisations of list reference to avoid
releasing wrong parts
2006-02-10 12:30:51 +01:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
ee6508d2ab Bug fixes + debug stuff 2006-02-09 23:57:54 -05:00
mikron@mikael-ronstr-ms-dator.local
4b6b06fd80 WL 2826: Error handling of ALTER TABLE for partitioning
A little more complete handling
2006-02-09 20:20:21 +01:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
dd59559597 WL 2826: Error handling of ALTER TABLE for partitioning
A number of fixes
2006-02-09 14:13:22 -05:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
789160cef3 Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-wl2826
into  c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
2006-02-09 12:14:51 -05:00
mikron@c-e90be253.1238-1-64736c10.cust.bredbandsbolaget.se
d9ef322c5f WL 2826: Error handling for ALTER TABLE for partitioning
Step 14: First version of table log for add/Drop partition
2006-02-09 11:05:05 +01:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
9399e98b71 WL 2826: Error handling of ALTER TABLE for partitioning
Close down table log also at exit of main thread
2006-02-08 20:26:56 -05:00
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
c12c095226 WL 2826: Error handling for ALTER TABLE for partitioning Step 13
Lots of compilation fixes
2006-02-08 18:04:58 -05:00
mikron@c-9b0be253.1238-1-64736c10.cust.bredbandsbolaget.se
221a17dbc3 WL 2826: Error handling for ALTER TABLE for partitioning
Most of the code for handling the table log is in place now, except
the action part at recovery and proper error handling in some places.
2006-02-08 15:14:15 +01:00
mikron@mikael-ronstr-ms-dator.local
17897f9a5c WL 2826: Step 12
More table log code
2006-02-07 16:26:34 +01:00
mikron@c-fa09e253.1238-1-64736c10.cust.bredbandsbolaget.se
5091f3a8a5 WL 2826: Step 11
Lots of new code for table log
2006-02-07 10:45:07 +01:00
mikron@c-9c0ae253.1238-1-64736c10.cust.bredbandsbolaget.se
83890afeb2 WL 2826: Step 10
New methods to read/write/initialise table log
2006-02-06 21:47:03 +01:00
tomas@poseidon.ndb.mysql.com
a8f1cffd95 Bug #17038, distribution of schema operation to multiple binlogs missing/multiple entries, partial fix
- log alter table directly in server instead of in handler
- acknowledge alter table _after_ all binlog events have been processed
2006-02-06 11:47:12 +01:00
pappa@c-5c0be253.1238-1-64736c10.cust.bredbandsbolaget.se
da5713e486 WL #2826: Sixth step, made it work with test cases 2006-02-03 12:05:29 -05:00
ingo@mysql.com
c5a7bffcee Bug#8841 - CHECKSUM TABLE is broken in MyISAM
There are (at least) two implementations of the checksum
computation. One is in MyISAM for the quick checksum. It
is executed on every row change. The other is in the
SQL layer for the extended checksum. It retrieves all rows
of a table via the respective storage engine.

In former MySQL versions varchars were stored with their 
maximum length, but now with their real length similar to
blobs.

This change had been forgotten to take care of in the
extended checksum calculation. Hence too much data was
checksumed. In MyISAM this change had been taken care of 
already. Only the real data is included in the checksum.

I changed mysql_checksum_table() so that it uses the
length information of true varchar fields instead
of the field length like in former varchar 
implementations.
2006-02-01 16:46:44 +01:00
mikron@c-4d08e253.1238-1-64736c10.cust.bredbandsbolaget.se
08e12cada9 WL 2826: First step in error handling of ALTER TABLE for partitioning 2006-02-01 10:06:07 +01:00
marty@linux.site
d77b26c8c6 Post review fixes 2006-01-31 15:53:35 +01:00
marty@linux.site
d03efdfd5b Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  linux.site:/home/marty/MySQL/mysql-5.1-new
2006-01-31 09:30:35 +01:00
msvensson@neptunus.(none)
44cd491502 Merge neptunus.(none):/home/msvensson/mysql/bug15904/my51-bug15904
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
2006-01-30 11:03:17 +01:00
joerg@debian.(none)
c81862cc77 Merge 2006-01-28 10:37:22 +01:00
marty@linux.site
3f78e8b8aa Added possibillity to check what fields will get added indexes (ndb does currently not support indexes on disk stored fields), WL#1892 2006-01-27 17:23:14 +01:00
mats@mysql.com
5f7956094c WL#3023 (RBR: Use locks in a statment-like manner):
Interface changes pushed early.
  Separation of public and implementation interface for external_lock()
  in preparation for implementation.
2006-01-26 09:25:37 +01:00
msvensson@neptunus.(none)
b5188bdc75 Bug#15904 --tmpdir requires trailing slash '/'
- Use same code for creating the temptable filename both from "mysql_create_table" and "mysql_create_like_table"
2006-01-23 13:28:42 +01:00
cps@outpost.site
ce2eb6d8cb WL1019: complete patch. Reapplied patch to the clean
tree to get rid of multiple typos in CS comments and
unify the patch.
2006-01-19 05:56:06 +03:00
mskold@mysql.com
aae4a997d4 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new
2006-01-17 18:35:15 +01:00
mskold@mysql.com
1476b484c2 Additional fixes for WL#1892 2006-01-17 12:53:49 +01:00
mikron@c-1e0be253.1238-1-64736c10.cust.bredbandsbolaget.se
6bf5c9113d WL #2747: Fix such that backup and restore works for user defined
partitioned tables in NDB
2006-01-17 09:25:12 +01:00
mikron@c-1e0be253.1238-1-64736c10.cust.bredbandsbolaget.se
e802a94284 WL #2604: Partition Management
Optimised version of ADD/DROP/REORGANIZE partitions for
non-NDB storage engines.
New syntax to handle REBUILD/OPTIMIZE/ANALYZE/CHECK/REPAIR partitions
Quite a few bug fixes
2006-01-17 08:40:00 +01:00
jani@a193-229-222-105.elisa-laajakaista.fi
b948c2941d Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
2006-01-16 21:31:22 +02:00
svoj@april.(none)
237e80670a Merge april.(none):/home/svoj/devel/mysql/BUG13835/mysql-5.0
into  april.(none):/home/svoj/devel/mysql/BUG13835/mysql-5.1-new
2006-01-16 21:42:09 +04:00
andrey@lmy004.
7b2238d484 Merge 2006-01-16 16:21:41 +01:00
svoj@april.(none)
5581ef960a BUG#13835: max key length is 1000 bytes when trying to create a fulltext index
Allow fulltext index on VARCHAR columns longer than max key length.
2006-01-13 21:25:12 +04:00
ingo@mysql.com
16437321cb WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
NDB cluster is not fully supported. This will be added with
WL 1892 (NDB Handler: Add support for CREATE/DROP INDEX).
Some preparatory code for this is already present though.
A change for the "duplicate key" error message is planned
for another changeset.
2006-01-12 10:05:07 +01:00
bar@mysql.com
28ed7c0c9f sql_table.cc:
Typo fix.
  Thanks Serg for noticing this.
2006-01-12 11:41:57 +04:00
bar@mysql.com
dc1b2cd312 Making old tables seen with "#mysql50#" prefix,
which makes it possible to run RENAME TABLE
  on old tables when upgrading from 5.0.
  TODO: A stored procedure to rename all tables and
  databases with old name format into new format,
  it will simplify upgrade.
sql_table.cc:
  Making old tables seen with "#mysql50#" prefix.
  Adding warning into .err log when an old name is found.
sql_show.cc:
  Skip non-directories before filename_to_tablename
  call, to avoid unnecessary warnings.
strfunc.cc:
  Adding "error" argument to strconvert()
mysql_priv.h:
  Adding "error" agrument to strconvert()
2005-12-31 12:34:39 +04:00
bar@mysql.com
6ff211329f WL#1324 table name to file name encoding
- Encoding itself, implemented as a charset
  "filename". Originally planned to use '.'
  as an escape character, but now changed to '@'
  for two reasons: "ls" does not return
  file names starting with '.' considering them
  as a kind of hidden files; some platforms
  do not allow several dots in a file name.
- replacing many calls of my_snprintf() and
  strnxmov() to the new build_table_filename().
- Adding MY_APPEND_EXT mysys flag, to append
  an extention rather that replace it.
- Replacing all numeric constants in fn_format
  flag arguments to their mysys definitions, e.g.
  MY_UNPACK_FILENAME,
- Predictability in several function/methods:
  when a table name can appear with or withot .frm
  extension. Some functions/methods were changed
  so accept names strictly with .frm, other - strictly
  without .frm extensions. Several DBUG_ASSERTs were
  added to check whether an extension is passed.
Many files:
  table name to file name encoding
mysql_priv.h:
  Prototypes for new table name encoding tools.
ctype-utf8.c:
  Implementing "filename" charset for
  table name to file name encoding.
row0mysql.c:
  Fixing table name prefix.
mf_format.c:
  Adding MY_APPEND_EXT processing.
Many files:
  Fixing tests.
my_sys.h:
  Adding new flag to append rather than replace an extension.
m_ctype.h:
  Adding "filename" charset definition.
2005-12-31 09:01:26 +04:00
svoj@mysql.com
a3f445151f WL#2575 - Fulltext: Parser plugin for FTS
Manual merge.
2005-12-28 16:05:30 +04:00
mats@mysql.com
6dd5e5619e Bug#15920 (Temporary tables are not logged in binlog):
Fixing faulty tests preventing some CREATE TEMPORARY TABLE statements
  from being binlogged under statement-based replication.
2005-12-22 11:09:50 +01:00
lars@mysql.com
ad126d90e0 WL#1012: All changes as one single changeset.
This includes both code and test cases.
2005-12-22 06:39:02 +01:00
acurtis@xiphis.org
9d4d1e81b8 Merge xiphis.org:/home/antony/work2/mysql-5.1
into  xiphis.org:/home/antony/work3/mysql-5.1-plugable-2
2005-12-21 10:26:39 -08:00
acurtis@xiphis.org
13a776778c Finalize storage engine plugins
Give BerkeleyDB savepoints
Remove "enum db_type" from most of the code
2005-12-21 10:18:40 -08:00
holyfoot@deer.(none)
55e7f4503e bug #15521 (Cannot reorganise a partition with a new name equal to the old name) 2005-12-15 15:24:35 +04:00
holyfoot@deer.(none)
3994b2150e Fix for bug #15225 (ANALYZE temporary has no effect) 2005-12-10 18:02:36 +04:00
pem@mysql.com
8e0e421943 Merge mysql.com:/usr/home/pem/bug14834/mysql-5.0
into  mysql.com:/usr/home/pem/mysql-5.1-new
2005-12-07 15:17:18 +01:00
serg@serg.mylan
719089a819 better error for optimize/repair/etc a view 2005-12-05 12:08:30 +01:00
serg@serg.mylan
9c0a8bbd17 this has nothing to do with the bug#13012.
it's about mysql_admin_commands not being reexecution-safe
(and CHECK still isn't)
2005-12-03 15:02:09 +01:00
jimw@mysql.com
0597c510c8 Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2005-11-30 12:17:01 -08:00
holyfoot@mysql.com
c60b8e3027 Merge bk@192.168.21.1:mysql-5.0
into mysql.com:/home/hf/work/mysql-5.0.14693
2005-11-29 13:33:56 +04:00
pem@mysql.com
b2a9961abf Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/mysql-5.1-new
2005-11-28 20:14:12 +01:00
konstantin@mysql.com
463175c4e8 Post-merge fixes. 2005-11-25 18:53:55 +03:00
konstantin@mysql.com
9fd6204ad1 Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/opt/local/work/mysql-5.0-root
2005-11-25 13:57:13 +03:00
konstantin@mysql.com
f57dffe453 A fix and a test case for Bug#14410 "Crash in Enum or Set type in
CREATE TABLE and PS/SP": make sure that 'typelib' object for
ENUM values and 'Item_string' object for DEFAULT clause are 
created in the statement memory root.
2005-11-25 13:25:31 +03:00
holyfoot@deer.(none)
e906120ba8 Fix for bug #14693 (ALTER COLUMN SET DEFAULT has no effect) 2005-11-24 20:24:45 +04:00
monty@mysql.com
4575a662cb Merge mysql.com:/home/my/mysql-5.1
into  mysql.com:/home/my/mysql-5.1-TDC
2005-11-23 22:58:53 +02:00
monty@mysql.com
e42c980967 Table definition cache, part 2
The table opening process now works the following way:
- Create common TABLE_SHARE object
- Read the .frm file and unpack it into the TABLE_SHARE object
- Create a TABLE object based on the information in the TABLE_SHARE
  object and open a handler to the table object

Other noteworthy changes:
- In TABLE_SHARE the most common strings are now LEX_STRING's
- Better error message when table is not found
- Variable table_cache is now renamed 'table_open_cache'
- New variable 'table_definition_cache' that is the number of table defintions that will be cached
- strxnmov() calls are now fixed to avoid overflows
- strxnmov() will now always add one end \0 to result
- engine objects are now created with a TABLE_SHARE object instead of a TABLE object.
- After creating a field object one must call field->init(table) before using it

- For a busy system this change will give you:
 - Less memory usage for table object
 - Faster opening of tables (if it's has been in use or is in table definition cache)
 - Allow you to cache many table definitions objects
 - Faster drop of table
2005-11-23 22:45:02 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
5273071265 Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new
2005-11-23 14:57:00 +02:00
bell@sanja.is.com.ua
7f162c7899 Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug1-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.0
2005-11-21 21:15:48 +02:00
bell@sanja.is.com.ua
806f9e24ff Inefficient usage of String::append() fixed.
Bad examples of usage of a string with its length fixed.
The incorrect length in the trigger file configuration descriptor
  fixed (BUG#14090).
A hook for unknown keys added to the parser to support old .TRG files.
2005-11-20 20:47:07 +02:00
guilhem@mysql.com
24006266d0 Merge mysql.com:/home/mysql_src/mysql-5.0-van
into  mysql.com:/home/mysql_src/mysql-5.1-merge-of-5.0
(2nd try; Pekka kindly accepted to fix storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
and storage/ndb/src/kernel/vm/SimulatedBlock.cpp after I push).
2005-11-19 10:43:28 +01:00
guilhem@mysql.com
2f95fc2701 Merge mysql.com:/home/mysql_src/mysql-5.0
into  mysql.com:/home/mysql_src/mysql-5.1-merge-of-5.0 (not all files are good,
I'll fix; I'll ask some devs to check their part)
2005-11-18 16:38:01 +01:00
ingo@mysql.com
3df2007147 Merge mysql.com:/home/mydev/mysql-4.1-4100
into  mysql.com:/home/mydev/mysql-5.0-5000
2005-11-16 10:23:42 +01:00
ingo@mysql.com
74781d6559 Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Version for 5.0.
It fixes three problems:
1. The cause of the bug was that we did not check the table version for
 the HANDLER ... READ commands. We did not notice when a table was
 replaced by a new one. This can happen during ALTER TABLE, REPAIR
 TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix
 for this problem "the primary bug fix".
2. mysql_ha_flush() was not always called with a locked LOCK_open.
 Though the function comment clearly said it must.
 I changed the code so that the locking is done when required. I call
 the fix for this problem "the secondary fix".
3. In 5.0 (not in 4.1 or 4.0) DROP TABLE had a possible deadlock flaw in
 concur with FLUSH TABLES WITH READ LOCK. I call the fix for this
 problem "the 5.0 addendum fix".
2005-11-15 21:57:02 +01:00
ingo@mysql.com
6bc4636b64 Merge mysql.com:/home/mydev/mysql-4.0-4000
into  mysql.com:/home/mydev/mysql-4.1-4100
2005-11-15 18:09:40 +01:00
sergefp@mysql.com
c6a902f20c Merge mysql.com:/home/psergey/mysql-4.1-nov08-push
into mysql.com:/home/psergey/mysql-5.0-oct08-push
2005-11-09 10:12:58 +03:00
sergefp@mysql.com
f12212f74e BUG#14480: post-fix: use the default field value from CREATE list too. 2005-11-09 09:34:46 +03:00
sergefp@mysql.com
c5276ebcb0 Merge, will need post-merge fixes. 2005-11-08 11:22:51 +03:00
acurtis@poseidon.ndb.mysql.com
c01a3b5e5f Make storage engines "pluggable", handlerton work 2005-11-07 16:25:06 +01:00
sergefp@mysql.com
edd094b194 BUG#14480, attempt2: In CREATE ... SELECT ..., don't count the same field twice
when calculating table->null_fields.
2005-11-07 09:23:43 +03:00
svoj@poseidon.ndb.mysql.com
3791197f0d WL#2575 - Fulltext: Parser plugin for FTS
WL#2763 - MySQL plugin interface: step 1
Manual merge from CNET tree.
2005-11-06 13:13:06 +01:00
igor@rurik.mysql.com
0960f5fedc Post review fixes. 2005-11-05 22:41:36 -08:00
monty@mysql.com
a6f5375cb0 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
2005-11-05 01:32:55 +02:00
igor@rurik.mysql.com
84ad20364d Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2005-11-04 15:03:29 -08:00
ingo@mysql.com
1b99d30c23 Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Version for 4.0.
It fixes two problems:
1. The cause of the bug was that we did not check the table version for
   the HANDLER ... READ commands. We did not notice when a table was
   replaced by a new one. This can happen during ALTER TABLE, REPAIR
   TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix
   for this problem "the primary bug fix".
2. mysql_ha_flush() was not always called with a locked LOCK_open.
   Though the function comment clearly said it must.
   I changed the code so that the locking is done when required. I call
   the fix for this problem "the secondary fix".
2005-11-03 18:24:12 +01:00
jani@ua141d10.elisa.omakaista.fi
0f83ba137a Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0
2005-11-03 16:43:05 +02:00
jani@ua141d10.elisa.omakaista.fi
0ee589b4d6 Changes in get_table_type() and mysql_frm_type(). The main problem was
that in mysql_rm_table_part2_with_lock() previously we needed to open
same file twice. Now once is enough.
2005-11-03 16:10:11 +02:00
konstantin@mysql.com
7e3f757f2d A fix and a test case for Bug#14210 "Simple query with > operator on
large table gives server crash": make sure that when a MyISAM temporary
table is created for a cursor, it's created in its memory root,
not the memory root of the current query.
2005-11-03 14:20:13 +03:00
igor@rurik.mysql.com
44dd303c47 Post review fixes. 2005-11-02 22:13:10 -08:00
igor@rurik.mysql.com
fddc99bcd8 #view.test#:
new file
sql_table.cc, handler.h:
  Fixed bug #14540.
  Added error mnemonic code HA_ADMIN_NOT_BASE_TABLE
  to report that an operation cannot be applied for views.
view.test, view.result:
  Added a test case for bug #14540.
errmsg.txt:
  Fixed bug #14540.
  Added error ER_CHECK_NOT_BASE_TABLE.
2005-11-02 13:44:58 -08:00
sergefp@mysql.com
09a4d0c7a7 4.1->5.0 merge 2005-10-29 02:36:57 +04:00
sergefp@mysql.com
2219ada7f6 BUG#14139: When handling "CREATE TABLE(field_X type_spec,...) SELECT smth AS field_X, ...."
avoid multiplying length of field_X by charset->mbmaxlen twice when calculating space 
required for field_X in the new table.
2005-10-26 00:56:17 +04:00
hf@deer.(none)
86e358f1c8 Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0
into deer.(none):/home/hf/work/mysql-5.0.12267
2005-10-25 19:08:33 +05:00
msvensson@neptunus.mysql.com
bb15425235 Fix for dropping a table with frm file consisting of "junk" 2005-10-24 15:05:06 +02:00
dlenev@mysql.com
920d379228 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg12739
2005-10-17 22:47:46 +04:00
dlenev@mysql.com
ea0b89aeae Fix for bug #12739 "Deadlock in multithreaded environment during creating/
droping trigger on InnoDB table".

Deadlock occured in cases when we were trying to create two triggers for
the same InnoDB table concurrently and both threads were able to reach
close_cached_table() simultaneously. Bugfix implements new approach to
table locking and table cache invalidation during creation/dropping
of trigger.

No testcase is supplied since bug was repeatable only under high concurrency.
2005-10-17 22:37:24 +04:00
hf@deer.(none)
9910198aaf Additional fix for bug #12267 (Can't use POINT for primary key) 2005-10-15 22:23:13 +05:00
hf@deer.(none)
7fb1ffd07e Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0
into deer.(none):/home/hf/work/mysql-5.0.12267
2005-10-15 21:05:29 +05:00
monty@mysql.com
f5fdf3e87a Reviewing new pushed code
- CHAR() now returns binary string as default
- CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
- Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
  (Some old systems returns ETIME and it's safer to test for both values
   than to try to write a wrapper for each old system)
- Fixed new introduced bug in NOT BETWEEN X and X
- Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
- Use octet2hex() for all conversion of string to hex
- Simplify and optimize code
2005-10-12 00:58:22 +03:00
monty@mysql.com
17d7ba931d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-08 03:37:23 +03:00
monty@mysql.com
f577ebb88f Simple changes during review of code
Added back flag that I accidently removed in last patch
2005-10-08 00:57:40 +03:00
tomas@poseidon.ndb.mysql.com
620b7bafb0 Merge 2005-10-06 10:54:07 +02:00
serg@serg.mylan
faa0365d29 Merge mysqldev@production.mysql.com:/data0/mysqldev/my/mysql-5.0-release
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-10-05 19:37:02 +02:00
serg@mysql.com
83683bb649 sql_table.cc:
fixed CHECKSUM TABLE to be independent from the first 'deleted' bit in the null bitmask (undefined in the InnoDB)
  bug#13710
2005-10-05 19:36:20 +02:00
serg@serg.mylan
84859c3895 Merge mysqldev@production.mysql.com:/data0/mysqldev/my/mysql-5.0-release
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-10-04 18:10:38 +02:00
serg@mysql.com
062f145bf8 sql_table.cc, table.cc, table.h:
fixed CHECKSUM TABLE to be independent from last - undefined in InnoDB - bits in the null bitmask
  bug#13710
2005-10-04 17:04:20 +02:00
eric@mysql.com
5008a5f208 Move handler specific options into handlerton flag check
BUG#13108
2005-09-30 16:26:48 -07:00
serg@serg.mylan
6716d16bc7 CHECKSUM TABLE now allows concurrent inserts 2005-09-27 20:11:09 +02:00
hf@deer.(none)
836bc2638e Fix for bug #12267 (primary key over GEOMETRY field) 2005-09-26 14:55:52 +05:00
pappa@c-1309e253.1238-1-64736c10.cust.bredbandsbolaget.se
2530fcde11 Handle default engine type better for
partitioned tables
2005-09-20 10:29:59 -04:00
andrey@lmy004.
72549b13c2 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-4.1
into lmy004.:/work/mysql-4.1-bug12913
2005-09-20 06:55:23 +03:00
ndbdev@dl145c.mysql.com
dc595c9b1d merge 2005-09-15 07:36:47 +02:00
dlenev@mysql.com
2a96aa110f Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg12704-2
2005-09-15 03:57:59 +04:00
dlenev@mysql.com
e231ebe5fb Fix for bug #12704 "Server crashes during trigger execution".
This bug occurs when some trigger for table used by DML statement is created
or changed while statement was waiting in lock_tables(). In this situation
prelocking set which we have calculated becames invalid which can easily lead
to errors and even in some cases to crashes.

With proposed patch we no longer silently reopen tables in lock_tables(),
instead caller of lock_tables() becomes responsible for reopening tables and
recalculation of prelocking set.
2005-09-15 03:56:09 +04:00
tulin@dl145c.mysql.com
b127139206 Bug #13179 partition info in mysqldump makes it hard to use dump in different sized cluster 2005-09-14 17:30:23 +02:00
msvensson@neptunus.(none)
fb63290635 Merge neptunus.(none):/home/msvensson/mysql/bug10713_new/my50-bug10713_new
into  neptunus.(none):/home/msvensson/mysql/bug10713_new/my51-bug10713_new
2005-09-14 09:43:56 +02:00
monty@mishka.mysql.fi
9f22a16972 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mishka.mysql.fi:/home/my/mysql-5.0
2005-09-14 01:47:38 +03:00
monty@mishka.mysql.fi
f348f62cc3 Added option --valgrind-mysqltest to mysql-test-run
Added flag to Field::store(longlong) to specify if value is unsigned.
This fixes bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
Fixed warning from valgrind in CREATE ... SELECT
Fixed double free of mysql.options if reconnect failed
2005-09-14 01:41:44 +03:00
ingo@mysql.com
7953594a4d Bug#12845 - Stress test: Server crashes on CREATE .. SELECT statement
Solution for 5.0.
Changed calls to open_table(). Requested to ignore
flush at places where the command did already lock tables.
This could happen in CREATE ... SELECT and ALTER TABLE.

No test case. The bug can only be triggered by true concurrency.
The stress test suite provides a test case for this.
2005-09-13 14:36:43 +02:00
ndbdev@dl145c.mysql.com
4e8595862d Merge 2005-09-13 05:33:11 +02:00
jani@a193-229-222-105.elisa-laajakaista.fi
01ce8a8aa9 Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0
2005-09-12 20:18:49 +03:00