1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-13 21:42:58 +03:00
Commit Graph

19659 Commits

Author SHA1 Message Date
holyfoot/hf@hfmain.(none)
c4811d67f7 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/28430/my51-28430
2007-08-24 07:51:58 +05:00
gshchepa/uchum@gleb.loc
72bcbc655e Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  gleb.loc:/home/uchum/work/bk/target-5.1.22/mysql-5.1-target-5.1.22
2007-08-24 02:26:30 +05:00
gshchepa/uchum@gleb.loc
4a7fdf8611 Fixed bug #30396.
Recommit to 5.1.22.
The bug caused memory corruption for some queries with top OR level
in the WHERE condition if they contained equality predicates and 
other sargable predicates in disjunctive parts of the condition.

The corruption happened because the upper bound of the memory
allocated for KEY_FIELD and SARGABLE_PARAM internal structures
containing info about potential lookup keys was calculated incorrectly
in some cases. In particular it was calculated incorrectly when the
WHERE condition was an OR formula with disjuncts being AND formulas
including equalities and other sargable predicates.
2007-08-24 02:23:49 +05:00
gshchepa@bk-internal.mysql.com
46e58466cb Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/users/gshchepa/mysql-5.1-opt
2007-08-23 21:38:24 +02:00
gshchepa@bk-internal.mysql.com
c70dbeab8b Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/users/gshchepa/mysql-5.0-opt
2007-08-23 21:28:33 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
afe7de8234 Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format.
In the ha_partition::position() we didn't calculate the number
of the partition of the record. We used m_last_part value instead,
relying on that it is set in other place like previous call of a method
like ::write_row(). In replication we don't call any of these befor
position(). Delete_rows_log_event::do_exec_row calls find_and_fetch_row.
In case of InnoDB-based PARTITION table, we have HA_PRIMARY_KEY_REQUIRED_FOR_POSITION
enabled, so use position() / rnd_pos() calls to fetch the record.

Fixed by adding partition_id calculation to the ha_partition::position()
2007-08-23 23:34:48 +05:00
df@pippilotta.erinye.com
07c6ef515d 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
2007-08-23 17:43:47 +02:00
thek@adventure.(none)
ddb2ce8f22 Bug#28285 Test "events_bugs" has instable results of "select /*1*/ ... from processlist"
Test case contains possible race conditions. This patch fixes these race
conditions and also adjust the test to execute according to its documentation.
2007-08-23 15:37:55 +02:00
skozlov/ksm@mysql.com/virtop.localdomain
7094223ea2 Bug#28744, Bug#29363 2007-08-23 17:33:06 +04:00
jmiller/ndbdev@ndb08.mysql.com
af68cdb2a8 Merge jmiller@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  mysql.com:/data1/mysql-5.1-target-5.1.22
2007-08-23 15:33:05 +02:00
tomas@whalegate.ndb.mysql.com
0c38530b82 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-08-23 15:15:35 +02:00
joerg@trift2.
94e9aa8eb1 Merge trift2.:/MySQL/M51/target-5.1.22
into  trift2.:/MySQL/M51/push-5.1
2007-08-22 19:52:30 +02:00
malff/marcsql@weblab.(none)
e0b982fda1 Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt50-merge
2007-08-22 11:51:03 -06:00
antony@pcg5ppc.xiphis.org
c7cf3e05b5 Bug#30359
"Test federated_bug_25714 issues non-existing shell command"
  Problem caused by missing '$' symbol in eval statement causing it
  to always attempt to run test even if the test was not compiled.
2007-08-22 10:15:20 -07:00
malff/marcsql@weblab.(none)
ecea791eaf Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-30237
2007-08-22 11:06:42 -06:00
malff/marcsql@weblab.(none)
82f99c9359 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.
2007-08-22 11:05:35 -06:00
joerg@trift2.
d4d4f8528e Manual merge of parallel development in separate team trees. 2007-08-22 17:13:42 +02:00
jani@hynda.mysql.fi
6519de0469 Merge hynda.mysql.fi:/home/my/mysql-5.1-main
into  hynda.mysql.fi:/home/my/mysql-5.1-marvel
2007-08-22 17:29:38 +03:00
joerg@trift2.
20ce606797 Merge trift2.:/MySQL/M51/target-5.1.22
into  trift2.:/MySQL/M51/push-5.1

Includes manual merges.
2007-08-22 16:08:55 +02:00
jmiller/ndbdev@mysql.com/ndb08.mysql.com
a36530ed5a ndb_dd_ddl.test, ndb_dd_ddl.result:
Updated test case to correst inconsistant results on different OS per #bug30559
2007-08-22 15:54:10 +02:00
joerg@trift2.
36cba7ce09 Merge trift2.:/MySQL/M51/clone-5.1
into  trift2.:/MySQL/M51/target-5.1.22
2007-08-22 15:49:00 +02:00
joerg@trift2.
057c591e29 Merge trift2.:/MySQL/M51/target-5.1.22
into  trift2.:/MySQL/M51/push-5.1
2007-08-22 15:43:01 +02:00
jani@hynda.mysql.fi
2cb4a2c0b6 Removed a test which output may differ depending on machine load. 2007-08-22 16:18:27 +03:00
aelkin/elkin@dsl-hkibras-fe38f900-157.dhcp.inet.fi
d4192c14ad bug#23333
fixing the test due a to different offsets in binlog with ps-protocol (a possible bug to be reported)
2007-08-22 15:43:16 +03:00
aelkin/elkin@dsl-hkibras-fe38f900-157.dhcp.inet.fi
81be50576f bug#27417
refining of cleanup of the tests.
2007-08-22 10:40:38 +03:00
jmiller/ndbdev@mysql.com/ndb08.mysql.com
630563d50e ndb_dd_dump.test, ndb_dd_dump.result:
uncommented the test case stated in bug18856 and commiting to mysql-5.1-target-5.1.22 clone per Tomas
2007-08-21 21:22:35 +02:00
joerg@trift2.
ab7e096b68 Merge trift2.:/MySQL/M51/mysql-5.1
into  trift2.:/MySQL/M51/push-5.1
2007-08-21 18:42:35 +02:00
jani@hynda.mysql.fi
2fd7a743e4 Merge hynda.mysql.fi:/home/my/mysql-5.1-main
into  hynda.mysql.fi:/home/my/mysql-5.1-marvel
2007-08-21 19:03:28 +03:00
thek@adventure.(none)
88107378cd Merge adventure.(none):/home/thek/Development/cpp/bug30269/my50-bug30269
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-08-21 17:47:06 +02:00
tomas@whalegate.ndb.mysql.com
88fa8c267b rpl_ndb_dd_partitions-slave.opt:
Rename: mysql-test/t/rpl_ndb_dd_partitions-slave.opt -> mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-slave.opt
.del-rpl_stm_extraColmaster_ndb.result:
  Delete: mysql-test/r/rpl_stm_extraColmaster_ndb.result
