Commit graph

52274 commits

Author SHA1 Message Date
unknown
eb90f297aa Merge mysql.com:/home/hf/work/33334/my50-33334
into  mysql.com:/home/hf/work/33334/my51-33334


client/mysqltest.c:
  Auto merged
mysql-test/r/flush.result:
  SCCS merged
mysql-test/t/flush.test:
  SCCS merged
2008-03-23 20:35:00 +04:00
unknown
4018b13915 Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
Before breaking the connection we have to check that there's no query
  executing at the moment. Otherwise it can lead to crash in embedded server.


client/mysqltest.c:
  Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
  
  Wait until the query thread is finished before we break the connection.
  Waiting part moved to a separate wait_query_thread_end() function
mysql-test/r/flush.result:
  Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
  
  test result
mysql-test/t/flush.test:
  Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
  
  test case
2008-03-19 15:51:22 +04:00
unknown
9bd3b8545a Bug#32757: hang with sql_mode set when setting some global variables
If setting a system-variable provided by a plug-in failed, no OK or
error was sent in some cases, hanging the client. We now send an error
in the case from the ticket (integer-argument out of range in STRICT
mode). We also provide a semi-generic fallback message for possible
future cases like this where an error is signalled, but no message is
sent to the client. The error/warning handling is unified so it's the
same again for variables provided by plugins and those in the server
proper.


mysql-test/r/plugin.result:
  show that on out-of-range values, plugin interface throws errors
  in STRICT mode and warnings otherwise.
mysql-test/t/plugin.test:
  show that on out-of-range values, plugin interface throws errors
  in STRICT mode and warnings otherwise.
sql/set_var.cc:
  - handle signedness of values used in warnings
  - in STRICT mode, throw errors rather than warnings
sql/sql_parse.cc:
  If sql_set_variables() returns with an error but no message
  was sent to the client, send a semi-generic one so the session
  won't hang and we won't fail silently.
sql/sql_plugin.cc:
  throw a warning if more than just block-size was corrected
  (or an error in STRICT mode). use functions from set_var
  for uniform behaviour of server- and plug-in variables.
storage/example/ha_example.cc:
  Add a ULONG system variable to example plugin so
  we can test integers in the plugin-interface without
  having to depend on the presence of innobase.
2008-02-24 14:12:17 +01:00
unknown
a22c3d2109 Bug#32753: PAD_CHAR_TO_FULL_LENGTH is not documented and interferes with grant tables
SQL-mode PAD_CHAR_TO_FULL_LENGTH affected mysqld's user-table too. If
enabled, user-name and host were space-padded and no longer matched
the login-data of incoming connexions.

Patch disregards pad-flag while loading privileges so ability to log
in does not depend on SQL-mode.


mysql-test/r/sql_mode.result:
  show that SQL-mode 'PAD_CHAR_TO_FULL_LENGTH' does not affect
  loading of privileges (and by extension, ability to log in).
mysql-test/t/sql_mode.test:
  show that SQL-mode 'PAD_CHAR_TO_FULL_LENGTH' does not affect
  loading of privileges (and by extension, ability to log in).
sql/sql_acl.cc:
  temporarily disable SQL-mode 'PAD_CHAR_TO_FULL_LENGTH' while
  reloading privileges
2008-02-24 13:58:07 +01:00
unknown
72f1b329e1 Merge kaamos.(none):/data/src/opt/bug33049/my50-bug33790
into  kaamos.(none):/data/src/opt/bug33049/my51-bug33790


mysql-test/r/view.result:
  Auto merged
sql/item_sum.cc:
  Auto merged
mysql-test/t/view.test:
  Manual merge.
2008-02-22 19:55:23 +03:00
unknown
012aab7d8b Fix for bug #33049: Assert while running test-as3ap test(mysql-bench
suite)

Under some circumstances a combination of aggregate functions and
GROUP BY in a SELECT query over a VIEW could lead to incorrect
calculation of the result type of the aggregate function. This in
turn could result in incorrect results, or assertion failures on debug
builds.

Fixed by changing the logic in Item_sum_hybrid::fix_fields() so that
the argument's item is dereferenced before calling its type() method.


mysql-test/r/view.result:
  Added a test case for bug #33049.
mysql-test/t/view.test:
  Added a test case for bug #33049.
sql/item_sum.cc:
  When calculating the result type of an aggregate function, dereference
  the argument's item before calling its type() method.
