Commit graph

37468 commits

Author SHA1 Message Date
unknown
aad42dc7f4 More fixes and cleanups for bug#28585:
- make the 'dist-hook' from top-level Makefile work again.
  - we can find my_print_defaults from --basedir by parsing command
    line arguments prior to running my_print_defaults.
  - take advantage of additional command line parsing and allow the
    --no-defaults etc arguments to work anywhere rather than having
    to be the first argument.
  - find SQL files either from binary archive or source install.
  - consolidate and tidy code and error messages.


scripts/mysql_install_db.sh:
  Consolidate error messages.
2007-07-27 15:14:21 +02:00
unknown
0936976e8d A fix and a test case for Bug#24918 drop table and lock / inconsistent
between perm and temp tables. Review fixes.

The original bug report complains that if we locked a temporary table
with LOCK TABLES statement, we would not leave LOCK TABLES mode
when this temporary table is dropped.

Additionally, the bug was escalated when it was discovered than
when a temporary transactional table that was previously
locked with LOCK TABLES statement was dropped, futher actions with
this table, such as UNLOCK TABLES, would lead to a crash.

The problem originates from incomplete support of transactional temporary
tables. When we added calls to handler::store_lock()/handler::external_lock()
to operations that work with such tables, we only covered the normal
server code flow and did not cover LOCK TABLES mode. 
In LOCK TABLES mode, ::external_lock(LOCK) would sometimes be called without
matching ::external_lock(UNLOCK), e.g. when a transactional temporary table
was dropped. Additionally, this table would be left in the list of LOCKed 
TABLES.

The patch aims to address this inadequacy. Now, whenever an instance
of 'handler' is destroyed, we assert that it was priorly
external_lock(UNLOCK)-ed. All the places that violate this assert
were fixed.

This patch introduces no changes in behavior -- the discrepancy in
behavior will be fixed when we start calling ::store_lock()/::external_lock()
for all tables, regardless whether they are transactional or not, 
temporary or not.


