An error occurred fetching the project authors.
  1. 24 Mar, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#48483 crash in get_best_combination() · bccf219b
      Sergey Glukhov authored
      The crash happens because greedy_serach
      can not determine best plan due to
      wrong inner table dependences. These
      dependences affects join table sorting
      which performs before greedy_search starting.
      In our case table which has real 'no dependences'
      should be put on top of the list but it does not
      happen as inner tables have no dependences as well.
      The fix is to exclude RAND_TABLE_BIT mask from
      condition which checks if table dependences
      should be updated.
      
      
      mysql-test/r/join.result:
        test result
      mysql-test/t/join.test:
        test case
      sql/sql_select.cc:
        RAND_TABLE_BIT mask should not be counted as it
        prevents update of inner table dependences.
        For example it might happen if RAND() function
        is used in JOIN ON clause.
      bccf219b
  2. 25 Feb, 2010 1 commit
    • Alexey Kopytov's avatar
      Bug #50335: Assertion `!(order->used & map)' in eq_ref_table · 9201bff1
      Alexey Kopytov authored
       
      The problem was in an incorrect debug assertion. The expression 
      used in the failing assertion states that when finding 
      references matching ORDER BY expressions, there can be only one 
      reference to a single table. But that does not make any sense, 
      all test cases for this bug are valid examples with multiple 
      identical WHERE expressions referencing the same table which
      are also present in the ORDER BY list. 
       
      Fixed by removing the failing assertion. We also have to take 
      care of the 'found' counter so that we count multiple 
      references only once. We rely on this fact later in 
      eq_ref_table(). 
      
      mysql-test/r/join.result:
        Added a test case for bug #50335.
      mysql-test/t/join.test:
        Added a test case for bug #50335.
      sql/sql_select.cc:
        Removing the assertion in eq_ref_table() as it does not make
        any sense. We also have to take care of the 'found' counter so 
        that we count multiple references only once. We rely on this 
        fact later in eq_ref_table().
      9201bff1
  3. 10 Feb, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#45195 valgrind warnings about uninitialized values in store_record_in_cache() · f2aee237
      Sergey Glukhov authored
      The problem becomes apparent only if HAVE_purify is undefined.
      It related to the part of code placed in open_table_from_share() fuction
      where we initialize record buffer only if HAVE_purify is enabled.
      So in case of HAVE_purify=OFF record buffer is not initialized
      on open table stage.
      Next we read key, find NULL value and update appropriate null bit
      but do not update record buffer. After that the record is stored
      in the join cache(store_record_in_cache). For CHAR fields we
      strip trailing spaces and in our case this procedure uses
      uninitialized record buffer.
      The fix is to skip stripping space procedure in case of null values
      for CHAR fields(partially based on 6.0 JOIN_CACHE implementation).
      
      
      mysql-test/r/join.result:
        test case
      mysql-test/t/join.test:
        test case
      sql/field.cc:
        code updated according to new CACHE_FIELD struct
      sql/sql_select.cc:
        code updated according to new CACHE_FIELD struct
      sql/sql_select.h:
        CACHE_FIELD struct:
        added new fields: Field *field, uint type;
        removed fields: Field_blob *blob_field, bool strip;
      f2aee237
  4. 29 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #42116 : Mysql crash on specific query · ac373248
      Georgi Kodinov authored
      Queries with nested outer joins may lead to crashes or 
      bad results because an internal data structure is not handled
      correctly.
      The optimizer uses bitmaps of nested JOINs to determine
      if certain table can be placed at a certain place in the
      JOIN order.
      It does maintain a bitmap describing in which JOINs 
      last placed table is nested.
      When it puts a table it makes sure the bit of every JOIN that
      contains the table in question is set (because JOINs can be nested).
      It does that by recursively setting the bit for the next enclosing
      JOIN when this is the first table in the JOIN and recursively 
      resetting the bit if it's the last table in the JOIN.
      When it removes a table from the join order it should do the
      opposite : recursively unset the bit if it's the only remaining 
      table in this join and and recursively set the bit if it's removing
      the last table of a JOIN.
      There was an error in how the bits was set for the upper levels :
      when removing a table it was setting the bit for all the enclosing 
      nested JOINs even if there were more tables left in the current JOIN
      (which practically means that the upper nested JOINs were not affected).
      Fixed by stopping the recursion at the relevant level.
      
      mysql-test/r/join.result:
        Bug #42116: test case
      mysql-test/t/join.test:
        Bug #42116: test case
      sql/sql_select.cc:
        Bug #41116: don't go up and set the bits if more tables in
        at the current JOIN level
      ac373248
  5. 23 Oct, 2009 1 commit
  6. 29 Sep, 2009 1 commit
    • Sergey Glukhov's avatar
      Bug#47150 Assertion in Field_long::val_int() on MERGE + TRIGGER + multi-table UPDATE · 5f8bb5c5
      Sergey Glukhov authored
      The bug is not related to MERGE table or TRIGGER. More correct description
      would be 'assertion on multi-table UPDATE + NATURAL JOIN + MERGEABLE VIEW'.
      On PREPARE stage(see test case) we call mark_common_columns() func which
      creates ON condition for NATURAL JOIN and sets appropriate
      table read_set bitmaps for fields which are used in ON condition.
      On EXECUTE stage mark_common_columns() is not called, we set
      necessary read_set bitmaps in setup_conds(). But 'B.f1' field
      is already processed and related item alredy fixed before
      setup_conds() as updated field and setup_conds can not set
      read_set bitmap because of that.
      The fix is to set read_set bitmap for appropriate table field even
      if Item_direct_view_ref item which represents a refernce to this field
      is fixed.
      
      
      
      mysql-test/r/join.result:
        test result
      mysql-test/t/join.test:
        test case
      sql/item.cc:
        The bug is not related to MERGE table or TRIGGER. More correct description
        would be 'assertion on multi-table UPDATE + NATURAL JOIN + MERGEABLE VIEW'.
        On PREPARE stage(see test case) we call mark_common_columns() func which
        creates ON condition for NATURAL JOIN and sets appropriate
        table read_set bitmaps for fields which are used in ON condition.
        On EXECUTE stage mark_common_columns() is not called, we set
        necessary read_set bitmaps in setup_conds(). But 'B.f1' field
        is already processed and related item alredy fixed before
        setup_conds() as updated field and setup_conds can not set
        read_set bitmap because of that.
        The fix is to set read_set bitmap for appropriate table field even
        if Item_direct_view_ref item which represents a refernce to this field
        is fixed.
      5f8bb5c5
  7. 06 Oct, 2008 1 commit
  8. 24 Sep, 2008 1 commit
    • Chad MILLER's avatar
      Bug#35754: mysql_install_db does not work if no hostname is set · 392ff10e
      Chad MILLER authored
      Machines with hostname set to "localhost" cause uniqueness errors in 
      the SQL bootstrap data.
      
      Now, insert zero lines for cases where the (lowercased) hostname is 
      the same as an already-inserted 'localhost' name.  Also, fix a few tests 
      that expect certain local accounts to have a certain host name.
      392ff10e
  9. 21 Aug, 2008 1 commit
  10. 05 Oct, 2007 1 commit
    • unknown's avatar
      Bug #31094: Forcing index-based sort doesn't work anymore if joins are done · 10cde5e4
      unknown authored
      A rule was introduced by the 5.1 part of the fix for bug 27531 to 
      prefer filesort over indexed ORDER BY when accessing all of the rows of a 
      table (because it's faster). This new rule was not accounting for the 
      presence of a LIMIT clause.
      Fixed the condition for this rule so it will prefer filesort over 
      indexed ORDER BY only if no LIMIT.
      
      
      mysql-test/r/compress.result:
        Bug #31094: LIMIT is not considered a full index scan
      mysql-test/r/join.result:
        Bug #31094: test case
      mysql-test/r/select.result:
        Bug #31094: LIMIT is not considered a full index scan
      mysql-test/r/ssl.result:
        Bug #31094: LIMIT is not considered a full index scan
      mysql-test/r/ssl_compress.result:
        Bug #31094: LIMIT is not considered a full index scan
      mysql-test/t/join.test:
        Bug #31094: test case
      sql/sql_select.cc:
        Bug #31094: prefer filesort over indexed ORDER BY only if no LIMIT
      10cde5e4
  11. 29 May, 2007 1 commit
    • unknown's avatar
      Bug #27531: 5.1 part of the fix · aff34a8c
      unknown authored
      - Renamed "Using join cache" to "Using join buffer".
      - "Using join buffer" is now printed on the last
        table that "reads" from the join buffer cache.
      
      
      mysql-test/r/archive_gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/compress.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ctype_utf8.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/derived.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/distinct.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/func_group.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/func_group_innodb.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/greedy_optimizer.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/group_by.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/group_min_max.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/index_merge_myisam.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/information_schema.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/innodb_gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/innodb_mysql.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/join.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/join_nested.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/key_diff.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/myisam.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ndb_condition_pushdown.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ndb_gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/range.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/row.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/select.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ssl.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ssl_compress.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/subselect.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/subselect3.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/union.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/view.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      sql/sql_select.cc:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      aff34a8c
  12. 04 May, 2007 2 commits
    • unknown's avatar
      bug #27531: 5.1 part of the fix: · 0c835da8
      unknown authored
       - added join cache indication in EXPLAIN (Extra column).
       - prefer filesort over full scan over 
         index for ORDER BY (because it's faster).
       - when switching from REF to RANGE because
         RANGE uses longer key turn off sort on
         the head table only as the resulting 
         RANGE access is a candidate for join cache
         and we don't want to disable it by sorting
         on the first table only. 
      
      
      mysql-test/r/archive_gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/compress.result:
        bug #27531:
         - join cache in EXPLAIN. 
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/ctype_utf8.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/derived.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/distinct.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/func_group.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/func_group_innodb.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/greedy_optimizer.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/group_by.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/group_min_max.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/index_merge_myisam.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/information_schema.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/innodb_gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/innodb_mysql.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/join.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/join_nested.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/key_diff.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/myisam.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/ndb_condition_pushdown.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/ndb_gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/range.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/row.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/select.result:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/ssl.result:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/ssl_compress.result:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/subselect.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/subselect3.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/union.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/view.result:
        bug #27531: join cache in EXPLAIN
      sql/sql_select.cc:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over
           index for ORDER BY.
         - disable sorting on the first table only
           when switching from REF to RANGE.
      0c835da8
    • unknown's avatar
      Bug #27531: the 4.1 fix. · 353b6f26
      unknown authored
      When checking for applicability of join cache
      we must disable its usage only if there is no
      temp table in use.
      When a temp table is used we can use join
      cache (and it will not make the result-set 
      unordered) to fill the temp table. The filesort() 
      operation is then applied to the data in the temp 
      table and hence is not affected by join cache
      usage.
      Fixed by narrowing the condition for disabling 
      join cache to exclude the case where temp table
      is used.
      
      
      mysql-test/r/join.result:
        Bug #27531: test case
      mysql-test/t/join.test:
        Bug #27531: test case
      sql/sql_select.cc:
        Bug #27531: 
        Disable join cache only if not using temp table
      353b6f26
  13. 29 Apr, 2007 1 commit
  14. 18 Apr, 2007 1 commit
  15. 26 Feb, 2007 1 commit
    • unknown's avatar
      Bug#20166 mysql-test-run.pl does not test system privilege tables creation · 5d4e0417
      unknown authored
       - Use mysql_system_tables.sql to create MySQL system tables in
         all places where we create them(mysql_install_db, mysql-test-run-pl
         and mysql_fix_privilege_tables.sql)
      
      
      BitKeeper/deleted/.del-init_db.sql:
        Rename: mysql-test/init_db.sql -> BitKeeper/deleted/.del-init_db.sql
      BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
        Rename: mysql-test/lib/init_db.sql -> BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8
      BitKeeper/deleted/.del-mysql_create_system_tables.sh:
        Rename: scripts/mysql_create_system_tables.sh -> BitKeeper/deleted/.del-mysql_create_system_tables.sh
      BitKeeper/etc/ignore:
        Added scripts/mysql_fix_privilege_tables.sql to the ignore list
      mysql-test/Makefile.am:
        lib/init_db.sql has been removed
      mysql-test/mysql-test-run.pl:
        - Build var/tmp/bootstrap.sql from mysql_system_tables.sql,
        mysql_test_data_timezone.sql and fill_help_tables.sql and use
        it when bootsraping the system tables to use during test.
      mysql-test/r/create.result:
        Update result file
      mysql-test/r/derived.result:
        Update result file
      mysql-test/r/join.result:
        Update result file
      mysql-test/r/mysql_upgrade.result:
        Update result file
      mysql-test/r/sp-security.result:
        Update result file
      mysql-test/t/create.test:
        Add user mysqltest_1 before trying to connect as that user - no
        anon users by default anymore
      mysql-test/t/derived.test:
        Add user mysqltest_1 before trying to connect as that user - no
        anon users by default anymore
      mysql-test/t/grant2.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/grant_cache.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/init_connect.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/lock_multi.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/ndb_basic.test:
        Connect as "root", blank user will take currently logged in
        username
      mysql-test/t/ndb_index_ordered.test:
        Connect as "root", blank user will take currently logged in
        username
      mysql-test/t/ndb_multi.test:
        Connect as "root", blank user will take currently logged in
        username
      mysql-test/t/overflow.test:
        Connect as root - no anonymous users by default anymore
      mysql-test/t/rpl_temporary.test:
        Add anonymous users for the test
      mysql-test/t/xa.test:
        Connect as "root", blank user wil pick currently logged in user
      scripts/Makefile.am:
        Remove mysql_create_system_tables.sh
        Add mysql_system_tables.sql and mysql_test_data_timezone.sql
        Build mysql_fix_privilege_tables.sql from mysql_system_tables.sql
        and mysql_fix_privilege_tables.sql.in
      scripts/mysql_fix_privilege_tables.sh:
        Update message describing what the script does
      scripts/mysql_fix_privilege_tables.sql.in:
        Remove the part that creates system tables as that will be added to
        mysql_fix_privileg_tables.sql from mysql_system_tables.sql
        Change all comments to use #
      scripts/mysql_install_db.sh:
        Use mysql_system_tables.sql to create the MySQL system tables
        Update comments and indentation
        Add more descriptive comments about --windows switch
        Reduce number of hardcoded names for the SQL files the script
        looks for
      mysql-test/include/add_anonymous_users.inc:
        New BitKeeper file ``mysql-test/include/add_anonymous_users.inc''
      mysql-test/include/delete_anonymous_users.inc:
        New BitKeeper file ``mysql-test/include/delete_anonymous_users.inc''
      scripts/mysql_system_tables.sql:
        New BitKeeper file ``scripts/mysql_system_tables.sql''
      scripts/mysql_test_data_timezone.sql:
        New BitKeeper file ``scripts/mysql_test_data_timezone.sql''
      5d4e0417
  16. 11 Jan, 2007 1 commit
    • unknown's avatar
      BUG#25106: A USING clause in combination with a VIEW results in column · 6c41a043
      unknown authored
                 aliases ignored
      When a column reference to a column in JOIN USING is resolved and a new 
      Item is created for this column the user defined name was lost.
      This fix preserves the alias by setting the name of the new Item to the
      original alias.
      
      
      mysql-test/r/join.result:
        BUG#25106: A USING clause in combination with a VIEW results in column
                   aliases ignored
         - test case
      mysql-test/t/join.test:
        BUG#25106: A USING clause in combination with a VIEW results in column
                   aliases ignored
         - test case
      sql/sql_base.cc:
        BUG#25106: A USING clause in combination with a VIEW results in column
                   aliases ignored
         - take the alias of the Item to be replaced and set it into the newly
           allocated Item.
      6c41a043
  17. 13 Nov, 2006 1 commit
    • unknown's avatar
      several fixes to make tests pass in embedded-server mode · ea1f7e4b
      unknown authored
      libmysqld/lib_sql.cc:
        check for bootstrap added
      mysql-test/include/federated.inc:
        disabled in embedded
      mysql-test/mysql-test-run.pl:
        we disable ssh in embedded server
      mysql-test/r/bdb.result:
        part moved to bdb_notembedded as it uses binlog
      mysql-test/r/flush_block_commit.result:
        part moved to flush_block_commit_notembedded
      mysql-test/r/insert.result:
        part moved to insert_notembedded as delayed works differently in embedded server
      mysql-test/r/insert_select.result:
        part moved to insert_notembedded as GRANTS usually disabled in embedded server
      mysql-test/r/join.result:
        access rights hidden in result
      mysql-test/t/backup.test:
        now available in embedded server
      mysql-test/t/bdb.test:
        part moved to bdb_notembedded as it uses binlog
      mysql-test/t/delayed.test:
        code trimmed
      mysql-test/t/execution_constants.test:
        skipped in embedded-server mode
      mysql-test/t/flush_block_commit.test:
        moved to flush_block_commit_notembedded
      mysql-test/t/information_schema_db.test:
        skipped in embedded-server
      mysql-test/t/innodb.test:
        directories replaced to be embedded-server compliant
      mysql-test/t/insert.test:
        part moved to insert_notembedded
      mysql-test/t/insert_select.test:
        part moved to insert_notembedded
      mysql-test/t/join.test:
        access rights hidden
      mysql-test/t/status.test:
        skipped in embedded server
      mysql-test/t/trigger.test:
        directories replaced to be embedded-server compliant
      sql/item_strfunc.cc:
        extra contexts not needed whan access checks disabled
      sql/share/errmsg.txt:
        bigger paths reserved to prevent test's fails
      mysql-test/r/bdb_notembedded.result:
        ***MISSING WEAVE***
      mysql-test/r/flush_block_commit_notembedded.result:
        added
      mysql-test/r/insert_notembedded.result:
        added
      mysql-test/t/bdb_notembedded.test:
        ***MISSING WEAVE***
      mysql-test/t/flush_block_commit_notembedded.test:
        added
      mysql-test/t/insert_notembedded.test:
        added
      ea1f7e4b
  18. 29 Sep, 2006 1 commit
    • unknown's avatar
      BUG#14940: Slow join order is chosen: [2nd commit with post-review fixes] · 5df80677
      unknown authored
      - Re-worked the prev_record_reads() function to return the lower bound of
        number of different table access scans that will be performed.
      
      
      mysql-test/r/join.result:
        BUG#14940: testcase
      mysql-test/t/join.test:
        BUG#14940: testcase
      sql/sql_select.cc:
        BUG#14940: Slow join order is chosen: 
        - Re-worked the prev_record_reads() function to return the lower bound of
          number of different table access scans that will be performed.
      sql/sql_select.h:
        BUG#14940: Slow join order is chosen:
        - Added comments in struct POSITION
        - Added POSITION::ref_depend_map: bitmap of tables that the table access
          method depends on.
      5df80677
  19. 28 Jul, 2006 1 commit
    • unknown's avatar
      BUG#14940 "MySQL choose wrong index", v.2 · ef452e19
      unknown authored
      - Make the range-et-al optimizer produce E(#table records after table 
                                                 condition is applied),
      - Make the join optimizer use this value,
      - Add "filtered" column to EXPLAIN EXTENDED to show 
        fraction of records left after table condition is applied
      - Adjust test results, add comments
      
      
      mysql-test/r/archive_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/auto_increment.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bdb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bench_count_distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/binlog_stm_blackhole.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/case.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/cast.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_collate.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_cp1250_ch.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/date_formats.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/fulltext.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_crypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_default.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_encrypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_gconcat.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_group.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_if.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_in.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_like.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_math.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_op.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_regexp.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_set.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_str.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_system.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_test.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_time.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_by.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_min_max.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/having.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap_hash.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_innodb.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_ror.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/innodb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/insert_update.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join_nested.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/key_diff.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/myisam.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ndb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/negation_elimination.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/null.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/olap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/partition_pruning.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/query_cache.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/row.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_get_lock.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_master_pos_wait.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/select.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/subselect.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/type_blob.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/union.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/varbinary.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/variables.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/view.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/ctype_cp1250_ch.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/func_like.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/group_min_max.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror_cpk.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/join.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/partition_pruning.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      sql/opt_range.cc:
        BUG#14940: Make range/index_merge/group-min-max optimizer produce TABLE::quick_condition_rows -
          estimate of #records that will match the table condition.
      sql/sql_class.cc:
        BUG#14940: Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.cc:
        BUG#14940: 
        - Make the join optimizer to use TABLE::quick_condition_rows=
          = E(#table records after filtering with table condition) 
        - Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.h:
        BUG#14940: Added comments
      sql/table.h:
        BUG#14940: Added comments
      ef452e19
  20. 13 Jun, 2006 1 commit
  21. 08 Jun, 2006 1 commit
    • unknown's avatar
      Bug #15355: Common natural join column not resolved in prepared statement nested · a7566db7
      unknown authored
        query
      Problem:
      There was a wrong context assigned to the columns that were added in insert_fields()
      when expanding a '*'. When this is done in a prepared statement it causes 
      fix_fields() to fail to find the table that these columns reference.
      Actually the right context is set in setup_natural_join_row_types() called at the 
      end of setup_tables(). However when executed in a context of a prepared statement
      setup_tables() resets the context, but setup_natural_join_row_types() was not
      setting it to the correct value assuming it has already done so.
      
      Solution:
      The top-most, left-most NATURAL/USING join must be set as a 
      first_name_resolution_table in context even when operating on prepared statements.
      
      
      mysql-test/r/join.result:
        testsuite for the bug
      mysql-test/t/join.test:
        testsuite for the bug
      sql/sql_base.cc:
        The context must be set even when executed as prepared statement.
      a7566db7
  22. 12 May, 2006 1 commit
    • unknown's avatar
      Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH · af797c16
      unknown authored
      mysql-test/r/information_schema.result:
        Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
        test case
      mysql-test/r/join.result:
        Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
        result fix
      mysql-test/t/information_schema.test:
        Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
        test case
      af797c16
  23. 02 Mar, 2006 1 commit
    • unknown's avatar
      Fix for BUG#15229. · de1e87bb
      unknown authored
      The cause of this bug was a design flaw due to which the list of natural
      join columns was incorrectly computed and stored for nested joins that
      are not natural joins, but are operands (possibly indirect) of nested joins.
      
      The patch corrects the flaw in a such a way, that the result columns of a
      table reference are materialized only if it is a leaf table (that is, only
      if it is a view, stored table, or natural/using join).
      
      
      mysql-test/r/join.result:
        Added test for BUG#15229 and uncommented failing test cases of
        BUG#15357 (now fixed by this patch).
      mysql-test/t/join.test:
        Added test for BUG#15229 and uncommented failing test cases of
        BUG#15357 (now fixed by this patch).
      sql/sql_base.cc:
        - Do not materialize the result columns of regular nested joins
          (that are not natural/using joins).
        - Moved most of the code that creates/adds new natural join column
          references to the method 'get_or_create_column_ref', and simplified
          'mark_common_columns'.
        - Replaced a call to 'get_or_create_column_ref' with 'get_natural_column_ref'
          where it is for sure all columns are alredy created.
      sql/table.cc:
        - Modified the method 'get_or_create_column_ref' so that it adds itself
          the newly created natural join columns to the respective table reference.
      sql/table.h:
        - Modified the method 'get_or_create_column_ref' so that it adds itself
          the newly created natural join columns to the respective table reference.
      de1e87bb
  24. 22 Feb, 2006 1 commit
    • unknown's avatar
      Fix for BUG#17523: natural join and information schema. · 475797a3
      unknown authored
      The cause of the bug was an ASSERT that checked the consistency
      of TABLE_SHARE::db and TABLE_LIST::db and failed for I_S tables.
      The fix relaxes the requirement for consistency for I_S.
      
      
      mysql-test/r/join.result:
        Added test for BUG#17523
      mysql-test/t/join.test:
        Added test for BUG#17523
      sql/table.cc:
        Take into account that for I_S tables, TABLE_SHARE::db == 0,
        while TABLE_LIST::db contains the database name of a table.
        The only change is in the ASSERTs.
      475797a3
  25. 30 Nov, 2005 2 commits
    • unknown's avatar
      WL#2486 - natural/using join according to SQL:2003 · e26eb47b
      unknown authored
      Commented out one failing query in the regression test (reported as a bug).
      
      
      mysql-test/r/join.result:
        Commented out failing query.
      mysql-test/t/join.test:
        Commented out failing query.
      e26eb47b
    • unknown's avatar
      WL#2486 - natural/using join according to SQL:2003. · 7c38fc51
      unknown authored
      Implemented specialized regression test for the WL.
      
      
      mysql-test/r/join.result:
        Test results for natural join tests.
      mysql-test/t/join.test:
        Specialized test for natural join, and join ... on.
      7c38fc51
  26. 23 Aug, 2005 1 commit
    • unknown's avatar
      WL#2486 - natural and using join according to SQL:2003 · fe24add7
      unknown authored
      * 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. 
      
      
      mysql-test/include/ps_query.inc:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/bdb.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/innodb.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/join.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/join_nested.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/join_outer.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/null_key.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/order_by.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/ps_2myisam.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/ps_3innodb.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/ps_4heap.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/ps_5merge.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/ps_6bdb.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/ps_7ndb.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/select.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/subselect.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/r/type_ranges.result:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/bdb.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/innodb.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/join.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/join_nested.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/join_outer.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/null_key.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/order_by.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/select.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/subselect.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      mysql-test/t/type_ranges.test:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      sql/sql_base.cc:
        * Applied Monty's patch for backwards compatible name resolution
          of qualified columns. The idea is:
          - When a column is qualified, search for the column in all
            tables/views underlying each natural join. In this case
            natural joins are *not* considered leaves.
          - If a column is not qualified, then consider natural joins
            as leaves, thus directly search the result columns of
            natural joins.
        * Simplified 'find_field_in_tables()' - unified two similar
          loops into one.
      sql/table.cc:
        - Removed method & members not needed after Monty's patch.
      sql/table.h:
        - Removed method & members not needed after Monty's patch.
      tests/mysql_client_test.c:
        Put back old tests to test that coalesced columns of natural joins can be qualified.
      fe24add7
  27. 19 Aug, 2005 1 commit
    • unknown's avatar
      WL#2486 - natural and using join according to SQL:2003 · 1cb72d7e
      unknown authored
      - Corrected problem with N-way nested natural joins in PS mode.
      - Code cleanup
      - More asserts to check consistency of name resolution contexts
      - Fixed potential memory leak of name resolution contexts
      
      
      mysql-test/r/join.result:
        - Corrected problem with N-way nested natural joins in PS mode.
      mysql-test/t/join.test:
        - Corrected problem with N-way nested natural joins in PS mode.
      sql/item.h:
        - Fixed potential memory leak.
      sql/sql_base.cc:
        - the local context of Item_fields that participate in TABLE_LIST::on_cond for
          natural joins is correctly set to the tables where the corresponding fields
          originate from.
        - removed unused variables
        - correct allocation of contexts
      sql/sql_parse.cc:
        - correct allocation of contexts for JOIN ON conditions.
      sql/table.cc:
        - added asserts to check the consistency of name resolution contexts
      sql/table.h:
        - added asserts to check the consistency of name resolution contexts
      1cb72d7e
  28. 12 Aug, 2005 2 commits
    • unknown's avatar
      WL#2486 · 6161e197
      unknown authored
      Disabled one test case because it is still a problem due to the fix for WL#2486.
      Pushed to enable code review.
      
      
      mysql-test/r/join.result:
        Disabled one test case because it is still a problem due to the fix for WL#2486.
        Pushed to enable code review.
      6161e197
    • unknown's avatar
      Implementation of WL#2486 - · 7517d7e1
      unknown authored
      "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
      
      
      mysql-test/include/ps_query.inc:
        Adjusted according to standard NATURAL/USING join semantics.,
      mysql-test/r/bdb.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/derived.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/errors.result:
        The column as a whole cannot be resolved, so different error message.
      mysql-test/r/fulltext.result:
        Adjusted according to standard JOIN ... ON semantics =>
        the ON condition can refer only to the join operands.
      mysql-test/r/fulltext_order_by.result:
        More detailed error message.
      mysql-test/r/innodb.result:
        Adjusted according to standard NATURAL/USING join semantics.
        This test doesn't pass completetly yet!
      mysql-test/r/insert_select.result:
        More detailed error message.
      mysql-test/r/join.result:
        Adjusted according to standard NATURAL/USING join semantics.
        
        NOTICE: there is one test case that still fails, and it is
        commeted out and marked with WL#2486 in the test file.
      mysql-test/r/join_crash.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/join_nested.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/join_outer.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/multi_update.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/null_key.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/order_by.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/ps_2myisam.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/ps_3innodb.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/ps_4heap.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/ps_5merge.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/ps_6bdb.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/ps_7ndb.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/select.result:
        Adjusted according to standard NATURAL/USING join semantics.
        
        NOTICE: there is one failing test case which is commented with
        WL#2486 in the test file.
      mysql-test/r/subselect.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/type_ranges.result:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/r/union.result:
        More detailed error message.
      mysql-test/t/bdb.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/errors.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/fulltext.test:
        Adjusted according to standard JOIN ... ON semantics =>
        the ON condition can refer only to the join operands.
      mysql-test/t/fulltext_order_by.test:
        More detailed error message.
      mysql-test/t/innodb.test:
        Adjusted according to standard NATURAL/USING join semantics.
        This test doesn't pass completetly yet!
      mysql-test/t/insert_select.test:
        More detailed error message.
      mysql-test/t/join.test:
        Adjusted according to standard NATURAL/USING join semantics.
        
        NOTICE: there is one test case that still fails, and it is
        commeted out and marked with WL#2486 in the test file.
      mysql-test/t/join_crash.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/join_nested.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/join_outer.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/null_key.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/order_by.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/select.test:
        Adjusted according to standard NATURAL/USING join semantics.
        
        NOTICE: there is one test case that still fails, and it is
        commeted out and marked with WL#2486 in the test file.
      mysql-test/t/subselect.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/type_ranges.test:
        Adjusted according to standard NATURAL/USING join semantics.
      mysql-test/t/union.test:
        More detailed error message.
      sql/item.cc:
        - extra parameter to find_field_in_tables
        - find_field_in_real_table renamed to find_field_in_table
        - fixed comments/typos
      sql/item.h:
        - added [first | last]_name_resolution_table to class
          Name_resolution_context
        - commented old code
        - standardized formatting
      sql/mysql_priv.h:
        - refactored the find_field_in_XXX procedures,
        - added a new procedure for natural join table references,
        - renamed the find_field_in_XXX procedures to clearer names
      sql/sp.cc:
        - pass the top-most list of the FROM clause to setup_tables
        - extra parameter to find_field_in_tables
      sql/sql_acl.cc:
        - renamed find_field_in_table => find_field_in_table_ref
        - extra parameter to find_field_in_table_ref
        - commented old code
      sql/sql_base.cc:
        This file contains the core of the implementation of the processing
        of NATURAL/USING joins (WL#2486).
        - added many comments to old code
        - refactored the group of find_field_in_XXX procedures, and added a
          new procedure for natural joins. There is one find_field_in_XXX procedure
          per each type of table reference (stored table, merge view, or natural
          join); one meta-procedure that selects the correct one depeneding on the
          table reference; and one procedure that goes over a list of table
          referenes.
        - NATURAL/USING joins are processed through the procedures:
            mark_common_columns, store_natural_using_join_columns,
            store_top_level_join_columns, setup_natural_join_row_types.
          The entry point to processing NATURAL/USING joins is the
          procedure 'setup_natural_join_row_types'.
        - Replaced the specialized Field_iterator_XXX iterators with one
          generic iterator over the fields of a table reference.
        - Simplified 'insert_fields' and 'setup_conds' due to encapsulation of
          the processing of natural joins in a separate set of procedures.
      sql/sql_class.h:
        - Commented old code.
      sql/sql_delete.cc:
        - Pass the FROM clause to setup_tables.
      sql/sql_help.cc:
        - pass the end name resolution table to find_field_in_tables
        - adjust the list of tables for name resolution
      sql/sql_insert.cc:
        - Changed the code that saves and restores the current context to
          support the list of tables for name resolution -
          context->first_name_resolution_table, and
          table_list->next_name_resolution_table.
          Needed to support an ugly trick to resolve inserted columns only in
          the first table.
        - Added Name_resolution_context::[first | last]_name_resolution_table.
        - Commented old code
      sql/sql_lex.cc:
        - set select_lex.parent_lex correctly
        - set correct state of the current name resolution context
      sql/sql_lex.h:
        - Added a stack of name resolution contexts to support local
          contexts for JOIN ... ON conditions.
        - Commented old code.
      sql/sql_load.cc:
        - Pass the FROM clause to setup_tables.
      sql/sql_olap.cc:
        - Pass the FROM clause to setup_tables.
      sql/sql_parse.cc:
        - correctly set SELECT_LEX::parent_lex
        - set the first table of the current name resoltion context
        - added support for NATURAL/USING joins
        - commented old code
      sql/sql_select.cc:
        - Pass the FROM clause to setup_tables.
        - Pass the end table to find_field_in_tables
        - Improved comments
      sql/sql_show.cc:
        - Set SELECT_LEX::parent_lex.
      sql/sql_update.cc:
        - Pass the FROM clause to setup_tables.
      sql/sql_yacc.yy:
        - Added support for a stack of name resolution contexts needed to
          implement name resolution for JOIN ... ON. A context is pushed
          for each new JOIN ... ON, and popped afterwards.
        - Added support for NATURAL/USING joins.
      sql/table.cc:
        - Added new class Natural_join_column to hide the heterogeneous
          representation of column references for stored tables and for
          views.
        - Added a new list TABLE_LIST::next_name_resolution_table to
          support name resolution with NATURAL/USING joins. Also added
          other members to TABLE_LIST to support NATURAL/USING joins.
        - Added a generic iterator over the fields of table references
          of various types - class Field_iterator_table_ref
      sql/table.h:
        - Added new class Natural_join_column to hide the heterogeneous
          representation of column references for stored tables and for
          views.
        - Added a new list TABLE_LIST::next_name_resolution_table to
          support name resolution with NATURAL/USING joins. Also added
          other members to TABLE_LIST to support NATURAL/USING joins.
        - Added a generic iterator over the fields of table references
          of various types - class Field_iterator_table_ref
      tests/mysql_client_test.c:
        Adjusted according to standard NATURAL JOIN syntax.
      7517d7e1
  29. 13 Aug, 2004 1 commit
    • unknown's avatar
      join_nested.test, join_nested.result: · f0ac45bc
      unknown authored
        Added a case for bug #4976 when one of the inner tables is empty.
      select.result, join.result:
        Reversed the previous change of the erronious fix for bug #4976.
      sql_select.cc:
        The previous fix for bug 4976 was reversed as it
        erroniously converted an outer join into an innner join
        when on_expression does not refer to outer tables.
        This is not valid if inner tables return an empty set.
        Setting dependency on outer tables was added for the above cases.
        To fix the crash in the test case of bug #4976  
        a guard was added that blocks running the crashing code for
        nested outer joins.
      
      
      sql/sql_select.cc:
        The previous fix for bug 4976 was reversed as it
        erroniously converted an outer join into an innner join
        when on_expression does not refer to outer tables.
        This is not valid if inner tables return an empty set.
        Setting dependency on outer tables was added.
        The crash of the test case for bug #4976 was fixed
        adding a guard that blocks running the code for
        nested outer joins.
      mysql-test/r/join.result:
        Reversed the previous change of the erronious fix for bug #4976.
      mysql-test/r/select.result:
        Reversed the previous change of the erronious fix for bug #4976.
      mysql-test/r/join_nested.result:
        Added a case for bug #4976 when one of the inner tables is empty.
      mysql-test/t/join_nested.test:
        Added a case for bug #4976 when one of the inner tables is empty.
      f0ac45bc
  30. 11 Aug, 2004 1 commit
    • unknown's avatar
      join.result, select.result: · a2a94818
      unknown authored
        Fixed bug #4976.
      join_nested.result, join_nested.test:
        Added a test case for bug #4976.
      sql_select.cc:
        Applied conversion from an outer join to an inner join 
        when the on expression does not depend on the outer table.
        It fixed bug #4976.
      
      
      sql/sql_select.cc:
        Applied conversion from an outer join to an inner join 
        when the on expression does not depend on the outer table.
        It fixed bug #4976.
      mysql-test/t/join_nested.test:
        Added a case test for bug #4976.
      mysql-test/r/join_nested.result:
        Added a case test for bug #4976.
      mysql-test/r/select.result:
        Fixed bug #4976.
      mysql-test/r/join.result:
        Fixed bug #4976.
      a2a94818
  31. 02 Aug, 2004 1 commit
  32. 16 Jun, 2004 1 commit
  33. 19 Mar, 2004 1 commit
    • unknown's avatar
      Fix for the bug #2976: NATURAL JOIN produces duplicate columns. · 6c937d71
      unknown authored
      Improvement natural join code in the setup_conds(). 
      
      
      mysql-test/r/join.result:
        Fix for the bug #2976: NATURAL JOIN produces duplicate columns
      mysql-test/r/join_outer.result:
        Fix for the bug #2976: NATURAL JOIN produces duplicate columns
      mysql-test/r/select.result:
        Fix for the bug #2976: NATURAL JOIN produces duplicate columns
      6c937d71
  34. 10 Dec, 2003 1 commit
    • unknown's avatar
      WorkLog#1323 · 80ec8079
      unknown authored
      Deprecate the use of TYPE=... Preferred syntax is ENGINE=
      
      
      include/mysqld_error.h:
        New warning for deprecated syntax
      sql/lex.h:
        Introduce ENGINE keyword
        Sort order of symbols
      sql/share/czech/errmsg.txt:
        New warning for deprecated syntax
      sql/share/danish/errmsg.txt:
        New warning for deprecated syntax
      sql/share/dutch/errmsg.txt:
        New warning for deprecated syntax
      sql/share/english/errmsg.txt:
        New warning for deprecated syntax
      sql/share/estonian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/french/errmsg.txt:
        New warning for deprecated syntax
      sql/share/german/errmsg.txt:
        New warning for deprecated syntax
      sql/share/greek/errmsg.txt:
        New warning for deprecated syntax
      sql/share/hungarian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/italian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/japanese/errmsg.txt:
        New warning for deprecated syntax
      sql/share/korean/errmsg.txt:
        New warning for deprecated syntax
      sql/share/norwegian-ny/errmsg.txt:
        New warning for deprecated syntax
      sql/share/norwegian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/polish/errmsg.txt:
        New warning for deprecated syntax
      sql/share/portuguese/errmsg.txt:
        New warning for deprecated syntax
      sql/share/romanian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/russian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/serbian/errmsg.txt:
        New warning for deprecated syntax
      sql/share/slovak/errmsg.txt:
        New warning for deprecated syntax
      sql/share/spanish/errmsg.txt:
        New warning for deprecated syntax
      sql/share/swedish/errmsg.txt:
        New warning for deprecated syntax
      sql/share/ukrainian/errmsg.txt:
        New warning for deprecated syntax
      sql/sql_show.cc:
        Change TYPE= with ENGINE=
      sql/sql_yacc.yy:
        Introduce ENGINE keyword,
        Deprecate TYPE= syntax,
        Introduce SHOW ENGINE syntax,
        Deprecate SHOW INNODB/BDB syntax.
      mysql-test/r/alias.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/alter_table.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/auto_increment.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/bdb-alter-table-1.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/bdb-crash.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/bdb-deadlock.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/bdb.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/bdb_cache.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/case.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/cast.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/constraints.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/create.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/ctype_collate.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/ctype_latin1_de.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/ctype_many.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/ctype_mb.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/ctype_recoding.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/ctype_ucs.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/delete.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/distinct.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/fulltext.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/fulltext2.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/fulltext_distinct.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/fulltext_left_join.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_compress.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_date_add.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_group.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_if.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_str.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_system.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_test.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/func_time.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/gis-rtree.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/group_by.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/handler.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/heap.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/heap_auto_increment.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/heap_btree.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/heap_hash.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/help.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/innodb-deadlock.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/innodb.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/innodb_cache.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/innodb_handler.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/insert_select.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/isam.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/join.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/join_crash.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/join_outer.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/key.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/lock.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/lock_tables_lost_commit.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/merge.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/multi_update.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/myisam.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/null.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/null_key.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/order_by.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/query_cache.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/range.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/repair_part1.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/replace.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/rollback.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/rpl000006.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/rpl_flush_tables.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/rpl_insert_id.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/rpl_relayrotate.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/select.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/select_found.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/show_check.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/sql_mode.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/status.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/subselect.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/subselect2.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/subselect_innodb.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/symlink.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/temp_table.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/type_blob.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/type_datetime.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/type_enum.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/type_nchar.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/type_set.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/union.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/update.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/r/warnings.result:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/alias.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/alter_table.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/auto_increment.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/bdb-alter-table-1.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/bdb-crash.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/bdb-deadlock.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/bdb.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/bdb_cache.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/create.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/ctype_ucs.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/delete.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/distinct.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/fulltext.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/fulltext2.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/fulltext_distinct.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/fulltext_left_join.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_compress.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_date_add.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_group.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_if.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_str.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_test.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/func_time.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/gis-rtree.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/group_by.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/handler.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/heap.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/heap_auto_increment.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/heap_btree.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/heap_hash.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/help.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/innodb-deadlock.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/innodb.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/innodb_cache.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/innodb_handler.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/insert_select.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/isam.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/join.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/join_crash.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/join_outer.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/key.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/lock.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/lock_tables_lost_commit.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/merge.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/mix_innodb_myisam_binlog.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/multi_update.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/myisam.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/null.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/null_key.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/order_by.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/outfile.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/query_cache.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/query_cache_merge.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/range.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/repair_part1.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/replace.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/rollback.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/rpl000006.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/rpl_flush_tables.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/rpl_insert_id.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/rpl_relayrotate.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/select.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/select_found.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/show_check.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/sql_mode.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/status.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/subselect.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/subselect2.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/subselect_innodb.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/symlink.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/temp_table.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/type_datetime.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/type_set.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/union.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/update.test:
        Change occurances of TYPE= to ENGINE=
      mysql-test/t/warnings.test:
        Change occurances of TYPE= to ENGINE=
        New test for deprecated syntax
      80ec8079
  35. 27 Jun, 2003 1 commit
    • unknown's avatar
      Added thread variable max_seeks_for_key · c2cb9b97
      unknown authored
      Change optimizer to prefer key lookups before table scan
      Change table scans to be done after tables with constrains on scanned table 
      
      
      mysql-test/r/distinct.result:
        Update results
      mysql-test/r/group_by.result:
        Update results
      mysql-test/r/heap.result:
        Update results
      mysql-test/r/join.result:
        Update results
      mysql-test/r/key_diff.result:
        Update results
      mysql-test/r/myisam.result:
        Update results
      mysql-test/r/order_by.result:
        Update results
      mysql-test/r/select_safe.result:
        Update results
      mysql-test/t/distinct.test:
        Change test to be repeatable
      mysql-test/t/join.test:
        Change test to be repeatable
      mysql-test/t/select_safe.test:
        Add tests for MAX_SEEKS_FOR_KEY
      sql/handler.h:
        Optimize structure for 64 bit machines (and to avoid problems with gdb)
      sql/item_cmpfunc.cc:
        Initialize not_null_tables_cache properly
      sql/mysqld.cc:
        Added max_seeks_for_key
      sql/set_var.cc:
        Added max_seeks_for_key
      sql/sql_class.h:
        Added max_seeks_for_key
      sql/sql_select.cc:
        Added 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
      c2cb9b97
  36. 04 Jun, 2003 1 commit
    • unknown's avatar
      Added SQLSTATE to client/server protocol · b388eb00
      unknown authored
      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
      
      
      BitKeeper/etc/ignore:
        added libmysqld/sql_state.c
      client/mysql.cc:
        Added SQLSTATE to error messages
        Added new function put_error() to be able to clean up some old code.
      client/mysqltest.c:
        Write ERROR SQLSTATE for all errors
      dbug/dbug.c:
        Portability fixes
      include/m_string.h:
        Rename bmove_allign as bmove_align
      include/mysql.h:
        Added SQLSTATE (for embedded version)
      include/mysql_com.h:
        Send correct SQLSTATE for the error to the client
      libmysql/libmysql.c:
        Changed default error state to HY000
        Applied code cleanup patch
      libmysqld/Makefile.am:
        Added sql_state.cc
      libmysqld/libmysqld.c:
        Added sqlstate
      mysql-test/r/analyse.result:
        Updated results
      mysql-test/r/ansi.result:
        Updated results
      mysql-test/r/auto_increment.result:
        Updated results
      mysql-test/r/bdb-deadlock.result:
        Updated results
      mysql-test/r/bdb.result:
        Updated results
      mysql-test/r/comments.result:
        Updated results
      mysql-test/r/create.result:
        Updated results
      mysql-test/r/ctype_collate.result:
        Updated results
      mysql-test/r/delayed.result:
        Updated results
      mysql-test/r/delete.result:
        Updated results
      mysql-test/r/derived.result:
        Updated results
      mysql-test/r/distinct.result:
        Updated results
      mysql-test/r/drop.result:
        Updated results
      mysql-test/r/err000001.result:
        Updated results
      mysql-test/r/explain.result:
        Updated results
      mysql-test/r/flush.result:
        Updated results
      mysql-test/r/fulltext.result:
        Updated results
      mysql-test/r/func_gconcat.result:
        Updated results
      mysql-test/r/func_system.result:
        Updated results
      mysql-test/r/grant_cache.result:
        Updated results
      mysql-test/r/group_by.result:
        Updated results
      mysql-test/r/handler.result:
        Updated results
      mysql-test/r/heap.result:
        Updated results
      mysql-test/r/heap_btree.result:
        Updated results
      mysql-test/r/heap_hash.result:
        Updated results
      mysql-test/r/innodb.result:
        Updated results
      mysql-test/r/innodb_handler.result:
        Updated results
      mysql-test/r/insert_select.result:
        Updated results
      mysql-test/r/insert_update.result:
        Updated results
      mysql-test/r/join.result:
        Updated results
      mysql-test/r/join_outer.result:
        Updated results
      mysql-test/r/key.result:
        Updated results
      mysql-test/r/lock.result:
        Updated results
      mysql-test/r/lock_multi.result:
        Updated results
      mysql-test/r/merge.result:
        Updated results
      mysql-test/r/multi_update.result:
        Updated results
      mysql-test/r/myisam.result:
        Updated results
      mysql-test/r/null.result:
        Updated results
      mysql-test/r/olap.result:
        Updated results
      mysql-test/r/order_by.result:
        Updated results
      mysql-test/r/packet.result:
        Updated results
      mysql-test/r/query_cache.result:
        Updated results
      mysql-test/r/row.result:
        Updated results
      mysql-test/r/rpl000001.result:
        Updated results
      mysql-test/r/rpl000009.result:
        Updated results
      mysql-test/r/rpl_empty_master_crash.result:
        Updated results
      mysql-test/r/rpl_log.result:
        Updated results
      mysql-test/r/rpl_replicate_do.result:
        Updated results
      mysql-test/r/rpl_rotate_logs.result:
        Updated results
      mysql-test/r/select.result:
        Updated results
      mysql-test/r/select_safe.result:
        Updated results
      mysql-test/r/show_check.result:
        Updated results
      mysql-test/r/sql_mode.result:
        Updated results
      mysql-test/r/subselect.result:
        Updated results
      mysql-test/r/temp_table.result:
        Updated results
      mysql-test/r/truncate.result:
        Updated results
      mysql-test/r/type_blob.result:
        Updated results
      mysql-test/r/type_decimal.result:
        Updated results
      mysql-test/r/type_float.result:
        Updated results
      mysql-test/r/type_ranges.result:
        Updated results
      mysql-test/r/union.result:
        Updated results
      mysql-test/r/update.result:
        Updated results
      mysql-test/r/user_var.result:
        Updated results
      mysql-test/r/varbinary.result:
        Updated results
      mysql-test/r/variables.result:
        Updated results
      mysql-test/t/ansi.test:
        Test of sql_mode
      mysql-test/t/derived.test:
        Updated results
      mysql-test/t/func_system.test:
        Make this independen of the MySQL server name
      mysql-test/t/lowercase_table.test:
        Cleanup
      mysql-test/t/olap.test:
        A lot of new tests
      mysql-test/t/sql_mode.test:
        More test for sql_mode
      mysql-test/t/subselect.test:
        Added a few new tests (to find a bug in the item_ref code)
      scripts/Makefile.am:
        Added mysql_fix_privilege_tables.sql
      scripts/mysql_fix_privilege_tables.sh:
        Totally new script.  This bascily just pipes mysql_fix_privilege_tables.sql through 'mysql' to 'mysqld'
      sql/Makefile.am:
        Added sql_state.cc
      sql/item.cc:
        Extended Item_field::eq() to be able to better match GROUP BY fields on the command line.
        Needed for ROLLUP
      sql/item.h:
        Added function to be able to avoid calling current_thd() when doing new Item.
      sql/item_sum.cc:
        Moved copy_or_same() and some reset() functions from item_sum.h
        Needed to be able to access thd->mem_root.
      sql/item_sum.h:
        Moved some functions to item_sum.cc
        Added make_unique() for ROLLUP
      sql/item_uniq.h:
        Fixed return value
      sql/mysql_priv.h:
        Updated MODE flags
      sql/mysqld.cc:
        Added ANSI as it's own mode
        Moved charset_info variables here
        Cleaned up handler_count handling (for NT)
        Added table_alias_charset, for easier --lower-case-table-name handling
      sql/net_serv.cc:
        New comment
      sql/protocol.cc:
        Send SQLSTATE to client
      sql/set_var.cc:
        Better SQL_MODE handling (Setting complex options also sets sub options)
      sql/set_var.h:
        Better SQL_MODE handling
      sql/sql_base.cc:
        Make alias depend on --lower-case-table-names
        Make find_item_in_list also check database name
      sql/sql_cache.cc:
        Indentation cleanup
      sql/sql_list.h:
        Added safety assert
        Addes support of alloc without current_thd()
      sql/sql_prepare.cc:
        Update after prototype change
      sql/sql_select.cc:
        Added ROLLUP
      sql/sql_select.h:
        structures for rollup
      sql/sql_show.cc:
        Easier SQL_MODE handling
      sql/sql_string.cc:
        Move CHARSET_INFO to mysqld (to be together with all other global variables)
      sql/sql_string.h:
        Added function to be able to avoid calling current_thd() when doing new Item.
      sql/sql_table.cc:
        Simpler --lower-case-table-name handling
      sql/sql_union.cc:
        Update after prototype change
      sql/sql_yacc.yy:
        ROLLUP
      sql/unireg.h:
        bmove_allign ->bmove_align
      strings/Makefile.am:
        Fix to be able to compile str_test.c
      strings/ctype.c:
        Removed empty lines
      strings/str_test.c:
        Added test of bmove_align
      strings/strings-x86.s:
        Faster bmove_align, bmove_upp and strmake
      strings/strings.asm:
        move_allg
      b388eb00
  37. 27 Apr, 2003 1 commit
    • unknown's avatar
      Fixed problem when comparing a key for a multi-byte-character set. (bug 152) · f22be777
      unknown authored
      Use 0x.... as strings if 'new' mode. (bug 152)
      Don't report -max on windows when InnoDB is enabled. (bug 332)
      Reset current_linfo;  This could cause a hang when doing PURGE LOGS.
      Fix for row numbers in EXPLAIN (bug 322)
       Fix that USE_FRM works for all table types (bug 97)
      
      
      VC++Files/libmysql/libmysql.dsp:
        Added new source files
      myisam/mi_key.c:
        Fixed problem when comparing a key for a multi-byte-character set.
      myisam/mi_range.c:
        Fixed problem when comparing a key for a multi-byte-character set.
      myisam/mi_rkey.c:
        Fixed problem when comparing a key for a multi-byte-character set.
      myisam/mi_search.c:
        Fixed problem when comparing a key for a multi-byte-character set.
      myisam/mi_test2.c:
        Fixed printf statements
      myisam/myisamdef.h:
        Fixed problem when comparing a key for a multi-byte-character set.
      myisam/sort.c:
        Fixed printf statements
      mysql-test/r/ctype_latin1_de.result:
        New test results
      mysql-test/r/join.result:
        New test results
      mysql-test/r/repair.result:
        New test results
      mysql-test/r/rpl_alter.result:
        New test results
      mysql-test/t/ctype_latin1_de-master.opt:
        --new is needed to get 0x... strings to work properly
      mysql-test/t/ctype_latin1_de.test:
        New test for latin1_de
      mysql-test/t/repair.test:
        Test of USE_FRM and HEAP tables
      sql/field.cc:
        Fixed problem when comparing a key for a multi-byte-character set.
      sql/item.cc:
        Use 0x.... as strings if 'new' mode
      sql/item.h:
        Use 0x.... as strings if 'new' mode
      sql/mysqld.cc:
        Don't report -max on windows when InnoDB is enabled.
      sql/sql_analyse.cc:
        Removed unused variable
      sql/sql_insert.cc:
        Removed debug message
      sql/sql_repl.cc:
        Reset current_linfo;  This could cause a hang when doing PURGE LOGS.
      sql/sql_select.cc:
        Fix for row numbers in EXPLAIN
      sql/sql_table.cc:
        Fix that USE_FRM works for all table types (without strange errors)
      sql/sql_yacc.yy:
        Removed compiler warnings.
      f22be777