Commit graph

37777 commits

Author SHA1 Message Date
unknown
bccbd5c493 Bug#28587 SELECT is blocked by INSERT waiting on read lock, even with low_priority_updates
The problem is that a SELECT on one thread is blocked by INSERT ... ON
DUPLICATE KEY UPDATE on another thread even when low_priority_updates is
activated.

The solution is to possibly downgrade the lock type to the setting of
low_priority_updates if the INSERT cannot be concurrent.


sql/sql_insert.cc:
  Possibly downgrade lock type to the the setting of low_priority_updates if
  if the INSERT cannot be concurrent.
2007-08-30 16:11:53 -03: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
3a94acf4cb Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build
2007-08-30 00:07:21 +02:00
unknown
3d491888b2 server-tools/instance-manager/sql_state.c
server-tools/instance-manager/pack.c
server-tools/instance-manager/password.c
server-tools/instance-manager/net_serv.cc
  Deleted BitKeeper soft links not needed


BitKeeper/deleted/.del-net_serv.cc:
  Delete: server-tools/instance-manager/net_serv.cc
BitKeeper/deleted/.del-pack.c:
  Delete: server-tools/instance-manager/pack.c
BitKeeper/deleted/.del-password.c:
  Delete: server-tools/instance-manager/password.c
BitKeeper/deleted/.del-sql_state.c:
  Delete: server-tools/instance-manager/sql_state.c
2007-08-30 00:01:02 +02:00
unknown
1c1ea230da Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build


BitKeeper/deleted/.del-ha_blackhole.cc~727c69ef7846623a:
  Auto merged
2007-08-29 23:59:19 +02:00
unknown
f3b2c39879 libmysql_r/client_settings.h libmysqld/ha_blackhole.cc
Deleted BitKeeper soft links not needed


BitKeeper/deleted/.del-client_settings.h:
  Delete: libmysql_r/client_settings.h
BitKeeper/deleted/.del-ha_blackhole.cc:
  Delete: libmysqld/ha_blackhole.cc
2007-08-29 23:58:15 +02: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
a71bd64d23 CMakeLists.txt:
Link with library "udf_example" depends on, needed for nmake
libmysql.c:
  DBUG_ENTER need to be in declaration section


libmysql/libmysql.c:
  DBUG_ENTER need to be in declaration section
sql/CMakeLists.txt:
  Link with library "udf_example" depends on, needed for nmake
2007-08-29 22:29:07 +02:00
unknown
33f12b2f53 Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build


scripts/mysql_config.sh:
  Auto merged
2007-08-29 22:24:51 +02:00
unknown
16ce5d1173 mysql_config.sh:
Flag changed name in icc 10


scripts/mysql_config.sh:
  Flag changed name in icc 10
2007-08-29 22:24:11 +02:00
unknown
cc0750acee ndb - bug#29102 : use locked read even for blob parts
ndb/src/ndbapi/NdbBlob.cpp:
  race condition : s/committedRead/readTuple/ when reading parts since TUP commits tuples separately
2007-08-29 21:45:53 +03:00
unknown
3d65f86714 Backport of the keycache changes from http://lists.mysql.com/commits/31517 to make keycache 64-bit safe in 5.0. This is for bug #5731.
include/keycache.h:
  Backport of the keycache changes from http://lists.mysql.com/commits/31517 to make keycache 64-bit safe in 5.0.
mysys/mf_keycache.c:
  Backport of the keycache changes from http://lists.mysql.com/commits/31517 to make keycache 64-bit safe in 5.0.
2007-08-29 20:45:04 +04:00
unknown
0dce550a0d Limit join_buffer_size, sort_buffer_size and myisam_sort_buffer_size to 4GB on all platforms, since the related code in 5.0 is not 64-bit safe. This is patch is a part of work on bug #5731 and will be null-merged to 5.1.
sql/mysqld.cc:
  Limit join_buffer_size, sort_buffer_size and myisam_sort_buffer_size to 4GB on all platforms.
2007-08-29 20:33:44 +04: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
ac275fd5fa Backport of my_malloc() changes from 5.1 to make it 64-bit safe on Unix platforms.
This is required to allow key_buffer_size > 4 GB (bug #5731).


include/my_sys.h:
  Backport of my_malloc() changes from 5.1 to make it 64-bit safe on Unix platforms.
mysys/my_largepage.c:
  Backport of my_malloc() changes from 5.1 to make it 64-bit safe on Unix platforms.
mysys/my_malloc.c:
  Backport of my_malloc() changes from 5.1 to make it 64-bit safe on Unix platforms.
mysys/safemalloc.c:
  Backport of my_malloc() changes from 5.1 to make it 64-bit safe on Unix platforms.
2007-08-29 19:20:18 +04: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
3b7f80940d Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.(none):/data/msvensson/mysql/mysql-5.0-maint
2007-08-29 11:54:21 +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
4dac538a0b Merge ramayana.hindu.god:/home/tsmith/m/bk/maint/b27694/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/50
2007-08-28 13:24:31 -06: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
2bb6a44af1 Streamline "do_close_connection" and "do_send_quit"
Fix typo, "next_con" -> "con"


client/mysqltest.c:
  Reuse "find_connection_by_name" both from "do_close_connection" and "do_send_quit"
  Adjust alignment of comment
  Fix typo in "do_close_connection", it used the global variable "next_con" instead
  of local variable "con"
2007-08-28 16:47:05 +02: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
a85d1b2e5e build fix for aix and others
libmysql/libmysql.c:
  build fix: DBUG_ENTER can't be this late
2007-08-28 15:22:14 +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
fe4abfb2f7 Import yaSSL version 1.7.2
- Fix bug#27265
- Support for fixing bug#18441


extra/yassl/include/openssl/crypto.h:
  Import patch yassl.diff
extra/yassl/include/openssl/ssl.h:
  Import patch yassl.diff
extra/yassl/include/yassl_int.hpp:
  Import patch yassl.diff
extra/yassl/src/handshake.cpp:
  Import patch yassl.diff
extra/yassl/src/socket_wrapper.cpp:
  Import patch yassl.diff
extra/yassl/src/ssl.cpp:
  Import patch yassl.diff
extra/yassl/src/yassl_int.cpp:
  Import patch yassl.diff
extra/yassl/taocrypt/src/coding.cpp:
  Import patch yassl.diff
extra/yassl/taocrypt/src/crypto.cpp:
  Import patch yassl.diff
extra/yassl/include/openssl/des_old.h:
  Import patch yassl.diff
extra/yassl/include/openssl/evp.h:
  Import patch yassl.diff
extra/yassl/include/openssl/hmac.h:
  Import patch yassl.diff
extra/yassl/include/openssl/objects.h:
  Import patch yassl.diff
extra/yassl/include/openssl/sha.h:
  Import patch yassl.diff
extra/yassl/include/openssl/prefix_ssl.h:
  Update prefixes
2007-08-28 10:35:55 +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
7388ea3c56 adjust version number
configure.in:
  adjust version number after 5.0.48 clone-off
2007-08-27 11:38:32 +02:00
unknown
6fdcb4c7b3 Bug#29805 mysql_upgrade test fail if ~/.my.cnf contain a password
- "mysql" and "mysqlcheck" should not read defaults file


client/mysql_upgrade.c:
  Instruct "mysql" and "mysqlcheck" that is invoked by "mysql_upgrade" not
  to read defaults file, they should get all the parameters they need from
  mysql_upgrade(that read the default file)
2007-08-27 11:31:49 +02:00