Commit graph

398 commits

Author SHA1 Message Date
evgen@moonbone.local
55790f74bb Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/14093-bug-5.0-mysql
2005-11-03 13:55:08 +03:00
evgen@moonbone.local
30fdafea76 Fix bug #14093 Query takes a lot of time when date format is not valid
Invalid date like 2000-02-32 wasn't converted to int, which lead to not
using index and comparison with field as astring, which results in slow
query execution.

convert_constatn_item() and get_mm_leaf() now forces MODE_INVALID_DATES to
allow such conversion.
2005-11-03 13:53:49 +03:00
jani@ua141d10.elisa.omakaista.fi
af50eff0d2 Merge 4.1 - 5.0 2005-10-28 02:36:19 +03:00
jani@ua141d10.elisa.omakaista.fi
cbe21a8eb6 Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-tmp
2005-10-27 23:43:20 +03:00
evgen@moonbone.local
ec009d6963 select.result:
After merge fix
2005-10-27 18:36:11 +04:00
evgen@moonbone.local
71b731e92e Manually merged 2005-10-27 17:44:28 +04:00
timour@mysql.com
d24027fa79 Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-bug-13832
2005-10-25 09:01:47 +03:00
timour@mysql.com
f5354eba90 Fix for BUG#13832 - Unknown column t1.a in 'on clause'.
The cause for the bug is that the priorities of all rules/terminals
that process the FROM clause are not fully specified, and the
parser generator produces a parser that doesn't always parse
the FROM clause so that JOINs are left-associative. As a result
the final join tree produced by the parser is incorrect, which
is the cause for subsequent name resolution to fail.
2005-10-25 09:00:57 +03:00
andrey@lmy004.
991b6f1440 fix for bug #12595 (ESCAPE must be exactly 1 character long)
ESCAPE has length of 1 if specified and sql_mode is NO_BACKSLASH_ESCAPES
or has length of 0 or 1 in every other situation.
(approved patch applied on a up-to-date tree re-commit)
2005-10-21 04:01:52 +03:00
evgen@moonbone.local
aff8dbe130 Fix bug #13855 select distinct with group by caused server crash
DISTINCT wasn't optimized away and caused creation of tmp table in wrong
case. This result in integer overrun and running out of memory.

Fix backported from 4.1. Now if optimizer founds that in result be only 1
row it removes distinct.
2005-10-14 01:22:24 +04:00
monty@mysql.com
3da5f1c223 Move handling of suffix_length from strnxfrm_bin() to filesort to ensure proper sorting of all kind of binary objects
field::sort_key() now adds length last for varbinary/blob
VARBINARY/BLOB is now sorted by filesort so that shorter strings comes before longer ones
Fixed issues in test cases from last merge
2005-10-14 00:04:52 +03:00
monty@mysql.com
6f5baa1eba Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0
2005-10-13 20:18:37 +03:00
jani@ua141d10.elisa.omakaista.fi
3ef920a7c7 Merged from 4.1. 2005-10-13 19:34:15 +03:00
jani@ua141d10.elisa.omakaista.fi
2dd1e4f94e Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1-tmp
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0
2005-10-13 18:23:53 +03:00
hf@deer.(none)
27d8bc5b1f merging 2005-10-13 19:51:07 +05:00
hf@deer.(none)
62ffbea5e4 merging 2005-10-13 19:31:09 +05:00
hf@deer.(none)
c933505d2d Fix for bug #3874 (Group by field is not considered) 2005-10-13 19:23:52 +05:00
evgen@moonbone.local
818c37ac68 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/13535-bug-4.1-mysql
2005-10-13 17:17:32 +04:00
evgen@moonbone.local
4d2a58f848 Manual merge of bug fix #7672 2005-10-13 16:00:26 +04:00
evgen@moonbone.local
fb0074a6ad Manual merged 2005-10-13 01:14:58 +04:00
evgen@moonbone.local
902b06ecb1 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/13535-bug-4.1-mysql
2005-10-13 00:16:33 +04:00
evgen@moonbone.local
c16410d3a1 Manual merge, fix for bug #7672 2005-10-12 03:32:14 +04:00
lars@mysql.com
af951aa662 After merge fixes 2005-10-10 19:38:58 +02:00
evgen@moonbone.local
6bfc2d4b89 Fix bug#7672 Unknown column error in order clause
When fixing Item_func_plus in ORDER BY clause field c is searched in all
opened tables, but because c is an alias it wasn't found there.

This patch adds a flag to select_lex which allows Item_field::fix_fields() 
to look up in select's item_list to find aliased fields.
2005-10-09 23:05:44 +04:00
monty@mysql.com
82855517a1 Review of new code since last pull
- Use %lx instead of %p as %p is not portable
- Don't replace ROW item with Item_null
2005-10-07 03:12:15 +03:00
evgen@moonbone.local
5a10244d8b Fix bug#13535 Incorrect result from SELECT statement after SHOW TABLE STATUS
After SHOW TABLE STATUS last_insert_id wasn't cleaned, and next select
erroneously rewrites WHERE condition and returs a row;
5.0 isn't affected because of different SHOW TABLE STATUS handling.

