Commit graph

50668 commits

Author SHA1 Message Date
unknown
d68b313dbc Merge mysql.com:/home/hf/work/32067/my51-32067
into  mysql.com:/home/hf/work/31305/my51-31305


mysql-test/r/partition.result:
  Auto merged
mysql-test/t/partition.test:
  Auto merged
2007-11-13 23:16:48 +04:00
unknown
cc8a953dd8 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/31305/my51-31305
2007-11-13 23:12:45 +04:00
unknown
8021e495cf Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  moonbone.local:/work/30081-bug-5.1-opt-mysql


client/mysql.cc:
  Auto merged
mysql-test/r/information_schema.result:
  Auto merged
mysql-test/r/log_tables.result:
  Auto merged
mysql-test/t/information_schema.test:
  Auto merged
sql/sql_show.cc:
  Auto merged
2007-11-13 13:29:42 +00:00
unknown
b1b1d62776 Bug#30081: "ON UPDATE CURRENT_TIMESTAMP" wasn't shown by the SHOW FIELDS
command and reported to a client.

The fact that a timestamp field will be set to NO on UPDATE wasn't shown 
by the SHOW COMMAND and reported to a client through connectors. This led to
problems in the ODBC connector and might lead to a user confusion.

A new filed flag called ON_UPDATE_NOW_FLAG is added. 
Constructors of the Field_timestamp set it when a field should be set to NOW
on UPDATE.

The get_schema_column_record function now reports whether a timestamp field
will be set to NOW on UPDATE.


mysql-test/t/information_schema.test:
  A test case adjusted after fixing the bug#30081.
mysql-test/r/type_timestamp.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/type_ranges.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/show_check.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/ps_5merge.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/ps_4heap.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/ps_3innodb.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/ps_2myisam.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/metadata.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/log_tables.result:
  Adjusted a test case after fixing bug#30081.
mysql-test/r/information_schema.result:
  A test case adjusted after fixing the bug#30081.
mysql-test/r/grant.result:
  Adjusted a test case after fixing bug#30081.
tests/mysql_client_test.c:
  A test case adjusted after fixing the bug#30081.
sql/sql_show.cc:
  Bug#30081: "ON UPDATE CURRENT_TIMESTAMP" wasn't shown by the SHOW FIELDS
  command and reported to a client.
  The get_schema_column_record function now reports whether a timestamp field
  will be set to NOW on UPDATE.
sql/field.cc:
  Bug#30081: "ON UPDATE CURRENT_TIMESTAMP" wasn't shown by the SHOW FIELDS
  command and reported to a client.
  Constructors of the Field_timestamp set the ON_UPDATE_NOW_FLAG on a field when
  it should be set to NOW on UPDATE.
include/mysql_com.h:
  Bug#30081: "ON UPDATE CURRENT_TIMESTAMP" wasn't shown by the SHOW FIELDS
  command and reported to a client.
  A new filed flag called ON_UPDATE_NOW_FLAG  is added.
client/mysql.cc:
  Bug#30081: "ON UPDATE CURRENT_TIMESTAMP" wasn't shown by the SHOW FIELDS
  command and reported to a client.
  The fieldflag2str function is adjusted to print the ON_UPDATE_NOW_FLAG.
2007-11-13 13:24:48 +00:00
unknown
d742b9cb7d test fixed
mysql-test/r/partition_innodb.result:
  result fixed
mysql-test/t/partition_innodb.test:
  number of subpartitions fixed
2007-11-13 09:41:59 +04:00
unknown
6080ae981b Bug #32067 Partitions: crash with timestamp column.
Partition handler fails updating tables with partitioning
based on timestamp field, as it calculates the timestamp field
AFTER it calculates the number of partition of a record.

Fixed by adding timestamp_field->set_time() call and disabling
such consequent calls


mysql-test/r/partition.result:
  Bug #32067 Partitions: crash with timestamp column.
  
  test result
mysql-test/t/partition.test:
  Bug #32067 Partitions: crash with timestamp column.
  
  test case