2008-02-22 11:34:18 +03:00
unknown
d740f5c675 Post-merge fix after merging the patch for bug#31590 to 5.1:
suppress the "Out of sort memory" error in the error log.
2008-02-14 16:33:11 +03:00
unknown
659c61168b Merge kaamos.(none):/data/src/opt/mysql-5.0-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt


sql/filesort.cc:
  Auto merged
mysql-test/r/order_by.result:
  Manual merge.
mysql-test/t/order_by.test:
  Manual merge.
2008-02-14 12:54:23 +03:00
unknown
4f17b0e180 Merge ssh://bk-internal.mysql.com//home/bk/mysql-5.1-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-02-14 12:49:39 +03:00
unknown
c4fc5b096e Merge ssh://bk-internal.mysql.com//home/bk/mysql-5.0-opt
into  kaamos.(none):/data/src/opt/mysql-5.0-opt
2008-02-14 12:48:25 +03:00
unknown
801cc51c5c Merge host.loc:/home/uchum/work/5.1-opt-gca
into  host.loc:/home/uchum/work/5.1-opt
2008-02-14 01:33:06 +04:00
unknown
3d35b0199e Post-merge fixes. 2008-02-13 21:57:50 +03:00
unknown
be891fc611 Merge host.loc:/home/uchum/work/5.0-opt-gca
into  host.loc:/home/uchum/work/5.0-opt
2008-02-13 19:47:39 +04:00
unknown
22e2762640 Merge host.loc:/home/uchum/work/5.0-opt-gca
into  host.loc:/home/uchum/work/5.1-opt-gca


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2008-02-13 19:37:05 +04:00
unknown
7a290b55f7 Fixed bug#31194: Privilege ordering does not order properly
for wildcard values.
The server ignored escape character before wildcards during
the calculation of priority values for sorting of a privilege
list. (Actually the server counted an escape character as an
ordinary wildcard like % or _). I.e. the table name template
with a wildcard character like 'tbl_1' had higher priority in
a privilege list than concrete table name without wildcards
like 'tbl\_1', and some privileges of 'tbl\_1' was hidden
by privileges for 'tbl_1'.

The get_sort function has been modified to ignore escaped
wildcards as usual.



mysql-test/r/grant3.result:
  Added test case for bug#31194.
mysql-test/t/grant3.test:
  Added test case for bug#31194.
sql/sql_acl.cc:
  Fixed bug#31194.
  The server used the wild_prefix escape character (usually \-character)
  like % and _ wildcards in the get_sort function for sorting weights
  calculation.
  
  The get_sort function has been modified to ignore escaped wildcards
  and alone escapes like in the wild_case_compare function.
2008-02-13 19:34:12 +04:00
unknown
247efb9cf0 Fixed bug#33764: Wrong result with IN(), CONCAT() and implicit
type conversion.

Instead of copying of whole character string from a temporary
buffer, the server copied a short-living pointer to that string
into a long-living structure. That has been fixed.


mysql-test/r/select.result:
  Added test case for bug#33764.
mysql-test/t/select.test:
  Added test case for bug#33764.
sql/item_cmpfunc.cc:
  Fixed bug#33764.
  Copying of a pointer has been replaced with an optional copying of
  a whole array to a newly allocated memory space in case of a
  functional source item.
2008-02-13 19:32:19 +04:00
unknown
9112390314 Merge kaamos.(none):/data/src/opt/mysql-5.0-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt


mysql-test/r/heap.result:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
BitKeeper/deleted/.del-bdb.result:
  Auto merged
mysql-test/r/strict.result:
  Auto merged
mysql-test/r/type_binary.result:
  Auto merged
mysql-test/r/type_set.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/r/warnings.result:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
mysql-test/t/warnings.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/mysqld.cc:
  Null merge.
mysql-test/include/mix1.inc:
  Manual merge.
mysql-test/r/innodb_mysql.result:
  Manual merge.
mysql-test/r/range.result:
  Manual merge.
mysql-test/r/sp.result:
  Manual merge.
mysql-test/t/sp.test:
  Manual merge.
sql/handler.cc:
  Manual merge.
2008-02-13 12:12:00 +03:00
unknown
00b17696ef Merge mbp:src/opt/bug33389/my51-bug25162
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-02-12 22:51:25 +03:00
unknown
c6610b5791 Merge mbp:src/opt/bug33389/my50-bug25162
into  kaamos.(none):/data/src/opt/mysql-5.0-opt


