Commit graph

87 commits

Author SHA1 Message Date
davi@mysql.com/endora.local
2bf61233fa Bug#35788 A few tests fail due to concurrent inserts
The problem is that since MyISAM's concurrent_insert is on by
default some concurrent SELECT statements might not see changes
made by INSERT statements in other connections, even if the
INSERT statement has returned.

The solution is to disable concurrent_insert so that INSERT
statements returns after the data is actually visible to other
statements.
2008-04-30 10:28:19 -03:00
joerg@trift2.
e7e5311ce4 Merge trift2.:/MySQL/M51/mysql-5.1
into  trift2.:/MySQL/M51/push-5.1
2008-03-27 12:45:16 +01:00
svoj@june.mysql.com
2d44db25e7 Merge mysql.com:/home/svoj/devel/mysql/BUG35509/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG34768/mysql-5.1-engines
2008-03-25 20:28:43 +04:00
svoj@mysql.com/june.mysql.com
88247fd271 BUG#34789 - drop server/create server leaks memory !
BUG#34790 - 'create server' doesn't handle out of memory scenario
            well enough

This is an addition to fixes for these bugs, which makes gcov
happy.
2008-03-25 17:37:53 +04:00
svoj@mysql.com/june.mysql.com
f064cd84d5 BUG#35509 - Federated leaks memory when connecting to
localhost/default port

When creating federated table that points to unspecified host or
localhost on unspecified port or port is 0, small memory leak occurs.

This happens because we make a copy of unix socket path, which is
never freed.

With this fix we do not make a copy of unix socket path, instead
share->socket points to MYSQL_UNIX_ADDR constant directly.

This fix is covered by a test case for BUG34788.

Affects 5.0 only.
2008-03-25 12:47:57 +04:00
svoj@june.mysql.com
96f82fd12d Merge mysql.com:/home/svoj/devel/mysql/push/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/push/mysql-5.1-engines
2008-03-21 12:43:14 +04:00
svoj@mysql.com/june.mysql.com
2b552aae50 BUG#34788 - malformed federated connection url is not handled
correctly - crashes server !

Creating federated table with connect string containing empty
(zero-length) host name and port is evaluated as 0 (port is
incorrect, omitted or 0) crashes server.

This happens because federated calls strcmp() with NULL pointer.

Fixed by avoiding strcmp() call if hostname is set to NULL.
2008-03-20 19:07:17 +04:00
cmiller@zippy.cornsilk.net
b077981fbb Bug#28269: FEDERATED engine fails to quote reserved words for \
field names

Add a test that proves the bug is fixed.  This doesn't add any
new server code.
2008-03-06 14:07:49 -05:00
svoj@april.(none)
2ab1b8406e Merge mysql.com:/home/svoj/devel/mysql/BUG33946/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG33946/mysql-5.1-engines
2008-02-14 16:47:46 +04:00
svoj@mysql.com/april.(none)
7fa875e42b BUG#33946 - Join on Federated tables with Unique index gives error 1430
from storage engine

Federated may crash a server, return wrong result set, return
"ERROR 1030 (HY000): Got error 1430 from storage engine" message
when local (engine=federated) table has a key against nullable
column.

The problem was wrong implementation of function that creates
WHERE clause for remote query from key.
2008-02-14 16:27:01 +04:00
holyfoot/hf@hfmain.(none)
34de307073 Merge mysql.com:/home/hf/work/mrg/my50-mrg
into  mysql.com:/home/hf/work/mrg/my51-mrg
2007-12-01 00:46:44 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
3f51ff6403 Bug #32374 crash with filesort when selecting from federated table and view.
filesort() uses file->estimate_rows_upper_bound() call to allocate
internal buffers. If this function returns a value smaller than
a number of row that will be returned later in find_all_keys(),
that can cause server crash.
Fixed by implementing ha_federated::estimate_rows_upper_bound() to
return maximum possible number of rows.
Present estimation for FEDERATED always returns 0 if the linked to the VIEW.
2007-11-30 17:08:00 +04:00
kostja@bodhi.(none)
28f1f1828d Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
2007-08-08 11:36:55 +04:00
kostja@bodhi.(none)
3c6eb0002d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
2007-08-08 11:34:35 +04:00
dlenev@mockturtle.local
ec2aeb4fae Merge mockturtle.local:/home/dlenev/src/mysql-5.0-bg21281
into  mockturtle.local:/home/dlenev/src/mysql-5.1-bg21281-2
2007-08-05 13:26:10 +04:00
tsmith@ramayana.hindu.god
8575227571 Merge ramayana.hindu.god:/home/tsmith/m/bk/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50
2007-08-01 18:14:50 -06:00
kostja@bodhi.(none)
d63d8cb1a3 Add a test case for Bug#18287 create federated table always times out,
error 1159 ' ' (fixed by the patch for Bug 25679)
2007-08-02 03:32:54 +04:00
tsmith@ramayana.hindu.god
70e14610d6 Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/jul31/51
2007-07-31 17:36:19 -06:00
acurtis/antony@ltamd64.xiphis.org
1f0f46e4fc Merge xiphis.org:/anubis/antony/work/p2-bug25679.3
into  xiphis.org:/anubis/antony/work/p2-bug25679.3.merge-5.1
2007-07-25 12:29:44 -07:00
acurtis/antony@xiphis.org/ltamd64.xiphis.org
fbcd70a494 Bug#25679
"Federated Denial of Service"
  Federated storage engine used to attempt to open connections within
  the ::create() and ::open() methods which are invoked while LOCK_open
  mutex is being held by mysqld. As a result, no other client sessions
  can open tables while Federated is attempting to open a connection.
  Long DNS lookup times would stall mysqld's operation and a rogue
  connection string which connects to a remote server which simply
  stalls during handshake can stall mysqld for a much longer period of
  time.
  This patch moves the opening of the connection much later, when the
  federated actually issues queries, by which time the LOCK_open mutex is
  no longer being held.
