Commit graph

12849 commits

Author SHA1 Message Date
holyfoot/hf@mysql.com/deer.(none)
3fd278c9d3 bug #24186 (nested query across partitions returns fewer records)
Subselect's engine checks table->status field to determine if the
record was properly found when we use keyread upon the table.
Partition engine checks all the partitions for given key
before return. So if matching record was found in the first
partition and no matching records were found in the second, 
we have table->status == NOT_FOUND after the function, what
makes subselects to skip matching records.
The patch adds table->status= 0 if we actually found something.
2007-01-12 15:46:20 +04:00
lars/lthalmann@dl145j.mysql.com
1e356251a0 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
2007-01-12 12:31:44 +01:00
lars/lthalmann@mysql.com/dl145j.mysql.com
c380de50ef Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
2007-01-12 12:22:54 +01:00
lars/lthalmann@mysql.com/dl145j.mysql.com
22398faa91 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-4.1-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-4.1-merge
2007-01-12 12:21:44 +01:00
gluh@eagle.(none)
5c5edbdd82 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-01-12 14:48:59 +04:00
tnurnberg@mysql.com/sin.azundris.com
90a8092660 Bug#24660: "enum" field type definition problem
ENUMs weren't allowed to have character 0xff, a perfectly good
character in some locales.  This was circumvented by mapping 0xff in
ENUMs to ',', thereby prevent actual commas from being used. Now if
0xff makes an appearance, we find a character not used in the enum and
use that as a separator. If no such character exists, we throw an
error.

Any solution would have broken some sort of existing behaviour. This
solution should serve both fractions (those with 0xff and those with
',' in their enums), but WILL REQUIRE A DUMP/RESTORE CYCLE FROM THOSE
WITH 0xff IN THEIR ENUMS. :-/ That is, mysqldump with their current
server, and restore when upgrading to one with this patch.
2007-01-12 11:06:38 +01:00
malff/marcsql@weblab.(none)
9655f5fb03 Bug#22687 (Functions UNIQUE_USERS, GROUP_UNIQUE_USERS)
According to some internal communication, these two functions are place
holders for future enhancements. Because they use a variable number of
parameters, the implementation defined a reserved keyword for them in the
parser grammar.

Unfortunately, doing so creates a bug similar to Bug 21114 reported for the
function FORMAT.

In the 5.1 code base, due to improvements in the code implemented with bug
21114, having a reserved keyword for functions with a variable number of
arguments is not needed any more by the implementation.

As a result, this fix removes the place-holder implementation, and removes
the unnecessary reserved keywords. Should the functions UNIQUE_USERS and
GROUP_UNIQUE_USERS be finally implemented in a later release, the
implementation should sub class Create_native_func in sql/item_create.cc.
For example, see the class Create_func_concat.
2007-01-11 14:58:05 -07:00
evgen@moonbone.local
1d92b6cd0a Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/23417-bug-5.0-opt-mysql
2007-01-11 23:20:27 +03:00
evgen@moonbone.local
19ee0a94fe Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
Currently in the ONLY_FULL_GROUP_BY mode no hidden fields are allowed in the
select list. To ensure this each expression in the select list is checked
to be a constant, an aggregate function or to occur in the GROUP BY list.
The last two requirements are wrong and doesn't allow valid expressions like
"MAX(b) - MIN(b)" or "a + 1" in a query with grouping by a.

The correct check implemented by the patch will ensure that:
any field reference in the [sub]expressions of the select list 
  is under an aggregate function or
  is mentioned as member of the group list or
  is an outer reference or
  is part of the select list element that coincide with a grouping element.

The Item_field objects now can contain the position of the select list
expression which they belong to. The position is saved during the
field's Item_field::fix_fields() call.

The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
class. The SELECT_LEX::cur_pos_in_select_list now contains the position in the
select list of the expression being currently fixed.
2007-01-11 23:18:01 +03:00
kostja@bodhi.local
b72c2771dc Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime
2007-01-11 22:15:20 +03:00
kostja@bodhi.local
bf1005a125 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime
2007-01-11 21:59:28 +03:00
gkodinov/kgeorge@rakia.gmz
7eebacadad Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B25106-5.0-opt
2007-01-11 19:13:04 +02:00
gkodinov/kgeorge@macbook.gmz
15bcf13182 BUG#25106: A USING clause in combination with a VIEW results in column
aliases ignored
When a column reference to a column in JOIN USING is resolved and a new 
Item is created for this column the user defined name was lost.
This fix preserves the alias by setting the name of the new Item to the
original alias.
2007-01-11 19:10:01 +02:00
jani/jamppa@bk-internal.mysql.com
e2fbd70fb1 Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-marvel
2007-01-11 16:42:48 +01:00
cmiller@zippy.cornsilk.net
896e2623eb Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-01-11 09:43:44 -05:00
gluh@eagle.(none)
215d3da7d2 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-01-11 18:15:40 +04:00
evgen@moonbone.local
fc0e206cb5 Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed
correctly.