sql/item.cc:
  Auto merged
2008-02-12 22:51:01 +03:00
unknown
8fe44ccb79 Merge ssh://bk-internal.mysql.com//home/bk/mysql-5.1-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-02-12 22:42:50 +03:00
unknown
9b483c31f9 Merge mbp.:/Users/kaa/src/opt/bug33389/my50-bug25162
into  mbp.:/Users/kaa/src/opt/bug33389/my51-bug25162


mysql-test/r/view.result:
  Auto merged
mysql-test/t/view.test:
  Manual merge.
sql/item.cc:
  Manual merge.
2008-02-12 22:21:33 +03:00
unknown
d83cd2149b Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/31590-bug-5.0-opt-mysql
2008-02-12 21:58:41 +03:00
unknown
d5092fa9ca Fix for bug #33389: Selecting from a view into a table from within SP
or trigger crashes server

Under some circumstances a combination of VIEWs, subselects with outer
references and PS/SP/triggers could lead to use of uninitialized memory
and server crash as a result.

Fixed by changing the code in Item_field::fix_fields() so that in cases
when the field is a VIEW reference, we first check whether the field
is also an outer reference, and mark it appropriately before returning.


mysql-test/r/view.result:
  Added a test case for bug #33389.
mysql-test/t/view.test:
  Added a test case for bug #33389.
sql/item.cc:
  In cases when in Item_field::fix_fields() from_field is a view reference,
  do not return too early, i.e. before marking the reference as an outer
  one when needed.
2008-02-12 12:43:55 +03:00
unknown
8ca8a2fb02 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/21567/51-21567
2008-02-11 01:47:38 +01:00
unknown
a87fe95118 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/misc/mysql/21567/50-21567
2008-02-11 01:45:24 +01:00
unknown
7a43d72024 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/33796/my51-33796
2008-02-10 23:53:59 +04:00
unknown
3e9132f67c Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/33796/my50-33796
2008-02-10 23:53:09 +04:00
unknown
5e3d47f848 Merge mysql.com:/home/hf/work/33796/my50-33796
into  mysql.com:/home/hf/work/33796/my51-33796


libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
2008-02-10 23:48:17 +04:00
unknown
b825be1bf8 Merge mysql.com:/home/hf/work/33796/my41-33796
into  mysql.com:/home/hf/work/33796/my50-33796


libmysql/libmysql.c:
  merging
libmysqld/lib_sql.cc:
  merging
2008-02-10 23:45:41 +04:00
unknown
db66526c95 Bug #33796 Memory leak for prepared statements in embedded server.
Field data for a query was stored to the stmt->alloc that is emptied
with mysql_stmt_close statement only. That means a lot of memory can
be occupied without a reason if used doesn't call mysql_stmt_close often.


libmysql/libmysql.c:
  Bug #33796 Memory leak for prepared statements in embedded server.
  
  Clean up result->alloc even if there's no 'data' created
libmysqld/lib_sql.cc:
  Bug #33796 Memory leak for prepared statements in embedded server.
  
  alloc 'fields' in the 'result.alloc' as the 'mem_root' is only cleaned with
  mysql_stmt_close'
2008-02-10 23:41:57 +04:00
unknown
fb1d54cebb Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/tnurnberg/21567/51-21567


sql/mysqld.cc:
  Auto merged
2008-02-10 17:08:35 +01:00
unknown
47065ad525 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/tnurnberg/21567/50-21567


sql/mysqld.cc:
  Auto merged
2008-02-10 16:54:41 +01:00
unknown
afd70eb683 Merge ssh://bk-internal.mysql.com//home/bk/mysql-5.1-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-02-10 16:04:54 +03:00
unknown
abb82b9449 Merge blasphemy.intern.azundris.com:/home/tnurnberg/21567/50-21567
into  blasphemy.intern.azundris.com:/home/tnurnberg/21567/51-21567


sql/mysqld.cc:
  Auto merged
2008-02-10 13:54:59 +01:00
unknown
60ca0e3479 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  host.loc:/home/uchum/work/5.0-opt
2008-02-08 17:04:07 +04:00
unknown
213b4dcd9e Fixed bug#15409: Columns with 64-element SET may not be updated with integers.
SET column storing procedure has been modified to be 64bit-clean.


mysql-test/r/type_set.result:
  Added test case for bug#15409.
