1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-09 08:01:34 +03:00
Commit Graph

14012 Commits

Author SHA1 Message Date
unknown
9c7ef53a65 bug #15745 (COUNT(DISTINCT CONCAT(x,y)) returns wrong result
mysql-test/r/distinct.result:
  result added
mysql-test/t/distinct.test:
  testcase
sql/item_sum.cc:
  MYSQL_TYPE_VARCHAR can't be 'binary' compared even when it is
  binary
2006-03-05 20:48:31 +04:00
unknown
fc969bbcf0 Merge mysql.com:/home/dlenev/src/mysql-5.0-bg17866-2
into  mysql.com:/home/dlenev/src/mysql-5.0-merges


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2006-03-04 23:58:48 +03:00
unknown
2fe8095662 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/opt/local/work/mysql-4.1-root


mysql-test/r/heap.result:
  Auto merged
mysql-test/t/heap.test:
  Auto merged
2006-03-04 22:33:19 +03:00
unknown
350475fae4 Fix for bug #17866 "Problem with renaming table with triggers with fully
qualified subject table" which was introduced during work on bug #13525
"Rename table does not keep info of triggers".

The bug was caused by the fact that during reconstruction of CREATE TRIGGER
statement stored in .TRG file which happened during RENAME TABLE we damaged
trigger definition in case when it contained fully qualified name of subject
table (see comment for sql_yacc.yy for more info).


mysql-test/r/trigger.result:
  Added test for bug #17866 "Problem with renaming table with triggers with fully
  qualified subject table".
mysql-test/t/trigger.test:
  Added test for bug #17866 "Problem with renaming table with triggers with fully
  qualified subject table".
sql/sql_trigger.cc:
  Table_triggers_list::change_table_name_in_triggers():
    Instead of trying to use pointer to the end of subject table identifier
    we use pointer to the beginning of FOR lexeme now, so during reconstruction
    of CREATE TRIGGER statement in this function we need to add extra space
    before part which begins with FOR to get nice trigger definition.
sql/sql_yacc.yy:
  trigger_tail:
    In this rule we can't rely on using remember_end token after table_ident token,
    since value returned depends on whether table name is fully qualified or not.
    So instead of trying to get pointer to the end of table identifier we use
    pointer to the beginning of FOR lexeme.
2006-03-04 16:55:06 +03:00
unknown
942ba22ee3 Merge mysql.com:/extern/mysql/5.0/bug16887/mysql-5.0-runtime
into  mysql.com:/extern/mysql/5.0/bug16887/mysql-5.0


sql/sql_yacc.yy:
  Auto merged
mysql-test/r/sp.result:
  Manual merge.
mysql-test/t/sp.test:
  Manual merge.
2006-03-03 19:18:17 +01:00
unknown
12e04a4c30 Merge mysql.com:/extern/mysql/5.0/bug16887/mysql-5.0-runtime
into  mysql.com:/extern/mysql/5.0/bug16887/mysql-5.0-release


sql/sql_yacc.yy:
  Auto merged
mysql-test/r/sp.result:
  SCCS merged
mysql-test/t/sp.test:
  SCCS merged
2006-03-03 18:51:13 +01:00
unknown
9f2d21f695 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/mysql-5.0
2006-03-03 17:22:20 +04:00
unknown
cc7a75e6fd Fixed bug#17726: Not checked empty list caused endless loop
When the Item_cond::fix_fields() function reduces cond tree, it in loop
scans it's own list and when it founds Item_cond with same function (AND
or OR) it does next things: 1) replaces that item with item's list. 2)
empties item's list. Due to this operation is done twice - for update and
for view, at the update phase cond's list of lower view is already empty.
Empty list returns ref to itself, thus making endless loop by replacing
list with itself, emptying, replacing again and so on. This results in
server hung up.

To the Item_cond::fix_fields() function added check that ensures that
list being replaced with isn't empty.


mysql-test/t/view.test:
  Added test for bug#17726: Not checked empty list caused endless loop
mysql-test/r/view.result:
  Added test for bug#17726: Not checked empty list caused endless loop
sql/item_cmpfunc.cc:
  Fixed bug#17726: Not checked empty list caused endless loop
  To the Item_cond::fix_fields() function added check that ensures that
  list being replaced with isn't empty.
2006-03-03 16:19:57 +03:00
unknown
88d4005b8a Merge joerg@trift2:/M50/patch-17595 into debian.(none):/M50/clone-5.0 2006-03-03 12:50:15 +01:00
unknown
3443a37dea Merge mysql.com:/home/gluh/MySQL/Merge/mysql-5.0-release
into mysql.com:/home/gluh/MySQL/Merge/5.0


