Commit graph

36012 commits

Author SHA1 Message Date
unknown
aaaf498146 Add expansion of $variables in "let from query",
"if with query" and "while with query"
2007-04-04 15:09:12 +02:00
unknown
2efc0f51cf Bug UPDATE with subquery and triggers failing with cluster tables
In certain cases AFTER UPDATE/DELETE triggers on NDB tables that referenced
subject table didn't see the results of operation which caused invocation
of those triggers. In other words AFTER trigger invoked as result of update
(or deletion) of particular row saw version of this row before update (or
deletion).

The problem occured because NDB handler in those cases postponed actual
update/delete operations to be able to perform them later as one batch.

This fix solves the problem by disabling this optimization for particular
operation if subject table has AFTER trigger for this operation defined.
To achieve this we introduce two new flags for handler::extra() method:
HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH.
These are called if there exists AFTER DELETE/UPDATE triggers during a
statement that potentially can generate calls to delete_row()/update_row().
This includes multi_delete/multi_update statements as well as insert statements
that do delete/update as part of an ON DUPLICATE statement.


include/my_base.h:
  Added HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of delete/update is not possible.
mysql-test/r/ndb_trigger.result:
  Bug   UPDATE with subquery and triggers failing with cluster tables
  ---
  Added new test cases
mysql-test/t/ndb_trigger.test:
  Bug   UPDATE with subquery and triggers failing with cluster tables
  ---
  Added new test cases
sql/ha_ndbcluster.cc:
  Bug   UPDATE with subquery and triggers failing with cluster tables: Use HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of delete/update is not possible
sql/ha_ndbcluster.h:
  Bug   UPDATE with subquery and triggers failing with cluster tables: Added member variables for handling of HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of delete/update is not possible
sql/mysql_priv.h:
  Added new method prepare_triggers_for_insert_stmt to check if batching of delete/update must be disallowed.
sql/sql_delete.cc:
  Use HA_EXTRA_DELETE_CANNOT_BATCH to inform handler when batching of delete is not possible
sql/sql_insert.cc:
  Added method prepare_triggers_for_insert_stmt to check if batching of delete/update must be dissallowed.
  Use HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler
   when batching of delete/update is not possible
sql/sql_load.cc:
  Call prepare_triggers_for_insert_stmt to check if batching of delete/update must be dissallowed and
  mark fields used by triggers for the insert statement.
sql/sql_trigger.h:
  Added has_triggers to support what particular triggers exist on a table.
sql/sql_update.cc:
  Use HA_EXTRA_UPDATE_CANNOT_BATCH to inform handler when batching of update is not possible
2007-04-04 12:50:39 +02:00
unknown
89aa5548ce Merge magare.gmz:/home/kgeorge/mysql/work/B27513-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27513-5.0-opt
2007-04-04 13:38:57 +03:00
unknown
dbd125fd90 BUG 27513: fixed left-over sql mode from a test case. 2007-04-04 13:38:19 +03:00
unknown
1895cdb34d Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg04/50


sql/item_func.cc:
  Auto merged
2007-04-04 11:06:48 +02:00
unknown
e079dbd7ec Only check for warnings produced by mysqltest if --check-testcases 2007-04-04 10:59:00 +02:00
unknown
7603ed9f27 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27513-5.0-opt
2007-04-04 11:52:53 +03:00
unknown
201a343a71 Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt


mysql-test/r/order_by.result:
  Manual merge
mysql-test/t/order_by.test:
  Manual merge
2007-04-03 22:24:57 -07:00
unknown
e488e6f23a Improved coverage for the code added to fix bug 27532. 2007-04-03 19:45:37 -07:00
unknown
da037917b2 Fix after manual merge 2007-04-03 17:09:41 -07:00
unknown
5fb8970129 Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt


sql/item_cmpfunc.cc:
  Auto merged
mysql-test/r/order_by.result:
  Manual merge
mysql-test/t/order_by.test:
  Manual merge
sql/item_cmpfunc.h:
  Manual merge
2007-04-03 16:11:27 -07:00
unknown
0ee34b1ca2 Fixed bug : wrong results with ORDER/GROUP BY queries containing
IN/BETWEEN predicates in sorting expressions.
Wrong results may occur when the select list contains an expression
with IN/BETWEEN predicate that differs from a sorting expression by
an additional NOT only.
 
Added the method Item_func_opt_neg::eq to compare correctly expressions
containing [NOT] IN/BETWEEN.
The eq method inherited from the Item_func returns TRUE when comparing
'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.  


mysql-test/r/order_by.result:
  Added a test case for bug .
mysql-test/t/order_by.test:
  Added a test case for bug .
sql/item_cmpfunc.cc:
  Fixed bug .
  Added the method Item_func_opt_neg::eq to compare correctly expressions
  containing [NOT] IN/BETWEEN.
  The eq method inherited from the Item_func returns TRUE when comparing
  'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