.del-rpl_extraColmaster_myisam.test:
  Delete: mysql-test/t/rpl_extraColmaster_myisam.test
ndb_bug26793.result:
  Rename: mysql-test/r/ndb_bug26793.result -> mysql-test/suite/ndb/r/ndb_bug26793.result
.del-rpl_extraColmaster_innodb-slave.opt:
  Delete: mysql-test/t/rpl_extraColmaster_innodb-slave.opt
.del-rpl_extraColmaster_innodb-master.opt:
  Delete: mysql-test/t/rpl_extraColmaster_innodb-master.opt
.del-rpl_row_extraColmaster_ndb.test:
  Delete: mysql-test/t/rpl_row_extraColmaster_ndb.test
.del-rpl_row_extraColmaster_ndb.result:
  Delete: mysql-test/r/rpl_row_extraColmaster_ndb.result
.del-rpl_stm_extraColmaster_ndb.test:
  Delete: mysql-test/t/rpl_stm_extraColmaster_ndb.test
.del-rpl_extraColmaster_innodb.test:
  Delete: mysql-test/t/rpl_extraColmaster_innodb.test
ndb_bug26793.test:
  Rename: mysql-test/t/ndb_bug26793.test -> mysql-test/suite/ndb/t/ndb_bug26793.test
rpl_ndb_dd_partitions-master.opt:
  Rename: mysql-test/t/rpl_ndb_dd_partitions-master.opt -> mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-master.opt
.del-rpl_colSize.test~d9690ba9ffd2b048:
  Delete: mysql-test/t/rpl_colSize.test
2007-08-21 16:26:00 +02:00
gluh@eagle.(none)
9bae69b299 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
gluh@eagle.(none)
86d6897087 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-08-21 17:57:09 +05:00
gluh@mysql.com/eagle.(none)
69970f5248 Bug#27629 Possible security flaw in INFORMATION_SCHEMA and SHOW statements(addon for 5.1)
added TRIGGER_ACL check for I_S.TRIGGERS
2007-08-21 17:55:49 +05:00
thek@adventure.(none)
400aec95f7 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-08-21 14:54:09 +02:00
tomas@whalegate.ndb.mysql.com
166849188d manual merge 2007-08-21 14:41:50 +02:00
aelkin/elkin@dsl-hkibras-fe38f900-157.dhcp.inet.fi
77998c30c2 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.
2007-08-21 15:16:55 +03:00
thek@adventure.(none)
588a528f5a Merge adventure.(none):/home/thek/Development/cpp/bug30269/my51-bug30269
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-08-21 14:04:31 +02:00
thek@adventure.(none)
1317079fd0 Merge adventure.(none):/home/thek/Development/cpp/bug30269/my50-bug30269
into  adventure.(none):/home/thek/Development/cpp/bug30269/my51-bug30269
2007-08-21 13:44:01 +02:00
thek@adventure.(none)
acfe3fc924 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.
2007-08-21 13:43:09 +02:00
gshchepa/uchum@gleb.loc
9de070f36b Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-08-21 16:38:29 +05:00
gshchepa/uchum@gleb.loc
4c144f6349 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-08-21 16:31:30 +05:00
gshchepa/uchum@gleb.loc
be6ee4314e Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-08-21 16:16:50 +05:00
gshchepa/uchum@gleb.loc
d1b4cee88f 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
gluh@eagle.(none)
4ae4934856 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-08-21 16:01:47 +05:00
malff/marcsql@weblab.(none)
c76cd081d8 Fixed 5.0 -> 5.1 merge 2007-08-20 17:50:42 -06:00
malff/marcsql@weblab.(none)
a01da34f72 Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt50-merge
2007-08-20 16:13:54 -06:00
brian@piggy.tangent.org
0ffc10463a Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  piggy.tangent.org:/home/mysql/trees/mysql-5.1-arch
2007-08-20 13:25:53 -07:00
baker@bk-internal.mysql.com
9977898bd7 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
2007-08-20 22:25:52 +02:00
brian@piggy.tangent.org
e00b72de19 Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  piggy.tangent.org:/home/mysql/trees/mysql-5.1-arch
2007-08-20 13:18:40 -07:00
brian@piggy.tangent.org
bd0bcb70f5 Extending tests for detach (found a memory issue in it, this fixes that and now tests it). 2007-08-20 13:03:50 -07:00