Commit graph

10495 commits

Author SHA1 Message Date
istruewing@chilla.local
e5f50abcd9 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0-bug24985
2007-03-27 21:19:25 +02:00
igor@olga.mysql.com
adc07255ee Fixed bug #27348.
If a set function with a outer reference s(outer_ref) cannot be aggregated 
the outer query against which the reference has been resolved then MySQL
interpretes s(outer_ref) in the same way as it would interpret s(const).
Hovever the standard requires throwing an error in this situation.
Added some code to support this requirement in ansi mode.
Corrected another minor bug in Item_sum::check_sum_func.
2007-03-27 09:48:10 -07:00
iggy@recycle.(none)
bbc38df090 Bug#23491 MySQLDump prefix function call in a view by database name
- mysqldump executes a SHOW CREATE VIEW statement to generate the text
that it outputs.  When the function name is retrieved it's database 
name is unconditionally prepended.  This change causes the function's 
database name to be prepended only when it was used to define the 
function.
2007-03-27 12:31:44 -04:00
gkodinov/kgeorge@magare.gmz
4f2ec8f3de Bug #26815:
When creating a temporary table the concise column type
 of a string expression is decided based on its length:
 - if its length is under 512 it is stored as either 
   varchar or char.
 - otherwise it is stored as a BLOB.
 
 There is a flag (convert_blob_length) to create_tmp_field 
 that, when >0 allows to force creation of a varchar if the
 max blob length is under convert_blob_length.
 However it must be verified that convert_blob_length 
 (settable through a SQL option in some cases) is 
 under the maximum that can be stored in a varchar column.
 While performing that check for expressions in 
 create_tmp_field_from_item the max length of the blob was
 used instead. This causes blob columns to be created in the
 heap temp table used by GROUP_CONCAT (where blobs must not
 be created in the temp table because of the constant 
 convert_blob_length that is passed to create_tmp_field() ).
 And since these blob columns are not expected in that place
 we get wrong results.
 Fixed by checking that the value of the flag variable is 
 in the limits that fit into VARCHAR instead of the max length
 of the blob column.
2007-03-27 19:28:04 +03:00
tomas@whalegate.ndb.mysql.com
960bfa1768 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-03-27 18:11:48 +02:00
thek@kpdesk.mysql.com
1381b26e36 Corrected error in test case:
- 1.84e+15 converted to unsigned bigint should be
  18400000000000000000 < 18446744073709551615.
- The test will still fail on windows, and is extracted
  into a new bug report.
2007-03-27 18:05:17 +02:00
istruewing@chilla.local
ef1dec00c4 Merge chilla.local:/home/mydev/mysql-4.1-bug24985
into  chilla.local:/home/mydev/mysql-5.0-bug24985
2007-03-27 10:54:37 +02:00
istruewing@chilla.local
8934e4f3cc Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
causes incorrect duplicate entries

Keys for BTREE indexes on ENUM and SET columns of MEMORY tables
with character set UTF8 were computed incorrectly. Many
different column values got the same key value.

Apart of possible performance problems, it made unique indexes
of this type unusable because it rejected many different
values as duplicates.

The problem was that multibyte character detection was tried
on the internal numeric column value. Many values were not
identified as characters. Their key value became blank filled.