The Item_func::print method was used to print the Item_func_encode and the
Item_func_decode objects. The last argument to ENCODE and DECODE functions
is a plain C string and thus Item_func::print wasn't able to print it.

The print() method is added to the Item_func_encode class. It correctly
prints the Item_func_encode and the Item_func_decode objects.
2007-01-11 16:45:38 +03:00
evgen@moonbone.local
f35e10d43c Merge fix for bug#17711 2007-01-11 16:20:08 +03:00
evgen@moonbone.local
c17bf5cb23 Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting
WHERE is present.

If a DELETE statement with ORDER BY and LIMIT contains a WHERE clause
with conditions that for sure cannot be used for index access (like in
WHERE @var:= field) the execution always follows the filesort path.    
It happens currently even when for the above case there is an index that
can be used to speedup sorting by the order by list.

Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE
clause conditions that cannot be used to build any quick select then
the mysql_delete() tries to use an index like there is no WHERE clause at all.
2007-01-11 16:05:03 +03:00
brian@zim.(none)
ab1a97f5ef Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  zim.(none):/home/brian/mysql/archive-format-5.1
2007-01-11 00:28:22 -08:00
igor@olga.mysql.com
61cd864bc0 Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-01-10 08:55:55 -08:00
jani@ua141d10.elisa.omakaista.fi
be97a8e117 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0-marvel
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0
2007-01-10 16:59:20 +02:00
jani@ua141d10.elisa.omakaista.fi
d7f696a92f Added two possible error cases for a test. 2007-01-10 16:55:53 +02:00
holyfoot/hf@deer.(none)
814c1308ea Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/hf/work/mysql-5.1-mrg
2007-01-10 18:33:28 +04:00
holyfoot/hf@deer.(none)
ebc89b9816 Merge mysql.com:/home/hf/work/24502/my51-24502
into  mysql.com:/home/hf/work/mysql-5.1-mrg
2007-01-10 16:23:54 +04:00
holyfoot/hf@deer.(none)
743beccf87 Merge mysql.com:/home/hf/work/22451/my51-22451
into  mysql.com:/home/hf/work/mysql-5.1-mrg
2007-01-10 16:22:47 +04:00
holyfoot/hf@hfmain.(none)
93a7321d45 Merge mysql.com:/d2/hf/common/my51-common
into  mysql.com:/d2/hf/mr10/my51-mr10
2007-01-10 14:34:28 +04:00
gluh@eagle.(none)
42e49682b7 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-01-10 14:14:22 +04:00
igor@olga.mysql.com
578fae9dc8 Fixed bug #25427.
In the method Item_field::fix_fields we try to resolve the name of
the field against the names of the aliases that occur in the select
list. This is done by a call of the function find_item_in_list.
When this function finds several occurrences of the field name
it sends an error message to the error queue and returns 0.
Yet the code did not take into account that find_item_in_list
could return 0 and tried to dereference the returned value.
2007-01-10 00:27:11 -08:00
igor@olga.mysql.com
add0ab219d Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-01-09 17:31:14 -08:00
evgen@moonbone.local
e098f736e1 Fixed bug#16861: User defined variable can have a wrong value if a tmp table was
used.

The Item::save_in_field() function is called from fill_record() to fill the 
new row with data while execution of the CREATE TABLE ... SELECT statement.
Item::save_in_field() calls val_xxx() methods in order to get values.
val_xxx() methods do not take into account the result field. Due to this
Item_func_set_user_var::val_xxx() methods returns values from the original
table, not from the temporary one.

The save_in_field() member function is added to the Item_func_set_user_var
class. It detects whether the result field should be used and properly updates
the value of the user variable.
2007-01-09 23:24:56 +03:00
igor@olga.mysql.com
ebc68a176c Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-01-09 12:07:13 -08:00
evgen@moonbone.local
ac48c8bae1 Bug#14171: Wrong internal default value for a BINARY field.
A BINARY field is represented by the Field_string class. The space character
is used as the filler for unused characters in such a field. But a BINARY field 
should use \x00 instead.