last_insert_id cleanup added to mysqld_extend_show_tables().
2005-10-03 23:22:46 +04:00
timour@mysql.com
638198e17d Fix for BUG#13597 - columns in ON condition not resolved if references a table in a nested right join.
The problem was in that when finding the last table reference in a nested join tree,
the procedure doing the iteration over the right-most branches of a join tree
was testing for RIGHT JOINs the table reference that represents the join, and not
the second operand of the JOIN. Currently the information whether a join is LEFT/RIGHT
is stored not on the join object itself, but on one of its operands.
2005-09-30 10:39:17 +03:00
evgen@moonbone.local
1bf2fbdb35 select.result, item.cc:
After merge fix for bug#13356
2005-09-28 21:30:10 +04:00
msvensson@neptunus.(none)
13161c2a84 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2005-09-28 15:32:05 +02:00
evgen@moonbone.local
4f4711bd49 Fix bug#13356 resolve_const_item() wasn't able to handle Item_row items.
resolve_const_item() assumed to be not called for Item_row items. For
ensuring that DBUG_ASSERT(0) was set there.

This patch adds section for Item_row items. If it can it recursively calls
resolve_const_item() for each item the Item_row contains. If any of the
contained items is null then whole Item_row substitued by Item_null. Otherwise
it just returns.
2005-09-28 00:58:12 +04:00
timour@mysql.com
e609eac0d9 Fix for BUG#13127.
The problem was in the way table references are pre-filtered when
resolving a qualified field. When resolving qualified table references
we search recursively in the operands of the join. If there is
natural/using join with a merge view, the first call to find_field_in_table_ref
makes a recursive call to itself with the view as the new table reference
to search for the column. However the view has both nested_join and
join_columns != NULL so it skipped the test whether the view name matches
the field qualifier. As a result the field was found in the view since the
view already has a field with the same name. Thus the field was incorrectly
resolved as the view field.
2005-09-20 14:00:39 +03:00
evgen@moonbone.local
097ca8ad90 Fix bug #12291 Table wasn't reinited for index scan after sequential scan
Optimizer did choose "Range checked for each record" for one of the tables.
For first few loops over that table it choose sequential access, on later
stage it choose to use index. Because table was previously initialized for 
sequential access, it skips intitialization for index access, and when
server tries to retrieve data error occurs.

QUICK_RANGE_SELECT::init() changes so if file already initialized for
sequential access, it calls ha_rnd_end() and initializes file for index
access.
2005-09-16 01:19:43 +04:00
timour@mysql.com
d0f585f11f BUG#12943 - post-merge fix 2005-09-12 19:18:17 +03:00
timour@mysql.com
54db60c080 Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-bug-12943
2005-09-12 19:05:55 +03:00
timour@mysql.com
6a528590d9 Fix for BUG#13067 "JOIN ... USING is case sensitive". 2005-09-12 08:28:53 +03:00
timour@mysql.com
7d24bdac22 Fix for BUG#12943.
The problem was that in the first production in rule 'join_table', that
processes simple cross joins, the parser was processing the second join operand
before the first one due to unspecified priorities of JOINs. As a result in the
case of cross joins the parser constructed a tree with incorrect nesting:
the expression "t1 join t2 join t3 on some_cond" was interpreted as
"t1 join (t2 join t3 on some_cond)" instead of
"(t1 join t2) join t3 on some_cond".
Because of this incorrect nesting the method make_join_on_context picked an
incorrect table as the first table of the name resolution context.