sql/item_cmpfunc.h:
  Added the method Item_func_opt_neg::eq to compare correctly expressions
  containing [NOT] IN/BETWEEN.
  The eq method inherited from the Item_func returns TRUE when comparing
  'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
2007-04-03 14:32:16 -07:00
unknown
2043bdb6e3 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-04-03 18:59:43 +02:00
unknown
289a12836d Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-RPMs


support-files/mysql.spec.sh:
  don't call mtr explicitly
2007-04-03 18:16:42 +02:00
unknown
8845cbb8b6 no Max rpms anymore, but a debug binary
support-files/mysql.spec.sh:
  remove Max rpms and add a debug server
2007-04-03 18:04:24 +02:00
unknown
7bf304a6bd Bug : test case added to make sure this
crash bug doesn't reappear.


mysql-test/r/errors.result:
  Bug : test case
mysql-test/t/errors.test:
  Bug : test case
2007-04-03 18:00:57 +03:00
unknown
fda365101f Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb


sql/ha_ndbcluster.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
2007-04-03 14:00:38 +02:00
unknown
bceecfa820 Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-marvel


client/mysql.cc:
  Auto merged
heap/hp_write.c:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-04-03 13:55:20 +02:00
unknown
980edea1e3 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1-main


heap/hp_write.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
2007-04-03 14:25:36 +03:00
unknown
7e08016a91 Fix for BUG#27337: Privileges are not properly restored.
The problem was that THD::db_access variable was not restored after
database switch in stored-routine-execution code.

The fix is to restore THD::db_access in this case.

Unfortunately, this fix requires additional changes,
because in prepare_schema_table(), called on the parsing stage, we checked
privileges. That was wrong according to our design, but this flaw haven't
struck so far, because it was masked. All privilege checkings must be
done on the execution stage in order to be compatible with prepared statements
and stored routines. So, this patch also contains patch for
prepare_schema_table(), which moves the checkings to the execution phase.


mysql-test/r/grant.result:
  Updated result file.
mysql-test/t/grant.test:
  Added test case for BUG#27337.
sql/mysql_priv.h:
  Added function declaration.
sql/sql_db.cc:
  Fix for BUG#27337 -- set THD::db_access even if we're called
  from stored-routine-execution code.
sql/sql_parse.cc:
  Split prepare_schema_table() into two functions:
    - prepare_schema_table(), which is called from the parser (parsing stage);
    - check_show_access(), which is called on the execution stage.
sql/sql_show.cc:
  Ignore schema_select_lex member if its table is NULL.
2007-04-03 15:11:34 +04:00
unknown
5203ea6ccb BUG#18676 when cluster storage engine is down, misleading error message on create table with 4009.
mysql-test/r/ndb_autodiscover.result:
  changes ndbd error code to mysqld error code when no cluster connection
sql/ha_ndbcluster.cc:
  map 4009 error code to mysql not connected error
sql/handler.cc:
  define return codes to ha_table_exists_in_engine to something useful
    NOTE: in 5.1 this should call a handlerton method, not horrible ifdef ndb stuff
sql/sql_table.cc:
  clearly define what happens on create table if exits/not exists/not connected to engine
2007-04-03 18:44:29 +08:00
unknown
e95357d72f Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG25729/mysql-5.0-engines


sql/item_func.cc:
  Auto merged
2007-04-03 12:11:51 +05:00
unknown
57986e7377 Look for "testname.warnings" file produced by mysqltest, could find
problems like misspelled -- commands
2007-04-02 22:58:25 +02:00
unknown
91ab5b4f25 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  recycle.(none):/src/bug23491_ii/my50-bug23491_ii
2007-04-02 16:25:06 -04:00
unknown
c457e2b88b Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-04-02 22:23:05 +02:00
unknown
f7417a299e Minor test cleanup.
mysql-test/t/mysqldump.test:
  Fix for failing Windows test.
2007-04-02 16:21:12 -04:00
unknown
29fe12509c Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime


sql/item_func.cc:
  Auto merged
2007-04-02 22:06:15 +04:00
unknown
7775800620 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-04-02 18:28:42 +02:00
unknown
64c7c89ac0 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb


sql/ha_ndbcluster.cc:
  Auto merged
2007-04-02 18:22:33 +02:00
unknown
f9315b16b1 BUG#27560: Memory usage of mysqld grows while doing nothing
The query-cache watch thread was continually allocating new thread entries on the
THD MEM_ROOT, not freed until server exit.
  
Fixed by using a simple array, auto-expanded as necessary.


sql/ha_ndbcluster.cc:
  Use a fixed array (auto-expanded as necessary) for temporary copy of open shares,
  don't keep pushing list entries on the THD mem root.
2007-04-02 18:21:05 +02:00
unknown
3c763afc9c BUG#25729 - boolean full text search is confused by NULLs produced by
LEFT JOIN
Fixed that in certain situations MATCH ... AGAINST returns false hits
for NULLs produced by LEFT JOIN when there is no fulltext index
available.


