Commit graph

37893 commits

Author SHA1 Message Date
davi@virtua-cwbas201-21-158-74.ctb.virtua.com.br
fd3c6b1855 Bug#28318 CREATE FUNCTION (UDF) requires a schema
Bug#29816 Syntactically wrong query fails with misleading error message

The core problem is that an SQL-invoked function name can be a <schema
qualified routine name> that contains no <schema name>, but the mysql
parser insists that all stored procedures (function, procedures and
triggers) must have a <schema name>, which is not true for functions.
This problem is especially visible when trying to create a function
or when a query contains a syntax error after a function call (in the
same query), both will fail with a "No database selected" message if
the session is not attached to a particular schema, but the first
one should succeed and the second fail with a "syntax error" message.

Part of the fix is to revamp the sp name handling so that a schema
name may be omitted for functions -- this means that the internal
function name representation may not have a dot, which represents
that the function doesn't have a schema name. The other part is
to place schema checks after the type (function, trigger or procedure)
of the routine is known.
2007-10-09 20:46:33 -03:00
tsmith@ramayana.hindu.god
e2bfd46b42 Merge ramayana.hindu.god:/home/tsmith/m/bk/maint/41
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50
2007-10-09 13:58:48 -06:00
tsmith@ramayana.hindu.god
ed8c737a75 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50
2007-10-09 13:49:58 -06:00
davi@moksha.com.br
c3d06676f8 Merge moksha.com.br:/Users/davi/mysql/push/mysql-5.0-runtime
into  moksha.com.br:/Users/davi/mysql/push/bugs/31409-5.0
2007-10-09 16:27:54 -03:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
fa5eb277ec metadata test of bug # 31249: problem with convert(..., datetime) removed
as PS protocol gives slightly different metadata.
2007-10-09 22:40:22 +05:00
cmiller@zippy.cornsilk.net
b0ef3979d0 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-10-09 11:04:45 -04:00
davi@moksha.local
7252cbe1e0 Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements
This deadlock occurs when a client issues a HANDLER ... OPEN statement
that tries to open a table that has a pending name-lock on it by another
client that also needs a name-lock on some other table which is already
open and associated to a HANDLER instance owned by the first client.
The deadlock happens because the open_table() function will back-off
and wait until the name-lock goes away, causing a circular wait if some
other name-lock is also pending for one of the open HANDLER tables.

Such situation, for example, can be easily repeated by issuing a RENAME
TABLE command in such a way that the existing table is already open
as a HANDLER table by another client and this client tries to open
a HANDLER to the new table name.

The solution is to allow handler tables with older versions (marked for
flush) to be closed before waiting for the name-lock completion. This is
safe because no other name-lock can be issued between the flush and the
check for pending name-locks.