Thanks to Alexander Barkov and Ramil Kalimullin for the patch,
which sets the character set of ENUM and SET key segments to
the pseudo binary character set.
2007-03-27 10:49:48 +02:00
bar@mysql.com
5e52cd3650 Bug#25946 Namespace not include for xsi usage within --xml output with null/nil values
Fix: adding namespace reference into "mysql --xml" output,
to make it work similary to "mysqldump --xml".
2007-03-27 13:30:43 +05:00
bar@mysql.com
1b426d3c6d Bug#27079 Crash while grouping empty ucs2 strings
Problem: GROUP BY on empty ucs2 strings crashed server.
Reason: sometimes mi_unique_hash() is executed with
ptr=null and length=0, which means "empty string".
The branch of code handling UCS2 character set
was not safe against ptr=null and fell into and
endless loop even if length=0 because of poiter
arithmetic overflow.
Fix: adding special check for length=0 to avoid pointer arithmetic
overflow.
2007-03-27 12:20:20 +05:00
tomas@whalegate.ndb.mysql.com
2923b52e38 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-03-26 21:02:14 +02:00
gkodinov/kgeorge@magare.gmz
ce9cc47a73 WL3527: 5.0 part:
enabled the optional FOR JOIN to all the three
clauses : USE, FORCE and IGNORE
2007-03-26 16:52:52 +03:00
gkodinov/kgeorge@magare.gmz
a65bc60d1a Merge magare.gmz:/home/kgeorge/mysql/work/B27164-4.1-opt
into  magare.gmz:/home/kgeorge/mysql/work/B27164-5.0-opt
2007-03-26 14:14:23 +03:00
pekka@clam.ndb.mysql.com/clam.(none)
6ec8bb230a Merge clam.ndb.mysql.com:/export/space/pekka/ndb/version/my50-ndb
into  clam.ndb.mysql.com:/export/space/pekka/ndb/version/my50-bug24028
2007-03-26 12:50:40 +02:00
gkodinov/kgeorge@magare.gmz[kgeorge]
e6d81ad338 Bug #27164: not reseting the data pointer
to 0 causes wrong (large) length to be read
 from the row in _mi_calc_blob_length() when 
 storing NULL values in (e.g) POINT columns.
 This large length is then used to allocate
 a block of memory that (on some OSes) causes
 trouble.
 Fixed by calling the base class's 
 Field_blob::reset() from Field_geom::reset()
 that is called when storing a NULL value into
 the column.
2007-03-26 13:17:40 +03:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
ebe44e6e31 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/home/ram/work/b25301/b25301.4.1
2007-03-26 13:45:02 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
d0ed1216e2 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/ram/work/b25301/b25301.5.0
2007-03-26 13:43:20 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
74b3cdb02e Fix for bug #25993: mysqldump crashes with merge table and -c option
opt_complete_insert was improperly used by accident.
Use complete_insert flag instead.
2007-03-26 12:56:41 +05:00
tsmith@siva.hindu.god
47cce188b3 Bug #24563: MBROverlaps does not seem to function propertly.
Fix is to rewrite the MBR::overlaps() function, to compute the dimension of both
arguments, and the dimension of the intersection; test that all three dimensions are the
same (e.g., all are Polygons).

Add tests for all MBR* functions for various combinations of shapes, lines and points.
2007-03-23 16:28:07 -06:00
Kristofer.Pettersson@naruto.
fe43de3929 Merge naruto.:C:/cpp/bug20777/my50-bug20777
into  naruto.:C:/cpp/mysql-5.0-runtime
2007-03-23 19:14:13 +01:00
dkatz/Damien@damiendev.
b712e2fe28 Merge damiendev.:C:/build/mysql-5.0
into  damiendev.:C:/build/dev50
2007-03-23 13:43:46 -04:00
tomas@whalegate.ndb.mysql.com
41dfbb6f2b enabled and extended single user test 2007-03-23 17:14:38 +01:00
serg@sergbook.mysql.com
1d64408cd5 Merge bk-internal:/home/bk/mysql-5.0
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0-build
2007-03-23 16:32:42 +02:00
tomas@poseidon.mysql.com
210d055000 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb
into  poseidon.mysql.com:/home/tomas/mysql-5.0-ndb
2007-03-23 13:10:58 +01:00
msvensson@pilot.blaudden
a552a07c55 Backport from 5.1, limit SHOW VARIABLES to "log_bin%" 2007-03-23 12:35:30 +01:00
joerg@trift2.
a1ffb00288 Merge trift2.:/MySQL/M50/clone-5.0
into  trift2.:/MySQL/M50/push-5.0
2007-03-23 11:13:15 +01:00
gkodinov/kgeorge@magare.gmz
081f43cc51 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26186-5.0-opt
2007-03-23 10:11:09 +02:00
istruewing@chilla.local
af850a24f8 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug26996
2007-03-23 08:28:21 +01:00
igor@olga.mysql.com
92d1d74037 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug27229
2007-03-22 14:51:20 -07:00
igor@olga.mysql.com
8f9178e857 Fixed bug #27229: crash when a set function aggregated in outer
context was used as an argument of GROUP_CONCAT.
Ensured correct setting of the depended_from field in references
generated for set functions aggregated in outer selects.
A wrong value of this field resulted in wrong maps returned by 
used_tables() for these references.
Made sure that a temporary table field is added for any set function
aggregated in outer context when creation of a temporary table is 
needed to execute the inner subquery.
2007-03-22 14:48:03 -07:00
tsmith@siva.hindu.god
8abc953662 NULL MERGE this to 5.1
Apply the following InnoDB snapshots:
innodb-5.0-ss1319
innodb-5.0-ss1331
innodb-5.0-ss1333
innodb-5.0-ss1341

