Commit graph

61598 commits

Author SHA1 Message Date
Sergey Glukhov
b8132a8d94 Bug#41788 mysql_fetch_field returns org_table == table by a view
The problem is that Item_direct_view_ref which is inherited
from Item_ident updates orig_table_name and table_name with
the same values. The fix is introduction of new constructor
into Item_ident and up which updates orig_table_name and
table_name separately.


mysql-test/r/metadata.result:
  test case
mysql-test/t/metadata.test:
  test case
sql/item.cc:
  new constructor which updates
  orig_table_name and table_name
  separately.
sql/item.h:
  new constructor which updates
  orig_table_name and table_name
  separately.
sql/table.cc:
  used new constructor
2010-03-12 10:33:16 +04:00
Alexander Nozdrin
85f04306f9 Auto-merge from mysql-next-mr-bugfixing. 2010-03-09 13:00:28 +03:00
Alexander Nozdrin
786a83e2d4 Auto-merge from mysql-trunk-bugfixing. 2010-03-09 12:57:58 +03:00
Alexander Nozdrin
9670dba990 Auto-merge from mysql-next-mr. 2010-03-09 12:57:11 +03:00
Alexander Nozdrin
e5ec83bd34 Auto-merge from mysql-trunk. 2010-03-09 12:57:04 +03:00
Alexander Nozdrin
1cdc0b3a4c Auto-merge from mysql-trunk. 2010-03-09 12:53:13 +03:00
Alexander Nozdrin
28ca3bfdca Bug#51832 mysql_upgrade failing on performance_schema tables in mysql-trunk
Before this fix, client tools (mysql_upgrade, mysqlcheck, mysqldump)
would try to process performance schema tables, leading to failures.

The fix is to align FIRST_PERFORMANCE_SCHEMA_VERSION to 5.5.3,
which is the version number of mysql-trunk where the
performance schema is first available.
2010-03-09 12:52:11 +03:00
Georgi Kodinov
df8642b212 Bug #41057: mysql_update fails FATAL ERROR: Failed to create temporary file for defaults
mysql_upgrade was passing an non-initialized non-null tmpdir to create_temp_file() if no 
--tmpdir was specified. This prevents create_temp_file() from taking the system 
temporary file path and as a result mysql_upgrade was trying to open a file in a 
directory that it may not have write access to.
Fixed by making sure mysql_upgrade will pass a zero length temp dir string to 
create_temp_file() if no --tmpdir is specified.
2010-03-09 11:18:46 +02:00
Georgi Kodinov
d0bb5465b8 Addendum to the test for bug 51357 : disable the (possibly binary)
output from HANDLER ... READ .. NEXT ...
2010-03-09 15:46:27 +02:00
Luis Soares
15ee9a5ac8 Automerge BUG 51251 incremental bundle --> mysql-5.1-bugteam. 2010-03-09 00:03:15 +00:00
Luis Soares
f8ce47b7a5 Automerge BUG 51251 bundle from bug report --> mysql-5.1-bugteam. 2010-03-09 00:02:28 +00:00
Luis Soares
3995884714 Automerge BUG 51226 bzr bundle from bug report --> myqsl-5.1-bugteam. 2010-03-08 23:57:26 +00:00
Luis Soares
17a30e02af Automerge: BUG 48993 bundle from bug report --> mysql-5.1-bugteam. 2010-03-08 23:55:19 +00:00
Davi Arnaut
d585322474 Bug#37316: Anonymous error messages noticed sometimes, while running tests in MTR
The problem was that mysqltest could attempt to execute a
SHOW WARNINGS statement through a connection that was not
properly reaped, thus violating its own rules.

The solution is to skip SHOW WARNINGS if a connection has
not been properly repeaed.

client/mysqltest.cc:
  Skip SHOW WARNINGS if connection hasn't been reaped.
2010-03-08 11:30:20 -03:00
Davi Arnaut
f502deac11 Bug#40277: SHOW CREATE VIEW returns invalid SQL
The problem is that not all column names retrieved from a SELECT
statement can be used as view column names due to length and format
restrictions. The server failed to properly check the conformity
of those automatically generated column names before storing the
final view definition on disk.