sql/ha_partition.cc:
  Bug #32067 Partitions: crash with timestamp column.
  
  do timestamp_field->set_time() in the ha_partition::update_row()
2007-11-12 21:11:31 +04:00
unknown
c6b84cec49 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/hf/work/mysql-5.1-opt
2007-11-12 14:27:19 +04:00
unknown
f6e05571eb 'no innodb engine' test failure fixed
mysql-test/r/partition.result:
  test result fixed
mysql-test/r/partition_innodb.result:
  test result fixed
mysql-test/t/partition.test:
  test moved to partition_innodb
mysql-test/t/partition_innodb.test:
  test moved from partition.test
2007-11-12 14:26:09 +04:00
unknown
11644b59ac Merge polly.(none):/home/kaa/src/opt/mysql-5.0-opt
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-11-12 12:37:58 +03:00
unknown
eae5346872 Merge polly.(none):/home/kaa/src/opt/bug30666/my51-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


sql/sql_select.cc:
  Auto merged
mysql-test/r/select.result:
  Manual merge.
mysql-test/t/select.test:
  Manual merge.
2007-11-12 12:35:42 +03:00
unknown
26ebe887c4 Merge polly.(none):/home/kaa/src/opt/bug30666/my50-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


sql/sql_select.cc:
  Auto merged
mysql-test/r/select.result:
  Manual merge.
mysql-test/t/select.test:
  Manual merge.
2007-11-12 12:29:20 +03:00
unknown
572cdc80d0 Merge mysql.com:/home/hf/work/31305/my50-31305
into  mysql.com:/home/hf/work/31305/my51-31305


BitKeeper/etc/ignore:
  auto-union
storage/myisam/mi_dynrec.c:
  Auto merged
2007-11-12 13:07:30 +04:00
unknown
04e51e2447 Merge mysql.com:/home/hf/work/31305/my41-31305
into  mysql.com:/home/hf/work/31305/my50-31305


BitKeeper/etc/ignore:
  auto-union
myisam/mi_dynrec.c:
  Auto merged
2007-11-12 13:06:27 +04:00
unknown
cb927e2f45 Bug #31305 myisam tables crash when they are near capacity.
When we insert a record into MYISAM table which is almost 'full',
we first write record data in the free space inside a file, and then
check if we have enough space after the end of the file.
So if we don't have the space, table will left corrupted.
Similar error also happens when we updata MYISAM tables.

Fixed by modifying write_dynamic_record and update_dynamic_record functions
to check for free space before writing parts of a record


BitKeeper/etc/ignore:
  Added libmysql_r/client_settings.h libmysqld/ha_blackhole.cc to the ignore list
myisam/mi_dynrec.c:
  Bug #31305 myisam tables crash when they are near capacity.
  
  now we check space left in table in write_dynamic_record
  and update_dynamic_record functions.
  If we don't have enough room for the new (updated) record, return with the
  error.
mysql-test/r/almost_full.result:
  New BitKeeper file ``mysql-test/r/almost_full.result''
mysql-test/t/almost_full.test:
  New BitKeeper file ``mysql-test/t/almost_full.test''
2007-11-12 13:00:22 +04:00
unknown
84fbbf4d7d Merge polly.(none):/home/kaa/src/opt/bug30666/my50-bug29131
into  polly.(none):/home/kaa/src/opt/bug30666/my51-bug29131


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-11-12 11:26:31 +03:00
unknown
04a5618d13 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31700/51-31700
2007-11-11 03:07:39 +01:00
unknown
2892d3a2ab Merge gleb.loc:/home/uchum/5.0-opt
into  gleb.loc:/home/uchum/5.1-opt


sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/sp_rcontext.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
mysql-test/r/subselect.result:
  Merge with 5.0-opt.
mysql-test/t/subselect.test:
  Merge with 5.0-opt.
2007-11-11 06:07:38 +04:00
unknown
e3bd213380 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/misc/mysql/31700/50-31700


sql/sql_select.cc:
  Auto merged
2007-11-10 21:53:54 +01:00
unknown
be948d04af Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/scratch/tnurnberg/31700/51-31700


