Commit graph

16957 commits

Author SHA1 Message Date
tomas@poseidon.ndb.mysql.com
9791d53445 partition functions to pass create_info, not only max_rows 2006-06-27 22:19:27 +02:00
tomas@poseidon.ndb.mysql.com
76d1307de3 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
2006-06-27 21:44:10 +02:00
kroki@mysql.com
73eb784b67 Merge mysql.com:/home/tomash/src/mysql_ab/mysql-5.0
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-bug17203
2006-06-27 21:31:26 +04:00
kroki@mysql.com
08f192f81b Bug#17203: "sql_no_cache sql_cache" in views created from prepared statement
The problem was that we restored SQL_CACHE, SQL_NO_CACHE flags in SELECT
statement from internal structures based on value set later at runtime, not
the original value set by the user.

The solution is to remember that original value.
2006-06-27 21:28:32 +04:00
svoj@may.pils.ru
ffd8ed1716 BUG#1662 - ALTER TABLE LIKE ignores DATA/INDEX DIRECTPORY
Produce a warning if DATA/INDEX DIRECTORY is specified in
ALTER TABLE statement.

Ignoring of these options is documented in the symbolic links
section of the manual.
2006-06-27 22:22:43 +05:00
gkodinov@mysql.com
be3c4a154f Merge mysql.com:/home/kgeorge/mysql/4.1/teamclean
into  mysql.com:/home/kgeorge/mysql/4.1/B16458
2006-06-27 18:47:22 +03:00
kroki@mysql.com
49cc2904d2 Dec. 31st, 9999 is still a valid date, only starting with Jan 1st 10000 things become invalid (Bug #12356) 2006-06-27 19:33:59 +04:00
stewart@mysql.com
bd54e6769b BUG#20725 MySQLD cluster use "fast count" is broken
fix based on review by tomas.

conform to bug we haven't fixed yet.
2006-06-28 01:28:07 +10:00
stewart@mysql.com
bc91efe0ae BUG#20725 MySQLD cluster use "fast count" is broken
Post recent handler changes, fast count(*) for cluster was broken.

Seeing as we maintain an exact count for ndb, we can easily use this for an optimisation.

With this patch, and use_exact_count DISABLED, we will use the fast way
of getting count(*) but not use the exact count for the optimiser.

With this patch and use_exact_count ENABLED, we will use the fast way of
getting count(*) and use the exact count for the optimiser.
2006-06-28 01:07:44 +10:00
gkodinov@mysql.com
7149f48d97 Merge mysql.com:/home/kgeorge/mysql/4.1/B16458
into  mysql.com:/home/kgeorge/mysql/5.0/B16458
2006-06-27 17:59:49 +03:00
gkodinov@mysql.com
9ec681ef35 Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
'SELECT DISTINCT a,b FROM t1' should not use temp table if there is unique 
index (or primary key) on a.
There are a number of other similar cases that can be calculated without the
use of a temp table : multi-part unique indexes, primary keys or using GROUP BY 
instead of DISTINCT.
When a GROUP BY/DISTINCT clause contains all key parts of a unique
index, then it is guaranteed that the fields of the clause will be
unique, therefore we can optimize away GROUP BY/DISTINCT altogether.
This optimization has two effects:
* there is no need to create a temporary table to compute the
   GROUP/DISTINCT operation (or the temporary table will be smaller if only GROUP 
   is removed and DISTINCT stays or if DISTINCT is removed and GROUP BY stays)
* this causes the statement in effect to become updatable in Connector/Java
because the result set columns will be direct reference to the primary key of 
the table (instead to the temporary table that it currently references). 

Implemented a check that will optimize away GROUP BY/DISTINCT for queries like 
the above.
Currently it will work only for single non-constant table in the FROM clause.
2006-06-27 17:40:19 +03:00
konstantin@mysql.com
e29ea3f2ef Fix yet another place that used uint32 instead of uint. 2006-06-27 17:34:14 +04:00
gluh@eagle.intranet.mysql.r18.ru
49afa7d075 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1
into mysql.com:/home/gluh/MySQL/Merge/5.1-kt
2006-06-27 18:24:14 +05:00
tomas@poseidon.ndb.mysql.com
6283d8fd5a Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
2006-06-27 14:56:20 +02:00
tomas@poseidon.ndb.mysql.com
08bec7b954 changed signature of get_default_no_partitions 2006-06-27 14:31:34 +02:00
konstantin@mysql.com
36fdaa7d16 Fix yet another place with an obsolete explicit cast to byte *. 2006-06-27 15:39:43 +04:00
konstantin@mysql.com
3cf181bb64 Fix compilation failures on Windows caused by the patch for Bug#17199.
Fix a minor issue with Bug#16206 (bdb.test failed if the tree is compiled 
without blackhole).
2006-06-27 14:56:24 +04:00
holyfoot@deer.(none)
1530106bac Merge mysql.com:/home/hf/work/mysql-5.0.19672
into mysql.com:/home/hf/work/mysql-5.1.clean
2006-06-27 15:22:43 +05:00
tomas@poseidon.ndb.mysql.com
18e008a1ba Bug #19852 Restoring backup made from cluster with full data memory fails
- correction of previous patch
2006-06-27 11:26:00 +02:00
tomas@poseidon.ndb.mysql.com
f923d6395d Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
2006-06-27 11:22:42 +02:00
tomas@poseidon.ndb.mysql.com
95447f9d1a Bug #19852 Restoring backup made from cluster with full data memory fails
- make sure to allocate just enough pages in the fragments by using the actual
  row count from the backup, to avoid over allocation of pages to fragments, and
  thus avoid the bug