The solution assignes correct priorities to the related production.
2005-09-10 15:01:54 +03:00
timour@mysql.com
912aef9579 Fix for BUG#12977. 2005-09-08 11:29:52 +03:00
andrey@lmy004.
235cde55fb fix for bug #12841
(Server crash on DO IFNULL(NULL,NULL)
(fixes also "SELECT CAST(IFNULL(NULL,NULL) as DECIMAL)" unreported
 crash)
(new revampled fix with suggestions from Igor)
2005-08-29 15:45:03 +02:00
timour@mysql.com
f58315f80a Test for BUG#6495.
The bug itself is fixed by WL#2486.
2005-08-23 22:29:05 +03:00
timour@mysql.com
5f9d05d306 Test for BUG#4889 - inconsistent resilts of more than 2-way natural join
due to incorrect transformation to JOIN ... ON.

The bug itself is fixed by WL#2486.
2005-08-23 20:24:29 +03:00
timour@mysql.com
9a6aefab3a Fix for BUG#6276. 2005-08-23 20:03:32 +03:00
timour@mysql.com
2f2347e556 Test case for BUG#10972 - Natural join of view and underlying table gives wrong result.
The bug itself is fixed by WL#2486.
2005-08-23 19:00:28 +03:00
timour@mysql.com
f5655423aa Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-2486
2005-08-23 18:43:12 +03:00
timour@mysql.com
bf8563ae1d Merge mysql.com:/home/timka/mysql/src/5.0-virgin
into  mysql.com:/home/timka/mysql/src/5.0-2486
2005-08-23 18:15:51 +03:00
timour@mysql.com
e040300393 WL#2486 - natural and using join according to SQL:2003
* Provide backwards compatibility extension to name resolution of
  coalesced columns. The patch allows such columns to be qualified
  with a table (and db) name, as it is in 4.1.
  Based on a patch from Monty.

* Adjusted tests accordingly to test both backwards compatible name
  resolution of qualified columns, and ANSI-style resolution of
  non-qualified columns.
  For this, each affected test has two versions - one with qualified
  columns, and one without.
2005-08-23 18:08:04 +03:00
timour@mysql.com
310afc80dd Test case for BUG#10646
The bug itself is fixed by WL #2486.
2005-08-22 17:34:08 +03:00
timour@mysql.com
c04138ec94 Test case for BUG#6558 - Views: create fails with JOIN ... USING
The bug is non-view specific, and it resulted from incorrect
name resolution of natural join result columns. The bug is
fixed by WL#2486.
2005-08-22 17:04:55 +03:00
evgen@moonbone.local
f5f6ed8b78 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/11398-bug-5.0-mysql
2005-08-22 15:46:09 +04:00
jimw@mysql.com
15f97778ff Revert patch for Bug #12595, it causes the sql_mode test to fail. 2005-08-17 19:56:14 -07:00
timour@mysql.com
a55786ca70 WL#2486 - natural and using join according to SQL:2003
- fixed a problem with RIGHT JOIN ON and enabled corresponding tests in select.test
- fixed a memory leak
2005-08-17 17:19:31 +03:00
evgen@moonbone.local
eb6135a765 Fix bug #11398 Bug in field_conv() results in wrong result of join with index
When copying varchar fields with field_conv() it's not taken into account
that length_bytes of source and destination fields may be different.
This results in saving wrong data in field and making wrong key later.

Added check so if fields are varchar and have different length_bytes they
are not copied by memcpy().
2005-08-16 22:13:43 +04:00
andrey@lmy004.
a7a762e27d fix for bug #12595 (Escape character has to be exactly one) 2005-08-16 15:39:40 +02:00
timour@mysql.com
a247282aa6 Implementation of WL#2486 -
"Process NATURAL and USING joins according to SQL:2003".

* Some of the main problems fixed by the patch:
  - in "select *" queries the * expanded correctly according to
    ANSI for arbitrary natural/using joins
  - natural/using joins are correctly transformed into JOIN ... ON
    for any number/nesting of the joins.
  - column references are correctly resolved against natural joins
    of any nesting and combined with arbitrary other joins.

* This patch also contains a fix for name resolution of items
  inside the ON condition of JOIN ... ON - in this case items must
  be resolved only against the JOIN operands. To support such
  'local' name resolution, the patch introduces a stack of
  name resolution contexts used at parse time.

NOTICE:
- This patch is not complete in the sense that
  - there are 2 test cases that still do not pass -
    one in join.test, one in select.test. Both are marked
    with a comment "TODO: WL#2486".
  - it does not include a new test specific for the task
2005-08-12 17:57:19 +03:00
monty@mysql.com
b3cbd0048f Cleanups during review of new code
Ensure mysql_close() is called if mysql_set_character_set() fails
2005-07-28 16:10:14 +03:00
jimw@mysql.com
63c6ece728 Cleanups after merge from 4.1. 2005-07-19 16:32:38 -07:00
jimw@mysql.com
80c1c6b33f Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2005-07-19 11:05:49 -07:00
monty@mishka.local
7e83d09ce7 Simple fixes during review of new code 2005-07-19 19:25:05 +03:00
konstantin@mysql.com
52b8928b09 Merge mysql.com:/home/kostja/mysql/mysql-4.1-root
into  mysql.com:/home/kostja/mysql/mysql-5.0-merge
2005-07-19 00:55:37 +04:00
igor@rurik.mysql.com
54dd7e5ebf select.result, select.test:
Added a test case for bug #11745.
sql_select.cc:
  Fixed bug # 11745.
  Added support of where clause for queries with FROM DUAL.
sql_yacc.yy:
  Fixed bug # 11745.
  Added optional where clause for queries with FROM DUAL.
2005-07-17 09:46:14 -07:00
konstantin@mysql.com
8e72214d74 Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/media/sda1/mysql/mysql-5.0-merge
2005-07-16 13:45:32 +04:00
timour@mysql.com
ff0c7f22cf Added test for Bug #11521
"Negative integer keys incorrectly substituted for 0 during range analysis."

The problem is that the range optimizer incorrectly replaces any negative
constant with '0' for all types except BIGINT because the method save_in_field()
casts negative integers to non-negative. This causes incorrect query
results where (0 = any_negative_number).

The problem caused by this bug is fixed by the patch for BUG#11185.
That patch constitutes an optimization due to which the problem code is
never called with negative constants. This patch adds a test so we are sure
that the problem does not reappear.
2005-07-16 10:30:25 +03:00
evgen@moonbone.local
0298bc347a Fix bug#11482 4.1.12 produces different resultset for a complex query
than in previous 4.1.x

Wrongly applied optimization were adding NOT NULL constraint which results in
rejecting valid rows and reduced result set.

The problem was that add_notnull_conds() while checking subquery were adding
NOT NULL constraint to left joined table, to which, normally, optimization 
don't have to be applied.
2005-07-16 03:29:12 +04:00
konstantin@mysql.com
3f28ad8eb7 Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/opt/local/work/mysql-5.0-root
2005-07-14 20:02:32 +04:00
sergefp@mysql.com
e1273aec6d Fix for BUG#11700: in add_not_null_conds(), call full fix_fields() for the created NOT NULL.
This is needed because in some cases range optimization is performed twice and added 
  NOT NULL item must have correct const_table_map() value.
2005-07-14 15:13:36 +00:00
monty@mysql.com
75ff7d8085 After merge fixes
Better fix for ON DUPLICATE KEY UPDATE
2005-07-04 03:24:25 +03:00
monty@mysql.com
86d7b02199 Merge with 4.1 2005-07-03 14:17:52 +03:00
bell@sanja.is.com.ua
9283e3e3e8 fixed not_null_tables() for IN() (BUG#9393)
(IN() remove NULL rows only for tables from first argument (value which we looking for in IN() list) but not for tables from IN() list)
Also it will be better change Item::not_null_tables() to prohibit this optimisation by default for new created items in 5.0 or 5.1.
2005-06-28 22:20:25 +03:00
msvensson@neptunus.(none)
88c96026af Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/bug10466
2005-06-27 13:12:10 +02:00
msvensson@neptunus.(none)
6282d89b0a bug#10466: Datatype "timestamp" displays "YYYYMMDDHHMMSS" irrespective of display sizes.
- Print warning that says display width is not supported for datatype TIMESTAMP, if user tries to create a TIMESTAMP column with display width.
 - Use display width for TIMESTAMP only in type_timestamp test to make sure warning is displayed correctly.
2005-06-20 12:09:00 +02:00
ramil@mysql.com
22646589b6 a fix (bug #10650: Bit literal case sensitivity). 2005-06-16 12:17:15 +05:00
igor@rurik.mysql.com
e093250d5d select.test, select.result:
Added a test case for bug #10084.
sql_yacc.yy:
  Fixed bug #10084: STRAIGHT_JOIN for expressions with ON was
  added.
2005-06-09 09:16:16 -07:00
joerg@mysql.com
76b25fc194 Corrected merge error in 'mysql-test/r/select.result': two test blocks inserted in wrong order. 2005-05-26 16:47:44 +02:00
joerg@mysql.com
9504bd0ddd Manual merge. 2005-05-26 12:51:44 +02:00
jani@ua141d10.elisa.omakaista.fi
5254d52cb6 Added a test case for Bug#8009. 2005-05-24 17:50:17 +03:00
serg@serg.mylan
ade7854b4a after merge 2005-05-19 20:54:37 +02:00
serg@serg.mylan
23a59c9857 merged 2005-05-19 15:20:10 +02:00
serg@serg.mylan
541ff258bf after merge fix 2005-05-19 09:47:13 +02:00
serg@serg.mylan
8044488d7c merged 2005-05-18 22:14:08 +02:00
sergefp@mysql.com
f08287f386 Fix for BUG#10095: {wrong query results because of incorrect constant propagation}
The problem: base_list::remove didn't modify base_list::last when removing 
the last list element.
The fix: If we remove the last element, find the element before it (by walking
from the beginning of the list) and set base_list::last accordingly.

The list gets corrupted in both 4.0 and 4.1. There are no visible problems in 
current 4.1 because current 4.1 doesn't call where_cond->fix_fields() after 
constant propagation step.
2005-05-15 22:56:45 +02:00
monty@mysql.com
9db45adb60 Merge with 4.1 2005-05-14 18:31:22 +03:00
monty@mysql.com
b54d7d04bd Fixes during review 2005-05-13 14:04:32 +03:00
jimw@mysql.com
cde9f56b45 Merge 2005-05-09 11:28:57 -07:00
antony@ltantony.mysql.com
cc3bfc6ff1 Bug#8733 - server accepts malformed query (multiply mentioned distinct)
Detect conflicting options in SELECT
2005-05-09 14:31:46 +01:00
jani@ibmlab.site
56a98396ab Fixed bugs 9820, 9799 and 9800. 2005-05-06 17:32:46 +03:00
holyfoot@hf-ibm.(none)
8f3647005c Tests and results fixed with last precision/decimal related modifications 2005-05-06 01:01:39 +05:00
jimw@mysql.com
5865330a9e Merge embedded server testing changes from 4.1. 2005-04-01 19:17:15 -08:00
jimw@mysql.com
16efc3e333 Merge embedded-server testing changes. 2005-04-01 16:43:35 -08:00
jimw@mysql.com
aa4f352230 Remove result.es files and support for them, which requires splitting
up a couple of tests and adjusting the output of others. Exposes two
bugs (9472 and 9508).
2005-03-30 17:32:44 -08:00
acurtis@pcgem.rdg.cyberkinetica.com
1a64fe066d Bug#8670
Rework to resolve ambigious grammer: conflict in join expression
  handling of parentheses for nested joins and derived tables.
  Tests included of failing statements
Optimize item construction for AND/OR logical expressions
2005-03-16 00:13:23 +00:00
timour@mysql.com
b9c56257bb Merge 2005-03-10 13:59:48 +02:00
timour@mysql.com
f489e56291 Fix for BUG#7425.
The reported problems were due to two completely unrelated omissions.
1) The file sort procedure didn't correctly create the sort key in
   make_sortkey when the sortkey was an unsigned integer.
2) The name resolution procedure for column references inside a HAVING
   clause did not propagate the unsigned_flag of the resolved references.
This patch corrects both problems.
2005-03-09 16:51:03 +02:00
igor@rurik.mysql.com
5a3806e5df Manual merge 2005-02-17 00:34:06 -08:00
igor@rurik.mysql.com
eedde7ba3e select.result, select.test:
Added a test case for bug #7098.
sql_select.cc:
  Fixed bug #7098.
  When a string field was substituted for an equal constant
  the collation of the constant was changed by mistake for 
  the binary collation.
2005-02-16 21:17:20 -08:00
igor@rurik.mysql.com
634424ca16 select.result:
After revision of the fix for bug #7520.
table.cc:
  Revised the fix for bug #7520.
  Made it compliant with 5.0 code where the bug does not exist.
2005-02-11 10:39:26 -08:00
ingo@mysql.com
601a4fdfa2 Merge 2005-02-11 11:59:35 +01:00
igor@rurik.mysql.com
4ef431ad55 select.result:
Adjusted results of the test case for bug #7520 for 4.1.
2005-02-10 23:47:57 -08:00
igor@rurik.mysql.com
06ff30f6c0 Merge rurik.mysql.com:/home/igor/dev/mysql-4.0-0
into rurik.mysql.com:/home/igor/dev/mysql-4.1-0
2005-02-10 22:17:18 -08:00
igor@rurik.mysql.com
8b3d59ad42 select.result, select.test:
Added a test case for bug #7520.
table.cc:
  Fixed bug #7520.
  The bug was caused by a wrong calculation of the field max_key_length for
  a TABLE structure when there was an index on a blob field.
2005-02-10 22:15:38 -08:00
hf@deer.(none)
b94a482ee9 Precision Math implementation 2005-02-09 02:50:45 +04:00
monty@mysql.com
7cf8285b3f After merge fixes
Add support for warnings for prepare of prepared statements
Fixed test to work with --ps-protocol
Fixed some test results
2005-01-04 13:46:53 +02:00
gluh@gluh.mysql.r18.ru
2e912bbbe8 Don't display 'usage' privilege in TABLE_PRIVILEGES if we have columns privileges
mysqldump skips information_schema db
'use' now can use information_schema db
changed value of column 'Null' to 'NO' if column is not nullable
2004-12-10 12:07:11 +03:00
monty@mysql.com
77207d19f2 Merge with new VARCHAR code 2004-12-06 19:18:35 +02:00
monty@mysql.com
67ce247965 Add support for up to VARCHAR (size up to 65535)
Renamed HA_VAR_LENGTH to HA_VAR_LENGTH_PART
Renamed in all files FIELD_TYPE_STRING and FIELD_TYPE_VAR_STRING to MYSQL_TYPE_STRING and MYSQL_TYPE_VAR_STRING to make it easy to catch all possible errors
Added support for VARCHAR KEYS to heap
Removed support for ISAM
Now only long VARCHAR columns are changed to TEXT on demand (not CHAR)
Internal temporary files can now use fixed length tables if the used VARCHAR columns are short
2004-12-06 02:00:37 +02:00
serg@serg.mylan
b460059988 merged 2004-11-28 20:42:04 +01:00
serg@serg.mylan
cb538e45f5 post-merge fix 2004-11-28 19:48:41 +01:00
serg@serg.mylan
96729c62be merged 2004-11-28 18:19:01 +01:00
monty@mysql.com
eb304bd49f Fixes while reviewing code
(Cleanups and better bug fixes)
2004-11-26 02:31:22 +02:00
timour@mysql.com
38ab93c6be Merge for BUG#3759 which was missing from the main tree for some reason. 2004-11-25 11:37:28 +02:00
serg@serg.mylan
e68bd85b77 merged 2004-11-17 18:04:36 +01:00
ram@gw.mysql.r18.ru
dde88ea82b A fix (bug #6449: DO server-crashing bug). 2004-11-16 14:36:25 +04:00
igor@rurik.mysql.com
597781c1b1 select.result, select.test:
Added test cases for bug #6474.
sql_select.cc:
  Fixed bug #6474. A wrong result was returned when a query
  contained the same equality of the form field=const on
  different AND levels.
2004-11-10 11:22:39 -08:00
monty@mysql.com
afbe601302 merge with 4.1 2004-10-29 19:26:52 +03:00
igor@rurik.mysql.com
a03e5ad8e4 Merge for post-merge fixes for Item_equal patch. 2004-10-19 16:07:10 -07:00
bell@sanja.is.com.ua
29593da2f6 showing table type now is controled by new parameter 'FULL' of SHOW TABLES command (SHOW FULL TABLES) (as it was decided on last dev conf) 2004-10-10 13:15:14 +03:00
igor@rurik.mysql.com
71f6ab7a09 Merge for Item_equal. 2004-10-09 10:34:13 -07:00
monty@mysql.com
6239edc1d1 After merge fixes
Some bigger code changes was necessary becasue of the multi-table-update and the new HANDLER code
2004-10-07 10:50:13 +03:00
monty@mishka.local
be4ca46fbe More fixes for strict mode:
More tests.
Better error messages.
Fixed bug when checking if we updated all needed columns for INSERT.
Give an error if we encounter a wrong float value during parsing.
Don't print DEFAULT for columns without a default value in SHOW CREATE/SHOW FIELDS.
Fixed UPDATE IGNORE when using STRICT mode.
2004-10-02 22:20:08 +03:00
monty@mishka.local
f2941380c4 Strict mode & better warnings
Under strict mode MySQL will generate an error message if there was any conversion when assigning data to a field.
Added checking of date/datetime fields.
If strict mode, give error if we have not given value to field without a default value (for INSERT)
2004-09-28 20:08:00 +03:00
serg@serg.mylan
0afcaac5a8 after merge 2004-09-07 22:10:15 +02:00
serg@serg.mylan
323e683cbf merged 2004-09-07 21:30:28 +02:00
igor@rurik.mysql.com
f888026fdc select.result, select.test:
Added a test case for bug #5333.
null_key.result, key_primary.result:
  Made covering index usable for const tables.
sql_select.cc:
  Made covering index usable for const tables:
  downported the corresponding code from 4.1.
  Simultaneously fixed bug #5333 reported for 4.1.
  The bug was due to the fact that field index in join
  structures was always set to 0 for const tables.
2004-09-02 22:06:30 -07:00
timour@mysql.com
61eff52d23 added test for BUG#3759 2004-08-30 18:14:29 +03:00
bell@sanja.is.com.ua
1e3f10a4b1 mark subquery in the FROM clause like derived and quoate all identifiers (BUG#4609) 2004-07-20 08:48:28 +03:00
bell@sanja.is.com.ua
c5a84657a8 standard values for table type in SHOW TABLES (BUG#4603) 2004-07-19 12:07:33 +03:00
bell@sanja.is.com.ua
9336d36cf8 VIEW
two TABLE_LIST copy eliminated
2004-07-16 01:15:55 +03:00
monty@mysql.com
5b3c418b48 After merge fixes
Note: The following tests fails
- fulltext (Sergei has promised to fix)
- rpl_charset (Guilhem should fix)
- rpl_timezone (Dimitray has promised to fix)

Sanja needs to check out the calling of close_thread_tables() in sp_head.cc
2004-07-15 04:19:07 +03:00
monty@mysql.com
1e31199995 Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
igor@rurik.mysql.com
d70f886f17 subselect2.result, select.result:
Post-merge fixes for nested joins.
  The join_tab_cmp function in sql_select has been changed.
join_nested.result:
  Post-merge fixes for nested joins. 
  The join_tab_cmp function in sql_select has been changed
sql_select.cc:
  Post-merge fixes for nested joins.
  Avoided re-execution of eliminate_not_funcs and simplify_joins
  in optimize_cond.
  Changed the join_tab_cmp function to take into account
  the dependent relation.
sql_lex.cc, sql_lex.h:
  Added the first_cond_optimization flag to st_select_lex to avoid
  re-execution of some optimizations in optimize_cond.
sql_base.cc:
  Post-merge fixes for nested joins. 
  Fixed problems with a proper column list substituted for '*' in
  queries with natural joins.
2004-06-30 05:54:32 -07:00
igor@rurik.mysql.com
64d46dfe9b After merge fix 2004-06-25 06:48:10 -07:00
sergefp@mysql.com
f874071a26 Range optimizer fix:
If cost(full_scan_on_shortest_covering_index) < cost(best_range_scan) <  cost(full_table_scan)
  use full_scan_on_shortest_covering_index
(before this fix best_range_scan was used)
2004-06-22 04:47:28 +04:00
dlenev@brandersnatch.localdomain
09ba29e539 WL#1264 "Per-thread time zone support infrastructure".
Added basic per-thread time zone functionality (based on public
domain elsie-code). Now user can select current time zone
(from the list of time zones described in system tables).
All NOW-like functions honor this time zone, values of TIMESTAMP
type are interpreted as values in this time zone, so now
our TIMESTAMP type behaves similar to Oracle's TIMESTAMP WITH
LOCAL TIME ZONE (or proper PostgresSQL type).
  
WL#1266 "CONVERT_TZ() - basic time with time zone conversion 
function".
  
Fixed problems described in Bug #2336 (Different number of warnings 
when inserting bad datetime as string or as number). This required
reworking of datetime realted warning hadling (they now generated 
at Field object level not in conversion functions).
  
Optimization: Now Field class descendants use table->in_use member
instead of current_thd macro.
2004-06-18 10:11:31 +04:00
igor@rurik.mysql.com
356cbe4fa2 join_nested.test, join_nested.result:
new file
Many files:
  Nested joins added.
2004-06-10 22:27:21 -07:00
pem@mysql.com
71eddc362e Merging 4.1 to 5.0. 2004-05-26 17:04:45 +02:00
bell@sanja.is.com.ua
4c774e0c18 fixed flags of printed query 2004-05-13 23:47:20 +03:00
timour@mysql.com
f3dab7be12 Merge of WL#1469 with latest bk sources. 2004-05-11 12:15:58 +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
ram@gw.mysql.r18.ru
fd01314cc8 Fix for the bug #2976: NATURAL JOIN produces duplicate columns.
Improvement natural join code in the setup_conds().
2004-03-19 12:36:55 +04:00
igor@rurik.mysql.com
09fa16424a Many files:
After review fixes for Item_equal.
2004-02-18 22:21:37 -08:00
monty@mysql.com
ce14578909 Merge with 4.0.18 2004-02-11 00:06:46 +01:00
ram@gw.mysql.r18.ru
e515d7018f a proper fix for the bug #2298 Trailing whitespace inconsistently handled in WHERE clause.
<monty> ramil, in MySQL/MyISAM we should only strip end space, not 'space-like' characters.
<monty> This is according to SQL;  When doing a comparision end space and only end space are ignored.
2004-01-22 18:05:47 +04:00
igor@rurik.mysql.com
c236568ac9 Auto Merge 2003-12-23 02:24:12 -08: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
igor@rurik.mysql.com
580b878562 The output of explain command for some queries has changed
after introducing Item_equal.
2003-12-02 16:41:53 -08:00
monty@narttu.mysql.fi
4e4725377d Merge with 4.0 2003-11-04 09:40:36 +02:00
konstantin@mysql.com
0143e48568 fix for bug #1724 'WHERE ... IN() optimizer behaviour
has changed since 4.0.14'
We need to calculate cost of RANGE
scan if it is present instead of cost of 
FULL scan.
2003-11-03 19:56:01 +03:00
bell@sanja.is.com.ua
33346e26af added code covarage for functions convert(), nullif(), crc32(), is_used_lock(), char_lengtrh(), bit_xor()
added string length for more speed
made code covarage for print() method of Item
fixed printability of some items (SCRUM) (WL#1274)
2003-10-30 12:57:26 +02:00
monty@narttu.mysql.fi
6056cfadfc Merge with 4.0.16 2003-10-07 15:42:26 +03:00
kostja@oak.local
668e7dcec8 select.test cleanup 2003-09-16 20:28:29 +04: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
serg@serg.mylan
4e22494ebf outer join, impossible on condition, where, and usable key for range
bug#926
2003-07-25 14:32:03 +02:00
monty@mashka.mysql.fi
7655f05dc2 LEFT JOIN optimization: Change LEFT JOIN to normal join if possible 2003-06-26 05:38:19 +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
bar@bar.mysql.r18.ru
a238efaa63 SHOW FIELDS changes, more SQL99 INFORMATION_SCHEMA.COLUMNS compatibility:
Character set is not displayed in "Type" column anymore
In "Collation" column NULL instead of BINARY is now displayd for for non-character data types
2003-05-23 13:10:25 +05:00
monty@narttu.mysql.fi
dd2b7918cd Merge with 4.0.13 2003-05-19 16:35:49 +03:00
monty@mashka.mysql.fi
bf6cfd2948 Fix for -fbranch-probabilites (bug 268)
Fix for LEFT/RIGHT/MID with multi-byte-character sets (bug 314)
Fix for new bison 1.875
max_insert_delayed_threads and delayed_insert_timeout now works as documented (bug 211)
Don't show port in SHOW PROCESSLIST for system threads
Fix problem with ORDER BY being discarded for some DISTINCT queries (bug 275)
Fixed bug with NATURAL LEFT JOIN, NATURAL RIGHT JOIN and RIGHT JOIN when
using many joined tables (Bug 212)
2003-04-26 20:43:28 +03:00
bar@bar.mysql.r18.ru
83cbc2838a Some collation have been renamed to fit into convension 2003-04-01 18:54:01 +05:00
monty@narttu.mysql.fi
a434bca704 Merge with 4.0 2003-03-16 19:17:54 +02:00
serg@serg.mysql.com
214b2c5363 make test result more obvious 2003-03-13 14:40:13 +01:00
serg@serg.mysql.com
a069d93f30 test result updated after merge 2003-03-13 14:34:07 +01:00
monty@mashka.mysql.fi
987f4c4d8b Fixed AUTO_INCREMENT handling in MyISAM (last auto_increment patch broke things)
Some after merge fixes
2003-03-07 12:36:52 +02:00
monty@mashka.mysql.fi
7e9b27eaf5 Updates for multi-byte character sets
(Note: test 'union' fails, but Sanja promised to fix this)
2003-01-14 14:28:36 +02:00
bar@bar.mysql.r18.ru
a89df5a096 Separating CHARSET and COLLATION terms 2003-01-09 15:37:59 +04: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
d783e18436 merge 2002-12-14 17:49:01 +02:00
monty@mashka.mysql.fi
d49167bae5 Fixes for binary protocol (complement to last push)
Changed timestamp to return string in YYYY-MM-DD HH:MM:SS format.
DATE_ADD() and related functions now returns correct DATE/DATETIME type depending on argument types.
Now all tests passes, still some work left to remove warnings in log files from mysql-test-run
2002-12-14 17:43:01 +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
vva@eagle.mysql.r18.ru
b624df724b add VARIANCE function 2002-12-14 03:36:59 +04:00
serg@serg.mysql.com
b42eff16cb bulk insert code optimized 2002-12-07 22:40:20 +01:00
monty@mashka.mysql.fi
859b688476 Merge with 4.0.6 2002-12-05 19:38:42 +02:00
Sinisa@sinisa.nasamreza.org
dd2012067e A fix for the bug in a SELECT with joined tables with ORDER BY and
LIMIT clause when filesort had to be used.

In that case LIMIT was applied to filesort of one of the tables, 
although it could not be.

This fix solved problems with LEFT JOIN too...
2002-12-04 15:27:08 +02:00
monty@mashka.mysql.fi
806294c573 Fixes after merge with 4.0 2002-11-21 22:25:53 +02:00
monty@mashka.mysql.fi
dac6498f9b Merge with 4.0 2002-11-21 15:56:48 +02:00
serg@serg.mysql.com
3feb6bd17c results fixed 2002-11-09 19:57:13 +01: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
e37639814b merge 2002-10-17 11:39:11 +03:00
monty@hundin.mysql.fi
fbf6ab4465 merge with 4.0.5 2002-10-16 19:30:24 +03:00
pem@mysql.com
3c1a311348 SCRUM Task 430: Allowing braces in joins by simply removing them.
Fixed the remaining join variations, (left, right, natural, etc).
(Previous fix only solved "," and "[cross] join".)
2002-10-15 16:33:06 +02:00
pem@mysql.com
8bd61c3fce Task 430: Allowing braces in joins by simply removing them.
This is a simple fix, allowing a join_table_list in the right reduction of a
normal_join sequence, instead of just a join_table. This makes things like
"t1, (t2 left join t3)" work, but it also allows "join" and "cross join" instead
of ",".

This should fix the bug reported as:
  Subject: ODBC SQL syntax issue 
  From: Ivan Vazharov 
  Date: Mon, 30 Sep 2002 12:02:42 +0200
2002-10-12 11:07:54 +02:00
Sinisa@sinisa.nasamreza.org
97990887cb SCRUM task 2002-10-11 21:49:10 +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
monty@mashka.mysql.fi
0f39457613 Merge with 4.0.4 2002-10-02 17:55:12 +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
monty@mashka.mysql.fi
a01a0840dc Some trivial optimzations
Check if AND/OR expression can be NULL; Fixed bug in GROUP BY and-or-expression where expression could be NULL
Bug fix for SHOW OPEN TABLES when user didn't have privilege to access all open tables.
Better fix for ALTER TABLE on BDB tables.
2002-09-03 15:44:25 +03:00
monty@narttu.mysql.fi
7134ffec21 Merge with 4.0.3
Some simple optimzations, more comments and indentation changes.
Add ` around database in 'use database' in binary log.
Moved max_error_count and max_warning_count to variables struct.
Removed SHOW_WARNS_COUNT and SHOW_ERRORS_COUNT calls.
Changed string functions to use character set of first string argument as default return characterset
(Each string function can change the above assumption if needed)
2002-08-30 12:40:40 +03:00
monty@hundin.mysql.fi
b9d7fcd279 Fixed bug in SAFEMALLOC for systems that requires longlong data to be aligned on 8 byte boundaries (like sparc)
Removed thread marking of safemalloc blocks (becasue of alignment problems)
Temporary fix for bigint comparison.
2002-08-17 05:18:06 +03:00
Sinisa@sinisa.nasamreza.org
c7f86c3373 A fix for bigints with quoted constants ..
Same princpile can be applied to other expressions
2002-08-16 20:31:48 +03:00
Sinisa@sinisa.nasamreza.org
eab0de7ce6 A fix for a bug which hits the optimiser when trying to group keys
for a seemingly impoosbile conds in WHERE....

This crashed MySQL in 4.0.2
2002-06-15 14:56:35 +03:00
bar@gw.udmsearch.izhnet.ru
1a91646854 Charset of any string field now can be specified during CREATE TABLE 2002-06-07 17:23:33 +05:00
monty@hundin.mysql.fi
920a409ce9 Update results for new SHOW FULL COLUMNS
Portability fixes
2002-06-04 11:32:33 +03:00
monty@hundin.mysql.fi
d36ac6b669 Fix some bugs introduced with the new my_getopt
Added counting of rollback's and commits
Fixed bug in 'SELECT 0 LIMIT 0'
Fixed bug in 'SELECT SQL_CALC_FOUND_ROWS'
2002-02-08 03:21:34 +02:00
monty@hundin.mysql.fi
4b877e0088 Added macros for nice TIMESPEC usage.
Fixes for building MySQL with gcc 3.0
Added SIGNED / UNSIGNED casts
Fixed core dump bug in net_clear() with libmysqld.
Back to using semaphores in query cache.
Added 'Null' and 'Index_type' to SHOW INDEX.
2002-01-02 21:29:41 +02:00
monty@hundin.mysql.fi
cb754eb5aa Fix after merge 2001-12-17 23:24:51 +02:00
sasha@mysql.sashanet.com
bb66c80aeb client/mysqlmanagerc.c
added support for quiet
    increased line buffer size
client/mysqltest.c
    fixed memory leak
    added query logging to result file
    added error message logging to result file
    added enable_query_log/disable_query_log
mysql-test/mysql-test-run.sh
    converted tests to use mysqlmanager

Updated test results
2001-09-27 23:05:54 -06:00
monty@hundin.mysql.fi
59e7c97dab Remove warnings and portability fixes
New global read lock code
Fixed bug in DATETIME with WHERE optimization
Made UNION code more general.
2001-08-14 20:33:49 +03:00
monty@donna.mysql.com
92ae142a1a Fixed typos from prev changeset 2001-01-21 16:59:02 +02:00
monty@donna.mysql.com
9ff59511a5 Cleanup of tests to make them less dependent of eachother
Added new big select test
2001-01-03 02:15:48 +02:00