Since columns retrieved from a SELECT statement can be anything
ranging from functions to constants values of any format and length,
the solution is to rewrite to a pre-defined format any names that
are not acceptable as a view column name.

The name is rewritten to "Name_exp_%u" where %u translates to the
position of the column. To avoid this conversion scheme, define
explict names for the view columns via the column_list clause.
Also, aliases are now only generated for top level statements.

mysql-test/include/view_alias.inc:
  Add test case for Bug#40277
mysql-test/r/compare.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/group_by.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/ps.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/subselect.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/subselect3.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/type_datetime.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/union.result:
  Bug#40277: SHOW CREATE VIEW returns invalid SQL
mysql-test/r/view.result:
  Add test case result for Bug#40277
mysql-test/r/view_alias.result:
  Add test case result for Bug#40277
mysql-test/t/view_alias.test:
  Add test case for Bug#40277
sql/sql_view.cc:
  Check if auto generated column names are conforming. Also, the
  make_unique_view_field_name function is not used as it uses the
  original name to construct a new one, which does not work if the
  name is invalid.
2010-03-09 07:36:26 -03:00
Davi Arnaut
02ac873ccf Bug#51650: crash with user variables and triggers
The problem was that bits of the destructive equality propagation
optimization weren't being undone after the execution of a stored
program. Modifications to the parse tree that are based on transient
properties must be undone to enable the re-execution of stored
programs.

The solution is to cleanup any references to predicates generated
by the equality propagation during the execution of a stored program.

mysql-test/r/trigger.result:
  Add test case result for Bug#51650.
mysql-test/t/trigger.test:
  Add test case for Bug#51650.
sql/item.cc:
  Remove reference to a equality predicate.
2010-03-09 18:55:08 -03:00
Georgi Kodinov
fd35fc4ea2 Disable the second part of the test for bug #51357 until bug #51877 is fixed. 2010-03-09 19:00:15 +02:00
Georgi Kodinov
25a9f5e094 null merge 2010-03-08 12:42:01 +02:00
Georgi Kodinov
2ba46ad4fa Backport of the fix for bug #51357 to 5.0-bugteam.:
Spatial indexes were not checking for out-of-record condition in
the handler next command when the previous command didn't found
rows.

Fixed by making the rtree index to check for end of rows condition
before re-using the key from the previous search.

Fixed another crash if the tree has changed since the last search.
Added a test case for the other error.
2010-03-08 12:39:57 +02:00
Vladislav Vaintroub
057c2b35c3 merge 2010-03-08 00:33:07 +01:00
Vladislav Vaintroub
402cab754a Fix typo (CMAKE_SIZEOF_VOIDP=>CMAKE_SIZEOF_VOID_P) 2010-03-08 00:31:06 +01:00
Marc Alff
a7c9bf2ccf Bug#51295 Build warnings in mdl.cc
Before this fix, the performance schema instrumentation
in mdl.h / mdl.cc was incomplete, causing:
- build warnings,
- no data collection for the performance schema

This fix:
- added instrumentation helpers for the new preferred
  reader read write lock, mysql_prlock_*
- implemented completely the performance schema
  instrumentation of mdl.h / mdl.cc
2010-03-07 10:50:47 -07:00
Marc Alff
8c28d0d1cf local merge 2010-03-07 10:41:51 -07:00
Marc Alff
72ffdcb2a5 local merge 2010-03-07 10:21:59 -07:00
Marc Alff
7ece4fe472 local merge 2010-03-07 10:10:24 -07:00
Alexey Kopytov
6e7b8b6a7a Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.
Conflicts:

