Commit graph

8480 commits

Author SHA1 Message Date
unknown
63d6336465 item_cmpfunc.cc, func_in.result, multi_update.result:
After merge fix


mysql-test/r/multi_update.result:
  After merge fix
mysql-test/r/func_in.result:
  After merge fix
sql/item_cmpfunc.cc:
  After merge fix
2006-05-30 23:05:34 +04:00
unknown
7b639f05f8 Manually merged
mysql-test/t/func_in.test:
  Auto merged
2006-05-30 19:16:30 +04:00
unknown
a9824f263d Merge moonbone.local:/work/18630-bug-4.1-mysql
into moonbone.local:/work/18360-bug-4.1-mysql-opt
2006-05-30 18:57:08 +04:00
unknown
c007dabaf6 Fixed bug#18360: Incorrect type coercion in IN() results in false comparison
The IN() function uses agg_cmp_type() to aggregate all types of its arguments
to find out some common type for comparisons. In this particular case the 
char() and the int was aggregated to double because char() can contain values
like '1.5'. But all strings which do not start from a digit are converted to
0. thus 'a' and 'z' become equal. 
This behaviour is reasonable when all function arguments are constants. But 
when there is a field or an expression this can lead to false comparisons. In
this case it makes more sense to coerce constants to the type of the field
argument.

The agg_cmp_type() function now aggregates types of constant and non-constant
items separately. If some non-constant items will be found then their
aggregated type will be returned. Thus after the aggregation constants will be
coerced to the aggregated type. 


mysql-test/t/func_in.test:
  Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
mysql-test/r/func_in.result:
  Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
sql/item_cmpfunc.cc:
  Fixed bug#18360: Incorrect type coercion in IN() results in false comparison.
  The agg_cmp_type() function now aggregates types of constant and non-constant
  items separately. If some non-constant items will be found then their
  aggregated type will be returned. Thus after the aggregation constants will
  be coerced to the aggregated type.
2006-05-30 00:36:48 +04:00
unknown
c561933301 Manually merged
mysql-test/t/multi_update.test:
  Auto merged
2006-05-29 19:07:35 +04:00
unknown
1c17a260e5 Update result file after merge 2006-05-29 09:26:31 +02:00
unknown
acf5b9490f Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


mysys/default.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Merge backport
mysql-test/mysql-test-run.sh:
  Merge backport
mysql-test/r/mysqldump.result:
  Manual merge
mysql-test/t/mysqldump.test:
  Manual merge
2006-05-29 09:06:06 +02:00
unknown
e9ad2183c3 manual merge 2006-05-29 11:17:38 +05:00
unknown
2264b64473 Fixed bug#19225: unchecked error results in server crash
In multi-table delete a table for delete can't be used for selecting in
subselects. Appropriate error was raised but wasn't checked which leads to a
crash at the execution phase.

The mysql_execute_command() now checks for errors before executing select
for multi-delete.


mysql-test/t/multi_update.test:
  Added test case for bug#19225: unchecked error results in server crash
mysql-test/r/multi_update.result:
  Added test case for bug#19225: unchecked error results in server crash
sql/sql_parse.cc:
  Fixed bug#19225: unchecked error results in server crash
  The mysql_execute_command() now checks for errors before executing select for multi-delete.
2006-05-29 00:32:59 +04:00
unknown
bce6a702f3 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kgeorge/mysql/5.0/clean
2006-05-26 12:13:48 +03:00
unknown
dd01932a76 Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18681


sql/sql_acl.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/view_grant.result:
  resolved conflict
mysql-test/t/view_grant.test:
  resolved merge conflict
2006-05-26 11:57:56 +03:00
unknown
6386c5dfc0 Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18681


sql/mysql_priv.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-05-26 11:51:30 +03:00
unknown
232a7e7c9f Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B14875
2006-05-26 11:51:11 +03:00
unknown
419ae6cbf8 Bug #14875: Bad view DEFINER makes SHOW CREATE VIEW fail
When reading a view definition from a .frm file it was
throwing a SQL error if the DEFINER user is not defined.
Changed it to a warning to match the (documented) case
when a view with undefined DEFINER user is created.


