Commit graph

89 commits

Author SHA1 Message Date
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
15d48525af Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0
2005-07-28 17:09:54 +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
monty@mysql.com
3c12d0ae54 Added end marker for tests to make future merges easier 2005-07-28 03:22:47 +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
evgen@moonbone.local
0fda7038f9 select.test:
Changed test case comment to be more meaningful
2005-07-18 19:34:29 +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
f39f049041 Merge 2005-05-26 12:55:31 +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
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
b54d7d04bd Fixes during review 2005-05-13 14:04:32 +03: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
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
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
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
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
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
ram@gw.mysql.r18.ru
dde88ea82b A fix (bug #6449: DO server-crashing bug). 2004-11-16 14:36:25 +04:00
monty@mysql.com
6fbc869d18 A lot of fixes for prepared statements (PS):
New mysqltest that can run mysqltest with PS
Added support for ZEROFILL in PS
Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
Updated test cases to support --ps-protocol
(Some tests are still run using old protocol)
Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
Fixed crash in PS when using sub queries
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new PS query
group_concat(...ORDER BY) didn't work with PS
Fixed problem with test suite when not using innodb
2004-10-26 19:30:01 +03:00