An error occurred fetching the project authors.
  1. 10 Aug, 2005 1 commit
    • unknown's avatar
      A fix for Bug#11901 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY join in · 33e8f20c
      unknown authored
      subqry order by server crash": failing DBUG_ASSERT(curr_join == this)
      when opening a cursor.
      Ensure that for top-level join curr_join == join (always), 
      and thus fix the failing assert.
      curr_join is a hack to ensure that uncacheable subqueries can be
      re-evaluated safely, and should be never different from main join
      in case of top-level join.
      
      
      sql/sql_select.cc:
        - utilize tmp_join only if we evaluate an uncacheable subquery.
      sql/sql_select.h:
        - implement JOIN::is_top_level_join()
      tests/mysql_client_test.c:
        A test case for Bug#11901 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
         join in subqry order by server crash"
      33e8f20c
  2. 08 Aug, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#11909 "mysql_stmt_attr_set · cccf551b
      unknown authored
      CURSOR_TYPE_READ_ONLY nested queries corrupt result"
      
      
      sql/sql_prepare.cc:
        If there is a cursor, use its protocol for fetch: 
        Protocol instances have a state and thd->protocol_prep can't
        be used for multiple cursors.
      sql/sql_select.cc:
        - init Cursor::protocol
      sql/sql_select.h:
        - add Cursor::protocol
      tests/mysql_client_test.c:
        A test case for Bug#11909 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
         nested queries corrupt result"
      cccf551b
  3. 07 Aug, 2005 1 commit
    • unknown's avatar
      BUG#11869:part 2: post-review fixes: merging into 5.0 · 8b6185c3
      unknown authored
      We're out of bits in st_select_lex->options so make TMP_TABLE_FORCE_MYISAM ==
      OPTION_FOUND_COMMENT (the latter is not used by create_tmp_table).
      
      
      mysql-test/r/create.result:
        Updated the test result
      mysql-test/r/fulltext_order_by.result:
        Drop all tables this test uses
      mysql-test/t/fulltext_order_by.test:
        Drop all tables this test uses
      8b6185c3
  4. 06 Aug, 2005 1 commit
    • unknown's avatar
      BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error): · 432ea422
      unknown authored
      When creating temporary table for UNION, pass TMP_TABLE_FORCE_MYISAM flag to 
      create_tmp_table if we will be using fulltext function(s) when reading from the 
      temp. table.
      
      
      mysql-test/r/fulltext_order_by.result:
        Testcase for BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error)
      mysql-test/t/fulltext_order_by.test:
        Testcase for BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error)
      sql/mysql_priv.h:
        BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error):
        Added TMP_TABLE_FORCE_MYISAM flag
      sql/sql_select.cc:
        BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error):
        In create_tmp_table(), honor the TMP_TABLE_FORCE_MYISAM flag
      432ea422
  5. 02 Aug, 2005 1 commit
    • unknown's avatar
      sql_select.cc, sql_class.h: · 89b8763d
      unknown authored
        Reversed the changes to fix bug #12095 after review
        done by SergeyG. Applied a fix suggested by him.
      
      
      sql/sql_class.h:
        Reversed the changes to fix bug #12095 after review
        done by SergeyG. Applied a fix suggested by him.
      sql/sql_select.cc:
        Reversed the changes to fix bug #12095 after review
        done by SergeyG. Applied a fix suggested by him.
      89b8763d
  6. 31 Jul, 2005 3 commits
    • unknown's avatar
      After merge fixes · 4e862e00
      unknown authored
      Review of new pushed code
      
      
      client/mysqlbinlog.cc:
        After merge fixes
      sql/set_var.cc:
        After merge fixes
      sql/sql_select.cc:
        Removed not needed test (field->maybe_null() also tests field->table->maybe_null)
      4e862e00
    • unknown's avatar
      Fixes during review of new pushed code · f5589f21
      unknown authored
      Change bool in C code to my_bool
      Added to mysqltest --enable_parsning and --disable_parsing to avoid to have to comment parts of tests
      Added comparison of LEX_STRING's and use this to compare file types for view and trigger files.
      
      
      client/client_priv.h:
        Added OPT_TRIGGERS (to get rid of compiler warning)
      client/mysql.cc:
        Added cast to get rid of compiler warning
      client/mysqldump.c:
        Added OPT_TRIGGERS (to get rid of compiler warning)
        Abort if we can't write to outfile (even if --ignore-errors is given)
      client/mysqltest.c:
        Added --enable_parsning and --disable_parsing to avoid to have to comment parts of tests
      include/my_sys.h:
        Make my_progname const
      include/my_time.h:
        Avoid using 'bool' in C programs
      mysql-test/lib/init_db.sql:
        Align with mysql_create_system_tables
        (Ideally this file should be auto-generated from the above script)
      mysql-test/r/mysqltest.result:
        Test for --enable_parsing
      mysql-test/r/variables.result:
        Update results after fix for overflow checking of max_heap_table_size
      mysql-test/t/information_schema.test:
        USe --enable/disable parsing instead of comments
      mysql-test/t/mysqltest.test:
        Test for --enable_parsing
      mysql-test/t/sp.test:
        USe --enable/disable parsing instead of comments
      mysql-test/t/variables.test:
        Portability fix for 64 bit systems
      mysql-test/t/view.test:
        USe --enable/disable parsing instead of comments
      mysys/my_init.c:
        May my_progname const
      mysys/my_static.c:
        May my_progname const
      mysys/thr_lock.c:
        Remove not needed casts
      sql-common/my_time.c:
        Change bool -> my_bool as bool is not portable in C programs
      sql/field.cc:
        Test number_to_datetime() for -1 instead of < 0 (Safety fix)
        New prototype for TIME_to_timestamp()
      sql/item.h:
        Don't have prototypes for both uint32 and ulong as these 'may' be the same thing
      sql/item_timefunc.cc:
        New prototype for TIME_to_timestamp()
      sql/log.cc:
        Remove compiler warnings
      sql/mysql_priv.h:
        New prototype for TIME_to_timestamp()
        Added function for comparing LEX_STRING
      sql/set_var.cc:
        Added overflow checking when setting ulong variable
      sql/sql_base.cc:
        Added function is_equal()
        Changed strncmp -> is_equal() as strncmp() to not match "V" (instead of "VIEW")
      sql/sql_class.cc:
        Added comment
      sql/sql_select.cc:
        Portability fixes
        After review fixes
      sql/sql_trigger.cc:
        Use 'tables_alias_charset' for comparing database name
        Use 'is_equal()' to compare file type. (Old code didn't do the comparison correctly)
      sql/sql_view.cc:
        Use 'is_equal()' to compare file type. (Old code didn't do the comparison correctly)
      sql/time.cc:
        New prototype for TIME_to_timestamp() to allow easyer mapping to C function
      sql/tztime.cc:
        bool -> my_bool (to allow calling C code from C++ code)
      sql/tztime.h:
        bool -> my_bool (to allow calling C code from C++ code)
      f5589f21
    • unknown's avatar
      Fix for BUG#12082 (assert failure when the query fails to get a lock for record in 'const' table): · 4fb61e93
      unknown authored
       Set table->key_read back to 0 regardless of whether join_read_const() succeeded or not.
      
      4fb61e93
  7. 30 Jul, 2005 1 commit
    • unknown's avatar
      Fix bug #11335 View redefines TinyInt(1) column definition · 8296c396
      unknown authored
      Item_type_holder doesn't store information about length and exact type of
      original item which results in redefining length to max_length and geometry 
      type to longtext.
      
      Changed the way derived tables except unions are built. Now they are created
      from original field list instead of list of Item_type_holder.
      
      
      mysql-test/r/subselect.result:
        Fixed wrong test case result. bug#11335
      mysql-test/r/view_grant.result:
         Fixed wrong test case result. bug#11335
      mysql-test/r/view.result:
        Added test case for bug #11335. Fixed wrong test case result.
      mysql-test/t/view.test:
        Test case for bug #11335 View  redefines TinyInt(1) column definition.
      sql/sql_union.cc:
        Fix bug #11335 View redefines TinyInt(1) column definition.
        Changed the way derived tables except unions are built. Now they are created from original field list instead of list of Item_type_holders.
      sql/sql_select.cc:
        Fix bug #11335 View redefines TinyInt(1) column definition.
        Added special handling of DATE/TIME fields to preserve field's type in tmp field creation.
        In create_tmp_field() for Item_field added special handling of case when item have to be able to store NULLs but underlaid field is NOT NULL.
      sql/item_sum.cc:
        Fix bug #11335 View redefines TinyInt(1) column definition.
        Added special handling of DATE/TIME fields to preserve field's type while tmp
        field created in Item_sum_hybrid::create_tmp_field().
      8296c396
  8. 29 Jul, 2005 2 commits
    • unknown's avatar
      fixed two bugs that break Windows build · 4899150b
      unknown authored
      libmysql/libmysql.def:
        "get_defaults_files" has been renamed to "get_defaults_options"
        but was not removed here
      sql/sql_select.cc:
        pulled variable out of for() scope to satisfy dumb MSVC6 compiler
      4899150b
    • unknown's avatar
      func_gconcat.result, func_gconcat.test: · a89c7087
      unknown authored
        Added a test case for bug #12095.
      sql_class.h:
        Fixed bug #12095: a join query with GROUP_CONCAT over a single row table.
        Added a flag to the TMP_TABLE_PARAM class forcing to put constant
        items generated after elimination of a single row table into temp table
        in some cases (e.g. when GROUP_CONCAT is calculated over a single row
        table).
        bk ci sql/item_sum.cc
        Fixed bug #12095: a join query with GROUP_CONCAT over a single row table.
        If GROUP_CONCAT is calculated we always put its argument into a temp
        table, even when the argument is a constant item.
      sql_select.cc:
        Fixed bug #12095: a join query with GROUP_CONCAT over one row table.
        If temp table is used to calculate GROUP_CONCAT the argument should
        be always put into this table, even when it is a constant item.
      
      
      sql/sql_select.cc:
        Fixed bug #12095: a join query with GROUP_CONCAT over one row table.
        If temp table is used to calculate GROUP_CONCAT the argument should
        be always put into this table, even when it is a constant item.
      sql/sql_class.h:
        Fixed bug #12095: a join query with GROUP_CONCAT over a single row table.
        Added a flag to the TMP_TABLE_PARAM class forcing to put constant
        items generated after elimination of a single row table into temp table
        in some cases (e.g. when GROUP_CONCAT is calculated over a single row
        table).
        bk ci sql/item_sum.cc
        Fixed bug #12095: a join query with GROUP_CONCAT over a single row table.
        If GROUP_CONCAT is calculated we always put its argument into a temp
        table, even when the argument is a constant item.
      mysql-test/t/func_gconcat.test:
        Added a test case for bug #12095.
      mysql-test/r/func_gconcat.result:
        Added a test case for bug #12095.
      a89c7087
  9. 28 Jul, 2005 1 commit
    • unknown's avatar
      sql_select.cc: · 50a07ca4
      unknown authored
        Fixed bug #12144.
        Added an optimization that avoids key access with null keys for the 'ref'
        method when used in outer joins. The regilar optimization with adding
        IS NOT NULL expressions is not applied for outer join on expressions as
        the predicates of these expressions are not pushed down in 4.1.
      null_key.result, null_key.test:
        Added a test case for bug #12144.
      
      
      mysql-test/t/null_key.test:
        Added a test case for bug #12144.
      mysql-test/r/null_key.result:
        Added a test case for bug #12144.
      sql/sql_select.cc:
        Fixed bug #12144.
        Added an optimization that avoids key access with null keys for the 'ref'
        method when used in outer joins. The regilar optimization with adding
        IS NOT NULL expressions is not applied for outer join on expressions as
        the predicates of these expressions are not pushed down in 4.1.
      50a07ca4
  10. 27 Jul, 2005 1 commit
    • unknown's avatar
      We have also to test 'conds' even if there was no tables. · f60bf7ee
      unknown authored
      (This is because conds may not be a constant)
      This bug caused a failure in the test suite for select.test becasue for prepared statements in one case a 'constant sub query' was not regarded as a constant
      Sanja will as a separate task check if we can fix that the sub query can be recognized as a constant
      Bug #12217
      
      
      sql/sql_select.cc:
        We have also to test 'conds' even if there was no tables.
        (This is because conds may not be a constant)
        This bug caused a failure in the test suite for select.test becasue for prepared statements in one case a 'constant sub query' was not regarded as a constant
        Sanja will as a separate task check if we can fix that the sub query can be recognized as a constant
      f60bf7ee
  11. 25 Jul, 2005 1 commit
    • unknown's avatar
      sql_select.cc: · 81746cf0
      unknown authored
        Fixed bug #11412.
        Reversed the patch of cs 1.1934 for the function 
        create_tmp_table. Modified the function to support
        tem_ref objects created for view fields.
      item_buff.cc:
        Fixed bug #11412.
        Modified implementation of new_Cached_item to support
        cacheing of view fields.
      item.h:
        Fixed bug #11412.
        Changed implementation of Item_ref::get_tmp_table_field and
        added Item_ref::get_tmp_table_item to support Item_ref objects
        created for view fields.
      view.test, view.result:
        Added a test case for bug #11412.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #11412.
      mysql-test/t/view.test:
        Added a test case for bug #11412.
      sql/item.h:
        Fixed bug #11412.
        Changed implementation of Item_ref::get_tmp_table_field and
        added Item_ref::get_tmp_table_item to support Item_ref objects
        created for view fields.
      sql/item_buff.cc:
        Fixed bug #11412.
        Modified implementation of new_Cached_item to support
        cacheing of view fields.
      sql/sql_select.cc:
        Fixed bug #11412.
        Reversed the patch of cs 1.1934 for the function 
        create_tmp_table. Modified the function to support
        tem_ref objects created for view fields.
      81746cf0
  12. 20 Jul, 2005 1 commit
    • unknown's avatar
      Implement MySQL framework to support consistent read views in · c4ff5981
      unknown authored
      cursors. This should fix Bug#11813 when InnoDB part is in 
      (tested with a draft patch).
      The idea of the patch is that if a storage engine supports
      consistent read views, we open one when open a cursor,
      set is as the active view when fetch from the cursor, and close
      together with cursor close.
      
      
      sql/examples/ha_archive.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/examples/ha_example.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/examples/ha_tina.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/ha_berkeley.cc:
        - extend handlerton with cursors methods
      sql/ha_blackhole.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/ha_federated.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/ha_heap.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/ha_innodb.cc:
        - extend handlerton with cursors methods
      sql/ha_myisam.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/ha_myisammrg.cc:
        - extend handlerton with cursors methods; fix coding style
      sql/ha_ndbcluster.cc:
        - extend handlerton with cursors methods
      sql/handler.h:
        - extend handlerton with cursors methods
      sql/sql_select.cc:
        - create a consistent read view when we open a cursor,
          set it for a fetch, and free when we closing the cursor.
      sql/sql_select.h:
        - add Cursor::ht_info to remember read views used in a cursor.
      tests/mysql_client_test.c:
        Disable an assert that will be no longer valid when consistent
        read views in InnoDB are used.
      c4ff5981
  13. 19 Jul, 2005 2 commits
    • unknown's avatar
      A fix and a test case for Bug#10760 and complementary cleanups. · 5f07c9d2
      unknown authored
      The idea of the patch
      is that every cursor gets its own lock id for table level locking.
      Thus cursors are protected from updates performed within the same 
      connection. Additionally a list of transient (must be closed at
      commit) cursors is maintained and all transient cursors are closed
      when necessary. Lastly, this patch adds support for deadlock
      timeouts to TLL locking when using cursors.
      + post-review fixes.
      
      
      include/thr_lock.h:
        - add a notion of lock owner to table level locking. When using
          cursors, lock owner can not be identified by a thread id any more, 
          as we must protect cursors from updates issued within the same 
          connection (thread). So, each cursor has its own lock identifier to 
          use with table level locking.
        - extend return values of thr_lock and thr_multi_lock with
          THR_LOCK_TIMEOUT and THR_LOCK_DEADLOCK, since these conditions
          are now possible (see comments to thr_lock.c)
      mysys/thr_lock.c:
        Better support for cursors:
        - use THR_LOCK_OWNER * as lock identifier, not pthread_t.
        - check and return an error for a trivial deadlock case, when an
          update statement is issued to a table locked by a cursor which has 
          been previously opened in the same connection.
        - add support for locking timeouts: with use of cursors, trivial 
          deadlocks can occur. For now the only remedy is the lock wait timeout,
          which is initialized from a new global variable 'table_lock_wait_timeout'
          Example of a deadlock (assuming the storage engine does not downgrade 
          locks):
          con1: open cursor for select * from t1;
          con2: open cursor for select * from t2;
          con1: update t2 set id=id*2;  -- blocked
          con2: update t1 set id=id*2;  -- deadlock
          Lock timeouts are active only if a connection is using cursors.
        - the check in the wait_for_lock loop has been changed from
          data->cond != cond to data->cond != 0. data->cond is zeroed
          in every place it's changed. 
        - added comments
      sql/examples/ha_archive.cc:
        - extend the handlerton with the info about cursor behaviour at commit.
      sql/examples/ha_archive.h:
        - ctor moved to .cc to make use of archive handlerton
      sql/examples/ha_example.cc:
        - add handlerton instance, init handler::ht with it
      sql/examples/ha_example.h:
        - ctor moved to .cc to make use of ha_example handlerton
      sql/examples/ha_tina.cc:
        - add handlerton instance, init handler::ht with it
      sql/examples/ha_tina.h:
        - ctor moved to .cc to make use of CSV handlerton
      sql/ha_berkeley.cc:
        - init handlerton::flags and handler::ht
      sql/ha_berkeley.h:
        - ctor moved to .cc to make use of BerkeleyDB handlerton
      sql/ha_blackhole.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_blackhole.h:
        - ctor moved to .cc to make use of blackhole handlerton
      sql/ha_federated.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_federated.h:
        - ctor moved to .cc to make use of federated handlerton
      sql/ha_heap.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_heap.h:
        - ctor moved to .cc to make use of ha_heap handlerton
      sql/ha_innodb.cc:
        - init handlerton::flags and handler::ht of innobase storage engine
      sql/ha_innodb.h:
        - ctor moved to .cc to make use of archive handlerton
      sql/ha_myisam.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_myisam.h:
        - ctor moved to .cc to make use of MyISAM handlerton
      sql/ha_myisammrg.cc:
        - init handler::ht in the ctor
      sql/ha_myisammrg.h:
        - ctor moved to .cc to make use of MyISAM MERGE handlerton
      sql/ha_ndbcluster.cc:
        - init handlerton::flags and handler::ht
      sql/handler.cc:
        - drop support for ISAM storage engine, which was removed from 5.0
        - close all "transient" cursors at COMMIT/ROLLBACK. A "transient"
          SQL level cursor is a cursor that uses tables that have a transaction-
          specific state.
      sql/handler.h:
        - extend struct handlerton with flags, add handlerton *ht to every
          handler instance.
      sql/lock.cc:
        - extend mysql_lock_tables to send error to the client if 
          thr_multi_lock returns a timeout or a deadlock error.
      sql/mysqld.cc:
        - add server option --table_lock_wait_timeout (in seconds)
      sql/set_var.cc:
        - add new global variable 'table_lock_wait_timeout' to specify
        a wait timeout for table-level locks of MySQL (in seconds). The default
        timeout is 50 seconds. The timeout is active only if the connection
        has open cursors.
      sql/sql_class.cc:
        - implement Statement_map::close_transient_cursors
        - safety suggests that we need an assert ensuring 
         llock_info->n_cursors is functioning properly, adjust destruction of
         the Statement_map to allow such assert in THD::~THD
      sql/sql_class.h:
        - add support for Cursors registry to Statement map.
      sql/sql_prepare.cc:
        - maintain a list of cursors that must be closed at commit/rollback.
      sql/sql_select.cc:
        - extend class Cursor to support specific at-COMMIT/ROLLBACK behavior.
        If a cursor uses tables of a storage engine that 
        invalidates all open tables at COMMIT/ROLLBACK, it must be closed
        before COMMIT/ROLLBACK is executed.
      sql/sql_select.h:
        - add an own lock_id and commit/rollback status flag to class Cursor
      tests/mysql_client_test.c:
        A test case for Bug#10760 and complementary issues: test a simple
        deadlock case too.
      mysql-test/var:
        New BitKeeper file ``mysql-test/var''
      5f07c9d2
    • unknown's avatar
      Simple fixes during review of new code · b11046f5
      unknown authored
      include/my_global.h:
        Added floatget() to read unaligned flaot
      mysql-test/r/select.result:
        Added test for found_rows()
      mysql-test/t/select.test:
        Added test for found_rows()
      sql/des_key_file.cc:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
      sql/field_conv.cc:
        Added optimizzed varsion of do_cut_string (for simple character sets)
      sql/item_func.cc:
        Simplify code (and ensure DBUG_ENTER is excuted before main code)
      sql/item_strfunc.cc:
        Safe calculation of max_length
        This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH)
        Remove init_des_key_file() as this is not initialized in mysqld.cc
      sql/item_timefunc.cc:
        Safe calculation of max_length
        This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH)
      sql/log_event.cc:
        Simplify code
      sql/mysql_priv.h:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
      sql/mysqld.cc:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
        Revert wrong patch of calling close_connection() in first close_connections() loop. (Bug #7403)
        Instead we now print a warning for closed connections only if mysqld is sarted with --warnings
        Added comments to make the close_connections() logic clearer
      sql/sql_prepare.cc:
        Use floatget() and doubleget() to protect against unaligned data
      sql/sql_select.cc:
        Fixed some cases unlikely cases where found_rows() would return wrong for queries that would return 0 or 1 rows
      b11046f5
  14. 18 Jul, 2005 2 commits
    • unknown's avatar
      Fix bug#11482 4.1.12 produces different resultset for a complex query · a77c2acf
      unknown authored
        than in previous 4.1.x
      
      Wrongly applied optimization were adding NOT NULL constraint which results in
      rejecting valid rows and reduced result set.
      
      The problem was that add_notnull_conds() while checking subquery were adding
      NOT NULL constraint to left joined table, to which, normally, optimization 
      don't have to be applied.
      
      
      sql/sql_select.cc:
        Fix bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
        Constraint were added to optimization appliance test.
      mysql-test/t/select.test:
        Test case for bug #11482  Wrongly applied optimization was erroneously rejecting valid rows
      mysql-test/r/select.result:
        Test case for bug #11482  Wrongly applied optimization was erroneously rejecting valid rows
      a77c2acf
    • unknown's avatar
      Cleanups during review · 2e9d6d7e
      unknown authored
      Changed defaults option --instance to --defaults-group-suffix
      Changed option handling to allow --defaults-file, --defaults-extra-file and --defaults-group-suffix to be given in any order
      Changed MYSQL_INSTANCE to MYSQL_GROUP_SUFFIX
      mysql_print_defaults now understands --defaults-group-suffix
      Remove usage of my_tempnam() (not safe function)
      if( -> if ( and while( to while (
      
      
      BitKeeper/deleted/.del-my_tempnam.c~a8562f15dad3012f:
        Delete: mysys/my_tempnam.c
      VC++Files/client/mysqlclient.dsp:
        Remove not used file my_tempnam.c
      VC++Files/client/mysqlclient_ia64.dsp:
        Remove not used file my_tempnam.c
      VC++Files/libmysql/libmysql.dsp:
        Remove not used file my_tempnam.c
      VC++Files/libmysql/libmysql_ia64.dsp:
        Remove not used file my_tempnam.c
      VC++Files/mysys/mysys.dsp:
        Remove not used file my_tempnam.c
      VC++Files/mysys/mysys_ia64.dsp:
        Remove not used file my_tempnam.c
      client/mysql.cc:
        Change to use get_defaults_options()
        Remove compiler warnings
      client/mysqldump.c:
        Indentation fixes
        Use quoted table name for 'primary_key_fields'
      extra/my_print_defaults.c:
        Add support for --defaults-group-suffix
        change to use get_default_options()
      extra/replace.c:
        Replace my_tempnam() with create_tmp_file() to allow us to remove my_tempnam.c
      include/config-win.h:
        Added DEFAULT_GROUP_SUFFIX_ENV
      include/my_sys.h:
        Change defaults_instance -> defaults_group_suffix
        Change get_defaults_files -> get_defaults_options
      libmysql/Makefile.shared:
        Added DEFAULT_GROUP_SUFFIX_ENV
      mysys/Makefile.am:
        Added DEFAULT_GROUP_SUFFIX_ENV
        Remove my_tempnam.c
      mysys/default.c:
        Changed --instance to --defaults-group-suffix
        Changed MYSQL_INSTANCE to MYSQL_GROUP_SUFFIX and moved the name to Makefile.am
        (mysys shouldn't by MySQL independent)
        Changed option handling to allow --defaults-file, --defaults-extra-file and --defaults-group-suffix to be given in any order
      mysys/default_modify.c:
        Optimized code to use allocated space more efficently
        Reduce code size
        Ensure that realloc() works independent of argument size
      mysys/my_bitmap.c:
        Added missing return
      sql/ha_innodb.cc:
        Change if( -> if (
      sql/ha_ndbcluster.cc:
        Change while( -> while (
      sql/item_cmpfunc.cc:
        Break loop early (simple optimization)
      sql/item_strfunc.cc:
        Change if( -> if (
      sql/log.cc:
        Fixed comment
      sql/mysqld.cc:
        Change if( -> if (
      sql/opt_range.cc:
        while( -> while (
        if( -> if (
      sql/parse_file.cc:
        Change if( -> if (
      sql/sql_cache.cc:
        while( -> while (
      sql/sql_parse.cc:
        Change if( -> if (
      sql/sql_prepare.cc:
        Added comment
      sql/sql_select.cc:
        while( -> while (
        Removed index variable by incrementing pointer
      sql/sql_show.cc:
        Change if( -> if (
      sql/sql_yacc.yy:
        Change if( -> if (
      tests/mysql_client_test.c:
        Added cast to first argument to bzero()
      2e9d6d7e
  15. 17 Jul, 2005 2 commits
    • unknown's avatar
      select.result, select.test: · bbee428d
      unknown authored
        Added a test case for bug #11745.
      sql_select.cc:
        Fixed bug # 11745.
        Added support of where clause for queries with FROM DUAL.
      sql_yacc.yy:
        Fixed bug # 11745.
        Added optional where clause for queries with FROM DUAL.
      
      
      sql/sql_yacc.yy:
        Fixed bug # 11745.
        Added optional where clause for queries with FROM DUAL.
      sql/sql_select.cc:
        Fixed bug # 11745.
        Added support of where clause for queries with FROM DUAL.
      mysql-test/t/select.test:
        Added a test case for bug #11745.
      mysql-test/r/select.result:
        Added a test case for bug #11745.
      bbee428d
    • unknown's avatar
      func_in.result, func_in.test: · 653d467c
      unknown authored
        Fixed bug #11885.
      sql_select.cc:
        Fixed bug #11885.
        Predicates of the forms 'a IN (v)' 'a NOT IN (v)' now
        is replaced by 'a=v' and 'a<>v' at the parsing stage.
      sql_yacc.yy:
        Fixed bug #11885.
        Predicates of the forms 'a IN (v)' 'a NOT IN (v)' now 
        is replaced by 'a=v' and 'a<>v' at the parsing stage.
      
      
      sql/sql_yacc.yy:
        Fixed bug #11885.
        Predicates of the forms 'a IN (v)' 'a NOT IN (v) now 
        is replaced by 'a=v' and 'a<>v' at the parsing stage.
      sql/sql_select.cc:
        Fixed bug #11885.
        Predicates of the forms 'a IN (v)' 'a NOT IN (v) now
        is replaced by 'a=v' and 'a<>v' at the parsing stage.
      mysql-test/t/func_in.test:
        Fixed bug #11885.
      mysql-test/r/func_in.result:
        Fixed bug #11885.
      653d467c
  16. 16 Jul, 2005 1 commit
    • unknown's avatar
      Fix bug#11868 NOT NULL ref optimization in subquery used in update must be · eb944444
      unknown authored
      disabled if ref is built with a key from the updated table
      
      Problem was in add_not_null_conds() optimization function.
      It contains following code:
      JOIN_TAB *referred_tab= not_null_item->field->table->reginfo.join_tab;
      ...
      add_cond_and_fix(&referred_tab->select_cond, notnull);
      For UPDATE described in bug report referred_tab is 0 and dereferencing it
      crashes the server.
      
      
      
      sql/sql_select.cc:
        Fix bug #11868 NOT NULL ref optimization in subquery used in update must be
        disabled if ref is built with a key from the updated table
      mysql-test/r/update.result:
        Test case for bug#11868 Update with subquery with ref built with a key from
        the updated table crashes server.
      mysql-test/t/update.test:
        Test case for bug#11868 Update with subquery with ref built with a key from the updated table crashes server
      eb944444
  17. 15 Jul, 2005 1 commit
    • unknown's avatar
      Fix bug#11482 4.1.12 produces different resultset for a complex query · 653e2989
      unknown authored
        than in previous 4.1.x
      
      Wrongly applied optimization were adding NOT NULL constraint which results in
      rejecting valid rows and reduced result set.
      
      The problem was that add_notnull_conds() while checking subquery were adding
      NOT NULL constraint to left joined table, to which, normally, optimization 
      don't have to be applied.
      
      
      sql/sql_select.cc:
        Fix bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
        Constraint were added to optimization appliance test.
      mysql-test/t/select.test:
        Test case for bug #11482  Wrongly applied optimization was erroneously rejecting valid rows
      mysql-test/r/select.result:
        Test case for bug #11482  Wrongly applied optimization was erroneously rejecting valid rows
      653e2989
  18. 14 Jul, 2005 3 commits
    • unknown's avatar
      Post-merge fixes. · 29f55c9e
      unknown authored
      mysql-test/r/fulltext_order_by.result:
        A post-merge fix.
      mysql-test/t/fulltext_order_by.test:
        A post-merge fix (a different plan is chosen for a query in 5.0)
      sql/sql_select.cc:
        Post-merge fix.
      29f55c9e
    • unknown's avatar
      Fix for BUG#11700: in add_not_null_conds(), call full fix_fields() for the created NOT NULL. · 76d9fa6f
      unknown authored
        This is needed because in some cases range optimization is performed twice and added 
        NOT NULL item must have correct const_table_map() value. 
      
      
      mysql-test/r/select.result:
        Testcase for BUG#11700
      mysql-test/t/select.test:
        Testcase for BUG#11700
      76d9fa6f
    • unknown's avatar
      Implement MarkM optimization request to avoid redundnat packet exchange · de290880
      unknown authored
      in cursors.
      
      
      libmysql/libmysql.c:
        - reset_stmt_handle(): don't reset the server side just because we have 
          an open cursor: the server will close the cursor automatically if 
          needed
      sql/sql_prepare.cc:
        - implement Prepared_statement::close_cursor,
        - implicitly close an open cursor in mysql_stmt_execute instead of 
          issuing an error (to reduce the need to explicitly close cursors
          and save network bandwidth).
        - cleanup
      sql/sql_select.cc:
        Remove a destructor: cursor destruction can not be done by simply
        calling a destructor, because of cross-references between cursor
        and statement memory.
      sql/sql_select.h:
        - add an empty Cursor destructor
      tests/mysql_client_test.c:
        - remove a test for dropped functionality
      de290880
  19. 04 Jul, 2005 1 commit
    • unknown's avatar
      Fixes during review of new code · 8c5e2ab4
      unknown authored
      - Mostly indentation fixes
      - Added missing test
      - Ensure that Item_func_case() checks for stack overruns
      - Use real_item() instead of (Item_ref*) item
      - Fixed wrong error handling
      
      
      myisam/mi_unique.c:
        Improved comments
      myisam/myisampack.c:
        Updated version number
      mysql-test/r/group_by.result:
        Added test that was lost during earlier merge
      mysql-test/r/information_schema.result:
        Safety fix: Drop procedures before used
      mysql-test/t/group_by.test:
        Added test that was lost during earlier merge
      mysql-test/t/information_schema.test:
        Safety fix: Drop procedures before used
      mysys/hash.c:
        Updated comment
      sql/field.cc:
        false -> FALSE
      sql/ha_ndbcluster.cc:
        Fix some style issues
        - No () around argument to 'case'
        - Space before ( in switch and if
        - Removed 'goto'
        - Added {}
        - Added () to make expressions easier to read
        - my_snprintf -> strmov
      sql/handler.cc:
        if( -> if (
      sql/item.cc:
        Indentation changes
      sql/item.h:
        false -> FALSE
      sql/item_cmpfunc.cc:
        Ensure that Item_func_case() check for stack overrun properly
      sql/item_cmpfunc.h:
        Ensure that Item_func_case() check for stack overrun properly
      sql/item_func.cc:
        Indentation fixes
        Fixed wrong goto label
      sql/mysqld.cc:
        Remove test for opt_disable_networking as this flag can never be set here
      sql/opt_range.cc:
        Simplify code
      sql/sql_class.h:
        Move define out from middle of class definition
      sql/sql_parse.cc:
        Remove extra empty lines
      sql/sql_select.cc:
        use real_item() instead of (Item_ref*) item
        Modifed function comment to be align with others
        Simple optimization
      sql/sql_union.cc:
        Portability fix:
        Don't use 'bool_variable|=...'
      sql/sql_view.cc:
        Move List_iterator_fast out from loops (rewind is faster than creating a new itearator)
      strings/ctype-utf8.c:
        if( -> if (
      strings/ctype.c:
        Remove disabled code
      strings/decimal.c:
        Indentation fixes
      strings/xml.c:
        Indentation fixes
      8c5e2ab4
  20. 02 Jul, 2005 1 commit
    • unknown's avatar
      do not register changes of stack variable · 91d786af
      unknown authored
      sql/item.cc:
        new argument of find_field_in_tables()
      sql/mysql_priv.h:
        new argument of find_field_in_tables()
      sql/sp.cc:
        new argument of find_field_in_tables()
      sql/sql_base.cc:
        new argument of find_field_in_tables()
      sql/sql_help.cc:
        new argument of find_field_in_tables()
      91d786af
  21. 01 Jul, 2005 7 commits
    • unknown's avatar
    • unknown's avatar
      olap.result, olap.test: · 044620a3
      unknown authored
        Added a test case for bug #11543.
      sql_select.cc:
        Fixed bug #11543.
        A ROLLUP query could return a wrong result set when
        its GROUP BY clause contained references to the same
        column.
      
      
      sql/sql_select.cc:
        Fixed bug #11543.
        A ROLLUP query could return a wrong result set when
        its GROUP BY clause contained references to the same
        column.
      mysql-test/t/olap.test:
        Added a test case for bug #11543.
      mysql-test/r/olap.result:
        Added a test case for bug #11543.
      044620a3
    • unknown's avatar
      Fix a valgrind warning. · bebdaf7c
      unknown authored
      sql/sql_prepare.cc:
        A small fix for the previous patch: we should first free the
        prepared statement items, and then free the runtime memory root,
        as some memory used for cleanup is allocated in that mem root.
      sql/sql_select.cc:
        - ever free the cursor mem root in close() (it's too early).
      bebdaf7c
    • unknown's avatar
      A fix and a test case for Bug#11172 "mysql_stmt_attr_set · 12cf1bec
      unknown authored
      CURSOR_TYPE_READ_ONLY date/datetime filter server crash".
      The fix adds support for Item_change_list in cursors (proper rollback
      of the modified item tree). 
      
      
      sql/sql_class.cc:
        No need to call fatal_error() twice.
      sql/sql_prepare.cc:
        - implement proper cleanup of the prepared statement in mysql_stmt_reset
          if there is a cursor.
        - take into account thd->change_list when fetching data through a
          cursor.
      sql/sql_select.cc:
        - take into account thd->change_list when fetching data from a cursor:
          grab it when we open a cursor, and rollback the changes to the parsed
          tree when we close it.
      sql/sql_select.h:
        - Cursor::change_list added
      tests/mysql_client_test.c:
        - a test case for Bug#11172 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY date/datetime
         filter server crash"
      12cf1bec
    • unknown's avatar
      view.result: · 6422def9
      unknown authored
        Fixed the results of a test for group_concat.
        After the fix foor bug #11639 the results became
        correct.
      olap.result, olap.test:
        Added a test case for bug #11639.
      sql_select.cc:
        Fixed bug #11639: a wrong result set when using a view
        instead of the underlying table in a rollup query 
        executed through filesort.
        The old code did not take into account that we always
        use an Item_ref object when referring to a view column.
      item.h:
        Fixed bug #11639.
        Now if two Item_ref items ref1 and ref2 refer to the same field
        then ref1->eq(ref2) returns 1.
      
      
      sql/item.h:
        Fixed bug #11639.
        Now if two Item_ref items ref1 and ref2 refer to the same field
        then ref1->eq(ref2) returns 1.
      sql/sql_select.cc:
        Fixed bug #11639: a wrong result set when using a view
        instead of the underlying table in a rollup query 
        executed through filesort.
        The old code did not take into account that we always
        use an Item_ref object when referring to a view column.
      mysql-test/t/olap.test:
        Added a test case for bug #11639.
      mysql-test/r/olap.result:
        Added a test case for bug #11639.
      mysql-test/r/view.result:
        Fixed the results of a test for group_concat.
        After the fix foor bug #11639 the results became
        correct.
      6422def9
    • unknown's avatar
      Optimization during review · c6654e63
      unknown authored
      Add extra check to delete [] to ensure we are not deleting not allocated data
      
      
      sql/sql_select.cc:
        Optimization
        Add extra check to delete [] to ensure we are not deleting not allocated data
      c6654e63
    • unknown's avatar
      Name resolution context added (BUG#6443) · f75ad371
      unknown authored
      include/my_bitmap.h:
        new bitmap operation
      mysql-test/r/view.result:
        added warnings
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysql-test/t/view.test:
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysys/my_bitmap.c:
        new bitmap operation
      sql/field.h:
        index of field in table added
      sql/item.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item.h:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.cc:
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.h:
        table list removed from fix_fields() arguments
      sql/item_func.cc:
        table list removed from fix_fields() arguments
      sql/item_func.h:
        table list removed from fix_fields() arguments
      sql/item_row.cc:
        table list removed from fix_fields() arguments
      sql/item_row.h:
        table list removed from fix_fields() arguments
      sql/item_strfunc.cc:
        fixed server crash on NULL argument
      sql/item_strfunc.h:
        table list removed from fix_fields() arguments
      sql/item_subselect.cc:
        table list removed from fix_fields() arguments
      sql/item_subselect.h:
        table list removed from fix_fields() arguments
      sql/item_sum.cc:
        table list removed from fix_fields() arguments
      sql/item_sum.h:
        table list removed from fix_fields() arguments
      sql/item_timefunc.cc:
        table list removed from fix_fields() arguments
      sql/item_timefunc.h:
        table list removed from fix_fields() arguments
      sql/item_uniq.h:
        table list removed from fix_fields() arguments
      sql/log_event.cc:
        Name resolution context added
      sql/log_event.h:
        Name resolution context added
      sql/mysql_priv.h:
        Name resolution context added
      sql/set_var.cc:
        table list removed from fix_fields() arguments
      sql/share/errmsg.txt:
        new error message
      sql/sp.cc:
        Name resolution context added
      sql/sp_head.cc:
        table list removed from fix_fields() arguments
      sql/sp_head.h:
        Name resolution context added
      sql/sql_base.cc:
        table list removed from fix_fields() arguments
        Name resolution context added
      sql/sql_class.cc:
        renamed variable
      sql/sql_delete.cc:
        Name resolution context added
      sql/sql_derived.cc:
        Name resolution context added
      sql/sql_do.cc:
        table list removed from fix_fields() arguments
      sql/sql_handler.cc:
        Name resolution context added
      sql/sql_help.cc:
        Name resolution context added
      sql/sql_insert.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/sql_lex.cc:
        Name resolution context added
      sql/sql_lex.h:
        removed resolve mode (information stored into name resolution context)
      sql/sql_load.cc:
        table list removed from fix_fields() arguments
      sql/sql_olap.cc:
        Name resolution context added
      sql/sql_parse.cc:
        Name resolution context added
      sql/sql_prepare.cc:
        table list removed from fix_fields() arguments
      sql/sql_select.cc:
        table list removed from fix_fields() arguments
      sql/sql_show.cc:
        Name resolution context added
      sql/sql_trigger.cc:
        table list removed from fix_fields() arguments
      sql/sql_udf.h:
        table list removed from fix_fields() arguments
      sql/sql_union.cc:
        Name resolution context added
      sql/sql_update.cc:
        Name resolution context added
      sql/sql_view.cc:
        Name resolution context added
      sql/sql_view.h:
        table list removed from fix_fields() arguments
      sql/sql_yacc.yy:
        Name resolution context added
      sql/table.cc:
        Name resolution context added
        merged view processing moved
      sql/table.h:
        merged view processing moved
      f75ad371
  22. 30 Jun, 2005 1 commit
    • unknown's avatar
      a fix. · 654e468c
      unknown authored
      bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
      bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
      bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs 
      
      
      mysql-test/r/type_bit.result:
        test case.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs
      mysql-test/t/type_bit.test:
        test case.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs
      sql/field.h:
        a fix.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs 
        
        - max_length() returns length in bits.
        - introduced set_bit_ptr() function, which sets bit_ptr and bit_ofs.
      sql/item.cc:
        a fix.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs
        
        - create Field_bit_as_char in case of MYSQL_TYPE_BIT in the Item::tmp_table_field_from_field_type()
          (we cannot create Field_bit here because of lack of information: bit_ptr, bit_ofs)
      sql/mysql_priv.h:
        a fix.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs 
        
        - table_cant_handle_bit_fields parameter added to the create_tmp_field()
      sql/sql_select.cc:
        a fix.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs
        
        - create_tmp_field() changes to return create_tmp_field_from_item() result 
          (actually, Field_bit_as_char) if table_cant_handle_bit_fields=1 for bit fields.
        - create_tmp_field() calls accordingly changed 
        - call set_bit_ptr() for bit fields after the move_field() call during 
          temporary table creation.
      sql/sql_table.cc:
        a fix.
        bug #10617: Insert from same table to same table give incorrect result for bit(4) column.
        bug #11091: union involving BIT: assertion failure in Item::tmp_table_field_from_field_type
        bug #11572: MYSQL_TYPE_BIT not taken care of in temp. table creation for VIEWs
        
        - changed the create_tmp_field() call
      654e468c
  23. 28 Jun, 2005 1 commit
    • unknown's avatar
      group_by.result, group_by.test: · 1c2a96cc
      unknown authored
        Added a test case for bug #11414.
      sql_select.cc:
        Fixed bug #11414: crash on Windows with some simple
        GROUP BY queries.
        It happened to an allocation of an array containing
        0 Copy_field elements in setup_copy_fields.
        The bug had been already fixed in 5.0.
      
      
      sql/sql_select.cc:
        Fixed bug #11414: crash on Windows with some simple
        GROUP BY queries.
        It happened to an allocation of an array containing
        0 Copy_field elements in setup_copy_fields.
        The bug had been already fixed in 5.0.
      mysql-test/t/group_by.test:
        Added a test case for bug #11414.
      mysql-test/r/group_by.result:
        Added a test case for bug #11414.
      1c2a96cc
  24. 27 Jun, 2005 1 commit
  25. 24 Jun, 2005 2 commits
    • unknown's avatar
      Free unused JOINs early even if using subqueries. · 04f08168
      unknown authored
      sql/sql_select.cc:
        According to the conclusion made in the previous patch, we can widen
        the range of cases when JOINs are fully freed early, and include 
        subqueries to it.
      04f08168
    • unknown's avatar
      Remove an unrelevant assert. · dab66aa3
      unknown authored
      sql/sql_select.cc:
        This assert is not relevant because:
        - the correct assert is DBUG_ASSERT(! (full && sl->uncacheable)) 
          (prevents freeing of uncacheable JOINs), it breaks view.test
        - it seems we can free internal JOINs, even if they are uncacheable:
          if the top level join is evaluated, we're not going to need  the
          internal joins any more
      dab66aa3