2007-07-25 12:23:24 -07:00
acurtis/antony@xiphis.org/ltamd64.xiphis.org
395233b4f7 Bug#29875
"Disable transaction support in Federated storage engine"
  Minimal patch to disable Federated's transactions until they can be fixed.
2007-07-20 11:35:19 -07:00
cmiller@zippy.cornsilk.net
65c59c1d04 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug26909/my51-bug26909
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
2007-07-19 15:37:43 -04:00
cmiller@zippy.cornsilk.net
784dff6da3 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug26909/my50-bug26909
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug26909/my51-bug26909
2007-07-19 15:34:40 -04:00
cmiller@zippy.cornsilk.net
773861ded7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-07-19 15:33:27 -04:00
cmiller@zippy.cornsilk.net
832fd24c41 Bug#26909: Specified key was too long; max key length is 255 bytes \
when creating table

Federated tables had an artificially low maximum of key length, 
because the handler failed to implement a method to return it and 
the default value is taked from the prototype handler.

Now, implement that method and return the maximum possible key
length, which is that of InnoDB.
2007-07-18 14:03:58 -04:00
istruewing@synthia.local
bc3e18cd39 Merge synthia.local:/home/mydev/mysql-5.0-axmrg
into  synthia.local:/home/mydev/mysql-5.1-axmrg
2007-06-30 13:17:49 +02:00
antony@ppcg5.local
b0b0b0fbc4 Bug#25511
"Federated INSERT failures"
  Federated does not correctly handle "INSERT...ON DUPLICATE KEY UPDATE"
  However, implementing such support is not reasonably possible without
  increasing complexity of the storage engine: checking that constraints
  on remote server match local server and parsing error messages.
  This patch causes 'ON DUPLICATE KEY' to fail with ER_DUP_KEY message
  if a conflict occurs and not to fail silently.
2007-06-28 13:36:26 -07:00
antony@ppcg5.local
b3e29fbd1d Bug#29019
"REPLACE/INSERT IGNORE/UPDATE IGNORE doesn't work"
  Federated does not record neccessary HA_EXTRA flags in order to
  support REPLACE/INSERT IGNORE/UPDATE IGNORE.
  Implement ::extra() to capture flags neccessary for functionality.
New function append_ident() to better escape identifiers consistantly.
2007-06-28 00:23:14 -07:00
istruewing@chilla.local
f7657f47c5 Merge chilla.local:/home/mydev/mysql-5.0-axmrg
into  chilla.local:/home/mydev/mysql-5.1-axmrg
2006-12-01 23:01:33 +01:00
patg@radha.local
7ce83bc36a federated.test:
fixed test to replace port to SLAVE_PORT in result file
federated.result:
  new result file
2006-11-29 13:56:59 -05:00
patg@radha.local
5f0fe17796 BUG# 17044 Federated Storage Engine not UTF8 clean
- Added 'SET NAMES <charset>" upon ::open
- Added test and results for simple UTF test

federated.test:
  BUG #17044 Federated Storage Engine not UTF8 clean
  New test. Using hex - pasting various charsets in the terminal doesn't work.
federated.result:
  BUG# 17044 Federated Storage Engine not UTF8 clean
  New test results
ha_federated.cc:
  BUG# 17044 Federated Storage Engine not UTF8 clean
  Upon ::open, set names to table's charset
2006-11-15 21:24:58 -05:00
pgalbraith/patg@govinda.patg.net
9da072cb5b Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.1-engines-merge
2006-08-11 14:06:23 -07:00
patg@govinda.patg.net
8d1e5a5bb1 Merge govinda.patg.net:/home/patg/mysql-build/mysql-5.0-holyfoot
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.1-5.0-merge2

Push by holyfoot@production.mysql.com on Tue Jul 25 13:41:40 2006:

bk clone -l -r'holyfoot/hf@mysql.com/deer.(none)|ChangeSet|20060725085017|41021' mysql-5.0 tmp_merge
2006-08-08 09:01:32 -07:00
kostja@bodhi.local
73189969f3 Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-07-26 23:33:25 +04:00
pgalbraith/patg@buffy.netfrastructure.com
cf8b64a114 BUG #15133 "unique index with nullable value not accepted in federated table"
Added HA_NULL_IN_KEY to table flags to allow for nullable unique indexes
and added test to verify

