1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-17 14:41:26 +03:00

14463 Commits

Author SHA1 Message Date
unknown
ff149b713c Fixed bug #30126.
When dumping database from a 4.x server, the mysqldump client
inserted a delimiter sign inside special commentaries of the form:
  /*!... CREATE DATABASE IF NOT EXISTS ... ;*/
During restoration that dump file was splitten by delimiter signs on
the client side, and the rest of some commentary strings was prepended
to following statements.

The 4x_server_emul test case option has been added for use with the
DBUG_EXECUTE_IF debugging macro. This option affects debug server
builds only to emulate particular behavior of a 4.x server for
the mysqldump client testing. Non-debugging builds are not affected.


mysql-test/r/mysqldump-compat.result:
  Added test case for bug #30126.
mysql-test/t/mysqldump-compat.opt:
  Added test case for bug #30126.
mysql-test/t/mysqldump-compat.test:
  Added test case for bug #30126.
sql/sql_parse.cc:
  Fixed bug #30126.
  The mysqldump client uses the "SHOW CREATE DATABASE" query to
  obtain the "CREATE DATABASE" statement from that database.
  The 4.x server doesn't recognise that query, and mysqldump
  forms the "CREATE DATABASE" statement from scratch.
  That statement was formed incorrectly.
  
  To enforce the mysqldump client to create that statement from
  scratch, debugging code has been added to the mysql_execute_command
  function: in tcase of the --loose-debug=d,4x_server_emul option,
  the server returns parse error to client to emulate old behaviour.
  
  The 4x_server_emul test case option has been added for use with the
  DBUG_EXECUTE_IF debugging macro. This option affects debug server
  builds only to emulate particular behavior of a 4.x server for
  the mysqldump client testing. Non-debugging builds are not affected.
client/mysqldump.c:
  Fixed bug #30126.
  The init_dumping_tables function has been modified to output semicolon
  outside of commentaries.
2007-08-31 16:59:07 +05:00
unknown
3f9be28c41 Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-runtime


sql/item_cmpfunc.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
2007-08-30 17:23:40 -06:00
unknown
672c421b13 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-28779-b
2007-08-30 10:38:20 -06:00
unknown
aef135da66 Use double quotes instead of single ones which make the test fail on Windows. This is for bug #30164.
mysql-test/t/mysql.test:
  Use double quotes instead of single ones which make the test fail on Windows.
2007-08-30 17:21:43 +04:00
unknown
bb986a24e7 Bug #30164: Using client side macro inside server side comments generates broken queries
Problem:
  
In cases when a client-side macro appears inside a server-side comment, the add_line() function in mysql.cc discarded all characters until the next delimiter to remove macro arguments from the query string. This resulted in broken queries being sent to the server when the next delimiter character appeared past the comment's boundaries, because the comment closing sequence ('*/') was discarded.
  
Fix:
  
If a client-side macro appears inside a server-side comment, discard all characters in the comment after the macro (that is, until the end of the comment rather than the next delimiter).
This is a minimal fix to allow only simple cases used by the mysqlbinlog utility. Limitations that are worth documenting:
  
- Nested server-side and/or client-side comments are not supported by mysql.cc
- Using client-side macros in multi-line server-side comments is not supported
- All characters after a client-side macro in a server-side comment will be omitted from the query string (and thus, will not be sent to server).


client/mysql.cc:
  If a client-side macro appears inside a server-side comment, discard all characters in the comment after the macro.
mysql-test/r/mysql.result:
  Added a test case for bug #30164.
mysql-test/t/mysql.test:
  Added a test case for bug #30164.
2007-08-30 12:53:24 +04:00
unknown
b0f899e977 Bug#28779 (mysql_query() allows execution of statements with unbalanced
comments)

Before this fix, the server would accept queries that contained comments,
even when the comments were not properly closed with a '*' '/' marker.

For example,
  select 1 /* + 2 <EOF>
would be accepted as
  select 1 /* + 2 */ <EOF>
and executed as
  select 1

With this fix, the server now rejects queries with unclosed comments
as syntax errors.
Both regular comments ('/' '*') and special comments ('/' '*' '!') must be
closed with '*' '/' to be parsed correctly.


mysql-test/r/comments.result:
  Unbalanced comments are a syntax error.