mysql-test/r/view_grant.result:
  test case for the bug
mysql-test/t/view_grant.test:
  test case for the bug
sql/sql_acl.cc:
  Initialized the members to no privileges so even if
  the subsequent checks fail it will still initialize
  the security context.
sql/table.cc:
  Turned the error of undefined DEFINER user in reading 
  a view definition to a warning.
2006-05-26 11:49:39 +03:00
unknown
d7743c41c6 BUG#18681: View privileges are broken
The check for view security was lacking several points :
1. Check with the right set of permissions : for each table ref that
participates in a view there were the right credentials to use in it's
security_ctx member, but these weren't used for checking the credentials.
This makes hard enforcing the SQL SECURITY DEFINER|INVOKER property
consistently.
2. Because of the above the security checking for views was just ruled out
in explicit ways in several places.
3. The security was checked only for the columns of the tables that are
brought into the query from a view. So if there is no column reference
outside of the view definition it was not detecting the lack of access to
the tables in the view in SQL SECURITY INVOKER mode.

The fix below tries to fix the above 3 points.


mysql-test/r/grant.result:
  removed nondeterminism (unspecified order) in some test output
mysql-test/r/view_grant.result:
  Somewhat extended test case for the bug and similar queries.
mysql-test/t/grant.test:
  removed nondeterminism (unspecified order) in some test output
mysql-test/t/view_grant.test:
  Somewhat extended test case for the bug and similar queries.
sql/mysql_priv.h:
  A wrapper for setup_tables that also checks access to the tables
sql/sql_acl.cc:
  removed artificial security check stop and used the table ref's credentials.
sql/sql_base.cc:
  a wrapper for setup_tables to check access to the tables
sql/sql_delete.cc:
  wrapper called.
sql/sql_insert.cc:
  wrapper called
sql/sql_load.cc:
  wrapper called
sql/sql_parse.cc:
  wrapper called and artificial check stop removed
sql/sql_select.cc:
  wrapper called
sql/sql_update.cc:
  wrapper called
sql/table.cc:
  Mask table access to the view error as well.
2006-05-26 11:47:53 +03:00
unknown
772b438050 Merge mysql.com:/space/pekka/ndb/version/my50
into  mysql.com:/space/pekka/ndb/version/my50-bug14509
2006-05-25 13:14:16 +02:00
unknown
69c80350dc Merge mysql.com:/space/pekka/ndb/version/my50
into  mysql.com:/space/pekka/ndb/version/my50-bug14509


ndb/src/ndbapi/DictCache.cpp:
  Auto merged
ndb/src/ndbapi/DictCache.hpp:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
2006-05-25 13:08:50 +02:00
unknown
779b09b71e Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kgeorge/mysql/5.0/clean
2006-05-25 13:12:57 +03:00
unknown
10f72d6312 Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18742-2
2006-05-25 12:21:42 +03:00
unknown
357eac274b Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B18742-2
2006-05-25 10:45:24 +03:00
unknown
e61eb7423f Merge mysql.com:/home/kgeorge/mysql/5.0/clean
into  mysql.com:/home/kgeorge/mysql/5.0/B19700


sql/item.h:
  Auto merged
2006-05-25 10:45:00 +03:00
unknown
a2f861f5ad Bug #19700: subselect returning BIGINT always returned it as SIGNED
The unsigned flag in Item was not propagated through the single value subqueries.
This caused the result to be treated as signed.


mysql-test/r/subselect.result:
  Added testcases for bug #19700
mysql-test/t/subselect.test:
  Added testcases for bug #19700
sql/item.h:
  Preserved the unsigned flag in Item_subselect
sql/item_subselect.cc:
  Preserved the unsigned flag in Item_subselect
2006-05-25 10:39:18 +03:00
unknown
39736af1e6 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2006-05-24 17:33:12 +03:00
unknown
542631732c Merge monty@192.168.0.9:/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.0