2006-06-27 10:02:58 +02:00
jimw@mysql.com
a1c2dc5e6f Bug #16494: Updates that set a column to NULL fail sometimes
When building the UPDATE query to send to the remote server, the
 federated storage engine built the query incorrectly if it was updating
 a field to be NULL.

 Thanks to Bjšrn Steinbrink for an initial patch for the problem.
2006-06-26 16:59:52 -07:00
konstantin@mysql.com
5576ef27c6 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-17199
2006-06-27 03:34:12 +04:00
konstantin@mysql.com
4d25d2154c Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/opt/local/work/mysql-5.0-17199
2006-06-27 00:52:56 +04:00
konstantin@mysql.com
117b76a562 A fix and a test case for
Bug#19022 "Memory bug when switching db during trigger execution"
 Bug#17199 "Problem when view calls function from another database."
 Bug#18444 "Fully qualified stored function names don't work correctly in
            SELECT statements"

 Documentation note: this patch introduces a change in behaviour of prepared
 statements.

 This patch adds a few new invariants with regard to how THD::db should
 be used. These invariants should be preserved in future:

  - one should never refer to THD::db by pointer and always make a deep copy
    (strmake, strdup)
  - one should never compare two databases by pointer, but use strncmp or
    my_strncasecmp
  - TABLE_LIST object table->db should be always initialized in the parser or
    by creator of the object.

    For prepared statements it means that if the current database is changed
    after a statement is prepared, the database that was current at prepare
    remains active. This also means that you can not prepare a statement that
    implicitly refers to the current database if the latter is not set.
    This is not documented, and therefore needs documentation. This is NOT a
    change in behavior for almost all SQL statements except:
     - ALTER TABLE t1 RENAME t2 
     - OPTIMIZE TABLE t1
     - ANALYZE TABLE t1
     - TRUNCATE TABLE t1 --
     until this patch t1 or t2 could be evaluated at the first execution of
     prepared statement. 

     CURRENT_DATABASE() still works OK and is evaluated at every execution
     of prepared statement.

     Note, that in stored routines this is not an issue as the default
     database is the database of the stored procedure and "use" statement
     is prohibited in stored routines.

  This patch makes obsolete the use of check_db_used (it was never used in the
  old code too) and all other places that check for table->db and assign it
  from THD::db if it's NULL, except the parser.

 How this patch was created: THD::{db,db_length} were replaced with a
 LEX_STRING, THD::db. All the places that refer to THD::{db,db_length} were
 manually checked and:
  - if the place uses thd->db by pointer, it was fixed to make a deep copy
  - if a place compared two db pointers, it was fixed to compare them by value
    (via strcmp/my_strcasecmp, whatever was approproate)
 Then this intermediate patch was used to write a smaller patch that does the
 same thing but without a rename.

 TODO in 5.1:
   - remove check_db_used
   - deploy THD::set_db in mysql_change_db

 See also comments to individual files.
2006-06-27 00:47:52 +04:00
ingo@mysql.com
8728fbbc6c Bug#16218 - Crash on insert delayed
Bug#17294 - INSERT DELAYED puting an \n before data
Bug#16611 - INSERT DELAYED corrupts data
Bug#13707 - Server crash with INSERT DELAYED on MyISAM table
Combined as Bug#16218.

INSERT DELAYED crashed in 5.0 on a table with a varchar that 
could be NULL and was created pre-5.0 (Bugs 16218 and 13707).
INSERT DELAYED corrupted data in 5.0 on a table with varchar 
fields that was created pre-5.0 (Bugs 17294 and 16611).

In case of INSERT DELAYED the open table is copied from the
delayed insert thread to be able to create a record for the 
queue. When copying the fields, a method was used that did 
convert old varchar to new varchar fields and did not set up 
some pointers into the record buffer of the table.

The field conversion was guilty for the misinterpretation of 
the record contents by the delayed insert thread. The wrong
pointer setup was guilty for the crashes.

For Bug 13707 (Server crash with INSERT DELAYED on MyISAM table)
I fixed the above mentioned method to set up one of the pointers.
For Bug 16218 I set up the other pointers too.