sql/sql_select.cc:
  Auto merged
2007-11-10 21:52:18 +01:00
unknown
c0fb459a38 Bug#31700: thd->examined_row_count not incremented for 'const' type queries
add 5.1-specific test showing that 'const' access increments 'examined'
counter in slow query log.


mysql-test/r/log_tables.result:
  5.1-only test showing that 'const' access increments counters
mysql-test/t/log_tables.test:
  5.1-only test showing that 'const' access increments counters
2007-11-10 21:51:47 +01:00
unknown
7e71e24c38 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-11-11 00:01:24 +04:00
unknown
747cb198b6 Merge gleb.loc:/home/uchum/work/bk/5.0-opt-28076
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/item_cmpfunc.cc:
  Auto merged
2007-11-10 23:58:22 +04:00
unknown
f60c55eab2 Merge polly.(none):/home/kaa/src/opt/mysql-5.0-opt
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-11-10 22:50:31 +03:00
unknown
34c3b68798 Merge polly.(none):/home/kaa/src/opt/bug32202/my51-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


sql/sql_select.cc:
  Auto merged
2007-11-10 22:48:17 +03:00
unknown
04468cba0a Merge polly.(none):/home/kaa/src/opt/bug32202/my50-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


sql/sql_select.cc:
  Auto merged
2007-11-10 22:46:25 +03:00
unknown
e7c6a81f25 Fixed bug #28076: inconsistent binary/varbinary comparison.
After adding an index the <VARBINARY> IN (SELECT <BINARY> ...)
clause returned a wrong result: the VARBINARY value was illegally padded
with zero bytes to the length of the BINARY column for the index search.
(<VARBINARY>, ...) IN (SELECT <BINARY>, ... ) clauses are affected too.


sql/item.cc:
  Fixed bug #28076.
  The Item_cache_str::save_in_field method has been overloaded
  to check cached values for an illegal padding before the saving
  into a field.
sql/item.h:
  Fixed bug #28076.
  The Item_cache_str::is_varbinary flag has been added and the
  Item_cache_str::save_in_field method has been overloaded to prevent
  cached values from an illegal padding when saving in fields.
  The signature of the Item_cache::get_cache method has been
  changed to accept pointers to Item instead of Item_result
  values.
sql/item_cmpfunc.cc:
  Fixed bug #28076.
  The Item_in_optimizer::fix_left method has been modified to
  to call Item_cache::get_cache in a new manner.
sql/item_subselect.cc:
  Fixed bug #28076.
  The subselect_indexsubquery_engine::exec method has been
  modified to take into account field conversion errors
  (copy&paste from subselect_uniquesubquery_engine::exec).
sql/sp_rcontext.cc:
  Fixed bug #28076.
  The sp_rcontext::create_case_expr_holder method has been
  modified to call Item_cache::get_cache in a new manner.
sql/sp_rcontext.h:
  Fixed bug #28076.
  The sp_rcontext::create_case_expr_holder method signature
  has been modified to pass Item pointers to the
  Item_cache::get_cache method.
sql/sql_class.cc:
  Fixed bug #28076.
  The select_max_min_finder_subselect::send_data method has been
  modified to call Item_cache::get_cache in a new manner.
mysql-test/t/subselect.test:
  Added test case for bug #28076.
mysql-test/r/subselect.result:
  Added test case for bug #28076.
2007-11-10 23:44:48 +04:00
unknown
c30eb25a16 Merge polly.(none):/home/kaa/src/opt/bug32202/my50-bug26215
into  polly.(none):/home/kaa/src/opt/bug32202/my51-bug26215


mysql-test/r/group_by.result:
  Manual merge.
mysql-test/t/group_by.test:
  Manual merge.
sql/sql_select.cc:
  Manual merge.
2007-11-10 22:27:34 +03:00
unknown
40eaa33c0d Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/31893/my51-31893
2007-11-10 23:17:39 +04:00
unknown
7a39b1289f Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/misc/mysql/31700/50-31700


sql/sql_select.cc:
  Auto merged