Field_string:reset() now detects whether the current field is a BINARY one
and if so uses the \x00 character as a default value filler.
2007-01-09 22:35:30 +03:00
tnurnberg@mysql.com/sin.azundris.com
34122240cf Bug#24660: "enum" field type definition problem
ENUMs weren't allowed to have character 0xff, a perfectly good character in many locales.
This was circumvented by mapping 0xff in ENUMs to ',', thereby prevent actual commas from
being used (because they too would get converted to 0xff on load). Now if 0xff makes an
appearance, we find a character not used in the enum and use that as a separator. If no
such character exists, we throw an error.

Any solution would have broken some sort of existing behaviour. This solution should
serve both fractions (those with 0xff and those with ',' in their enums), but
WILL REQUIRE A DUMP/RESTORE CYCLE FROM THOSE WITH 0xff IN THEIR ENUMS. :-/
That is, mysqldump with their current server, and restore when upgrading to one with
this patch.

(port of the original 4.1 patch. incorporates some suggestions by kaamos.)
2007-01-09 20:23:12 +01:00
igor@olga.mysql.com
5cd4ba4e0b Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25027
2007-01-09 10:26:28 -08:00
jani/jamppa@bk-internal.mysql.com
915a1bcc17 Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-marvel
2007-01-09 17:07:05 +01:00
gluh@mysql.com/eagle.(none)
91d75da75e Fix for bug#25026 information_schema.KEY_COLUMN_USAGE.REFERENCED_TABLE_NAME returns garbage
Unencode internal db & table name
2007-01-09 18:14:04 +04:00
holyfoot/hf@hfmain.(none)
ae836b4203 Merge bk@192.168.21.1:mysql-5.1
into  mysql.com:/d2/hf/opt/my51-opt
2007-01-09 12:55:11 +04:00
igor@olga.mysql.com
ae6bee30fc Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24345
2007-01-09 00:17:48 -08:00
guilhem@gbichot3.local
6712c0963d Manual merge of the fix for BUG#19725 "Calls to SF in other database are not replicated
correctly in some cases", from 5.0.
In short, calls to a stored function located in another database
than the default database, may fail to replicate if the call was made
by SET, SELECT, or DO.
sp_head.cc automerged, only the test and test's result had to be hand-merged.
2007-01-08 23:52:21 +01:00
guilhem@gbichot3.local
3e760410a0 Fix for BUG#19725 "Calls to SF in other database are not replicated
correctly in some cases".
In short, calls to a stored function located in another database
than the default database, may fail to replicate if the call was made
by SET, SELECT, or DO.
Longer: when a stored function is called from a statement which does not go
to binlog ("SET @a=somedb.myfunc()", "SELECT somedb.myfunc()",
"DO somedb.myfunc()"), this crafted statement is binlogged:
"SELECT myfunc();" (accompanied with a mention of the default database
if there is one). So, if "somedb" is not the default database,
the slave would fail to find myfunc(). The fix is to specify the
function's database name in the crafted binlogged statement, like this:
"SELECT somedb.myfunc();". Test added in rpl_sp.test.
2007-01-08 22:01:06 +01:00
mskold/marty@mysql.com/linux.site
4cc91593bb bug#24820 CREATE INDEX ....USING HASH on NDB table creates ordered index, not HASH index: Merged up test 5.0 case 2007-01-08 14:20:35 +01:00
mskold/marty@mysql.com/linux.site
8f9f1612f5 Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb
2007-01-08 13:55:31 +01:00
mskold/marty@mysql.com/linux.site
5ebcc10e36 bug#24820 CREATE INDEX ....USING HASH on NDB table creates ordered index, not HASH index: Changed test since error mesage wasn't predictable 2007-01-08 13:53:37 +01:00
mskold/marty@mysql.com/linux.site
a74b06c723 bug#24820 CREATE INDEX ....USING HASH on NDB table creates ordered index, not HASH index: Added error checking 2007-01-08 11:42:32 +01:00
gkodinov/kgeorge@macbook.local
a30c09c33f Merge macbook.local:/Users/kgeorge/mysql/work/mysql-5.0-opt
into  macbook.local:/Users/kgeorge/mysql/work/merge-5.1-opt
2007-01-08 12:32:48 +02:00
mskold/marty@mysql.com/linux.site
0627ce96c8 Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb
2007-01-08 11:18:24 +01:00
mskold/marty@mysql.com/linux.site
db0107b801 bug#24820 CREATE INDEX ....USING HASH on NDB table creates ordered index, not HASH index: Added error checking 2007-01-08 10:38:53 +01:00
cmiller@zippy.cornsilk.net
993f325d37 Post-merge cleanup and fix minor BUILD/... "="-equality syntax
error.
2007-01-07 12:21:42 -05:00
cmiller@zippy.cornsilk.net
a16eaf3301 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint-greener
2007-01-07 09:31:49 -05:00