mysql-test/r/fulltext_left_join.result:
  A test case for BUG#25729.
mysql-test/t/fulltext_left_join.test:
  A test case for BUG#25729.
sql/item_func.cc:
  concat_ws(NULL) returns empty string instead of NULL. There is not much
  sense to calculate relevance for empty strings, thus return 0 immediately
  if we got NULL or empty string from concat_ws.
sql/item_func.h:
  Item_func_match::concat renamed to concat_ws.
2007-04-02 17:26:39 +05:00
unknown
01d3209e01 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
2007-04-02 14:02:39 +02:00
unknown
8033d64e13 Bug#21611 Slave can't connect when master-ssl-cipher specified
- Change check for return value of 'SSL_CTX_set_cipher_list'
   in order to handle 0 as error setting cipher.
 - Thanks to Dan Lukes for finding the problem!


mysql-test/r/openssl_1.result:
  Update result
mysql-test/t/openssl_1.test:
  Add test for setting ssl-cipher to be used
vio/viosslfactories.c:
  Change error handling of SSL_CTX_set_cipher_list to
  detect 0 as an error
2007-04-02 13:12:59 +02:00
unknown
d03c7d2d28 Bug#27069 set with identical elements are created
added the check for unique elements count in SET


mysql-test/r/type_set.result:
  test result
mysql-test/t/type_set.test:
  test case
sql/field.cc:
  removed the check for elements count in SET
sql/sql_table.cc:
  added the check for unique elements count in SET
2007-04-02 15:01:19 +05:00
unknown
4cccc2f5b2 Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-04-02 10:52:47 +02:00
unknown
3378a48698 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/create.result:
  Auto merged
mysql-test/r/type_datetime.result:
  Auto merged
sql/field.h:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/r/gis.result:
  SCCS merged
mysql-test/t/gis.test:
  SCCS merged
2007-04-02 10:50:39 +02:00
unknown
96d879cb4b Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-04-02 10:48:11 +02:00
unknown
44d4940fcc Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint


myisam/mi_open.c:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/create.result:
  SCCS merged
mysql-test/t/create.test:
  SCCS merged
2007-04-02 10:42:08 +02:00
unknown
0bb2f43d2e Cset exclude: tsmith@siva.hindu.god|ChangeSet|20070328212513|13373
myisam/mi_open.c:
  Exclude
mysql-test/r/create.result:
  Exclude
mysql-test/t/create.test:
  Exclude
sql/table.cc:
  Exclude
2007-04-02 10:39:23 +02:00
unknown
5bf24b2b86 Fix spelling error 2007-04-02 10:17:29 +02:00
unknown
fde587ebec Bug#27049 Race condition in test mysqlbinlog.test
Remove the setting of --local-load parameter for mysqlbinlog and leave that to the testcases
to decide what params to use.


mysql-test/mysql-test-run.pl:
  Remove the setting of --local-load parameter for mysqlbinlog and leave that to the testcases
  to decide what params to use.
2007-04-02 10:14:45 +02:00
unknown
f04a09f0dc Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb


ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
  Auto merged
ndb/src/mgmsrv/InitConfigFileParser.cpp:
  Auto merged
2007-04-02 09:45:58 +02:00
unknown
27a116aa95 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-marvel
into  janus.mylan:/usr/home/serg/Abk/mysql-5.0


heap/hp_write.c:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
2007-04-02 09:21:19 +02:00
unknown
d71a221d24 ndb - bug#27581
make sure not to leave partially initialized pagerage-records


ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
  make sure not to leave partially initialized pagerage-records
2007-04-02 09:07:15 +02:00
unknown
b84e64f7df ndb - fix bug in my.cnf config handling
put64 for 64-bit variables


ndb/src/mgmsrv/InitConfigFileParser.cpp:
  put64
2007-04-02 08:36:00 +02:00
unknown
f249185b6e Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt


sql/sql_select.cc:
  Auto merged
2007-04-02 03:56:39 +02:00
unknown
c3bdec10a3 Merge mysql.com:/nfsdisk1/lars/MERGE/mysql-4.1-merge
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
2007-04-01 01:48:21 +02:00
unknown
ad23e528c2 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
2007-04-01 01:46:38 +02:00
unknown
407389bae4 Add correct replace 2007-03-31 17:18:03 +02:00
unknown
ff979b76ca Bug#27049 Race condition in test mysqlbinlog.test
- Add --local-load option to avoidthat the load data file requested
   by mysqlbinlog end up in local var/tmp dir and not in system global
   tmpdir


mysql-test/t/mysqlbinlog.test:
  Add --local-load option to avoidthat the load data file requested
  by mysqlbinlog end up in local var/tmp dir and not in system global
  tmpdir
2007-03-31 15:07:48 +02:00