2007-11-10 19:18:47 +01:00
unknown
b25bf95fc8 Merge mysql.com:/misc/mysql/31700/50-31700
into  mysql.com:/misc/mysql/31700/51-31700


sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  manual merge
2007-11-10 18:44:40 +01:00
unknown
a41b476314 Bug#31700: thd->examined_row_count not incremented for 'const' type queries
UNIQUE (eq-ref) lookups result in table being considered as a "constant" table.
Queries that consist of only constant tables are processed in do_select() in a
special way that doesn't invoke evaluate_join_record(), and therefore doesn't
increase the counters join->examined_rows and join->thd->row_count.

The patch increases these counters in this special case.

NOTICE:
This behavior seems to contradict what the documentation says in Sect. 5.11.4:
"Queries handled by the query cache are not added to the slow query log, nor
are queries that would not benefit from the presence of an index because the
table has zero rows or one row."

No test case in 5.0 as issue shows only in slow query log, and other counters
can give subtly different values (with regard to counting in create_sort_index(),
synthetic rows in ROLLUP, etc.).


sql/sql_class.h:
  add documentation for some variables
sql/sql_select.cc:
  Don't forget const tables when counting read records!
2007-11-10 18:29:13 +01:00
unknown
a72ec638ff Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31800/51-31800


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
2007-11-10 13:36:40 +01:00
unknown
6b00e6eb2c Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/scratch/tnurnberg/31800/50-31800


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
2007-11-10 13:35:35 +01:00
unknown
91ceabf3b4 Merge mysql.com:/misc/mysql/31800/50-31800
into  mysql.com:/misc/mysql/31800/51-31800


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql-common/my_time.c:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
2007-11-10 13:34:12 +01:00
unknown
ac3ef6c759 Bug#31800: Date comparison fails with timezone and slashes for greater than comparison
BETWEEN was more lenient with regard to what it accepted as a DATE/DATETIME
in comparisons than greater-than and less-than were. ChangeSet makes < >
comparisons similarly robust with regard to trailing garbage (" GMT-1")
and "missing" leading zeros. Now all three comparators behave similarly
in that they throw a warning for "junk" at the end of the data, but then
proceed anyway if possible. Before < > fell back on a string- (rather than
date-) comparison when a warning-condition was raised in the string-to-date
conversion. Now the fallback only happens on actual errors, while warning-
conditions still result in a warning being to delivered to the client.


mysql-test/r/select.result:
  Show that we compare DATE/DATETIME-like strings as date(time)s
  now, rather than as bin-strings.
  Adjust older result as "2005-09-3a" is now correctly seen as
  "2005-09-3" + trailing garbage, rather than as "2005-09-30".
mysql-test/t/select.test:
  Show that we compare DATE/DATETIME-like strings as date(time)s
  now, rather than as bin-strings.
sql-common/my_time.c:
  correct/clarify date-related comments, particulary for check_date().
  doxygenize comment while at it.
sql/item_cmpfunc.cc:
  get_date_from_str() no longer signals an error when all we had
  was a warning-condition -- and one we already gave the user a
  warning for at that. Preamble doxygenized.
2007-11-10 13:33:42 +01:00
unknown
c3e41709d1 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31990/51-31990
2007-11-10 03:14:50 +01:00
unknown
e9a78d8ca5 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/misc/mysql/31990/50-31990
2007-11-10 03:12:57 +01:00
unknown
3e90d41850 Merge mysql.com:/misc/mysql/31990/50-31990
into  mysql.com:/misc/mysql/31990/51-31990


mysql-test/r/cast.result:
  Auto merged
mysql-test/t/cast.test:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/item_timefunc.h:
  Auto merged
2007-11-10 03:11:18 +01:00
unknown
55499d2bf4 Fix for bug #32202: ORDER BY not working with GROUP BY
The bug is a regression introduced by the fix for bug30596. The problem
was that in cases when groups in GROUP BY correspond to only one row,
and there is ORDER BY, the GROUP BY was removed and the ORDER BY
rewritten to ORDER BY <group_by_columns> without checking if the
columns in GROUP BY and ORDER BY are compatible. This led to
incorrect ordering of the result set as it was sorted using the
GROUP BY columns. Additionaly, the code discarded ASC/DESC modifiers
from ORDER BY even if its columns were compatible with the GROUP BY
ones.