Text conflict in .bzr-mysql/default.conf
Text conflict in mysql-test/r/explain.result
Text conflict in mysql-test/r/having.result
Text conflict in mysql-test/suite/rpl/t/disabled.def
Text conflict in mysql-test/suite/rpl/t/rpl_slave_skip.test
Text conflict in storage/federated/ha_federated.cc
2010-03-07 19:40:59 +03:00
Bjorn Munch
22f923f2b1 Bug #51511 MTRv1 unable to find mysqld binary in out-of-source cmake builds
Set $glob_bindir, like $bindir in v2
Removed some obsolete IM code rather than changing it
2010-03-06 20:22:04 +01:00
Alexander Nozdrin
5b778c8087 Auto-merge (empty) from mysql-trunk-bugfixing. 2010-03-06 14:05:50 +03:00
Alexander Nozdrin
1f8b769d95 Auto-merge from mysql-trunk. 2010-03-06 13:49:16 +03:00
Alexander Nozdrin
8e0ddd2df3 Auto-merge from mysql-next-mr. 2010-03-06 13:48:21 +03:00
Alexander Nozdrin
3df0cf54c4 Merge from mysql-trunk. 2010-03-06 13:39:56 +03:00
Alexander Nozdrin
9095c06355 Fix version & default.conf. 2010-03-06 13:38:49 +03:00
Alexander Nozdrin
95922b0652 Merge from mysql-trunk. 2010-03-06 13:26:38 +03:00
Alexander Nozdrin
948c100727 Fix default.conf. 2010-03-06 13:25:14 +03:00
Alexander Nozdrin
9fc9081050 Auto-merge (empty) from mysql-trunk-bugfixing. 2010-03-06 13:22:16 +03:00
Alexander Nozdrin
016f668830 Auto-merge from mysql-next-mr. 2010-03-06 13:20:51 +03:00
Alexander Nozdrin
5ab27f768b Auto-merge from mysql-trunk. 2010-03-06 13:20:40 +03:00
Gleb Shchepa
63a88e1373 Bug #39653: find_shortest_key in sql_select.cc does not
consider clustered primary keys

Choosing a shortest index for the covering index scan,
the optimizer ignored the fact, that the clustered primary
key read involves whole table data.

The find_shortest_key function has been modified to
take into account that fact that a clustered PK has a
longest key of possible covering indices.


mysql-test/r/innodb_mysql.result:
  Test case for bug #39653.
mysql-test/t/innodb_mysql.test:
  Test case for bug #39653.
sql/sql_select.cc:
  Bug #39653: find_shortest_key in sql_select.cc does not
              consider clustered primary keys
  
  The find_shortest_key function has been modified to
  take into account that fact that a clustered PK has a
  longest key of possible covering indices.
2010-03-05 23:45:55 +04:00
Tatiana A. Nurnberg
fbad82deaa auto-merge 2010-03-05 17:45:29 +00:00
Tatiana A. Nurnberg
823661bdf0 manual merge 2010-03-05 16:44:37 +00:00
Marc Alff
ed3a57fea3 Bug#45194 mysql_upgrade deletes existing data in performance_schema database/schema
Before this fix, mysql_upgrade would always drop and re create
the performance_schema database.
This in theory could destroy user data created using 5.1 or older versions.

With this fix, mysql_upgrade checks the content of the
performance_schema database before droping it.
2010-03-05 08:31:01 -07:00
Guilhem Bichot
7bb4e5b459 Fix for BUG#51215 "log-error partially works with version 5.5": WL 4738 (reengineering of server variables)
had broken the 5.1 behaviour of --log-error: --log-error without argument sent to stderr instead of writing
to a file with an autogenerated name.

mysql-test/suite/sys_vars/t/log_error_func.test:
  test that error log is created and shown in SHOW VARIABLES.
  Interestingly the error log's path is apparently relative if --log-error=argument is used, but
  may be absolute or relative if --log-error(no argument) is used (because then the path is derived from
  that of pidfile_name, which can be absolute or relative, depending on if autogenerated or not).
mysql-test/suite/sys_vars/t/log_error_func2.test:
  test that error log is created and shown in SHOW VARIABLES
mysql-test/suite/sys_vars/t/log_error_func3.test:
  test that error log is empty in SHOW VARIABLES
sql/mysql_priv.h:
  id for option --log-error
sql/mysqld.cc:
  No --log-error means "write errors to stderr", whereas --log-error
  without argument means "write errors to a file". So we cannot use the default logic
  of class sys_var_charptr, which treats "option not used" the same as "option used
  without argument" and uses the same default for both. We need to catch "option used",
  in mysqld_get_one_option(), and then "without argument". Setting to "" makes sure
  that init_server_components() will create the log, with an autogenerated name.
