gkodinov@mysql.com
7bae0de398
BUG#18068: SELECT DISTINCT (with duplicates and covering index)
...
When converting DISTINCT to GROUP BY where the columns are from the covering
index and they are quoted twice in the SELECT list the optimizer is creating
improper processing sequence. This is because of the fact that the columns
of the covering index are not recognized as such and treated as non-index
columns.
Generally speaking duplicate columns can safely be removed from the GROUP
BY/DISTINCT list because this will not add or remove new rows in the
resulting set. Duplicates can be removed even if they are not consecutive
(as is the case for ORDER BY, where the duplicate columns can be removed
only if they are consecutive).
So we can safely transform "SELECT DISTINCT a,a FROM ... ORDER BY a" to
"SELECT a,a FROM ... GROUP BY a ORDER BY a" instead of
"SELECT a,a FROM .. GROUP BY a,a ORDER BY a". We can even transform
"SELECT DISTINCT a,b,a FROM ... ORDER BY a,b" to
"SELECT a,b,a FROM ... GROUP BY a,b ORDER BY a,b".
The fix to this bug consists of checking for duplicate columns in the SELECT
list when constructing the GROUP BY list in transforming DISTINCT to GROUP
BY and skipping the ones that are already in.
2006-05-09 18:13:01 +03:00
holyfoot@deer.(none)
a920d0df86
bug #15745 (COUNT(DISTINCT CONCAT(x,y)) returns wrong result
2006-03-05 20:48:31 +04:00
serg@serg.mylan
db896a66ca
bad merge fixed
2005-09-15 21:05:42 +02:00
igor@rurik.mysql.com
8c34d8e578
Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
...
into rurik.mysql.com:/home/igor/mysql-5.0
2005-08-22 09:40:10 -07:00
pappa@c-4a09e253.1238-1-64736c10.cust.bredbandsbolaget.se
4084c13605
Merge c-4a09e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-4.1
...
into c-4a09e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-5.0
2005-08-20 16:38:55 -04:00
igor@rurik.mysql.com
c4f677feb5
Manual merge
2005-08-19 20:21:09 -07:00
igor@rurik.mysql.com
2d32b77693
distinct.test, distinct.result:
...
Added test cases for bug #12625 .
sql_select.cc:
Fixed bug #12625 .
Fixed invalid removal of constant items from the DISTINCT
list in the function create_distinct_group.
2005-08-19 01:57:22 -07:00
hf@deer.(none)
6c148a7969
Fix for bug #9764 (DISTINCT IFNULL truncates data)
2005-06-08 20:35:37 +05:00
holyfoot@hf-ibm.(none)
8f3647005c
Tests and results fixed with last precision/decimal related modifications
2005-05-06 01:01:39 +05:00
igor@rurik.mysql.com
cdb40830d2
Manual merge
2005-02-11 15:00:29 -08:00
igor@rurik.mysql.com
1bb04b0642
distinct.result:
...
Adjustment of the result file after the revision of the fix for bug #7520 .
2005-02-11 13:44:54 -08:00
hf@deer.(none)
b94a482ee9
Precision Math implementation
2005-02-09 02:50:45 +04:00
sergefp@mysql.com
034c59ed59
Fix test results to account for difference between release BDB, debug BDB and MyISAM.
2004-12-31 14:48:11 +03:00
timour@mysql.com
3bb2c4e325
After merge adjustment of tests due to changes in cost estimates.
2004-10-11 20:10:07 +03:00
timour@mysql.com
e2cd3dd1ce
WL#1724 "Min/Max Optimization for Queries with Group By Clause"
...
- after-review changes
- merged with the source tree from 204-08-27
2004-08-27 16:37:13 +03:00
timour@mysql.com
a840d8daad
Complete implementation of WL#1469 "Greedy algorithm to search for an optimal execution plan",
...
consisting of pos-review fixes and improvements.
2004-05-10 15:48:50 +03:00
pem@mysql.com
975061bb5a
Merge 4.1 to 5.0.
2003-12-16 16:12:28 +01:00
antony@ltantony.rdg.cyberkinetica.homeunix.net
fcf96dbb18
WorkLog#1323
...
Deprecate the use of TYPE=... Preferred syntax is ENGINE=
2003-12-10 04:31:42 +00:00
pem@mysql.com
337238b78a
Merging 4.1->5.0
2003-10-22 16:10:22 +02:00
monty@narttu.mysql.fi
d9ff665102
Fixes after merge
2003-10-08 12:01:58 +03:00
pem@mysql.telia.com
6e55a3428a
Post-merge fixes.
2003-09-24 15:26:20 +02:00
kostja@oak.local
6fba16eabf
Applied Monty corrections to the FULL SCAN
...
optimiser bug patch.
2003-09-17 21:52:05 +04:00
kostja@oak.local
048245ae9d
fixed test result to be in sync with the optimiser
2003-09-17 14:00:43 +04:00
kostja@oak.local
ab576328f0
Fixed bug in the optimiser for FULL TABLE SCAN case:
...
to estimate correctly cost of full table scan we should take into
account rows read and skipped on each iteration.
2003-09-15 22:21:39 +04:00
monty@mashka.mysql.fi
04c43fca8e
Optimize thai character handling
...
Remove sel000xxxx tests
After merge fixes
2003-09-12 04:18:07 +03:00
monty@mashka.mysql.fi
4f7512160b
After merge fixes
...
Use server character set if --default-character-set is not used
Added convert_string() for more efficient alloc+character-set convert of strings
2003-08-19 00:08:08 +03:00
monty@mashka.mysql.fi
2263e3e51f
Merge with 4.0.14
2003-08-11 22:44:43 +03:00
Sinisa@sinisa.nasamreza.org
ee9237e0d8
missing test case for DISTINCT .. LEFT ..
2003-07-05 16:29:11 +03:00
monty@mashka.mysql.fi
dbebed97e4
Remove FORCE_INIT_OF_VARS when compiling for valgrind/purify to spot wrong LINT_INIT() options
...
Fixed bug in ALTER TABLE ... MODIFY integer-column
Added ref_or_null optimization (needed for subqueries)
2003-06-30 13:23:54 +03:00
monty@mashka.mysql.fi
34919a03c4
Added thread variable max_seeks_for_key
...
Change optimizer to prefer key lookups before table scan
Change table scans to be done after tables with constrains on scanned table
2003-06-27 03:04:54 +03:00
monty@narttu.mysql.fi
23145cfed7
Added SQLSTATE to client/server protocol
...
bmove_allign -> bmove_align
Added OLAP function ROLLUP
Split mysql_fix_privilege_tables to a script and a .sql data file
Added new (MEMROOT*) functions to avoid calling current_thd() when creating some common objects.
Added table_alias_charset, for easier --lower-case-table-name handling
Better SQL_MODE handling (Setting complex options also sets sub options)
New (faster) assembler string functions for x86
2003-06-04 18:28:51 +03:00
monty@mashka.mysql.fi
b14b246d38
Merge with 4.0 to get fix for MIN/MAX
2003-02-07 16:38:37 +02:00
monty@mashka.mysql.fi
cf9668fd37
Added START TRANSACTION syntax
...
Added ALL as parameter option for all group functions.
Make join handling uniform. This allows us to use ',', JOIN and INNER JOIN the same way.
Sort NULL last if DESC is used (ANSI SQL 99 requirement)
2003-02-06 16:55:59 +02:00
monty@mashka.mysql.fi
1f6ecc0cd3
Changed mysql-test to print warnings for not existing table to DROP TABLE
...
Cleaned up test; Removed wrong DROP TABLE commands and use standard table and database names.
changed store_warning() -> push_warning_print()
2003-01-06 01:48:59 +02:00
monty@mashka.mysql.fi
9c509fcb52
Transactions in AUTOCOMMIT=0 mode didn't rotate binary log
...
Don't enable any bulk insert or record caching code if inserting less than MIN_ROWS_TO_USE_BULK_INSERT rows (100)
2002-12-14 12:45:31 +02:00
serg@serg.mysql.com
b42eff16cb
bulk insert code optimized
2002-12-07 22:40:20 +01:00
monty@mashka.mysql.fi
35ff08c2af
After merge fixes
...
Added THD to add_to_xxx_list() functions for faster parsing.
2002-12-06 21:11:27 +02:00
monty@mashka.mysql.fi
859b688476
Merge with 4.0.6
2002-12-05 19:38:42 +02:00
monty@hundin.mysql.fi
8830eb4aa9
Change of internal key_field=NULL handling to avoid error messages.
...
Optimized SELECT DISTINCT ... ORDER BY ... LIMIT
Fixed reference to uninitalized variable
2002-12-03 13:08:25 +02:00
monty@mashka.mysql.fi
dac6498f9b
Merge with 4.0
2002-11-21 15:56:48 +02:00
monty@mashka.mysql.fi
5343d4c969
Added --skip-safemalloc to mysqltest
...
Added bug fix from 3.23 for AIX 4.3.3 and gcc 3.x
Small change in EXCHANGE output
Propagate open-files-limit from mysqld_safe -> mysqld
Fixed speed bug in GROUP BY
Added quotes around database name in CREATE DATABASE db_name (for binary log)
2002-10-29 22:56:30 +02:00
monty@hundin.mysql.fi
fbf6ab4465
merge with 4.0.5
2002-10-16 19:30:24 +03:00
monty@hundin.mysql.fi
67d3cd643b
Merge with 3.23.54
2002-10-16 13:11:25 +03:00
monty@hundin.mysql.fi
68963e91b2
Fixed a bug in key optimizing handling where the expression
...
WHERE column_name = key_column_name was calculated as true
for NULL values.
2002-10-14 17:04:12 +03:00
bell@sanja.is.com.ua
199f667c19
merging
2002-10-04 14:15:59 +03:00
bell@sanja.is.com.ua
2883c3a8cc
fixing EXPLAIN select types
2002-10-03 18:47:04 +03:00
bell@sanja.is.com.ua
46a22a5be7
new EXPLAIN
...
fixed bug in mysql-test/create-test-result
fixed bug in union-subselect engine
2002-09-26 23:08:22 +03:00
serg@serg.mysql.com
e8c6e2717d
bugfix: DISTINCT with const_item in ORDER BY
2002-09-10 19:23:59 +00:00
Sinisa@sinisa.nasamreza.org
63fb2232d2
Change of test case
2002-09-04 14:13:31 +03:00
Sinisa@sinisa.nasamreza.org
265a10ff77
a fix for a bug with all_fields.elements not being changed by
...
expansion of the wildcards
2002-09-03 23:00:23 +03:00