This patch fixes the regression by checking if ORDER BY columns form a
prefix of the GROUP BY ones, and rewriting ORDER BY only in that case,
preserving the ASC/DESC modifiers. That check is sufficient, since the
GROUP BY columns contain a unique index.


mysql-test/r/group_by.result:
  Added a test case for bug #32202.
mysql-test/t/group_by.test:
  Added a test case for bug #32202.
sql/sql_select.cc:
  In cases when groups in GROUP BY correspond to only one row and there
  is ORDER BY, rewrite the query to ORDER BY <group_by_columns> only if
  the columns in ORDER BY and GROUP BY are compatible, i.e. either one
  forms a prefix for another.
2007-11-09 19:12:12 +03:00
unknown
dacae0dc30 Merge polly.(none):/home/kaa/src/opt/mysql-5.0-opt
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


sql/sql_udf.cc:
  Auto merged
2007-11-09 13:46:14 +03:00
unknown
e3278b8c43 Merge polly.(none):/home/kaa/src/opt/bug32020/my51-bug31445
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


sql/sql_udf.cc:
  Auto merged
2007-11-09 13:43:42 +03:00
unknown
e68540a6b8 Merge polly.(none):/home/kaa/src/opt/bug32020/my50-bug31445
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


sql/sql_udf.cc:
  Auto merged
2007-11-09 13:41:50 +03:00
unknown
0280133ac0 Merge polly.(none):/home/kaa/src/opt/bug32020/my50-bug31445
into  polly.(none):/home/kaa/src/opt/bug32020/my51-bug31445


mysql-test/r/skip_grants.result:
  Auto merged
mysql-test/t/skip_grants.test:
  Auto merged
sql/sql_udf.cc:
  Auto merged
2007-11-09 13:31:48 +03:00
unknown
737cdfeaeb Fix for bug #32020: loading udfs while --skip-grant-tables is enabled
causes out of memory errors

The code in mysql_create_function() and mysql_drop_function() assumed
that the only reason for UDFs being uninitialized at that point is an
out-of-memory error during initialization. However, another possible 
reason for that is the --skip-grant-tables option in which case UDF 
initialization is skipped and UDFs are unavailable.

The solution is to check whether mysqld is running with
--skip-grant-tables and issue a proper error in such a case.


mysql-test/r/skip_grants.result:
  Added a test case for bug #32020.
mysql-test/t/skip_grants.test:
  Added a test case for bug #32020.
sql/sql_udf.cc:
  Issue a proper error when a user tries to CREATE/DROP a UDF 
  on a server running with the --skip-grant-tables option.
2007-11-09 13:29:43 +03:00
unknown
b56f1c16ef Merge polly.(none):/home/kaa/src/opt/mysql-5.0-opt
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
2007-11-08 12:16:24 +03:00
unknown
5a98d8aabf Merge polly.(none):/home/kaa/src/opt/bug32103/my51-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
2007-11-08 12:10:36 +03:00
unknown
a5d7fa746f Merge polly.(none):/home/kaa/src/opt/mysql-4.1-opt
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
2007-11-08 12:08:22 +03:00
unknown
0075aa4960 Merge polly.(none):/home/kaa/src/opt/bug32103/my50-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
2007-11-08 12:06:14 +03:00
unknown
6c5a2e50c4 Merge polly.(none):/home/kaa/src/opt/bug32103/my41-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-4.1-opt
2007-11-08 12:04:48 +03:00
unknown
fcddc280f1 Merge polly.(none):/home/kaa/src/opt/bug32103/my50-bug26215
into  polly.(none):/home/kaa/src/opt/bug32103/my51-bug26215


mysql-test/r/select.result:
  Auto merged
mysql-test/t/select.test:
  Auto merged
sql/item.h:
  Auto merged
2007-11-08 11:50:26 +03:00