sql/sys_vars.cc:
  need to give the option a numeric id so that we can catch it in mysqld_get_one_option()
2010-03-05 14:08:21 +01:00
Ramil Kalimullin
2eb9d388f6 Fix for bug#32426: "FEDERATED query returns corrupt results
for ORDER BY on a TEXT or VARCHAR field" backported to 5.1.
2010-03-05 14:51:37 +04:00
Alexander Nozdrin
16dfa2b16f Make funcs_1.myisam_views experimental on Solaris due to Bug 50595. 2010-03-05 12:28:45 +03:00
Alexander Barkov
56dc1bd2e3 Fixing non-determenistic results. 2010-03-05 12:17:19 +04:00
Marc Alff
01b19dbbf4 Bug#51738 Unit test pfs_instr-t crashes
The unit test pfs_instr-t:
- generates a very long (10,000) bytes file name
- calls find_or_create_file.

This leads to a buffer overflow in mysys in my_realpath(),
because my_realpath and mysys file APIs in general do not
test for input parameters: mysys assumes every file name
is less that FN_REFLEN in length.

Calling find_or_create_file with a very long file name is likely
to happen when instrumenting third party code that does not use mysys,
so this test is legitimate.

The fix is to make find_or_create_file in the performance schema
more robust in this case.
2010-03-04 18:36:54 -07:00
Marc Alff
18884b02c0 Bug#51741 Unit test pfs-t failing in mysql-next-mr-bugfixing
The root cause of the failure is that when
Bug#51447 performance schema evil twin files
was fixed, instrumented file names got normalized.

The pfs-t unit test depends on this file normalization,
but it was not updated.

This fix aligns pfs-t.cc lookup_file_by_name()
with the logic in pfs_instr.cc find_or_create_file().
2010-03-04 18:10:27 -07:00
Mattias Jonsson
1f77c7b49a Bug#50392: insert_id is not reset for partitioned tables
auto_increment on duplicate entry

The bug was that when INSERT_ID was used and the storage
engine was told to release any reserved but not used
auto_increment values, it set the highest auto_increment
value to INSERT_ID.

The fix was to check if the auto_increment value was forced
by user (INSERT_ID) or by slave-thread, i.e. not auto-
generated. So that it is only allowed to release generated
values.

mysql-test/r/partition_error.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  updated result
mysql-test/suite/parts/inc/partition_auto_increment.inc:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added test
mysql-test/suite/parts/r/partition_auto_increment_archive.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added result, note that archive does only allow increasing
  auto_increment values
mysql-test/suite/parts/r/partition_auto_increment_blackhole.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added result, note that blackhole accepts all inserts :)
mysql-test/suite/parts/r/partition_auto_increment_innodb.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added result, note that innodb rolls back inserts on error,
  but keeps the auto_increment value.
mysql-test/suite/parts/r/partition_auto_increment_memory.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added result, note that memory and myisam inserts all rows
  before the error.
mysql-test/suite/parts/r/partition_auto_increment_myisam.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added result, note that memory and myisam inserts all rows
  before the error.
mysql-test/suite/parts/r/partition_auto_increment_ndb.result:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added result, note that NDB does not seem to handle
  INSERT_ID as other engines. (Martin will look into it).
mysql-test/t/partition_error.test:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  Added test
sql/ha_partition.cc:
  Bug#50392: insert_id is not reset for partitioned tables
  auto_increment on duplicate entry
  
  If the next_insert_id comes from non generated (i.e
  forced by INSERT_ID or slave-thread) then we cannot
  lower the reserved auto_increment value, since it have
  not reserved any values.
2010-03-04 18:16:10 +01:00
Georgi Kodinov
d934426ff5 Bug #51357: crash when using handler commands on spatial indexes
Spatial indexes were not checking for out-of-record condition in
the handler next command when the previous command didn't found
rows.

Fixed by making the rtree index to check for end of rows condition
before re-using the key from the previous search.

Fixed another crash if the tree has changed since the last search.
Added a test case for the other error.
2010-03-04 18:13:08 +02:00
Alexander Nozdrin
9f17a0018f Auto-merge from mysql-next-mr-bugfixing. 2010-03-04 18:39:32 +03:00