1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-22 17:44:29 +03:00
Commit Graph

6237 Commits

Author SHA1 Message Date
unknown
4ffd445b56 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/psergey/mysql-4.1-bug16168-push


sql/opt_range.cc:
  Auto merged
2006-07-01 01:55:43 +04:00
unknown
e0171231a5 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/my/mysql-4.1
2006-06-30 19:15:17 +03:00
unknown
66a59b10e9 Reverted wrong bug fix (Bug#11228)
mysql-test/r/key.result:
  Fixed result after removing wrong bug fix
mysql-test/t/key.test:
  Added SHOW CREATE TABLE, which is the proper way to check for table definitions
sql/table.cc:
  Reverted wrong bug fix.
  The intention with the original code was to show that MySQL treats the first
  given unique key as a primary key. Clients can use the marked primary key as a
  real primary key to validate row changes in case of conflicting updates.  The
  ODBC driver (and other drivers) may also use this fact to optimize/check
  updates and handle conflicts.  The marked key also shows what some engines, like InnoDB or NDB,
  will use as it's internal primary key.
  
  For checking if someone has declared a true PRIMARY KEY, one should use 'SHOW CREATE TABLE'
2006-06-30 18:29:27 +03:00
unknown
633cbfb571 BUG#16168: Wrong results from range optimizer, "Use_count: Wrong count for key ..." warnings:
- Added comments.
 - Make SEL_ARG::clone() set SEL_ARG::elements in the created copy.


mysql-test/r/range.result:
  BUG#16168: Testcase
mysql-test/t/range.test:
  BUG#16168: Testcase
2006-06-30 09:05:12 +04:00
unknown
0343a80b02 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/my/mysql-4.1
2006-06-30 04:27:19 +03:00
unknown
c5ed64a416 Don't read ~/.my.cnf in mysqldump.test
heap/hp_test1.c:
  Changed type from last commit
mysql-test/mysql-test-run.sh:
  Fixed problem with running with --gdb and two masters
  Don't disable ndb becasue we run gdb
mysql-test/t/mysqldump.test:
  Don't read ~/.my.cnf
sql/ha_ndbcluster.cc:
  Portability fix
2006-06-30 04:10:27 +03:00
unknown
52a1639b0e Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/merge-4.1
2006-06-30 01:12:16 +04:00
unknown
f26639c9f2 Bug#20328 mysql client: dumb about trailing spaces on help command.
client/mysql.cc:
  Remove trailing spaces from help arguments in com_server_help. 
  Disregard trailing spaces from command in com_help.
mysql-test/r/mysql_client.result:
  Test trailing spaces on the help command.
mysql-test/t/mysql_client.test:
  Result trailing spaces on the help command.
2006-06-29 17:06:28 -04:00
unknown
0b235009e6 Bug#17877 - Corrupted spatial index
CHECK TABLE could complain about a fully intact spatial index.
A wrong comparison operator was used for table checking. 
The result was that it checked for non-matching spatial keys. 
This succeeded if at least two different keys were present, 
but failed if only the matching key was present.

I fixed the key comparison.


myisam/mi_check.c:
  Bug#17877 - Corrupted spatial index
  Fixed the comparison operator for checking a spatial index.
  Using MBR_EQUAL | MBR_DATA to compare for equality and
  include the data pointer in the comparison. The latter
  finds the index entry that points to the current record.
  This is necessary for non-unique indexes.
  
  The old operator, SEARCH_SAME, is unknown to the rtree
  search functions and handled like MBR_DISJOINT.
myisam/mi_key.c:
  Bug#17877 - Corrupted spatial index
  Added a missing DBUG_RETURN.
myisam/rt_index.c:
  Bug#17877 - Corrupted spatial index
  Included the data pointer in the copy of the search key.
  This is necessary for searching the index entry that points
  to a specific record if the search_flag contains MBR_DATA.
myisam/rt_mbr.c:
  Bug#17877 - Corrupted spatial index
  Extended the RT_CMP() macro with an assert for an 
  unexpected comparison operator.
mysql-test/r/gis-rtree.result:
  Bug#17877 - Corrupted spatial index
  The test result.
mysql-test/t/gis-rtree.test:
  Bug#17877 - Corrupted spatial index
  The test case.
2006-06-28 14:27:37 +02:00
unknown
0f9725ad1f Bug#16180 Setting SQL_LOG_OFF without SUPER privilege is silently ignored
mysql-test/r/grant2.result:
  Added results for bug#16180
mysql-test/t/grant2.test:
  Added test for bug# 16180
sql/set_var.cc:
  Verify user has appropiate rights before setting the sql_log_off system variable.
2006-06-27 20:10:49 -04:00
unknown
f4a07612ef BUG#1662 - ALTER TABLE LIKE ignores DATA/INDEX DIRECTPORY
Produce a warning if DATA/INDEX DIRECTORY is specified in
ALTER TABLE statement.

Ignoring of these options is documented in the symbolic links
section of the manual.


mysql-test/r/symlink.result:
  Modified test result according to fix for BUG#1662.
sql/sql_parse.cc:
  Produce a warning if DATA/INDEX DIRECTORY is specified in
  ALTER TABLE statement.
2006-06-27 22:22:43 +05:00
unknown
2eb16be095 Merge mysql.com:/home/kgeorge/mysql/4.1/teamclean
into  mysql.com:/home/kgeorge/mysql/4.1/B16458
2006-06-27 18:47:22 +03:00
unknown
82d127b55b Dec. 31st, 9999 is still a valid date, only starting with Jan 1st 10000 things become invalid (Bug #12356)
mysql-test/r/func_sapdb.result:
  test cases for date range edge cases added
mysql-test/r/func_time.result:
  test cases for date range edge cases added
mysql-test/t/func_sapdb.test:
  test cases for date range edge cases added
mysql-test/t/func_time.test:
  test cases for date range edge cases added
2006-06-27 19:33:59 +04:00
unknown
4b36c1d8ff Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
'SELECT DISTINCT a,b FROM t1' should not use temp table if there is unique 
index (or primary key) on a.
There are a number of other similar cases that can be calculated without the
use of a temp table : multi-part unique indexes, primary keys or using GROUP BY 
instead of DISTINCT.
When a GROUP BY/DISTINCT clause contains all key parts of a unique
index, then it is guaranteed that the fields of the clause will be
unique, therefore we can optimize away GROUP BY/DISTINCT altogether.
This optimization has two effects:
* there is no need to create a temporary table to compute the
   GROUP/DISTINCT operation (or the temporary table will be smaller if only GROUP 
   is removed and DISTINCT stays or if DISTINCT is removed and GROUP BY stays)
* this causes the statement in effect to become updatable in Connector/Java
because the result set columns will be direct reference to the primary key of 
the table (instead to the temporary table that it currently references). 

Implemented a check that will optimize away GROUP BY/DISTINCT for queries like 
the above.
Currently it will work only for single non-constant table in the FROM clause.


mysql-test/r/distinct.result:
  Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
    - test case
mysql-test/t/distinct.test:
  Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
    - test case
sql/sql_select.cc:
  Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
    - disable GROUP BY if contains the fields of a unique index.
2006-06-27 17:40:19 +03:00
unknown
fbed697d86 Merge mysql.com:/home/hf/work/mysql-4.1.10166
into mysql.com:/home/hf/work/mysql-4.1.clean
2006-06-26 21:07:13 +05:00
unknown
89e415950c Bug#11228: DESC shows arbitrary column as "PRI"
An UNIQUE KEY consisting of NOT NULL columns
  was displayed as PRIMARY KEY in "DESC t1".
  According to the code, that was intentional
  behaviour for some reasons unknown to me.
  This code was written before bitkeeper time,
  so I cannot check who and why made this.
  After discussing on dev-public, a decision
  was made to remove this code


mysql-test/r/key.result:
  Adding test case.
mysql-test/t/key.test:
  Adding test case.
sql/table.cc:
  Removing old wrong code
2006-06-23 13:19:30 +05:00
unknown
d62551af39 Added a test case for bug #18359.
This was another manifestation of the problems fixed in the
patch for bug 16674.
Wrong calculation of length of the search prefix in the pattern
string led here to a wrong result set for a query in 4.1. 
The bug could be demonstrated for any multi-byte character set. 


mysql-test/r/ctype_utf8.result:
  Added a test case for bug #18359.
mysql-test/t/ctype_utf8.test:
  Added a test case for bug #18359.
2006-06-22 20:39:46 -07:00
unknown
e8adb49910 Fixed bug #20076.
Server crashed in some cases when a query required a MIN/MAX
agrregation for a 'ucs2' field. 
In these cases  the aggregation caused calls of the function
update_tmptable_sum_func that indirectly invoked 
the method Item_sum_hybrid::min_max_update_str_field() 
containing a call to strip_sp for a ucs2 character set.
The latter led directly to the crash as it used my_isspace
undefined for the ucs2 character set.
Actually the call of strip_sp is not needed at all in this
situation and has been removed by the fix.


mysql-test/r/ctype_ucs.result:
  Added a test case for bug #20076.
mysql-test/t/ctype_ucs.test:
  Added a test case for bug #20076.
2006-06-22 15:50:15 -07:00
unknown
9a4b76ed64 bug #10166 (Signed byte values cause data to be padded)
The AsBinary function returns VARCHAR data type with binary collation.
It can cause problem for clients that treat that kind of data as
different from BLOB type.
So now AsBinary returns BLOB.


mysql-test/r/gis.result:
  result fixed
mysql-test/t/gis.test:
  test case added
sql/item_geofunc.h:
  Now we return MYSQL_TYPE_BLOB for asBinary function
2006-06-22 22:11:27 +05:00
unknown
af3c76631c Modified the test case for bug 16674 to have the same
execution plans in 4.1 and 5.0.
2006-06-21 22:39:48 -07:00
unknown
6a63106558 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-4.1-opt


mysql-test/r/ctype_utf8.result:
  SCCS merged
mysql-test/t/ctype_utf8.test:
  SCCS merged
2006-06-21 16:29:58 -07:00
unknown
d5797063e3 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
2006-06-22 00:29:47 +04:00
unknown
822e8866c7 Fixed bug #14896.
This bug in Field_string::cmp resulted in a wrong comparison 
with keys in partial indexes over multi-byte character fields.
Given field a is declared as a varchar(16) collate utf8_unicode_ci
INDEX(a(4)) gives us an example of such an index.
  
Wrong key comparisons could lead to wrong result sets if 
the selected query execution plan used a range scan by 
a partial index over a utf8 character field.
This also caused wrong results in many other cases.


mysql-test/t/ctype_utf8.test:
  Added test cases for bug #14896.
mysql-test/r/ctype_utf8.result:
  Added test cases for bug #14896.
sql/field.cc:
  Fixed bug #14896.
  This bug in Field_string::cmp resulted in a wrong comparison 
  with keys in partial indexes over multi-byte character fields.
  Given field a is declared as a varchar(16) collate utf8_unicode_ci
  INDEX(a(4)) gives us an example of such an index.
       
  Wrong key comparisons could lead to wrong result sets if 
  the selected query execution plan used a range scan by 
  a partial index over a utf8 character field.
  This also caused wrong results in many other cases.
2006-06-22 00:29:04 +04:00
unknown
630a1ee440 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1
2006-06-21 19:41:08 +05:00
unknown
fa83f8baa0 added missing MYSQLTEST_VARDIR declaration 2006-06-21 16:41:07 +02:00
unknown
bf76f070dd Merge april:devel/BitKeeper/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1


sql/opt_sum.cc:
  Auto merged
mysql-test/r/myisam.result:
  SCCS merged
mysql-test/t/myisam.test:
  SCCS merged
2006-06-21 17:51:16 +05:00
unknown
5c0cdea623 BUG#20357 - Got error 124 from storage engine using MIN and MAX
functions in queries

Using MAX()/MIN() on table with disabled indexes (by ALTER TABLE)
results in error 124 (wrong index) from storage engine.

The problem was that optimizer use disabled index to optimize
MAX()/MIN(). Normally it must skip disabled index and perform
table scan.

This patch skips disabled indexes for min/max optimization.


mysql-test/r/myisam.result:
  Test case for BUG#20357.
mysql-test/t/myisam.test:
  Test case for BUG#20357.
sql/opt_sum.cc:
  Skip disabled/ignored indexes for min/max optimization.
2006-06-21 17:30:59 +05:00
unknown
3efeb89246 Fix for bug #15977 (switch ordering of DISABLE KEYS/LOCK TABLE in mysqldump) 2006-06-21 00:12:23 -07:00
unknown
8516546c80 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-4.1-opt
2006-06-20 22:15:30 -07:00
unknown
69977fa50b Fixed bug #16674.
The length of the prefix of the pattern string in the LIKE predicate that 
determined the index range to be scanned was calculated incorrectly for
multi-byte character sets. 
As a result of this in 4. 1 the the scanned range was wider then necessary
if the prefix contained not only one-byte characters.  
In 5.0 additionally it caused missing some rows from the result set.


mysql-test/r/ctype_utf8.result:
  Added test cases for bug #16674.
mysql-test/t/ctype_utf8.test:
  Added test cases for bug #16674.
strings/ctype-mb.c:
  Fixed bug #16674.
  The length of the prefix of the pattern string in the LIKE predicate that 
  determined the index range to be scanned was calculated incorrectly for
  multi-byte character sets. 
  As a result of this in 4. 1 the the scanned range was wider then necessary
  if the prefix contained not only one-byte characters.  
  In 5.0 additionally it caused missing some rows from the result set.
      
  The function my_like_range_mb was fixed to calculate the length of
  the prefix in a pattern string correctly in all cases.
2006-06-20 19:57:21 -07:00
unknown
49042de5b2 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
2006-06-20 23:49:33 +04:00
unknown
3e7d68b11c select.result:
Added test case for bug#18759 Incorrect string to numeric conversion.  
select.test:
  Added test case for bug#18759 Incorrect string to numeric conversion.
item_cmpfunc.cc:
  Cleanup after fix for bug#18360 removal


sql/item_cmpfunc.cc:
  Cleanup after fix for bug#18360 removal
mysql-test/t/select.test:
  Added test case for bug#18759 Incorrect string to numeric conversion.
mysql-test/r/select.result:
  Added test case for bug#18759 Incorrect string to numeric conversion.
2006-06-20 23:05:55 +04:00
unknown
91a766838f Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/mysql-4.1
2006-06-20 09:35:25 +05:00
unknown
846c46ea4d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
2006-06-20 02:04:36 +04:00
unknown
495c6b13d1 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
2006-06-20 01:56:33 +04:00
unknown
028fa1e454 item_cmpfunc.cc, func_in.result, func_in.test:
Reverted fix for bug#18360


mysql-test/t/func_in.test:
  Reverted fix for bug#18360
mysql-test/r/func_in.result:
  Reverted fix for bug#18360
sql/item_cmpfunc.cc:
  Reverted fix for bug#18360
2006-06-20 00:50:09 +04:00
unknown
6cf425b856 Merge mysql.com:/home/kgeorge/mysql/4.1/teamclean
into  mysql.com:/home/kgeorge/mysql/4.1/B9676
2006-06-19 13:25:28 +03:00
unknown
124cb126fa * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
tables
Currently in INSERT ... SELECT ... LIMIT ... the compiler uses a 
temporary table to store the results of SELECT ... LIMIT .. and then
uses that table as a source for INSERT. The problem is that in some cases
it actually skips the LIMIT clause in doing that and materializes the 
whole SELECT result set regardless of the LIMIT.
This fix is limiting the process of filling up the temp table with only 
that much rows that will be actually used by propagating the LIMIT value.


mysql-test/r/insert_select.result:
  * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
                tables
  - a test demonstrating the code path
mysql-test/t/insert_select.test:
  * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
                tables
  - a test demonstrating the code path
sql/sql_select.cc:
  * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
                tables
  - pass through the real LIMIT number if the temp table is created for
    buffering results.
  - set the counter for all the cases when the temp table is not used for
    grouping
2006-06-19 13:22:42 +03:00
unknown
5375bcad69 Merge april:devel/BitKeeper/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/BUG18036/mysql-4.1
2006-06-19 14:13:44 +05:00
unknown
46cdd39ea6 BUG#18036 - update of table joined to self reports table as crashed
Certain updates of table joined to self results in unexpected
behavior.

The problem was that record cache was mistakenly enabled for
self-joined table updates. Normally record cache must be disabled
for such updates.

Fixed wrong condition in code that determines whether to use
record cache for self-joined table updates.

Only MyISAM tables were affected.


mysql-test/r/myisam.result:
  Test case for BUG#18036.
mysql-test/t/myisam.test:
  Test case for BUG#18036.
sql/sql_update.cc:
  Fixed wrong condition in code that determines whether to use
  record cache for self-joined table updates.
2006-06-19 14:05:14 +05:00
unknown
95939476ab Fix for bug #20496: func_time.test failure
mysql-test/r/func_time.result:
  Fix for bug #20496: func_time.test failure                                      
    - floating point calculations removed.
mysql-test/t/func_time.test:
  Fix for bug #20496: func_time.test failure                                      
    - floating point calculations removed.
2006-06-19 13:03:29 +05:00
unknown
d0f39b6aeb Manually merged
sql/item_timefunc.cc:
  Auto merged
sql/item_timefunc.h:
  Auto merged
2006-06-17 02:11:12 +04:00
unknown
629830d962 Merge moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
into moonbone.local:/work/16377-4.1-after
2006-06-15 16:41:26 +04:00
unknown
e4bfa961ae item_cmpfunc.h, cast.result:
Post fix for bug#16377


mysql-test/r/cast.result:
  Post fix for bug#16377
sql/item_cmpfunc.h:
  Post fix for bug#16377
2006-06-15 16:39:18 +04:00
unknown
99c320d7cf Merge moonbone.local:/work/15351-bug-4.1-mysql
into moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt


sql/item_strfunc.cc:
  Auto merged
2006-06-15 14:57:53 +04:00
unknown
ef02d496a0 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b15558
2006-06-15 11:15:56 +05:00
unknown
06828ae513 Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main


sql/ha_ndbcluster.cc:
  Auto merged
2006-06-14 20:18:01 +02:00
unknown
ca1fd91f16 Bug #19493 NDB does not ignore duplicate keys when using LOAD DATA LOCAL
- make sure to disable bulk insert when check for duplicate key is needed


mysql-test/r/ndb_loaddatalocal.result:
  New BitKeeper file ``mysql-test/r/ndb_loaddatalocal.result''
mysql-test/t/ndb_loaddatalocal.test:
  New BitKeeper file ``mysql-test/t/ndb_loaddatalocal.test''
2006-06-14 20:16:32 +02:00
unknown
a1017b09b4 Bug#8663 cant use bgint unsigned as input to cast
Problem: cast to unsigned limited result to 
max signed bigint 9223372036854775808,
instead of max unsigned bigint 18446744073709551615.

Fix: don't use args[0]->val_int() when casting from
a floating point number, use val() instead, with range checkings,
special to unsigned data type.

item_func.cc:
  Special handling of cast from REAL_RESULT
  to unsigned int: we cannot execute args[0]->val_int()
  because it cuts max allowed value to LONGLONG_INT,
  instead of ULONGLONG_INT required.
count_distinct3.test:
  Getting rid of "Data truncated; out of range ..." warnings.
cast.test, cast.result:
  Adding test case.
ps.result:
  Fixing that cast from 6570515219.6535 
  to unsigned didn't round to 6570515220,
  and returned 6570515219 instead.


mysql-test/r/cast.result:
  Adding test case.
mysql-test/r/ps.result:
  Fixing that cast from 6570515219.6535 
  to unsigned didn't round to 6570515220,
  and returned 6570515219 instead.
mysql-test/t/cast.test:
  Adding test case.
mysql-test/t/count_distinct3.test:
  Get rid of "wring unsigned value"
  warnings.
sql/item_func.cc:
  Special handling of cast from REAL)RESULT
  to unsigned int: we cannot execute args[0]->val_int()
  because it cuts max allowed value to LONGLONG_INT,
  instead of ULONGLONG_INT required.
2006-06-14 13:40:21 +05:00
unknown
9237d65d33 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
2006-06-13 22:53:30 +04:00