Fixes:
- Bug #21409: Incorrect result returned when in READ-COMMITTED with query_cache ON
  At low transaction isolation levels we let each consistent read set
  its own snapshot.
- Bug #23666: strange Innodb_row_lock_time_% values in show status; also millisecs wrong
  On Windows ut_usectime returns secs and usecs relative to the UNIX
  epoch (which is Jan, 1 1970).

- Bug #25494: LATEST DEADLOCK INFORMATION is not always cleared
  lock_deadlock_recursive(): When the search depth or length is exceeded,
  rewind lock_latest_err_file and display the two transactions at the
  point of aborting the search.

- Bug #25927: Foreign key with ON DELETE SET NULL on NOT NULL can crash server
  Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns for which
  there is a foreign key constraint ON ... SET NULL.

- Bug #26835: Repeatable corruption of utf8-enabled tables inside InnoDB
  The bug could be reproduced as follows:

  Define a table so that the first column of the clustered index is
  a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
  of differing length are considered equivalent.

  Insert and delete a record.  Before the delete-marked record is
  purged, insert another record whose first column is of different
  length but equivalent to the first record.  Under certain conditions,
  the insertion can be incorrectly performed as update-in-place.

  Likewise, an operation that could be done as update-in-place can
  unnecessarily be performed as delete and insert, but that would not
  cause corruption but merely degraded performance.
2007-03-22 14:40:52 -06:00
istruewing@chilla.local
a009d2dd6f Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  chilla.local:/home/mydev/mysql-5.0-bug26996
2007-03-22 21:34:31 +01:00
holyfoot/hf@mysql.com/hfmain.(none)
fc23f3356e Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-23 00:04:47 +04:00
Damien@damiendev.
53679c03ad Merge damiendev.:C:/build/mysql-5.0
into  damiendev.:C:/build/dev50
2007-03-22 15:55:18 -04:00
holyfoot/hf@mysql.com/hfmain.(none)
68f9ff123c Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-22 23:54:47 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
0102d38ef4 Merge bk@192.168.21.1:mysql-5.0
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-22 23:48:39 +04:00
evgen@moonbone.local
b1f852b901 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/26813-bug-5.0-opt-mysql
2007-03-22 22:15:21 +03:00
evgen@moonbone.local
1ac5987ae2 Bug#26813: The SUPER privilege is wrongly required to alter a view created by
another user.

When the DEFINER clause isn't specified in the ALTER statement then it's loaded
from the view definition. If the definer differs from the current user then
the error is thrown because only a super-user can set other users as a definers.

Now if the DEFINER clause is omitted in the ALTER VIEW statement then the
definer from the original view is used without check.
2007-03-22 22:05:19 +03:00
Damien@damiendev.
0fc5ad1e91 Bug#26346: stack + buffer overrun in mysqldump
Fixes to buffer overlows from long command line args, and unchecked dyn_str return codes. Also light refactoring.
2007-03-22 13:35:29 -04:00
gkodinov/kgeorge@magare.gmz
d2b7e76a1c Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26186-5.0-opt
2007-03-22 18:55:52 +02:00
gkodinov/kgeorge@magare.gmz
70d91d43ae Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26207-5.0-opt
2007-03-22 18:49:47 +02:00
gkodinov/kgeorge@magare.gmz
ef1bb48af9 Bug #26207: When making the key image to use
in index search MySQL was not explicitly
 suppressing warnings. And if the context 
 happens to enable warnings (e.g. INSERT ..
 SELECT) the warnings resulting from converting 
 the data the key is compared to are 
 reported to the client.
 Fixed by suppressing warnings when converting
 the data to the same type as the key parts.