But when looking at the corruptions I got aware that converting
the field type was totally wrong for INSERT DELAYED. The copied
table is used to create a record that is to be sent to the
delayed insert thread. Of course it can interpret the record
correctly only if all field types are the same in both table
objects.

So I revoked the fix for Bug 13707 and changed the new_field() 
method so that it can suppress conversions.

No test case as this is a migration problem. One needs to
create a table with 4.x and use it with 5.x. I added two
test scripts to the bug report.
2006-06-26 20:57:18 +02:00
jonas@perch.ndb.mysql.com
4af95eb79c Merge perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2006-06-26 20:14:40 +02:00
ingo@mysql.com
0acdd0f773 Merge istruewing@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug16986-main
2006-06-26 19:43:28 +02:00
holyfoot@mysql.com
e98513d371 Merge mysql.com:/home/hf/work/mysql-5.0.16832
into mysql.com:/home/hf/work/mysql-5.0.clean
2006-06-26 22:36:11 +05:00
holyfoot@mysql.com
0a9a755419 merging 2006-06-26 22:32:02 +05:00
ingo@mysql.com
d011ac7202 Merge mysql.com:/home/mydev/mysql-5.0--main
into  mysql.com:/home/mydev/mysql-5.0-bug16986-main
2006-06-26 19:19:12 +02:00
holyfoot@mysql.com
bb347299b1 Merge mysql.com:/home/hf/work/mysql-4.1.20318
into mysql.com:/home/hf/work/mysql-4.1.clean
2006-06-26 22:17:42 +05:00
ingo@mysql.com
d27a15a81c Bug#16986 - Deadlock condition with MyISAM tables
Addendum fixes after changing the condition variable
for the global read lock.

The stress test suite revealed some deadlocks. Some were
related to the new condition variable (COND_global_read_lock)
and some were general problems with the global read lock.

It is now necessary to signal COND_global_read_lock whenever 
COND_refresh is signalled.

We need to wait for the release of a global read lock if one 
is set before every operation that requires a write lock.
But we must not wait if we have locked tables by LOCK TABLES.
After setting a global read lock a thread waits until all
write locks are released.
2006-06-26 19:14:35 +02:00
holyfoot@mysql.com
5a96a1b090 Merge mysql.com:/home/hf/work/mysql-4.1.10166
into mysql.com:/home/hf/work/mysql-4.1.clean
2006-06-26 21:07:13 +05:00
rburnett@bk-internal.mysql.com
3c6a8146be Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-kt
2006-06-26 16:56:28 +02:00
rburnett@bk-internal.mysql.com
93210b0a28 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
2006-06-26 16:53:53 +02:00
konstantin@mysql.com
a04bfd8e2a Merge mysql.com:/opt/local/work/tmp_merge
into  mysql.com:/opt/local/work/mysql-5.1-runtime
2006-06-26 18:49:20 +04:00
konstantin@mysql.com
5e0a692723 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/opt/local/work/mysql-5.1-runtime
2006-06-26 18:45:46 +04:00
lars@mysql.com
2a945d77b6 Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge
2006-06-26 16:45:32 +02:00
stewart@mysql.com
78dd9d12bb BUG#11459 ndb status variables not updated
change names of some undocumented ndb status variables to better reflect what
their values mean
2006-06-26 23:31:10 +10:00
jonas@perch.ndb.mysql.com
33339fdf40 ndb - bug#20053
make sure we can only drop files from correct file group
2006-06-26 15:08:09 +02:00
andrey@lmy004.
23340f3fdd Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into lmy004.:/work/mysql-5.1-runtime-bug16992
2006-06-26 12:22:13 +02:00
knielsen@rt.int.sifira.dk
22285bb75a Merge mysql.com:/usr/local/mysql/mysql-5.1-bug20549
into  mysql.com:/usr/local/mysql/tmp-5.1
2006-06-26 11:26:24 +02:00
jonas@perch.ndb.mysql.com
50b8eb8538 Merge perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2006-06-26 10:02:03 +02:00
andrey@lmy004.
d617241c3f Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into lmy004.:/work/mysql-5.1-runtime-bug18897
2006-06-26 08:55:49 +02:00
elliot@mysql.com
374495ffd1 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/data0/bk/mysql-5.0-maint
2006-06-26 04:48:16 +02:00
elliot@mysql.com
bc2b96fee3 Merge mysql.com:/home/emurphy/src/bk-clean/tmp_merge
into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.1
2006-06-25 09:59:34 -04:00
knielsen@rt.int.sifira.dk
9e1b155e1c Merge bk-internal:/home/bk/mysql-5.1
into  mysql.com:/usr/local/mysql/tmp-5.1
2006-06-24 13:12:45 +02:00
knielsen@mysql.com
f976f27a8f Build fixes for Windows, Solaris, HPUX, AIX. 2006-06-24 07:45:23 +02:00
rburnett@bk-internal.mysql.com
b1f4ea4555 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
2006-06-24 06:01:57 +02:00