mysql-test/t/type_set.test:
  Added test case for bug#15409.
sql/field.cc:
  Fixed bug#15409.
  The Field_set::store(longlong nr,...) method incompletely
  calculates a bit mask for the comparison with a given number:
  if that number is greater than 0x7F00 0000 0000 0000 (LONGLONG_MAX),
  it uses zero bit mask instead of 0xFFFF FFFF FFFF FFFF (ULONGLONG_MAX).
  
  Incomplete expression has been replaced with a set_bits macro call.
2008-02-08 16:04:01 +04:00
unknown
d8eab97693 Bug#31590: Wrong error message on sort buffer being too small.
The out of memory error was thrown when the sort buffer size were too small.
This led to a user confusion.

Now filesort throws the error message about sort buffer being too small.


mysql-test/t/order_by.test:
  Added a test case for the bug#31590: Wrong error message on sort buffer being too small.
mysql-test/r/order_by.result:
  Added a test case for the bug#31590: Wrong error message on sort buffer being too small.
sql/filesort.cc:
  Bug#31590: Wrong error message on sort buffer being too small.
  Now filesort throws the error message about sort buffer being too small
  instead of out of memory error.
2008-02-08 13:35:00 +03:00
unknown
bd0a8e6c1d Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/psergey/mysql-5.0-bug27732
2008-02-07 16:54:47 +03:00
unknown
1027a2a630 Merge host.loc:/home/uchum/work/5.0-opt-34223
into  host.loc:/home/uchum/work/5.0-opt
2008-02-07 11:13:03 +04:00
unknown
a4eaf17ccb innodb_mysql.test, variables.result, variables.test, innodb_mysql.result:
Minor post-fix for bug#34223.


mysql-test/r/innodb_mysql.result:
  Minor post-fix for bug#34223.
mysql-test/r/variables.result:
  Minor post-fix for bug#34223.
mysql-test/t/innodb_mysql.test:
  Minor post-fix for bug#34223.
mysql-test/t/variables.test:
  Minor post-fix for bug#34223.
2008-02-07 11:12:49 +04:00
unknown
a1e839783e BUG#27732 "Possible memory leak with index_merge"
The bug was that handler::clone/handler::ha_open() call caused allocation of 
cloned_copy->ref on the handler->table->mem_root. The allocated memory could not 
be reclaimed until the table is flushed, so it was possible to exhaust memory by 
repeatedly running index_merge queries without doing table flushes.  

The fix:
- make handler::clone() allocate new_handler->ref on the passed mem_root 
- make handler::ha_open() not allocate this->ref if it has already been allocated
There is no testcase as it is not possible to check small leaks from testsuite.


sql/handler.cc:
  BUG#27732 "Possible memory leak with index_merge"
  - make handler::clone() allocate new_handler->ref on the passed mem_root 
  - make handler::ha_open() not allocate this->ref if it has already been allocated
2008-02-07 05:10:04 +03:00
unknown
65dfdcdfeb Merge host.loc:/home/uchum/work/5.0-opt-34223
into  host.loc:/home/uchum/work/5.0-opt
2008-02-07 04:57:21 +04:00
unknown
6cdd9d5c87 bdb.result:
Minor post-fix for bug#30059.


mysql-test/r/bdb.result:
  Minor post-fix for bug#30059.
2008-02-07 04:54:58 +04:00
unknown
5cf3f53e42 Fixed bug#34223: Failure on assignment to my_innodb_autoextend_increment
and my_innodb_commit_concurrency global variables.

Type of the my_innodb_autoextend_increment and the
my_innodb_commit_concurrency variables has been changed to
GET_ULONG.



mysql-test/r/variables.result:
  Added test case for bug#34223.
mysql-test/t/variables.test:
  Added test case for bug#34223.
sql/mysqld.cc:
  Fixed bug#34223.
  Last update of the getopt_ull_limit_value function introduced
  a sanity check for a variable type (only GET_UINT or GET_ULONG
  are valid types).
  However, my_innodb_autoextend_increment and
  my_innodb_commit_concurrency are declared as GET_LONG.
  Call stack is: 
          sys_var_long_ptr_global::update()
          fix_unsigned()
          getopt_ull_limit_value()
  
  Type of the my_innodb_autoextend_increment and the
  my_innodb_commit_concurrency variables has been changed to
  GET_ULONG.