sql/mysqld.cc:
  Auto merged
2006-05-24 17:32:17 +03:00
unknown
8b670ee355 More DBUG statements
Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads.
This fixes:
Bug#16986: Deadlock condition with MyISAM tables
Bug#20048: FLUSH TABLES WITH READ LOCK causes a deadlock


mysql-test/r/flush.result:
  Added test case for deadlock with FLUSH TABLES WITH READ LOCK
mysql-test/r/lock_multi.result:
  Test for bug in LOCK TABLE + optimize table
mysql-test/t/flush.test:
  Added test case for deadlock with FLUSH TABLES WITH READ LOCK
mysql-test/t/lock_multi.test:
  Test for bug in LOCK TABLE + optimize table
sql/lock.cc:
  Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
  The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads
sql/mysql_priv.h:
  Added COND_global_read_lock
sql/mysqld.cc:
  Added COND_global_read_lock
sql/sql_base.cc:
  More DBUG statements
  Added a broadcast in remove_table_from_cache() to release any threads waiting in open
2006-05-24 17:21:35 +03:00
unknown
f63e1728f7 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  april.(none):/home/svoj/devel/mysql/BUG17001/mysql-5.0
2006-05-24 18:42:18 +05:00
unknown
bbb279f81d Merge mysql.com:/opt/local/work/mysql-5.0-root
into  mysql.com:/opt/local/work/mysql-5.0-runtime
2006-05-24 14:54:35 +04:00
unknown
3ebf191662 Merge april.(none):/home/svoj/devel/mysql/BUG12873/mysql-5.0
into  april.(none):/home/svoj/devel/mysql/BUG17001/mysql-5.0
2006-05-24 15:19:48 +05:00
unknown
81dd2cd096 Merge neptunus.(none):/home/msvensson/mysql/bug15328/my41-bug15328
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1


mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/mysqldump.result:
  Manual merge
mysql-test/t/mysqldump.test:
  Manual merge
2006-05-24 10:16:31 +02:00
unknown
f112e407ea Bug #18742: Test 'group_min_max' fails if "classic" configuration in 5.0
Moved the InnoDB related tests to innodb_mysql


mysql-test/r/group_min_max.result:
  Moved innodb related tests out of group_min_max
mysql-test/r/innodb_mysql.result:
  Moved innodb related tests out of group_min_max
mysql-test/t/group_min_max.test:
  Moved innodb related tests out of group_min_max
mysql-test/t/innodb_mysql.test:
  Moved innodb related tests out of group_min_max
2006-05-23 16:43:01 +03:00
unknown
42bfdef07d Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into  april.(none):/home/svoj/devel/mysql/BUG18233/mysql-5.0
2006-05-23 17:30:55 +05:00
unknown
fc2e96ee7b Fix for bug#17626 CREATE TABLE ... SELECT failure with TRADITIONAL SQL mode
transfer NO_DEFAULT_VALUE_FLAG flag to new field


mysql-test/r/strict.result:
  Fix for bug#17626 CREATE TABLE ... SELECT failure with TRADITIONAL SQL mode
  test case
mysql-test/r/type_ranges.result:
  Fix for bug#17626 CREATE TABLE ... SELECT failure with TRADITIONAL SQL mode
  result fix
mysql-test/t/strict.test:
  Fix for bug#17626 CREATE TABLE ... SELECT failure with TRADITIONAL SQL mode
  test case
2006-05-23 13:27:45 +05:00
unknown
2d98d2438b Bug#16681 information_schema shows forbidden VIEW details
show view definition to users that have the needed privilleges


mysql-test/r/information_schema.result:
  Bug#16681 information_schema shows forbidden VIEW details
  test case
mysql-test/t/information_schema.test:
  Bug#16681 information_schema shows forbidden VIEW details
  test case
2006-05-23 12:45:25 +05:00
unknown
0792cd92f6 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-05-22 12:55:28 -07:00
unknown
321708d36d Post-review fixes for bug #19089
mysql-test/r/view.result:
  Post-review fixes.