2007-03-22 18:44:16 +02:00
mhansson/martin@linux-st28.site
99ac24679d Bug#24791: Union with AVG-groups generates wrong results
Patch appled after doing a pull from the team tree. Additional tests had to be
fixed
2007-03-22 14:58:43 +01:00
mhansson/martin@linux-st28.site
cdf80a269b Merge mhansson@bk-internal:/home/bk/mysql-5.0-opt
into  linux-st28.site:/home/martin/mysql/src/5.0o-bug24791
2007-03-22 13:37:27 +01:00
mhansson/martin@linux-st28.site
749976ee5e Merge mhansson@bk-internal:/home/bk/mysql-5.0-opt
into  linux-st28.site:/home/martin/mysql/src/5.0o-bug24791
2007-03-22 10:58:16 +01:00
mhansson/martin@linux-st28.site
50077b6db9 Bug #24791: Union with AVG-groups generates wrong results
The problem in this bug is when we create temporary tables. When
temporary tables are created for unions, there is some 
inferrence being carried out regarding the type of the column.
Whenever this column type is inferred to be REAL (i.e. FLOAT or
DOUBLE), MySQL will always try to maintain exact precision, and
if that is not possible (there are hardware limits, since FLOAT
and DOUBLE are stored as approximate values) will switch to
using approximate values. The problem here is that at this point
the information about number of significant digits is not 
available. Furthermore, the number of significant digits should
be increased for the AVG function, however, this was not properly 
handled. There are 4 parts to the problem:

#1: DOUBLE and FLOAT fields don't display their proper display 
lengths in max_display_length(). This is hard-coded as 53 for 
DOUBLE and 24 for FLOAT. Now changed to instead return the 
field_length.

#2: Type holders for temporary tables do not preserve the 
max_length of the Item's from which they are created, and is 
instead reverted to the 53 and 24 from above. This causes 
*all* fields to get non-fixed significant digits.

#3: AVG function does not update max_length (display length)
when updating number of decimals.

#4: The function that switches to non-fixed number of 
significant digits should use DBL_DIG + 2 or FLT_DIG + 2 as 
cut-off values (Since fixed precision does not use the 'e' 
notation)

Of these points, #1 is the controversial one, but this 
change is preferred and has been cleared with Monty. The 
function causes quite a few unit tests to blow up and they had
to b changed, but each one is annotated and motivated. We 
frequently see the magical 53 and 24 give way to more relevant
numbers.
2007-03-22 10:56:47 +01:00
holyfoot/hf@mysql.com/hfmain.(none)
da5769fe6a Merge mysql.com:/home/hf/work/mrg/mysql-4.1-opt
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-22 12:26:32 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
e0f0507f99 bug #16546 (DATETIME + 0 not always coerced in the same way)
fix for cast( AS DATETIME) + 0 operation.
  I just implemented Item_datetime_typecast::val() method
  as it is usually done in other classes.
  Should be fixed more radically in 5.0
2007-03-22 12:24:56 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
1f9fd51c6d Merge bk@192.168.21.1:mysql-5.0
into  mysql.com:/home/hf/work/mrg/mysql-5.0-opt
2007-03-22 12:21:06 +04:00
igor@olga.mysql.com
03ae298ec3 Fixed bug #27362: crash at evaluation of IN predicate when one
of its argument happened to be a decimal expression returning
the NULL value.
The crash was due to the fact the function in_decimal::set did
not take into account that val_decimal() could return 0 if 
the decimal expression had been evaluated to NULL.
2007-03-22 00:05:36 -07:00