mysql-test/r/binary.result:
  Auto merged
mysql-test/t/binary.test:
  Auto merged
sql/field_conv.cc:
  Auto merged
2006-03-03 15:39:38 +04:00
unknown
38af49e6db Merge mysql.com:/usr/home/ram/work/mysql-4.1
into  mysql.com:/usr/home/ram/work/mysql-5.0


sql/hostname.cc:
  Auto merged
2006-03-03 15:32:00 +04:00
unknown
500d6b851c Fix for bug#17826 'type_decimal' fails with ps-protocol
removed unnecessary calculation of cache value 
 otherwise Join::preapre tries to calculate 
 undefined values(filed values)


mysql-test/r/type_decimal.result:
  Fix for bug#17826 'type_decimal' fails with ps-protocol
   test case, this test case reproduce the same bug but without PS protocol
mysql-test/t/type_decimal.test:
  Fix for bug#17826 'type_decimal' fails with ps-protocol
   test case, this test case reproduce the same bug but without PS protocol
2006-03-03 15:29:39 +04:00
unknown
d95921376c Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b17615


mysql-test/r/sp.result:
  merging
mysql-test/t/sp.test:
  merging
2006-03-03 09:35:25 +04:00
unknown
a63df041da Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b13659
2006-03-03 09:34:40 +04:00
unknown
25b3bb8bd7 Expanding a binary field should result in 0x00-filled positions, not 0x20
(ASCII space).  For Bug#16857.


sql/field_conv.cc:
  Bug#16857:  Do not expand BINARY fields as if they are strings (which 
  presumably /should/ be filled with spaces).  Instead, fill BINARY fields
  with 0x00 bytes.
2006-03-02 20:49:10 -05:00
unknown
e2ba74b825 Expanding a binary field should result in 0x00-filled positions, not 0x20
(ASCII space).  For Bug#16857.


sql/field_conv.cc:
  Bug#16857:  Do not expand BINARY fields as if they are strings (which 
  presumably /should/ be filled with spaces).  Instead, fill BINARY fields
  with 0x00 bytes.
2006-03-02 19:59:49 -05:00
unknown
44c175b7ef Merge svlasenko@bk-internal.mysql.com:/home/bk/mysql-5.0
into  selena.:H:/MYSQL/src/#17595-mysql-5.0
2006-03-02 20:52:58 +03:00
unknown
7865ce6188 Fixed BUG#17476: Stored procedure not returning data when it is called first
time per connection
  Removed const_string() method from Item_string (it was only used in one
  place, in a bad way). Defer possible SP variable, and access data directly
  instead, in date_format item.