ha_federated.h:
  BUG #15133 "unique index with nullable value not accepted in federated table"
  added HA_NULL_IN_KEY to table flags to allow for nullable unique indexes
federated.test:
  BUG #15133 "unique index with nullable value not accepted in federated table"
  New test to show that nullable unique indexes work
federated.result:
  BUG #15133 "unique index with nullable value not accepted in federated table"
  New results for new test
2006-07-25 18:38:09 -04:00
ingo/mydev@chilla.local
84f3623b3d After merge fixes. 2006-07-21 10:43:10 +02:00
ingo/mydev@chilla.local
18a76a953c Merge chilla.local:/home/mydev/mysql-5.0-mmerge
into  chilla.local:/home/mydev/mysql-5.1-amain
2006-07-20 21:28:55 +02:00
patg@govinda.patg.net
71f5b4997a "BUG #18764: Delete conditions causing inconsistencies in Federated tables"
Post merge changes.
2006-07-18 18:41:36 -07:00
patg@govinda.patg.net
259f9bb0d7 Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.0-bug18764.2
2006-07-18 17:21:50 -07:00
patg@govinda.patg.net
51d8bcf627 "BUG #18764: Delete conditions causing inconsistencies in Federated tables"
Removed logic in ha_federated::write_row, which checks field query ids in the
loop which builds the query to run on the remote server.
2006-07-17 16:45:04 -07:00
jimw@rama.(none)
c2d8b605f2 Bug #17608: String literals lost during INSERT query on FEDERATED table
The Federated storage engine used Field methods that had arbitrary limits on
  the amount of data they could process, which caused problems with data
  over that limit (4K). By removing those Field methods and just using
  features of the String class, we can avoid this problem.
2006-07-12 16:33:29 -07:00
kostja@bodhi.local
56353959e7 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-07-13 00:18:59 +04:00
kostja@bodhi.local
f1d949a856 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-08 21:45:02 +04:00
patg@govinda.patg.net
99a2489e94 BUG #19773
Small post-patch fixes
2006-07-07 11:17:50 -07:00
patg@govinda.patg.net
9889ba0996 Merge govinda.patg.net:/home/patg/mysql-build/mysql-5.0-merge1
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.1-merge1
2006-07-06 16:07:24 -07:00
dlenev@mysql.com
b429748fab Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/home/dlenev/mysql-5.0-bg18437-3
2006-07-06 14:31:32 +04:00
dlenev@mysql.com
d6f47c31b6 After merge fixes for patch solving bug#18437 "Wrong values inserted with a
before update trigger on NDB table".

Two main changes:
- We use TABLE::read_set/write_set bitmaps for marking fields used by
  statement instead of Field::query_id in 5.1.
- Now when we mark columns used by statement we take into account columns 
  used by table's triggers instead of marking all columns as used if table
  has triggers.
2006-07-06 13:33:23 +04:00
dlenev@mysql.com
eb3ae6eb79 Merge mysql.com:/home/dlenev/mysql-5.0-bg18437-3
into  mysql.com:/home/dlenev/mysql-5.1-bg18437
2006-07-02 02:12:53 +04:00
dlenev@mysql.com
d4450e6696 Fix for bug#18437 "Wrong values inserted with a before update trigger on
NDB table".

SQL-layer was not marking fields which were used in triggers as such. As
result these fields were not always properly retrieved/stored by handler
layer. So one might got wrong values or lost changes in triggers for NDB,
Federated and possibly InnoDB tables.
This fix solves the problem by marking fields used in triggers
appropriately.

Also this patch contains the following cleanup of ha_ndbcluster code:

We no longer rely on reading LEX::sql_command value in handler in order
to determine if we can enable optimization which allows us to handle REPLACE
statement in more efficient way by doing replaces directly in write_row()
method without reporting error to SQL-layer.
Instead we rely on SQL-layer informing us whether this optimization
applicable by calling handler::extra() method with
HA_EXTRA_WRITE_CAN_REPLACE flag.
As result we no longer apply this optimzation in cases when it should not
be used (e.g. if we have on delete triggers on table) and use in some
additional cases when it is applicable (e.g. for LOAD DATA REPLACE).

Finally this patch includes fix for bug#20728 "REPLACE does not work
correctly for NDB table with PK and unique index".
  
This was yet another problem which was caused by improper field mark-up.
During row replacement fields which weren't explicity used in REPLACE
statement were not marked as fields to be saved (updated) so they have
retained values from old row version. The fix is to mark all table
fields as set for REPLACE statement. Note that in 5.1 we already solve
this problem by notifying handler that it should save values from all
fields only in case when real replacement happens.
2006-07-02 01:51:10 +04:00
ingo@mysql.com
02c8e6b000 Fixed yet another forgotten port number replacement. 2006-06-29 14:03:53 +02:00