The test case for this bug is going to be committed into 5.1 because it
requires a test feature only avaiable in 5.1 (wait_condition).
2007-10-09 12:02:59 -03:00
ramil/ram@ramil.myoffice.izhnet.ru
a861449596 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/ram/work/b31249/b31249.5.0
2007-10-09 18:14:13 +05:00
istruewing@stella.local
a1caefe36c Merge stella.local:/home2/mydev/mysql-5.0-bug15522-old
into  stella.local:/home2/mydev/mysql-5.0-bug15522
2007-10-09 13:38:46 +02:00
istruewing@stella.local
1285baf608 Bug#15522 - create ... select and with merge tables
Added test case.
The fix for Bug#20662 does also fix this one.
2007-10-09 13:10:51 +02:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
4792385177 Fix for bug #31249: Assertion `!table || (!table->write_set ||
bitmap_is_set(table->write_set, fiel

Problem: creating a temporary table we allocate the group buffer if needed
followed by table bitmaps (see create_tmp_table()). Reserving less memory for 
the group buffer than actually needed (used) for values retrieval may lead 
to overlapping with followed bitmaps in the memory pool that in turn leads 
to unpredictable consequences.

As we use Item->max_length sometimes to calculate group buffer size,
it must be set to proper value. In this particular case 
Item_datetime_typecast::max_length is too small.

Another problem is that we use max_length to calculate the group buffer
key length for items represented as DATE/TIME fields which is superfluous.

Fix: set Item_datetime_typecast::max_length properly,
accurately calculate the group buffer key length for items 
represented as DATE/TIME fields in the buffer.
2007-10-09 14:37:21 +05:00
iggy@alf.(none)
5e98415d4a Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  alf.(none):/src/bug28774/my50-bug28774
2007-10-08 22:40:30 -04:00
iggy@alf.(none)
19107288e4 Bug#28774 mysql_upgrade creates tempfiles in root-dir (C:\) and
doesn't clean them up
- Make sure to cleanup temporary files after use.
2007-10-08 22:30:41 -04:00
dkatz@damien-katzs-computer.local
b2fec8877c Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  damien-katzs-computer.local:/Users/dkatz/mysql-5.0-runtime
2007-10-08 13:10:55 -04:00
anozdrin/alik@station.
2885d0df15 Get rid of compilation warning. 2007-10-08 17:59:23 +04:00
anozdrin/alik@station.
128772ba1f Fix compilation warning. 2007-10-08 17:09:28 +04:00
kostja@bodhi.(none)
7ec30183bb Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
2007-10-08 02:05:55 +04:00
tnurnberg@sin.intern.azundris.com
48b0c25884 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  sin.intern.azundris.com:/home/tnurnberg/31253/50-31253
2007-10-06 03:02:31 +02:00
tnurnberg@sin.intern.azundris.com
da8fbb7522 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  sin.intern.azundris.com:/home/tnurnberg/19828/50-19828
2007-10-06 00:14:22 +02:00
msvensson@pilot.mysql.com
495dcdcc6b Merge pilot.mysql.com:/data/msvensson/mysql/bug27789/my50-bug27789
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.0-maint
2007-10-05 19:56:25 +02:00
msvensson@pilot.mysql.com
0a07b64d8a Fixed Bug #27789 "Wrong permissions of sql/share/language directories" 2007-10-05 19:55:00 +02:00
msvensson@pilot.mysql.com
53975763b8 Merge msvensson2.mysql.internal:mysql/mysql-5.0-maint
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.0-maint
2007-10-05 19:32:14 +02:00
msvensson@shellback.(none)
6132e82888 Update test case to allow the .reject file to be in either var/log or r/ 2007-10-05 19:28:09 +02:00
msvensson@shellback.(none)
be40fefd73 Bug#27753 enable mysql-test-run.pl to ignore tests based on wildcard 2007-10-05 19:23:44 +02:00
cmiller@zippy.cornsilk.net
eedde95a33 Change URLs.
Our web server has been restructured several times, and references
to it in our source code has stayed the same.  This patch from Paul
DuBois updates all URLs to modern semantics.
2007-10-05 13:16:54 -04:00
msvensson@shellback.(none)
c86bd100c8 Bug#30560 Valgrind option to mysql-test-run with spaces in cause strange error 2007-10-05 18:36:23 +02:00
msvensson@shellback.(none)
39a069b296 Bug#31398 problems with mysql-test-run, part2
Write .reject file to r/ if it's writable else use opt_logdir
2007-10-05 18:18:50 +02:00
msvensson@shellback.(none)
626faeecd9 Bug#31398 problems with mysql-test-run
- "mysqld --verbose --help" need to be started in a writable directory
2007-10-05 17:54:19 +02:00
msvensson@pilot.mysql.com
ffd9c2bb76 Merge bk-internal:/home/bk/mysql-5.0-runtime
into  pilot.mysql.com:/data/msvensson/mysql/my50-r-bug30992
2007-10-05 14:47:43 +02:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
b4b7cf2a95 Fix for bug #30885: MEMORY returns incorrect data if BTREE index is used for NULL lookup
Problem: creating an rb-tree key we store length (2 bytes) before the actual data for 
varchar key parts. The fact was missed for NULL key parts, when we set NULL byte and 
skip the rest.

Fix: take into account the length of the varchar key parts for NULLs.
2007-10-05 16:33:15 +05:00
tnurnberg@sin.intern.azundris.com
455c05abcf Bug #31253: crash comparing datetime to double
convert(<invalid time>, datetime) in WHERE caused crash as function
returned (void*)NULL, but did not flag SQL NULL. It does now.
2007-10-05 12:08:38 +02:00
tnurnberg@sin.intern.azundris.com
5f45fd05bf Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  sin.intern.azundris.com:/home/tnurnberg/31227/50-31227
2007-10-05 10:04:45 +02:00
tnurnberg@sin.intern.azundris.com
caaf8f56bd Bug#31227: memory overrun with decimal (6,6) and zerofill and group_concat
Reserve the space for the leading 0 (before the decimal point) in DECIMAL(a,a) ZEROFILL.
2007-10-05 09:38:57 +02:00
davi@moksha.local
a8f2ba0f80 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  moksha.local:/Users/davi/mysql/push/mysql-5.0-runtime
2007-10-04 19:56:27 -03:00
davi@moksha.local
305ebc1e21 Bug#21587 FLUSH TABLES causes server crash when used with HANDLER statements
This bug is a symptom of the way handler's tables are managed. The
most different aspect, compared to the conventional behavior, is that
the handler's tables are long lived, meaning that their lifetimes are
not bounded by the duration of the command that opened them. For this
effect the handler code uses its own list (handler_tables instead of
open_tables) to hold open handler tables so that the tables won't be
closed at the end of the command/statement. Besides the handler_tables
list, there is a hash (handler_tables_hash) which is used to associate
handler aliases to tables and to refresh the tables upon demand (flush
tables).

The current implementation doesn't work properly with refreshed tables
-- more precisely when flush commands are issued by other initiators.
This happens because when a handler open or read statement is being
processed, the associated table has to be opened or locked and, for this
matter, the open_tables and handler_tables lists are swapped so that the
new table being opened is inserted into the handler_tables list. But when
opening or locking the table, if the refresh version is different from the
thread refresh version then all used tables in the open_tables list (now
handler_tables) are refreshed. In the "refreshing" process the handler
tables are flushed (closed) without being properly unlinked from the
handler hash.

The current implementation also fails to properly discard handlers of
dropped tables, but this and other problems are going to be addressed
in the fixes for bugs 31397 and 31409.

The chosen approach tries to properly save and restore the table state
so that no table is flushed during the table open and lock operations.
The logic is almost the same as before with the list swapping, but with
a working glue code.

The test case for this bug is going to be committed into 5.1 because it
requires a test feature only avaiable in 5.1 (wait_condition).
2007-10-04 17:34:41 -03:00
tsmith@sita.local
35d9a05f9f Merge sita.local:/Users/tsmith/m/bk/50-5.0.48
into  sita.local:/Users/tsmith/m/bk/maint/50
2007-10-04 13:58:40 -06:00
joerg@trift2.
82767a0a45 Merge trift2.:/MySQL/M50/mysql-5.0
into  trift2.:/MySQL/M50/push-5.0
2007-10-04 19:24:32 +02:00
tnurnberg@sin.intern.azundris.com
567ceed59d Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  sin.intern.azundris.com:/home/tnurnberg/30444/50-30444
2007-10-04 19:02:31 +02:00
tnurnberg@sin.intern.azundris.com
d087c8119e Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  sin.intern.azundris.com:/home/tnurnberg/30444/41-30444
2007-10-04 18:58:54 +02:00
anozdrin/alik@station.
707f067446 Fix for BUG#31035: select from function, group by result crasher.
This actually, fix for the patch for bug-27354. The problem with
the patch was that Item_func_sp::used_tables() was updated, but
Item_func_sp::const_item() was not. So, for Item_func_sp, we had
the following inconsistency:
  - used_tables() returned RAND_TABLE, which means that the item
    can produce "random" results;
  - but const_item() returned TRUE, which means that the item is
    a constant one.

The fix is to change Item_func_sp::const_item() behaviour: it must
return TRUE (an item is a constant one) only if a stored function
is deterministic and each of its arguments (if any) is a constant
item.
2007-10-04 17:19:14 +04:00
kaa@polly.(none)
f74d805e16 Backport of the 5.0 patch to 4.1
Bug#28878: InnoDB tables with UTF8 character set and indexes cause  wrong result for DML
When making key reference buffers over CHAR fields whitespace (0x20) must be used to fill in the remaining space in the field's buffer. This is what Field_string::store() does. Fixed Field_string::get_key_image() to do the same.
2007-10-04 14:22:35 +04:00
jperkin@production.mysql.com
583a3ef31d Merge production.mysql.com:/usersnfs/jperkin/bk/build/5.0
into  production.mysql.com:/usersnfs/jperkin/bk/bug-27692/5.0
2007-10-04 12:06:13 +02:00
kaa@polly.(none)
8121b06a8f Merge ssh://bk-internal.mysql.com//home/bk/mysql-5.0-maint
into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
2007-10-04 13:52:41 +04:00
jperkin@production.mysql.com
5c0c592145 Restore creation of test databases and the anonymous user which
were accidentally removed during a previous rototill of this
code.  Fixes bug#27692.
  
While it can be argued we should strive to provide a 'secure by
default' installation, this happens to be the setup currently
documented in the manual as the default, so defer changes that
improve security out of the box to a co-ordinated effort later
on.
  
For now, make a note about the test databases and anonymous user
in mysql_install_db and recommend that mysql_secure_installation
be ran for users wishing to remove these defaults.

[..re-commit of previously lost change..]
2007-10-04 11:30:30 +02:00
kaa@polly.(none)
bd885daa4f Merge polly.(none):/home/kaa/src/maint/bug5731/my50-bug5731
into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
2007-10-04 13:29:37 +04:00
ramil/ram@ramil.myoffice.izhnet.ru
9d0318a22c Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/ram/work/b31070/b31070.5.0
2007-10-04 14:14:11 +05:00
kaa@polly.(none)
1ba3f4f56b Issue a warning if a user sets an option or a variable to a value that is greater than a defined maximum for the option/variable.
This is for bug #29446 "Specifying a myisam_sort_buffer > 4GB on 64 bit machines not possible". Support for myisam_sort_buffer_size > 4 GB on 64-bit Windows will be looked at later in 5.2.
2007-10-04 12:34:00 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
6e6727d244 merging: results adjusted 2007-10-04 12:09:22 +05:00
tnurnberg@sin.intern.azundris.com
c8a6f30a5b Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  sin.intern.azundris.com:/home/tnurnberg/30444/50-30444
2007-10-04 08:42:36 +02:00
tnurnberg@sin.intern.azundris.com
4f8002d661 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  sin.intern.azundris.com:/home/tnurnberg/30444/41-30444
2007-10-04 08:37:43 +02:00