2008-02-07 04:14:50 +04:00
unknown
3891d43617 Fixed bug#30059.
Server handles truncation for assignment of too-long values
into CHAR/VARCHAR/TEXT columns in a different ways when the
truncated characters are spaces:
1. CHAR(N) columns silently ignore end-space truncation;
2. TEXT columns post a truncation warning/error in the
   non-strict/strict mode.
3. VARCHAR columns always post a truncation note in
   any mode.

Space truncation processing has been synchronised over
CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR
columns has been propagated as standard.

Binary-encoded string/BLOB columns are not affected.


mysql-test/r/heap.result:
  Updated test case for bug#30059.
mysql-test/r/innodb.result:
  Updated test case for bug#30059.
mysql-test/r/myisam.result:
  Updated test case for bug#30059.
mysql-test/r/strict.result:
  Updated test case for bug#30059.
mysql-test/r/type_binary.result:
  Updated test case for bug#30059.
mysql-test/r/warnings.result:
  Added test case for bug#30059.
mysql-test/t/warnings.test:
  Added test case for bug#30059.
sql/field.cc:
  Fixed bug#30059.
  The report_data_too_long function was replaced with the
  Field_longstr::report_if_important_data method.
  
  The Field_string::store and the Field_blob::store
  methods was synchronized with the Field_varstring::store
  method.
  Changes:
  1. to CHAR(N): posting of space truncation note has been added
     in both (strict and non-strict) modes;
  2. to BLOBs: a check for space truncation has been added,
     a warning in the non-strict mode and an error message in
     the strict mode have been replaced with a truncation note.
  
  Similar parts of Field_string::store, Field_blob::store and
  Field_varstring::store have been moved to the
  Field_longstr::report_if_important_data method.
sql/field.h:
  Fixed bug#30059.
  The Field_longstr::report_if_important_data method has been declared.
2008-02-07 02:33:21 +04:00
unknown
86a454ed36 Bug#21567: mysqld doesn't react to Ctrl-C when run under GDB even with the --gdb option
Don't block SIGINT (Control-C) when --gdb is passed to mysqld.
Was broken at least on OS X.

(kudos to Mattias Jonsson)


sql/mysqld.cc:
  Don't block SIGINT when TEST_SIGINT (--gdb) is used, even if
  thr_kill_signal is some other signal (SIGUSR2) and
  pthread_sigmask() in signal_hand() isn't good enough.
2008-02-05 12:56:49 +01:00
unknown
e0f4fb721d Merge mbp.local:/Users/kaa/src/opt/bug25162/my51-bug25162
into  mbp.local:/Users/kaa/src/opt/mysql-5.1-opt
2008-02-01 13:39:37 +05:00
unknown
1919d238e5 Merge mbp.local:/Users/kaa/src/opt/bug25162/my50-bug25162
into  mbp.local:/Users/kaa/src/opt/mysql-5.0-opt
2008-02-01 13:37:22 +05:00
unknown
78e19d4283 Merge mbp.local:/Users/kaa/src/opt/bug25162/my50-bug25162
into  mbp.local:/Users/kaa/src/opt/bug25162/my51-bug25162


mysql-test/t/create.test:
  Auto merged
sql/sql_yacc.yy:
  Null merge.
mysql-test/r/create.result:
  Manual merge.
2008-02-01 13:26:53 +05:00
unknown
4d794c2334 Fix for bug #25162: Backing up DB from 5.1 adds 'USING BTREE' to KEYs
on table creates

The problem was in incompatible syntax for key definition in CREATE
TABLE.

5.0 supports only the following syntax for key definition (see "CREATE
TABLE syntax" in the manual):

{INDEX|KEY} [index_name] [index_type] (index_col_name,...)

While 5.1 parser supports the above syntax, the "preferred" syntax was
changed to:

{INDEX|KEY} [index_name] (index_col_name,...) [index_type]

The above syntax is used in 5.1 for the SHOW CREATE TABLE output, which
led to dumps generated by 5.1 being incompatible with 5.0.

Fixed by changing the parser in 5.0 to support both 5.0 and 5.1 syntax
for key definition.


mysql-test/r/create.result:
  Added a test case for bug #25162.
mysql-test/t/create.test:
  Added a test case for bug #25162.
sql/sql_yacc.yy:
  Changed the parser to support both 5.0 and 5.1 syntax for index type
  specification in CREATE TABLE.
2008-02-01 13:00:40 +05:00