sql/field.cc:
  Post-review fixes.
sql/field.h:
  Post-review fixes.
sql/sql_select.cc:
  Post-review fixes.
2006-05-22 07:57:46 -07:00
unknown
af3b08c585 Bug#18745: Test case 'func_group' fails if "classic" 5.0 configuration
Moved the InnoDB related test from func_group.test to innodb_mysql.test


mysql-test/r/func_group.result:
  Moved a test to innodb_mysql
mysql-test/r/innodb_mysql.result:
  moved a test to innodb_mysql
mysql-test/t/func_group.test:
  Moved a test to innodb_mysql
mysql-test/t/innodb_mysql.test:
  Moved a test to innodb_mysql
2006-05-22 16:10:53 +03:00
unknown
a57c96747b ndb - bug#19956 (occurs only in v5.0)
mysql-test/r/ndb_blob.result:
  bug#19956 : var* pk
mysql-test/t/ndb_blob.test:
  bug#19956 : var* pk
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
  bug#19956 - check var* length bytes and zero rest of value if any blob attribute
ndb/src/ndbapi/NdbOperationSearch.cpp:
  bug#19956 - check var* length bytes and zero rest of value if any blob attribute
2006-05-21 11:04:57 +02:00
unknown
960578fdfd Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/sql_select.cc:
  Auto merged
mysql-test/r/view.result:
  Manual merge
mysql-test/t/view.test:
  Manual merge
2006-05-20 19:10:43 -07:00
unknown
db5d197414 Fixed bug #19089.
When a CREATE TABLE command created a table from a materialized
view id does not inherit default values from the underlying table.
Moreover the temporary table used for the view materialization
does not inherit those default values.
In the case when the underlying table contained ENUM fields it caused
misleading error messages. In other cases the created table contained
wrong default values.
The code was modified to ensure inheritance of default values for
materialized views.


mysql-test/r/view.result:
  Added a test case for bug #19089.
mysql-test/t/view.test:
  Added a test case for bug #19089.
sql/field.cc:
  Fixed bug ##19089.
  Added field dflt_field to the class Field.
  This field is set for temp table fields that inherits
  default values of items from which they are created.
sql/field.h:
  Fixed bug ##19089.
  Added field dflt_field to the class Field.
  This field is set for temp table fields that inherits
  default values of items from which they are created.
sql/sql_select.cc:
  Fixed bug #19089.
  When a CREATE TABLE command created a table from a materialized
  view id does not inherit default values from the underlying table.
  Moreover the temporary table used for the view materialization
  does not inherit those default values.
  The code was modified to ensure inheritance of default values for
  materialized views.
2006-05-20 18:54:43 -07:00
unknown
719bfafc2f Merge mysql.com:/home/jimw/my/mysql-5.0-1039
into  mysql.com:/home/jimw/my/mysql-5.0-clean


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
include/sslopt-longopts.h:
  Resolve conflict
include/sslopt-vars.h:
  Resolve conflict
mysql-test/r/variables.result:
  Resolve conflict
mysql-test/t/variables.test:
  Resolve conflict
2006-05-19 16:17:24 -07:00
unknown
c41b767a26 Fix for bug #18536: mysqldump does not maintain table orders as per --tables option
client/mysqldump.c:
  Fix for bug #18536: mysqldump does not maintain table orders as per --tables option
    - use list to store table names instead of hash.
mysql-test/r/mysqldump.result:
  Fix for bug #18536: mysqldump does not maintain table orders as per --tables option
    - test result.
mysql-test/t/mysqldump.test:
  Fix for bug #18536: mysqldump does not maintain table orders as per --tables option
    - test case.
2006-05-19 16:21:32 +05:00
unknown
41e6fb2590 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into  rurik.mysql.com:/home/igor/mysql-5.0
2006-05-18 13:17:59 -07:00
unknown
33c439ce58 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2


sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
mysql-test/r/view.result:
  SCCS merged
mysql-test/t/view.test:
  SCCS merged
2006-05-18 11:30:42 -07:00
unknown
573d9e47ab Bug #13975: "same string" + 0 has 2 different results
The 'decimals' member of Item_func was being improperly initialized,
  which resulted in improper results when handling large numeric values.


mysql-test/r/func_str.result:
  Add test results
mysql-test/t/func_str.test:
  Add new regression test
sql/item_strfunc.h:
  Remove unnecessary reset of decimals in Item_func_conv::fix_length_and_dec().
2006-05-18 10:34:01 -07:00
unknown
7418311747 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/19077-bug-5.0-mysql
2006-05-18 16:01:13 +04:00
unknown
0086d5abd9 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  april.(none):/home/svoj/devel/mysql/BUG18233/mysql-5.0
2006-05-18 16:13:32 +05:00
unknown
02bacd818d Test case for BUG#18037: Server crash when returning system
variable in stored procedures.
2006-05-18 14:44:15 +04:00
unknown
ed5ac749b9 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2006-05-17 20:56:52 -07:00
unknown
087be9ba2d Fixed bug #19816.
This bug was introduced when the patch resolving the
performance problem 17164 was applied. As a result
of that modification the not_null_tables attributes
were calculated incorrectly for constant OR conditions.
This triggered invalid conversion of outer joins into
inner joins.


mysql-test/r/join_outer.result:
  Added a test case for bug #19816.
mysql-test/t/join_outer.test:
  Added a test case for bug #19816.
2006-05-17 20:48:48 -07:00
unknown
1c6beaee06 Fixed bug#19077: A nested materialized derived table is used before being populated.
The convert_constant_item() function converts constant items to ints on
prepare phase to optimize execution speed. In this case it tries to evaluate
subselect which contains a derived table and is contained in a derived table. 
All derived tables are filled only after all derived tables are prepared.
So evaluation of subselect with derived table at the prepare phase will
return a wrong result.

A new flag with_subselect is added to the Item class. It indicates that
expression which this item represents is a subselect or contains a subselect.
It is set to 0 by default. It is set to 1 in the Item_subselect constructor
for subselects.
For Item_func and Item_cond derived classes it is set after fixing any argument
in Item_func::fix_fields() and Item_cond::fix_fields accordingly.
The convert_constant_item() function now doesn't convert a constant item
if the with_subselect flag set in it. 


mysql-test/t/view.test:
  Added test case for bug#19077: A nested materialized derived table is used before being populated.
mysql-test/t/subselect.test:
  Added test case for bug#19077: A nested materialized derived table is used before being populated.
mysql-test/r/view.result:
  Added test case for bug#19077: A nested materialized derived table is used before being populated.
mysql-test/r/subselect.result:
  Added test case for bug#19077: A nested materialized derived table is used before being populated.
sql/item_subselect.cc:
  Fixed bug#19077: A nested materialized derived table is used before being populated.
  The Item_subselect class constructor sets new with_subselect flag to 1.
sql/item_func.cc:
  Fixed bug#19077: A nested materialized derived table is used before being populated.
  
  The Item_func::fix_fields() sets new with_subselect flag from with_subselect flags of its arguments.
sql/item_cmpfunc.cc:
  Fixed bug#19077: A nested materialized derived table is used before being populated.
  The convert_constant_item() function now doesn't convert a constant item
  with the with_subselect flag set.
  The Item_cond::fix_fields() sets new with_subselect flag from with_subselect flags of its arguments.
sql/item.cc:
  Fixed bug#19077: A nested materialized derived table is used before being populated.
  Set new with_subselect flag to default value - 0 in the Item constructor.
sql/item.h:
  Fixed bug#19077: A nested materialized derived table is used before being populated.
  A new flag with_subselect is added to the Item class. It indicates that
  expression which this item represents is a subselect or contains a subselect.
  It is set to 0 by default.
2006-05-18 00:55:28 +04:00