mysql-test/r/sp.result:
  Updated results for new test (BUG#17476).
mysql-test/t/sp.test:
  New test case (BUG#17476)
sql/item.h:
  Removed const_string() from Item_string.
  It was only used in one place, and we can just use str_value in Item directly.
sql/item_timefunc.cc:
  Must defer a (possible) local SP variable to use max_length and str_value
  in Item_func_date_format::fix_length_and_dec(), and refer to str_value
  directly without the const_string() method (now removed); the cast didn't
  work in all cases anyway.
2006-03-02 14:54:04 +01:00
unknown
3dd927cf1c Fix for BUG#13198: SP executes if definer does not exist.
Basically, this fix contains a test case and removing of a workaround
for replication. This fix became possible after pushing WL#2897
(Complete definer support in stored routines).


mysql-test/r/sp-security.result:
  Updated the result file to contain results of test for BUG#13198.
mysql-test/t/sp-security.test:
  Added a test case for BUG#13198.
sql/sp_head.cc:
  Removed the workaround for replication, since WL#2897 is pushed and
  now definer attribute/clause is fully supported in stored routines.
2006-03-02 16:23:42 +03:00
unknown
9a1fed13ee Implementation of WL#2897: Complete definer support in the stored routines.
The idea is to add DEFINER-clause in CREATE PROCEDURE and CREATE FUNCTION
statements. Almost all support of definer in stored routines had been already
done before this patch.

NOTE: this patch changes behaviour of dumping stored routines in mysqldump.
Before this patch, mysqldump did not dump DEFINER-clause for stored routines
and this was documented behaviour. In order to get full information about stored
routines, one should have dumped mysql.proc table. This patch changes this
behaviour, so that DEFINER-clause is dumped.

Since DEFINER-clause is not supported in CREATE PROCEDURE | FUNCTION statements
before this patch, the clause is covered by additional version-specific comments.


client/mysqldump.c:
  Updated the code for dumping stored routines: cover DEFINER-clause
  into version-specific comment.
mysql-test/r/gis.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/information_schema.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/mysqldump.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/rpl_ddl.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/rpl_sp.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/rpl_trigger.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/sp-security.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/sp.result:
  Updated result file after adding DEFINER-clause.
mysql-test/r/sql_mode.result:
  Updated result file after adding DEFINER-clause.
mysql-test/t/sp-security.test:
  Updated result file after adding DEFINER-clause.
sql/sp.cc:
  Added DEFINER-clause.
sql/sp_head.cc:
  Added a new convenient variant of set_definer() operation.
sql/sp_head.h:
  Updated result file after adding DEFINER-clause.
sql/sql_lex.h:
  Renamed trigger_definition_begin into stmt_definition_begin to be used for
  triggers and stored routines.
sql/sql_parse.cc:
  Check DEFINER-clause.
sql/sql_trigger.cc:
  Renamed trigger_definition_begin into stmt_definition_begin to be used for
  triggers and stored routines.
sql/sql_yacc.yy:
  Added DEFINER-clause.
2006-03-02 15:18:49 +03:00
unknown
fad27ebf57 Fix for BUG#16777: Can not create trigger nor view w/o definer
if --skip-grant-tables specified.

The problem is that there is a check that prevents creating a definer
with empty host name.

In --skip-grant-tables mode this check prevents the user from creating a
trigger/view without explicitly specifying its definer. This happens, because
in --skip-grant-tables mode CURRENT_USER is ''@''. According to Sanja this
check was implemented intentionally.

However, according to the MySQL manual it is possible to specify empty host
name (as well as empty user name). Moreover, the behaviour for stored routines
is different in this aspect -- we allow them to be created with implicit
definer.

Based on this, we believe it is OK to change the behaviour for views to be
similar with the behaviour for stored routines.


mysql-test/r/skip_grants.result:
  Added a test case for BUG#16777.
mysql-test/t/skip_grants.test:
  Added a test case for BUG#16777.
sql/mysql_priv.h:
  Do not check that strlen(host) > 0 in get_default_definer().
sql/sql_parse.cc:
  Do not check that strlen(host) > 0 in get_default_definer().
sql/sql_view.cc:
  Do not check that strlen(host) > 0 in get_default_definer().
2006-03-02 14:17:13 +03:00
unknown
6ea2c3cd57 Fix for bug #17615: invalid handling of function results in UPDATE...SET statement.
sql/item_func.cc:
  Fix for bug #17615: invalid handling of function results in UPDATE...SET statement.
  - set proper collation
2006-03-02 15:05:55 +04:00
unknown
92ead72dc7 Make the define start at "start of line" 2006-03-02 10:55:55 +01:00
unknown
de1e87bbcd Fix for BUG#15229.
The cause of this bug was a design flaw due to which the list of natural
join columns was incorrectly computed and stored for nested joins that
are not natural joins, but are operands (possibly indirect) of nested joins.

The patch corrects the flaw in a such a way, that the result columns of a
table reference are materialized only if it is a leaf table (that is, only
if it is a view, stored table, or natural/using join).


mysql-test/r/join.result:
  Added test for BUG#15229 and uncommented failing test cases of
  BUG#15357 (now fixed by this patch).
mysql-test/t/join.test:
  Added test for BUG#15229 and uncommented failing test cases of
  BUG#15357 (now fixed by this patch).
sql/sql_base.cc:
  - Do not materialize the result columns of regular nested joins
    (that are not natural/using joins).
  - Moved most of the code that creates/adds new natural join column
    references to the method 'get_or_create_column_ref', and simplified
    'mark_common_columns'.
  - Replaced a call to 'get_or_create_column_ref' with 'get_natural_column_ref'
    where it is for sure all columns are alredy created.
sql/table.cc:
  - Modified the method 'get_or_create_column_ref' so that it adds itself
    the newly created natural join columns to the respective table reference.
sql/table.h:
  - Modified the method 'get_or_create_column_ref' so that it adds itself
    the newly created natural join columns to the respective table reference.
2006-03-02 11:50:15 +02:00
unknown
306621137a Merge bk@192.168.21.1:mysql-5.0
into mysql.com:/home/hf/work/mysql-5.0.9088
2006-03-02 12:34:05 +04:00
unknown
5af68d301d Merge lsmy3.wdf.sap.corp:/data/users/tkatchaounov/mysql/src/5.0-virgin
into  lsmy3.wdf.sap.corp:/data/users/tkatchaounov/mysql/src/5.0-bug-17523
2006-03-01 17:27:39 +01:00
unknown
65225c3ea9 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  shellback.(none):/home/msvensson/mysql/mysql-5.0
2006-03-01 15:43:57 +01:00
unknown
292c79679c Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-bug-17523
2006-03-01 16:43:56 +02:00
unknown
195e3f3ba4 Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/alexi/bugs/mysql-5.0-merged


sql/sql_db.cc:
  Merge
2006-03-01 17:43:55 +03:00
unknown
69012c7524 Bug#2845 client fails to reconnect if using TCP/IP
- Change to use non blocking read to empty channel in case of too large sd number
 - Don't check for too large socket number on Windows.


sql/net_serv.cc:
  Windows does not need protection from sd >= FD_SETSIZE, it uses an array to store the sd's it should read from.
  Change the handler for when "net_data_is_ready" returns -1 to perform nonblocking read to empty the net.
  Only include that handler if HAVE_POLL is not defined  and not windows
2006-03-01 15:21:03 +01:00
unknown
c64c108eda Bug#15949 union + illegal mix of collations (IMPLICIT + COERCIBLE)
union.result, union.test:
  Adding test case.
item.cc:
  Allow safe character set conversion in UNION
  - string constant to column's charset
  - to unicode
  Thus, UNION now works the same with CONCAT (and other string functions)
  in respect of aggregating arguments with different character sets.


sql/item.cc:
  Allow character set conversion in UNION
  - string to column's charset
  - to unicode
  Bug#15949 union + illegal mix of collations (IMPLICIT + COERCIBLE)
mysql-test/t/union.test:
  Adding test case.
mysql-test/r/union.result:
  Adding test case.
2006-03-01 17:58:01 +04:00
unknown
2281f754e2 Fixed BUG #16175: Memory leak in rpl_trigger.test
Allocating/freeing memory for the db member of THD
  is wholy managed by slave thread.
2006-03-01 16:21:01 +03:00
unknown
b17bb278f7 bug #9088 (bigint WHERE fails)
mysql-test/r/bigint.result:
  test result
mysql-test/t/bigint.test:
  testcase
sql/item.h:
  unsigned_arg is a separate parameter now
sql/item_cmpfunc.cc:
  we can get unsigned field from the signed Item - from string
  like '1234'
2006-03-01 15:50:15 +04:00
unknown
a44a924a40 Fix for BUG#16266: Definer is not fully qualified error during replication.
The idea of the fix is to extend support of non-SUID triggers for backward
compatibility. Formerly non-SUID triggers were appeared when "new" server
is being started against "old" database. Now, they are also created when
"new" slave receives updates from "old" master.


mysql-test/r/rpl_trigger.result:
  Updated the result file with the results of the test for BUG#16266.
mysql-test/t/rpl_trigger.test:
  Added the test case for BUG#16266.
sql/mysql_priv.h:
  Added an utility operation to be used from sql_yacc.yy.
sql/sql_parse.cc:
  Add a utility operation to be used from sql_yacc.yy.
sql/sql_trigger.cc:
  Extend support of non-SUID triggers.
sql/sql_view.cc:
  Initialize LEX::definer if DEFINER-clause is missing.
sql/sql_yacc.yy:
  Extended support of non-SUID triggers.
mysql-test/std_data/bug16266.000001:
  A new binlog file for testing a patch for BUG#16266.
2006-03-01 14:13:07 +03:00
unknown
8a061aa6e3 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into sunlight.local:/work_local/14169-bug-5.0-mysql


tests/mysql_client_test.c:
  Auto merged
2006-02-28 19:42:11 +03:00
unknown
ddbf62ca89 Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was
used

In a simple queries a result of the GROUP_CONCAT() function was always of 
varchar type.
But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
table is used during select then the result is converted to blob, due to
policy to not to store fields longer than 512 chars in tmp table as varchar
fields.

In order to provide consistent behaviour, result of GROUP_CONCAT() now
will always be converted to blob if it is longer than 512 chars.
Item_func_group_concat::field_type() is modified accordingly.


sql/item_sum.h:
  Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was 
  used
  The Item_func_group_concat::field_type() now returns FIELD_TYPE_BLOB if the result is longer than 512 chars.
tests/mysql_client_test.c:
  Added test case for bug#14169: type of group_concat() result changed to blob if tmp_table was used
2006-02-28 19:30:30 +03:00
unknown
742549c50b Merge neptunus:/home/msvensson/mysql/bug16795/my50-bug16795
into  shellback.(none):/home/msvensson/mysql/mysql-5.0
2006-02-28 13:03:00 +01:00
unknown
701b699144 Bug#17377 Federated Engine returns wrong Data, always the rows with the highest ID
- Always make rnd_pos reposition the cursor in the fetched result set.


mysql-test/r/federated.result:
  Update test result
mysql-test/t/federated.test:
  Add test for bug#17377
sql/ha_federated.cc:
  Remove the "scan_flag" variable. rnd_pos should always move to a new position in the result set. 
  The "scan" flag in rnd_init will protect from the old result set being 
  closed and a new fecthed. I think the "scan_flag" was added before check of the "scan" argument in rnd_init was added.
sql/ha_federated.h:
  Remove class variable "scan_flag"
2006-02-28 11:17:40 +01:00
unknown
1271d8b9ba Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  shellback.(none):/home/msvensson/mysql/mysql-5.0
2006-02-28 11:00:35 +01:00
unknown
ba3b8fd8e5 Merge msvensson@devsrv-b.mysql.com:/space/magnus/bug17279/my50-bug17279/
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-02-28 10:52:36 +01:00
unknown
fedf61311b Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0
into  mysql.com:/users/lthalmann/bk/mysql-5.0-bug13418


sql/field.h:
  Auto merged
2006-02-27 19:26:31 +01:00
unknown
f9804136bd BUG#13418: Virtualized some functions so that Bit_field class will use correct cmp functions
sql/field.h:
  Virtualized some functions so that Bit_field class will use correct cmp functions
2006-02-27 18:34:04 +01:00
unknown
c7fc3773c3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13525
2006-02-27 20:00:05 +03:00
unknown
0aae3cd515 Merge svlasenko@bk-internal.mysql.com:/home/bk/mysql-5.0
into  selena.:H:/MYSQL/src/#15943-mysql-5.0


mysql-test/r/view.result:
  Auto merged
mysql-test/t/view.test:
  Auto merged
2006-02-27 20:00:03 +03:00
unknown
6e7d47e243 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13525


sql/field.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_select.h:
  Manual merge.
2006-02-27 20:00:03 +03:00
unknown
f56e873418 BUG#2845 client fails to reconnect if using TCP/IP
- Use 'poll' if available
 - Check that sd <= FD_SETSIZE if using 'select'
 - Handle case when 'net_data_is_ready' returns -1, ie. sd > FD_SETSIZE and 'select' is used 


sql/net_serv.cc:
  Use 'poll' in favor of 'select' if avaliable
  This is to avoid the limitation with 'select' only being able to handle fd's with numbers <= 1024 as default.
  If 'poll' is not available use 'select' but check that we are not having a number higher than FD_SETSIZE
  Handle the case when 'net_data_is_ready' can't check if there is data to read, since the sd number is too high
2006-02-27 16:44:23 +01:00
unknown
79fbd66582 Bug#17279 user with no global privs and with create priv in db can create databases
- Use binary charset in acl_cache, to make searches case sensitive
 - Add testcase 


mysql-test/r/grant2.result:
  Update test result
mysql-test/t/grant2.test:
  Add test case for bug#17279, checking that user with access to TESTDB can't create TEStdb
sql/sql_acl.cc:
  Use binary charset for the acl_cache to make the hash lookups case sensitive.
  Thus denying user with access to "TESTDB" access to "TEStdb"
2006-02-27 16:41:58 +01:00
unknown
fefdd728ff Postfix for #15943. Explicit call of thd->clear_error() is added. 2006-02-27 16:52:14 +03:00
unknown
51316b017a Fixes bug #17595. UDFs are not initialized when running mysqld with
--skip-grant-tables. However when deleting functions UDFs list was checked
regardless of whther UDFs are initialized or not. Additional check is added
into free_udf() and find_udf() functions to prevent possible runtime errors.


mysql-test/r/skip_grants.result:
  Test result for #17595 patch.
mysql-test/t/skip_grants.test:
  Test for #17595 patch.
2006-02-27 16:27:34 +03:00
unknown
701bd9ed85 Bug#16795 ndb_cache_multi2
- Change && to ||
 - Check for return value != 0 in "ndb->init()"


mysql-test/r/ndb_cache_multi2.result:
  Update test result
mysql-test/t/ndb_cache_multi2.test:
  Update test case
  - add printouts for what server the queries are from
  - Run the query from "while" once on server1 to cache it
sql/ha_ndbcluster.cc:
  && => ||, to call both the function "thd->store_global()" and "ndb->init()" 
  ndb_init returns 0 on sucess. Fail if not zero.
2006-02-27 10:29:55 +01:00