mysql-test/r/innodb_mysql.result:
  Update test results (Bug#24918)
mysql-test/t/innodb_mysql.test:
  Add a test case for Bug#24918
sql/handler.h:
  Make handler::external_lock() a protected method. Backport from 5.1 its
  public wrapper handler::ha_external_lock().
  Assert that the handler is not closed if it is still locked.
sql/lock.cc:
  In mysql_lock_tables only call lock_external() for the list of tables that
  we called store_lock() for. 
  E.g. get_lock_data() does not add non-transactional temporary tables to the
  lock list, so lock_external() should not be called for them.
  
  Use handler::ha_external_lock() instead of handler::external_lock().
  
  Add comments for mysql_lock_remove(), parameterize one strange
  side effect that it has. At least in one place where mysql_lock_remove
  is used, this side effect is not desired (DROP TABLE). The parameter
  will be dropped in 5.1, along with the side effect.
sql/mysql_priv.h:
  Update declaration of mysql_lock_remove().
sql/opt_range.cc:
  Deploy handler::ha_external_lock() instead of handler::external_lock()
sql/sql_base.cc:
  When closing a temporary table, remove the table from the list of LOCKed 
  TABLES of this thread, in case it's there. 
  It's there if it is a transactional temporary table.
  Use a new declaration of mysql_lock_remove().
sql/sql_class.h:
  Extend the comment for THD::temporary_tables.
sql/sql_table.cc:
  Deploy handler::ha_external_lock() instead of handler::external_lock()
2007-07-27 16:37:29 +04:00
unknown
766725c502 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
2007-07-27 14:36:43 +05:00
unknown
e92ce5d56c BUG#29957 - alter_table.test fails
INSERT/DELETE/UPDATE followed by ALTER TABLE within LOCK TABLES
may cause table corruption on Windows.

That happens because ALTER TABLE writes outdated shared state
info into index file.

Fixed by removing obsolete workaround.

Affects MyISAM tables on Windows only.


myisam/mi_extra.c:
  On windows when mi_extra(HA_EXTRA_PREPARE_FOR_DELETE) is called,
  we release external lock and close index file. If we're in LOCK
  TABLES, MyISAM state info doesn't get updated until UNLOCK TABLES.
  
  That means when we release external lock and we're in LOCK TABLES,
  we may write outdated state info.
  
  As SQL layer closes all table instances, we do not need this
  workaround anymore.
mysql-test/r/alter_table.result:
  A test case for BUG#29957.
mysql-test/t/alter_table.test:
  A test case for BUG#29957.
2007-07-27 14:30:25 +05:00
unknown
1a6ced2cfa Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/psergey/mysql-5.0-bdb-fix
2007-07-26 20:54:28 +04:00
unknown
9206f68477 BUG#28591: make the fix work for BDB tables too:
- make ha_berkeley::cmp_ref() take into account that auto-generated PKs 
   are stored in LSB-first order. 
 - Remove the temporary code that made the bugfix work for innodb only 


mysql-test/r/bdb.result:
  Adjust test-results.
sql/ha_berkeley.cc:
  BUG#28591: make the fix work for BDB tables too:
   - make ha_berkeley::cmp_ref() take into account that auto-generated PKs 
     are stored in LSB-first order.
sql/sql_select.cc:
  BUG#28591: Remove "innodb only" clause as the fix now works for BDB too
sql/table.cc:
  BUG#28591: Remove "innodb only" clause as the fix now works for BDB too
2007-07-26 20:52:53 +04:00
unknown
eb79904dcd Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-4.1
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1
2007-07-26 18:32:26 +02:00
unknown
e1feaa848c Merge debian.(none):/M50/rowlock-5.0
into  debian.(none):/M50/push-5.0
2007-07-26 18:26:04 +02:00
unknown
d8c8c3437f Remove the "row_lock" suite from the sources.
For more information, see WL#3866 and the bugs numbered 28685 and 20390.


BitKeeper/deleted/.del-readme.txt:
  Delete: mysql-test/suite/row_lock/readme.txt
BitKeeper/deleted/.del-summary_of_sel_test.txt:
  Delete: mysql-test/suite/row_lock/summary_of_sel_test.txt
BitKeeper/deleted/.del-innodb_row_lock_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_1.result
BitKeeper/deleted/.del-innodb_row_lock_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_2.result
BitKeeper/deleted/.del-innodb_row_lock_3.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_3.result
BitKeeper/deleted/.del-innodb_row_lock_4.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_4.result
BitKeeper/deleted/.del-innodb_row_lock_5.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_5.result
BitKeeper/deleted/.del-innodb_row_lock_big_tab.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_big_tab.result
BitKeeper/deleted/.del-innodb_row_lock_big_tab_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_1.result
BitKeeper/deleted/.del-innodb_row_lock_big_tab_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_big_tab_2.result
BitKeeper/deleted/.del-innodb_row_lock_trig_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_trig_1.result
BitKeeper/deleted/.del-innodb_row_lock_trig_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_trig_2.result
BitKeeper/deleted/.del-innodb_row_lock_view_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_1.result
BitKeeper/deleted/.del-row_lock.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock.inc
BitKeeper/deleted/.del-row_lock_big_tab.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_big_tab.inc
BitKeeper/deleted/.del-row_lock_big_tab_1.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_big_tab_1.inc
BitKeeper/deleted/.del-row_lock_big_tab_2.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_big_tab_2.inc
BitKeeper/deleted/.del-row_lock_trig.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_trig.inc
BitKeeper/deleted/.del-row_lock_view.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_view.inc
BitKeeper/deleted/.del-row_lock_view_mix.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_view_mix.inc
BitKeeper/deleted/.del-row_lock_view_storedp.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_view_storedp.inc
BitKeeper/deleted/.del-row_lock_view_trig.inc:
  Delete: mysql-test/suite/row_lock/include/row_lock_view_trig.inc
BitKeeper/deleted/.del-innodb_row_lock_view_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_2.result
BitKeeper/deleted/.del-innodb_row_lock_view_mix_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_1.result
BitKeeper/deleted/.del-innodb_row_lock_view_mix_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_mix_2.result
BitKeeper/deleted/.del-innodb_row_lock_view_storedp_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_1.result
BitKeeper/deleted/.del-innodb_row_lock_view_storedp_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_storedp_2.result
BitKeeper/deleted/.del-innodb_row_lock_view_trig_1.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_1.result
BitKeeper/deleted/.del-innodb_row_lock_view_trig_2.result:
  Delete: mysql-test/suite/row_lock/r/innodb_row_lock_view_trig_2.result
BitKeeper/deleted/.del-ndb_row_lock_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_1.result
BitKeeper/deleted/.del-ndb_row_lock_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_2.result
BitKeeper/deleted/.del-ndb_row_lock_3.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_3.result
BitKeeper/deleted/.del-ndb_row_lock_4.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_4.result
BitKeeper/deleted/.del-ndb_row_lock_5.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_5.result
BitKeeper/deleted/.del-ndb_row_lock_big_tab.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_big_tab.result
BitKeeper/deleted/.del-ndb_row_lock_big_tab_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_1.result
BitKeeper/deleted/.del-ndb_row_lock_big_tab_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_big_tab_2.result
BitKeeper/deleted/.del-ndb_row_lock_trig_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_trig_1.result
BitKeeper/deleted/.del-ndb_row_lock_trig_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_trig_2.result
BitKeeper/deleted/.del-ndb_row_lock_view_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_1.result
BitKeeper/deleted/.del-ndb_row_lock_view_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_2.result
BitKeeper/deleted/.del-innodb_row_lock_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_1.test
BitKeeper/deleted/.del-innodb_row_lock_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_2.test
BitKeeper/deleted/.del-innodb_row_lock_3.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_3.test
BitKeeper/deleted/.del-innodb_row_lock_4.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_4.test
BitKeeper/deleted/.del-innodb_row_lock_5.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_5.test
BitKeeper/deleted/.del-innodb_row_lock_big_tab.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_big_tab.test
BitKeeper/deleted/.del-innodb_row_lock_big_tab_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_1.test
BitKeeper/deleted/.del-innodb_row_lock_big_tab_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_big_tab_2.test
BitKeeper/deleted/.del-innodb_row_lock_trig_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_trig_1.test
BitKeeper/deleted/.del-innodb_row_lock_trig_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_trig_2.test
BitKeeper/deleted/.del-innodb_row_lock_view_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_1.test
BitKeeper/deleted/.del-innodb_row_lock_view_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_2.test
BitKeeper/deleted/.del-innodb_row_lock_view_mix_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_1.test
BitKeeper/deleted/.del-ndb_row_lock_view_mix_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_1.result
BitKeeper/deleted/.del-ndb_row_lock_view_mix_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_mix_2.result
BitKeeper/deleted/.del-ndb_row_lock_view_storedp_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_1.result
BitKeeper/deleted/.del-ndb_row_lock_view_storedp_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_storedp_2.result
BitKeeper/deleted/.del-ndb_row_lock_view_trig_1.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_1.result
BitKeeper/deleted/.del-ndb_row_lock_view_trig_2.result:
  Delete: mysql-test/suite/row_lock/r/ndb_row_lock_view_trig_2.result
BitKeeper/deleted/.del-innodb_row_lock_view_mix_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_mix_2.test
BitKeeper/deleted/.del-innodb_row_lock_view_storedp_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_1.test
BitKeeper/deleted/.del-innodb_row_lock_view_storedp_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_storedp_2.test
BitKeeper/deleted/.del-innodb_row_lock_view_trig_1.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_1.test
BitKeeper/deleted/.del-innodb_row_lock_view_trig_2.test:
  Delete: mysql-test/suite/row_lock/t/innodb_row_lock_view_trig_2.test
BitKeeper/deleted/.del-ndb_row_lock_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_1.test
BitKeeper/deleted/.del-ndb_row_lock_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_2.test
BitKeeper/deleted/.del-ndb_row_lock_3.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_3.test
BitKeeper/deleted/.del-ndb_row_lock_4.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_4.test
BitKeeper/deleted/.del-ndb_row_lock_5.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_5.test
BitKeeper/deleted/.del-ndb_row_lock_big_tab.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_big_tab.test
BitKeeper/deleted/.del-ndb_row_lock_big_tab_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_1.test
BitKeeper/deleted/.del-ndb_row_lock_big_tab_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_big_tab_2.test
BitKeeper/deleted/.del-ndb_row_lock_trig_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_trig_1.test
BitKeeper/deleted/.del-ndb_row_lock_trig_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_trig_2.test
BitKeeper/deleted/.del-ndb_row_lock_view_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_1.test
BitKeeper/deleted/.del-ndb_row_lock_view_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_2.test
BitKeeper/deleted/.del-ndb_row_lock_view_mix_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_1.test
BitKeeper/deleted/.del-ndb_row_lock_view_mix_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_mix_2.test
BitKeeper/deleted/.del-ndb_row_lock_view_storedp_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_1.test
BitKeeper/deleted/.del-ndb_row_lock_view_storedp_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_storedp_2.test
BitKeeper/deleted/.del-ndb_row_lock_view_trig_1.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_1.test
BitKeeper/deleted/.del-ndb_row_lock_view_trig_2.test:
  Delete: mysql-test/suite/row_lock/t/ndb_row_lock_view_trig_2.test
Makefile.am:
  Remove the "row_lock" suite from the "test-bt" target.
  
  Also, a formatting change: empty line for better readability.
2007-07-26 17:25:03 +02:00
unknown
b7eca8bc16 Merge xiphis.org:/anubis/antony/work/mysql-5.0-engines
into  xiphis.org:/anubis/antony/work/mysql-5.0-engines.merge
2007-07-26 07:56:37 -07:00
unknown
f2a91e55c8 Addendum to bug 29571: wait for INSERT DELAYED to finish on master 2007-07-26 16:59:21 +03:00
unknown
bd0b7c1c14 Merge debian.(none):/M41/push-4.1
into  debian.(none):/M50/push-5.0
2007-07-26 15:44:58 +02:00
unknown
734ebd28f8 Merge debian.(none):/M50/bug16635-5.0
into  debian.(none):/M50/push-5.0
2007-07-26 15:41:57 +02:00
unknown
690f0df5a2 Merge debian.(none):/M50/mysql-5.0
into  debian.(none):/M50/push-5.0
2007-07-26 15:37:45 +02:00
unknown
947e42af55 Merge debian.(none):/M41/bug16635-4.1
into  debian.(none):/M41/push-4.1
2007-07-26 15:32:32 +02:00
unknown
cc93da0a06 Merge debian.(none):/M41/bug16635-4.1
into  debian.(none):/M50/bug16635-5.0


BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
  Auto merged
2007-07-26 15:32:31 +02:00
unknown
8f5b02541e mysql_install_db.sh:
Fix error in previous change, correct --language argument.


scripts/mysql_install_db.sh:
  Fix error in previous change, correct --language argument.
2007-07-26 14:31:11 +02:00
unknown
82bbaaf6b1 Apply a few more cleanups to improve the robustness of mysql_install_db
scripts/mysql_install_db.sh:
  Put back variable initialisation for those which could be passed
  in via the environment and confuse the script.
2007-07-26 14:27:36 +02:00
unknown
17136906c6 Clean up the mysql_install_db script to ensure that a sane environment is
available and reduce the chance of failure.  This should fix bug#28585
which is caused by the script being quite random in how it finds files it
requires and not giving very good feedback to the user about what went
wrong.

Also update make_binary_distribution so that it provides the correct path
to the required SQL scripts when generating mysql_install_db.  The script
only previously worked because of the permissive behaviour which looked
around the current working directory before the "correct" location.  This
could lead to severe problems if the user happened to run the script from
a location which contained older or even broken copies of the SQL scripts.

We now require either a complete binary release (and the mysql_install_db
script ran from inside the extracted archive), or an installed compiled
tree, as this is the only way we can be sure everything that we need is
available and ready to run.

While working on this fix, also clean up the mysql_install_db script a lot
to make it simpler, easier to read, and hopefully less prone to bugs in
the future.


scripts/make_binary_distribution.sh:
  SQL files live in ./share not ./support-files in binary distribution.
scripts/mysql_install_db.sh:
  Use a consistent shell indentation style.
2007-07-26 12:57:46 +02:00
unknown
00d694a900 Raise the 64 character limit for path names in the error messages
to 150 or 107 characters for those messages which are generated
by the embedded server during release builds.

This fixes bug#16635:
   Error messages wrong: absolute path names, "%s" format code

See the bug report or the changelog for "sql/share/english/errmsg.txt"
for instructions how to do that with other languages, 
even at the customer site, and for the restrictions to keep.


sql/share/english/errmsg.txt:
  The embedded server uses absolute path names in its error messages,
  in the release build environment these exceed the 64 character limit
  which the format strings for the error messages impose (bug#16635).
  
  But when the messages are output, the server does the "printf()" 
  internally in a 256 character buffer; the constant text and the
  expanded variables (strings, error number) must fit into this.
  
  (If the buffer would overflow, a format specification will not be
  expanded but just copied with its code, and the message output
  will just contain '%s' or '%d' where a value is expected.)
  
  So the string lengths are increased to 150 characters in those messages
  which are issued by the embedded server during release tests
  and contain 1 (one) path name,
  but only to 107 in the "rename" message which contains 2 (two).
  
  This solves bug#16635 for the release builds.
  
  For other languages used by OEM customers, similar fixes may be needed,
  but we cannot test them.
  
  These fixes can be done even in a binary installation at the customer site
  by following these steps:
     cd <<install-root>>/share
     $EDITOR <<lang>>/errmsg.txt
     ../../bin/comp_err -C./charsets/ <<lang>>/errmsg.txt <<lang>>/errmsg.sys
  and then restarting the server.
2007-07-26 12:52:13 +02:00
unknown
935ce76278 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29571-5.0-opt


sql/sql_insert.cc:
  Auto merged
2007-07-26 11:32:27 +03:00
unknown
5babac539d Bug #29571: INSERT DELAYED IGNORE written to binary log on
the master but on the slave

MySQL can decide to "downgrade" a INSERT DELAYED statement
to normal insert in certain situations.
One such situation is when the slave is replaying a 
replication feed.
However INSERT DELAYED is logged even if there're no updates
whereas the NORMAL INSERT is not logged in such cases.

Fixed by always logging a "downgraded" INSERT DELAYED: even 
if there were no updates.


mysql-test/r/rpl_insert_delayed.result:
  Bug #29571: test case
mysql-test/t/rpl_insert_delayed.test:
  Bug #29571: test case
sql/sql_insert.cc:
  Bug #29571: log INSERT DELAYED even if it was 
  "downgraded" to INSERT (and there were no updates)
2007-07-26 11:31:10 +03:00
unknown
85af6ba9e3 fix pushbuild failures
sql/ha_federated.cc:
  remote_error_number is set to -1 when an error was already reported
  with my_error(). ER(-1) will also cause a crash on 64bit arch and only
  worked on 32bit arch by luck
2007-07-25 17:22:52 -07:00
unknown
2df3b7b0ea Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt


mysql-test/t/create.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/create.result:
  Merge with 5.0 (main).
2007-07-26 03:33:43 +05:00
unknown
37b6be0806 tmp_table_size is not about user-created temporary tables, only
internal ones (like those of GROUP BY): fixing the --help text.


sql/mysqld.cc:
  tmp_table_size is not about user-created temporary tables, only
  internal ones (like those of GROUP BY)
2007-07-25 22:29:53 +02:00
unknown
b42247bca8 Bug#25679
"Federated Denial of Service"
  Federated storage engine used to attempt to open connections within
  the ::create() and ::open() methods which are invoked while LOCK_open
  mutex is being held by mysqld. As a result, no other client sessions
  can open tables while Federated is attempting to open a connection.
  Long DNS lookup times would stall mysqld's operation and a rogue
  connection string which connects to a remote server which simply
  stalls during handshake can stall mysqld for a much longer period of
  time.
  This patch moves the opening of the connection much later, when the
  federated actually issues queries, by which time the LOCK_open mutex is
  no longer being held.


mysql-test/r/federated.result:
  change of test/results due to patch for bug25679
mysql-test/t/federated.test:
  change of test/results due to patch for bug25679
sql/ha_federated.cc:
  bug25679
    remove function check_foreign_fata_source()
    ha_federated::open() no longer opens the federated connection.
    ha_federated::create() no longer opens and tests connection.
    ha_federated::real_connect() opens connection and tests presence of table.
    ha_federated::real_query() sends query, calling real_connect() if neccessary.
sql/ha_federated.h:
  bug25679
    new methods real_query() and real_connect()
2007-07-25 12:23:24 -07:00
unknown
0784d92414 Merge gleb.loc:/home/uchum/work/bk/4.1-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-26 00:04:55 +05:00
unknown
a34879ebd2 Bug#24732 Executables do not include Vista manifests
- Sign executables with MySQL AB security certificate.


BitKeeper/etc/ignore:
  Bug#24732 Executables do not include Vista manifests
  - Ignore security catalog descriptions
CMakeLists.txt:
  Bug#24732 Executables do not include Vista manifests
  - Search for additional tools necessary to embed, catalog and sign
  targets.
win/README:
  Bug#24732 Executables do not include Vista manifests
  - Add internal only note to EMBED_MANIFESTS option.
win/create_manifest.js:
  Bug#24732 Executables do not include Vista manifests
  - Added publicKeyToken attribute to manifest.
win/mysql_manifest.cmake:
  Bug#24732 Executables do not include Vista manifests
  - Add additional commands to create security catalog and sign 
  targets.
  - Add parameters to add appropiate hash attribute to manifest
  and create security content description of the security catalog.
2007-07-25 13:18:12 -04:00
unknown
2612fc43b5 Patch inspired by BUG#10491: Server returns data as charset
binary SHOW CREATE TABLE or SELECT FROM I_S.

The problem is that mysqldump generates incorrect dump for a table
with non-ASCII column name if the mysqldump's character set is
ASCII.

The fix is to:
  1. Switch character_set_client for the mysqldump's connection
  to binary before issuing SHOW CREATE TABLE statement in order
  to avoid conversion.
  
  2. Dump switch character_set_client statements to UTF8 and back
  for CREATE TABLE statement.


client/mysqldump.c:
  1. Switch character_set_client for the mysqldump's connection
  to binary before issuing SHOW CREATE TABLE statement in order
  to avoid conversion.
  
  2. Dump switch character_set_client statements to UTF8 and back
  for CREATE TABLE statement.
mysql-test/r/mysqldump-max.result:
  Update result file.
mysql-test/r/mysqldump.result:
  Update result file.
mysql-test/r/openssl_1.result:
  Update result file.
mysql-test/r/show_check.result:
  Update result file.
mysql-test/t/show_check.test:
  Test case:
    - create a table with non-ASCII column name;
    - dump the database by mysqldump using ASCII character set;
    - drop the database;
    - load the dump;
    - check that the table has been re-created properly.
2007-07-25 19:46:50 +04:00
unknown
48e879f9ac Allow mysql.proc to have extra (unknown) fields.
This allows 5.0 to work with 5.1 databases.
2007-07-25 18:38:52 +04:00
unknown
cf81182cd0 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-29959
2007-07-25 07:57:47 -06:00
unknown
78207030bb Updated/fixed test and result files to 5.0.46
Note datadict files do not include wrong is_updatable wrong value 
     as a result of bug 30020.


mysql-test/suite/funcs_1/datadict/datadict_master.inc:
  Updated test file
mysql-test/suite/funcs_1/r/innodb__datadict.result:
  Updated test file
mysql-test/suite/funcs_1/r/innodb_func_view.result:
  Updated test file
mysql-test/suite/funcs_1/r/innodb_trig_0102.result:
  Updated test file
mysql-test/suite/funcs_1/r/innodb_trig_08.result:
  Updated test file
mysql-test/suite/funcs_1/r/innodb_trig_09.result:
  Updated test file
mysql-test/suite/funcs_1/r/innodb_views.result:
  Updated test file
mysql-test/suite/funcs_1/r/memory__datadict.result:
  Updated test file
mysql-test/suite/funcs_1/r/memory_func_view.result:
  Updated test file
mysql-test/suite/funcs_1/r/memory_trig_0102.result:
  Updated test file
mysql-test/suite/funcs_1/r/memory_trig_08.result:
  Updated test file
mysql-test/suite/funcs_1/r/memory_trig_09.result:
  Updated test file
mysql-test/suite/funcs_1/r/memory_views.result:
  Updated test file
mysql-test/suite/funcs_1/r/myisam__datadict.result:
  Updated test file
mysql-test/suite/funcs_1/r/myisam_func_view.result:
  Updated test file
mysql-test/suite/funcs_1/r/myisam_trig_0102.result:
  Updated test file
mysql-test/suite/funcs_1/r/myisam_trig_08.result:
  Updated test file
mysql-test/suite/funcs_1/r/myisam_trig_09.result:
  Updated test file
mysql-test/suite/funcs_1/r/myisam_views.result:
  Updated test file
mysql-test/suite/funcs_1/triggers/triggers_0102.inc:
  Updated test file
mysql-test/suite/funcs_1/views/func_view.inc:
  Updated test file
2007-07-24 21:31:25 -07:00
unknown
1370b325c6 Merge ramayana.hindu.god:/home/tsmith/m/bk/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/jul24/50


sql/sql_table.cc:
  Auto merged
2007-07-24 16:12:23 -06:00
unknown
607ab14cf7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
2007-07-24 22:57:26 +04:00
unknown
5415dcc337 fix compile on Windows for bug25714.c
---
fix compile on Windows for bug25714.c


tests/bug25714.c:
  fix compile on Windows
2007-07-24 10:50:28 -07:00
unknown
4ab0c0cf49 build bug25714 test app on Windows 2007-07-24 09:32:51 -07:00
unknown
c4d53e31b0 Bug#15130: CREATE .. SELECT was denied to use advantages of the SQL_BIG_RESULT.
When the SQL_BIG_RESULT flag is specified SELECT should store items from the
select list in the filesort data and use them when sending to a client.
The get_addon_fields function is responsible for creating necessary structures
for that. But this function was allowed to do so only for SELECT and
INSERT .. SELECT queries. This makes the SQL_BIG_RESULT useless for
the CREATE .. SELECT queries.

Now the get_addon_fields allows storing select list items in the filesort
data for the CREATE .. SELECT queries.


mysql-test/t/create.test:
  Added a test case for the bug#15130: CREATE .. SELECT was denied to use
  advantages of the SQL_BIG_RESULT.
mysql-test/r/create.result:
  Added a test case for the bug#15130: CREATE .. SELECT was denied to use
  advantages of the SQL_BIG_RESULT.
sql/filesort.cc:
  Bug#15130: CREATE .. SELECT was denied to use advantages of the SQL_BIG_RESULT.
  Now the get_addon_fields allows storing select list items in the filesort
  data for the CREATE .. SELECT queries.
2007-07-24 18:15:44 +04:00
unknown
594d71a449 Merge xiphis.org:/anubis/antony/work/p2-bug25714.1
into  xiphis.org:/anubis/antony/work/p2-bug25714.1.merge-5.0
2007-07-23 23:57:50 -07:00
unknown
0f85ae9f2c Bug#25714
"getGeneratedKeys() does not work with FEDERATED table"
  mysql_insert() expected the storage engine to update the row data
  during the write_row() operation with the value of the new auto-
  increment field. The field must be updated when only one row has
  been inserted as mysql_insert() would ignore the thd->last_insert.
  This patch implements HA_STATUS_AUTO support in ha_federated::info()
  and ensures that ha_federated::write_row() does update the row's
  auto-increment value.
  The test case was written in C as the protocol's 'id' value is
  accessible through libmysqlclient and not via SQL statements.
  mysql-test-run.pl was extended to enable running the test binary.


mysql-test/mysql-test-run.pl:
  bug25714
    implement support to run C test for bug25714
sql/ha_federated.cc:
  bug25714
    The storage engine instance property auto_increment_value was not
    being set.
    mysql_insert() requires that the storage engine updates the row with
    the auto-increment value, especially when only inserting one row.
    Implement support for ha_federated::info(HA_STATUS_AUTO)
tests/Makefile.am:
  bug25714
    build C test for bug
mysql-test/include/have_bug25714.inc:
  New BitKeeper file ``mysql-test/include/have_bug25714.inc''
mysql-test/r/federated_bug_25714.result:
  New BitKeeper file ``mysql-test/r/federated_bug_25714.result''
mysql-test/r/have_bug25714.require:
  New BitKeeper file ``mysql-test/r/have_bug25714.require''
mysql-test/t/federated_bug_25714.test:
  New BitKeeper file ``mysql-test/t/federated_bug_25714.test''
tests/bug25714.c:
  New BitKeeper file ``tests/bug25714.c''
2007-07-23 23:35:43 -07:00
unknown
04fc8b71d6 Bug#29959 (Non-standard bison syntax in sql_yacc.yy)
In sql/sql_yacc.yy, use the %prec construct at the end of rule join_table


sql/sql_yacc.yy:
  In sql/sql_yacc.yy, use the %prec construct at the end of rule join_table
2007-07-23 16:23:35 -06:00
unknown
c29002a5b6 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29644-5.0-opt


sql/ha_innodb.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  5.0-opt merge
mysql-test/t/innodb_mysql.test:
  5.0-opt merge
2007-07-23 17:07:29 +03:00
unknown
f76d006ae4 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-07-22 23:07:59 -07:00
unknown
c38fa3f3ac table.cc, sql_select.cc:
Limit the fix for bug 28591 to InnoDB only


sql/sql_select.cc:
  Limit the fix for bug 28591 to InnoDB only
sql/table.cc:
  Limit the fix for bug 28591 to InnoDB only
2007-07-23 06:26:57 +03:00
unknown
d50caace5f Fixed bug #29611.
If a primary key is defined over column c of enum type then 
the EXPLAIN command for a look-up query of the form
  SELECT * FROM t WHERE c=0
said that the query was with an impossible where condition though the
query correctly returned non-empty result set when the table indeed 
contained rows with error empty strings for column c. 

This kind of misbehavior was due to a bug in the function 
Field_enum::store(longlong,bool) that erroneously returned 1 if
the the value to be stored was equal to 0. 
Note that the method 
Field_enum::store(const char *from,uint length,CHARSET_INFO *cs)
correctly returned 0 if a value of the error empty string 
was stored. 


mysql-test/r/type_enum.result:
  Added a test case for bug #29661.
mysql-test/t/type_enum.test:
  Added a test case for bug #29661.
sql/field.cc:
  Fixed bug #29611.
  If a primary key was defined over column c of enum type then 
  the EXPLAIN command for a look-up query of the form
    SELECT * FROM t WHERE c=0
  said that the query was with an impossible where condition though the
  query correctly returned non-empty result set when the table indeed 
  contained rows with error empty strings for column c. 
  
  This kind of misbehavior was due to a bug in the function 
  Field_enum::store(longlong,bool) that erroneously returned 1 if
  the the value to be stored was equal to 0. 
  Note that the method 
  Field_enum::store(const char *from,uint length,CHARSET_INFO *cs)
  correctly returned 0 if a value of the error empty string 
  was stored.
2007-07-22 18:26:16 -07:00
unknown
0a6543687c Merge chilla.local:/home/mydev/mysql-5.0-amain
into  chilla.local:/home/mydev/mysql-5.0-axmrg


sql/sql_table.cc:
  Auto merged
2007-07-22 19:08:25 +02:00
unknown
240bb90ef1 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28951-5.0-opt


mysql-test/t/innodb_mysql.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  merge of 5.0-opt
2007-07-22 19:23:29 +03:00
unknown
79073ea792 Merge bk@192.168.21.1:mysql-4.1-opt
into  mysql.com:/home/hf/work/29494/my41-29494
2007-07-22 18:16:11 +05:00
unknown
b29e13ab09 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/29494/my50-29494
2007-07-22 18:13:39 +05:00
unknown
eee081dae7 Merge mysql.com:/home/hf/work/29494/my41-29494
into  mysql.com:/home/hf/work/29494/my50-29494


sql-common/client.c:
  Auto merged
2007-07-22 14:03:18 +05:00
unknown
5f0036eb9f Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-07-21 15:46:02 -07:00