mysql-test/t/comments.test:
  Unbalanced comments are a syntax error.
sql/sql_lex.cc:
  Unbalanced comments are a syntax error.
2007-08-29 14:50:32 -06:00
unknown
ce291125f0 Bug #30209 rpl_packet.test: Slave_running mismatch (timing bug?)
explicit --sleep is removed in favor of wait_for_slave_io_to_stop.inc.
The status reporting uses `SHOW SLAVE STATUS' *not* possibly buggy "SHOW STATUS LIKE 'Slave_running'".


mysql-test/r/rpl_packet.result:
  Recording the necessary Slave_IO_Running status at the end of the bug test.
  It must be No.
mysql-test/t/rpl_packet.test:
  Removing sleep; wait_for_slave_io_to_stop.inc instead;
  Original "SHOW STATUS LIKE 'Slave_running'" seems to be buggy (to be reported) as with the macro above
  there were evidence slave IO was stopped indeed but "SHOW STATUS" did not find that (see failures in pb)
2007-08-29 19:57:10 +03:00
unknown
7cafddc345 Merge pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2007-08-29 17:54:16 +02:00
unknown
10012b36fe Remove any old pidfile before starting mysqld to make sure that
'mysqld_wait_started' don't return prematurely because of an old
pidfile
2007-08-29 17:54:02 +02:00
unknown
2e4963c5b6 Remove unportable use of "system rm" 2007-08-29 14:44:23 +02:00
unknown
5819322bd9 Merge pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint


mysql-test/lib/mtr_misc.pl:
  Auto merged
2007-08-29 14:39:59 +02:00
unknown
305c352685 Fix typo: '$$' => '$' 2007-08-29 14:39:40 +02:00
unknown
3d5440505c Test case for Bug#13675: DATETIME/DATE type in store proc param
seems to be converted as varbinary.

The bug has been already fixed. This CS just adds a test case for it.


mysql-test/r/sp.result:
  Update result file.
mysql-test/t/sp.test:
  Test case for BUG#13675.
2007-08-29 14:57:59 +04:00
unknown
cf37bc45fc Remove unportable use of "system rm" 2007-08-29 12:47:00 +02:00
unknown
643b2163e6 Remove unportable "system rm" 2007-08-29 12:44:43 +02:00
unknown
ff2475635c Merge pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint


mysql-test/lib/mtr_misc.pl:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
2007-08-29 11:53:36 +02:00
unknown
2675c95217 Remove unportable use of "exec chmod" 2007-08-29 11:53:15 +02:00
unknown
038df2d05c Add 'mtr_rmtree'
mysql-test/lib/mtr_misc.pl:
  Add function 'mtr_rmtree' it will try 'rmtree' and if that fails (most likely
  due to permission problems we will fun File::find to chmod all files and dirs
  to 0777 and then delete.
mysql-test/mysql-test-run.pl:
  Use 'mtr_rmtree' in favour of 'rmtree'
2007-08-29 11:51:34 +02:00
unknown
bd1f34d932 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30377-5.0-opt


sql/sql_select.cc:
  Auto merged
2007-08-29 12:47:24 +03:00
unknown
bdf19dc73b Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  linux-st28.site:/home/martin/mysql/src/bugx/my50-bugx


mysql-test/t/innodb_mysql.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  SCCS merged
2007-08-29 10:49:19 +02:00
unknown
901ead6cb5 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  moksha.local:/Users/davi/mysql/push/mysql-5.0-runtime
2007-08-28 18:47:08 -03:00
unknown
e0e44ad66e Bug#30625 (Performance, reduce depth for expressions)
This is a performance bug, affecting in particular the bison generated code
for the parser.

Prior to this fix, the grammar used a long chain of reduces to parse an
expression, like:
  bit_expr -> bit_term
  bit_term -> bit_factor
  bit_factor -> value_expr
  value_expr -> term
  term -> factor
etc

This chain of reduces cause the internal state automaton in the generated
parser to execute more state transitions and more reduces, so that the
generated MySQLParse() function would spend a lot of time looping to execute
all the grammar reductions.

With this patch, the grammar has been reorganized so that rules are more
"flat", limiting the depth of reduces needed to parse <expr>.

Tests have been written to enforce that relative priorities and properties
of operators have not changed while changing the grammar.

See the bug report for performance data.


mysql-test/r/parser_precedence.result:
  Improved test coverage for operator precedence
mysql-test/t/parser_precedence.test:
  Improved test coverage for operator precedence
sql/sql_yacc.yy:
  Simplified the grammar to improve performances
2007-08-28 11:16:03 -06:00
unknown
8c1e206971 Fixes for
Bug#30418 "datadict" tests (all engines) fail: Dependency on the host name
                for ordering
     Bug#30420 "datadict" tests (all engines) fail: Release build has help tables loaded
     Bug#30438 "{memory,myisam,ndb}__datadict" tests fail: Use "InnoDB" without checking
     Bug#30440 "datadict" tests (all engines) fail: Character sets depend on configuration
Attention: Only the build team can check if Bug#30440 is really fixed.


mysql-test/suite/funcs_1/README.txt:
  Update README
mysql-test/suite/funcs_1/datadict/datadict_master.inc:
  1. Exclude the help tables from the INFORMATION_SCHEMA.TABLES
     and the INFORMATION_SCHEMA.STATISTICS selects.
  2. Replace error numbers with error names
  3. Sort some results with mysqltest builtin function
  4. Some other minor changes
mysql-test/suite/funcs_1/r/innodb__datadict.result:
  Updated expected results
mysql-test/suite/funcs_1/r/memory__datadict.result:
  Updated expected results
mysql-test/suite/funcs_1/r/myisam__datadict.result:
  Updated expected results
mysql-test/suite/funcs_1/t/innodb__datadict.test:
  Add $OTHER_ENGINE_TYPE variable which is used in data_dict_master.inc.
mysql-test/suite/funcs_1/t/memory__datadict.test:
  Add $OTHER_ENGINE_TYPE variable which is used in data_dict_master.inc.
mysql-test/suite/funcs_1/t/myisam__datadict.test:
  Add $OTHER_ENGINE_TYPE variable which is used in data_dict_master.inc.
mysql-test/suite/funcs_1/r/datadict_help_tables_build.result:
  File with expected results
mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result:
  File with expected results
mysql-test/suite/funcs_1/t/datadict_help_tables_build.test:
  Additional test checking the information about the help tables within
         INFORMATION_SCHEMA.TABLES/INFORMATION_SCHEMA.STATISTICS
  as compensation for the removed checks within datadict_master.inc.
  Variant for use during build tests (non empty help tables)
mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test:
  Additional test checking the information about the help tables within
         INFORMATION_SCHEMA.TABLES/INFORMATION_SCHEMA.STATISTICS
  as compensation for the removed checks within datadict_master.inc.
  Variant for use during development tests (empty help tables)
2007-08-28 18:37:17 +02:00
unknown
310afbd4a9 Bug #30377: EXPLAIN loses last_query_cost when used with UNION
Currently the Last_query_cost session status variable shows
only the cost of a single flat subselect. For complex queries
(with subselects or unions etc) Last_query_cost is not valid
as it was showing the cost for the last optimized subselect.
Fixed by reseting to zero Last_query_cost when the complete
cost of the query cannot be determined.
Last_query_cost will be non-zero only for single flat queries.


mysql-test/r/status.result:
  Bug #30377: test case
mysql-test/t/status.test:
  Bug #30377: test case
sql/sql_lex.h:
  Bug #30377: helper function
sql/sql_select.cc:
  Bug #30377: don't assign cost if not on single level statement
2007-08-28 18:51:03 +03:00
unknown
5f524dadcd Remove unportable constructs in loaddata.test 2007-08-28 16:44:31 +02:00
unknown
e968129c6b fix bug in test case for bug#25714
mysql-test/include/have_bug25714.inc:
  this is not how you access variables
2007-08-28 16:06:08 +02:00
unknown
345c18e4e1 Move "analyze_testcase_failure" to mysqltest(since it knows best when
to perform this analyzis)


client/mysqltest.c:
  Add function 'show_query' and use it to output some debug queries when
  "sync_with_master" has failed.
mysql-test/mysql-test-run.pl:
  Move "analyze_testcase_failure" to mysqltest
2007-08-28 15:32:13 +02:00
unknown
484069cf00 Merge pilot.(none):/data/msvensson/mysql/bug28812/my50-bug28812
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
2007-08-28 11:35:22 +02:00
unknown
b8c3ba1f84 Merge pilot.(none):/data/msvensson/mysql/yassl_import/my50-yassl_import
into  pilot.(none):/data/msvensson/mysql/bug28812/my50-bug28812
2007-08-28 11:35:05 +02:00
unknown
9c3a03a239 Bug#28812 rpl_ssl fails due to assert in extra/yassl/src/socket_wrapper.cpp:117
- Merge sslaccept and sslconnect.
 - Atomically "reset" vio to VIO_TYPE_SSL when the SSL connection has
   succeeded, this avoids having to revert anything and thus protects
   against "close_active_vio" in the middle.
 - Add some variance to the testcase


mysql-test/t/rpl_ssl.test:
  Add some variance by running two selects before stopping the slave
  Check that number of records in t1 are equal on master and slave
vio/viossl.c:
  Rewrite sslconnect and sslaccept to automically "reset" the vio
  to VIO_TYPE_SSL. Also use the fd from 'SSL_get_fd' to avoid
  setting vio->sd to -1, that previously occured when "close_active_vio"
  was called during connect/accept.
  
  Merge the two function since they were exactly the same except for one line.
  
  Update the DBUG printouts to be generic(i.e use peer instead of client/server).
2007-08-28 11:34:43 +02:00
unknown
d54f42c16c Merge ramayana.hindu.god:/home/tsmith/m/bk/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50


sql/sql_show.cc:
  Auto merged
2007-08-27 18:19:55 -06:00
unknown
2368664681 Bug #30596 GROUP BY optimization gives wrong result order
The optimization that uses a unique index to remove GROUP BY, did not 
ensure that the index was actually used, thus violating the ORDER BY
that is impled by GROUP BY.
Fixed by replacing GROUP BY with ORDER BY if the GROUP BY clause contains
a unique index. In case GROUP BY ... ORDER BY null is used, GROUP BY is
simply removed.


BitKeeper/etc/ignore:
  Added support-files/mysqld_multi.server tests/bug25714 cscope.in.out cscope.out cscope.po.out to the ignore list
mysql-test/r/distinct.result:
  Bug#30596: Changed test case. 
  Prior to Bug#16458, These queries use temp table and filesort. The
  bug was that they used a temp table. However, that patch removed
  filesort also, in which case we can no longer gurantee correct ordering.
mysql-test/r/group_by.result:
  Bug#30596: Correct result
mysql-test/r/innodb_mysql.result:
  Bug#30596: Test case for innodb. Here, as opposed to for MyISAM, row 
  lookup is done using index whenever the index covers the group list.
mysql-test/t/group_by.test:
  Bug#30596: Test case
mysql-test/t/innodb_mysql.test:
  Bug#30596: Test case
sql/sql_select.cc:
  Bug#30596: The fix, replacing GROUP BY with ORDER BY unless 
  ORDER BY [NULL|<constant>]
2007-08-27 17:33:41 +02:00
unknown
34ded62908 Bug#30632 HANDLER read failure causes hang
If, after the tables are locked, one of the conditions to read from a
HANDLER table is not met, the handler code wrongly jumps to a error path
that won't unlock the tables.

The user-visible effect is that after a error in a handler read command,
all subsequent handler operations on the same table will hang.

The fix is simply to correct the code to jump to the (same) error path that
unlocks the tables.


mysql-test/r/handler.result:
  Bug#30632 test case result
mysql-test/t/handler.test:
  Bug#30632 test case
sql/sql_handler.cc:
  Always unlock the internal and external table level locks if any of the conditions
  (including errors) to read from a HANDLER table are not met.
2007-08-27 10:37:12 -03:00
unknown
369a5f1cdc Bug#25164 create table a as select * from A hangs
The problem from a user's perspective: user creates table A, and then tries
to CREATE TABLE a SELECT from A - and this causes a deadlock error, a hang,
or fails with a debug assert, but only if the storage engine is InnoDB.

The origin of the problem: InnoDB uses case-insensitive collation
(system_charset_info) when looking up the internal table share, thus returning
the same share for 'a' and 'A'.

Cause of the user-visible behavior: since the same share is returned to SQL
locking subsystem, it assumes that the same table is first locked (within the
same session) for WRITE, and then for READ, and returns a deadlock error.
However, the code is wrong in not properly cleaning up upon an error, leaving
external locks in place, which leads to assertion failures and hangs.

Fix that has been implemented: the SQL layer should properly propagate the
deadlock error, cleaning up and freeing all resources.

Further work towards a more complete solution: InnoDB should not use case
insensitive collation for table share hash if table names on disk honor the case.


mysql-test/r/innodb-deadlock.result:
  Bug#25164 test case result
mysql-test/t/innodb-deadlock.test:
  Bug#25164 test case. The CREATE TABLE may fail depending on the character set
  of the system and filesystem, but it should never hang.
sql/lock.cc:
  Unlock the storage engine "external" table level locks, if the MySQL thr_lock
  locking subsystem detects a deadlock error.
2007-08-27 10:13:54 -03:00
unknown
e19f49ae5e Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/30245-bug-5.0-opt-mysql


sql/sql_select.cc:
  Auto merged
2007-08-24 22:11:23 +00:00
unknown
b18447112c Remove unsued variable $glob_hostname, unused functions
'mtr_short_hostname' and 'mtr_full_hostname'
2007-08-24 15:43:45 +02:00
unknown
17f03bb7a6 Remove unecessary use of "Socket" 2007-08-24 13:10:34 +02:00
unknown
294a43ec5e Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/users/gshchepa/mysql-5.0-opt


sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
2007-08-23 21:28:33 +02:00
unknown
0ff829bb71 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-marvel
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0.48


sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
2007-08-23 17:43:47 +02:00
unknown
d4e34c80d6 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-30237


sql/sql_yacc.yy:
  Auto merged
2007-08-22 11:06:42 -06:00
unknown
fb1be0f1e5 Bug#30237 (Performance regression in boolean expressions)
This is a performance bug, related to the parsing or 'OR' and 'AND' boolean
expressions.

Let N be the number of expressions involved in a OR (respectively AND).

When N=1

For example, "select 1" involve only 1 term: there is no OR operator.

In 4.0 and 4.1, parsing expressions not involving OR had no overhead.
In 5.0, parsing adds some overhead, with Select->expr_list.

With this patch, the overhead introduced in 5.0 has been removed,
so that performances for N=1 should be identical to the 4.0 performances,
which are optimal (there is no code executed at all)

The overhead in 5.0 was in fact affecting significantly some operations.
For example, loading 1 Million rows into a table with INSERTs,
for a table that has 100 columns, leads to parsing 100 Millions of
expressions, which means that the overhead related to Select->expr_list
is executed 100 Million times ...

Considering that N=1 is by far the most probable expression,
this case should be optimal.

When N=2

For example, "select a OR b" involves 2 terms in the OR operator.

In 4.0 and 4.1, parsing expressions involving 2 terms created 1 Item_cond_or
node, which is the expected result.
In 5.0, parsing these expression also produced 1 node, but with some extra
overhead related to Select->expr_list : creating 1 list in Select->expr_list
and another in Item_cond::list is inefficient.

With this patch, the overhead introduced in 5.0 has been removed
so that performances for N=2 should be identical to the 4.0 performances.
Note that the memory allocation uses the new (thd->mem_root) syntax
directly.
The cost of "is_cond_or" is estimated to be neglectable: the real problem
of the performance degradation comes from unneeded memory allocations.

When N>=3

For example, "select a OR b OR c ...", which involves 3 or more terms.

In 4.0 and 4.1, the parser had no significant cost overhead, but produced
an Item tree which is difficult to evaluate / optimize during runtime.
In 5.0, the parser produces a better Item tree, using the Item_cond
constructor that accepts a list of children directly, but at an extra cost
related to Select->expr_list.

With this patch, the code is implemented to take the best of the two
implementations:
- there is no overhead with Select->expr_list
- the Item tree generated is optimized and flattened.

This is achieved by adding children nodes into the Item tree directly,
with Item_cond::add(), which avoids the need for temporary lists and memory
allocation

Note that this patch also provide an extra optimization, that the previous
code in 5.0 did not provide: expressions are flattened in the Item tree,
based on what the expression already parsed is, and not based on the order
in which rules are reduced.

For example : "(a OR b) OR c", "a OR (b OR c)" would both be represented
with 2 Item_cond_or nodes before this patch, and with 1 node only with this
patch. The logic used is based on the mathematical properties of the OR
operator (it's associative), and produces a simpler tree.


sql/item_cmpfunc.h:
  Improved performances for parsing boolean expressions
sql/sql_yacc.yy:
  Improved performances for parsing boolean expressions
mysql-test/r/parser_precedence.result:
  Added test cases to cover boolean operator precedence
mysql-test/t/parser_precedence.test:
  Added test cases to cover boolean operator precedence
2007-08-22 11:05:35 -06:00
unknown
116995f916 bug#23333
fixing the test due a to different offsets in binlog with ps-protocol (a possible bug to be reported)


mysql-test/r/sp_trans_log.result:
  results changed as prescribed
mysql-test/t/sp_trans_log.test:
  Replacing the reporting pattern
  
  ### a possible bug: 
  #show master status /* the offset must denote there is the query */|
  # displays different offests in ps-protocol
  
  with 
    show binlog events
2007-08-22 15:43:16 +03:00
unknown
bdfe0b5290 bug#27417
refining of cleanup of the tests.


mysql-test/r/mix_innodb_myisam_binlog.result:
  results changed.
mysql-test/t/mix_innodb_myisam_binlog.test:
  proper cleanup.
2007-08-22 10:40:38 +03:00
unknown
abc02d7e47 Merge adventure.(none):/home/thek/Development/cpp/bug30269/my50-bug30269
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


mysql-test/r/query_cache.result:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
2007-08-21 17:47:06 +02:00
unknown
521529be29 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2007-08-21 17:57:48 +05:00
unknown
a084901147 Bug #23333 stored function + non-transac table + transac table = breaks stmt-based binlog
Binlogging of the statement with a side effect like a modified non-trans table did not happen.
The artifact involved all binloggable dml queries.

Fixed with changing the binlogging conditions all over the code to exploit thd->transaction.stmt.modified_non_trans_table
introduced by the patch for bug@27417.

Multi-delete case has own specific addressed by another bug@29136. Multi-update case has been addressed by bug#27716 and
patch and will need merging.


mysql-test/r/mix_innodb_myisam_binlog.result:
  results changed
mysql-test/r/sp_trans_log.result:
  results changed
mysql-test/t/mix_innodb_myisam_binlog.test:
  specific to the bug tests added
mysql-test/t/sp_trans_log.test:
  refining of the proof of that there is an event in binlog
sql/sql_delete.cc:
  deploying the binlogging check with thd->transaction.stmt.modified_non_trans_table
sql/sql_insert.cc:
  binlogging when thd->transaction.stmt.modified_non_trans_table is TRUE. Merge with Bug#29571.
sql/sql_load.cc:
  binlogging when thd->transaction.stmt.modified_non_trans_table is true
sql/sql_update.cc:
  binlogging when thd->transaction.stmt.modified_non_trans_table is true
2007-08-21 15:16:55 +03:00
unknown
3a5a0ea392 Bug#30269 Query cache eats memory
Although the query cache doesn't support retrieval of statements containing
column level access control, it was still possible to cache such statements
thus wasting memory.
  
This patch extends the access control check on the target tables to avoid
caching a statement with column level restrictions. 

Views are excepted and can be cached but only retrieved by super user account.


mysql-test/t/query_cache_with_views.test:
  Rename: mysql-test/t/view_query_cache.test -> mysql-test/t/query_cache_with_views.test
mysql-test/r/query_cache_with_views.result:
  Rename: mysql-test/r/view_query_cache.result -> mysql-test/r/query_cache_with_views.result
mysql-test/r/query_cache.result:
  Modified test case to allow caching of views
mysql-test/t/query_cache.test:
  Modified test case to allow caching of views
sql/sql_cache.cc:
  Allow caching of views
2007-08-21 13:43:09 +02:00
unknown
a9322f2e57 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/sql_base.cc:
  Auto merged
2007-08-21 16:31:30 +05:00
unknown
63a95f331a Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-08-21 16:14:46 +05:00
unknown
3c52b2b3a8 Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge


sql/sql_base.cc:
  Auto merged
sql/sql_handler.cc:
  Auto merged
2007-08-20 10:45:16 -06:00