An error occurred fetching the project authors.
  1. 21 Nov, 2006 1 commit
    • unknown's avatar
      BUG#23159: prepared_stmt_count should be status variable · 7a45fb54
      unknown authored
      Make Prepared_stmt_count a global status variable, accessible via
      SHOW STATUS LIKE 'Prepared_stmt_count';.  Documentation should be
      updated.
      
      
      mysql-test/r/ps.result:
        Update result for bug#16365: Prepared Statements: DoS with too many
        open statements, according to bug#23159: prepared_stmt_count should be
        status variable.
      mysql-test/t/ps.test:
        Update test case for bug#16365: Prepared Statements: DoS with too many
        open statements, according to bug#23159: prepared_stmt_count should be
        status variable.
      sql/mysqld.cc:
        Add Prepared_stmt_count as global status variable.
      sql/set_var.cc:
        Remove prepared_stmt_count as system variable.
      7a45fb54
  2. 10 Oct, 2006 1 commit
    • unknown's avatar
      BUG#21354: (COUNT(*) = 1) not working in SELECT inside prepared · 3177e8eb
      unknown authored
                 statement.
      
      The problem was that during statement re-execution if the result was
      empty the old result could be returned for group functions.
      
      The solution is to implement proper cleanup() method in group
      functions.
      
      
      mysql-test/r/ps.result:
        Add result for bug#21354: (COUNT(*) = 1) not working in SELECT inside
        prepared statement.
      mysql-test/t/func_gconcat.test:
        Add a comment that the test case is from bug#836.
      mysql-test/t/ps.test:
        Add test case for bug#21354: (COUNT(*) = 1) not working in SELECT inside
        prepared statement.
      sql/item_sum.cc:
        Call clear() in Item_sum_count::cleanup().
      sql/item_sum.h:
        Add comments.
        Add proper cleanup() methods.
        Change Item_sum::no_rows_in_result() to call clear() instead of reset(),
        as the latter also issues add(), and there is nothing to add when there
        are no rows in result.
      3177e8eb
  3. 03 Oct, 2006 1 commit
    • unknown's avatar
      Update mysqltest to latest version · 9368c7bc
      unknown authored
       - ie. backport from 5.1
       - also update testcase error dected by new version
      
      
      mysql-test/include/show_msg.inc:
        BitKeeper file /home/msvensson/mysql/same_tools/my41-same_tools/mysql-test/include/show_msg.inc
      mysql-test/include/show_msg80.inc:
        BitKeeper file /home/msvensson/mysql/same_tools/my41-same_tools/mysql-test/include/show_msg80.inc
      BitKeeper/deleted/.del-rpl_chain_temp_table.test:
        Delete: mysql-test/t/rpl_chain_temp_table.test
      BitKeeper/deleted/.del-rpl_chain_temp_table.result:
        Delete: mysql-test/r/rpl_chain_temp_table.result
      BitKeeper/deleted/.del-rpl_failsafe.result:
        Delete: mysql-test/r/rpl_failsafe.result
      BitKeeper/deleted/.del-rpl_failsafe.test:
        Delete: mysql-test/t/rpl_failsafe.test
      BitKeeper/deleted/.del-rpl_heap.test:
        Delete: mysql-test/t/rpl_heap.test
      BitKeeper/deleted/.del-rpl_heap.result:
        Delete: mysql-test/r/rpl_heap.result
      BitKeeper/deleted/.del-rpl000018.result:
        Delete: mysql-test/r/rpl000018.result
      BitKeeper/deleted/.del-rpl000018.test:
        Delete: mysql-test/t/rpl000018.test
      client/Makefile.am:
        Link mysqltest with mysys/my_copy.c
      client/mysqltest.c:
        Update mysqltest to latest version
      mysql-test/include/have_multi_ndb.inc:
        Remove old syntax "@filename" in favor of "--require filename"
      mysql-test/include/master-slave.inc:
        Remove old syntax "@filename" in favor of "--require filename"
      mysql-test/include/ps_query.inc:
        Remove the comment about no output now when it does.
      mysql-test/r/check.result:
        Update output from --send
      mysql-test/r/connect.result:
        Update result file for connect test after backport form 5.1
      mysql-test/r/flush.result:
        Update output from --send
      mysql-test/r/flush_block_commit.result:
        Update output from --send
      mysql-test/r/func_misc.result:
        Update output from --send
      mysql-test/r/grant2.result:
        Update output from --send
      mysql-test/r/handler.result:
        Update output from --send
      mysql-test/r/kill.result:
        Update output from --send
      mysql-test/r/lock_multi.result:
        Update output from --send
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Update output from --send
      mysql-test/r/mysqltest.result:
        Update mysqltest.result after backport
      mysql-test/r/ps_2myisam.result:
        Update result as the output from query is now printed
      mysql-test/r/ps_3innodb.result:
        Update result as the output from query is now printed
      mysql-test/r/ps_4heap.result:
        Update result as the output from query is now printed
      mysql-test/r/ps_5merge.result:
        Update result as the output from query is now printed
      mysql-test/r/ps_6bdb.result:
        Update result as the output from query is now printed
      mysql-test/r/ps_7ndb.result:
        Update result as the output from query is now printed
      mysql-test/r/rename.result:
        Update output from --send
      mysql-test/r/rpl000001.result:
        Update output from --send
      mysql-test/r/rpl_error_ignored_table.result:
        Update output from --send
      mysql-test/r/rpl_master_pos_wait.result:
        Update output from --send
      mysql-test/r/subselect.result:
        Update result file after adding missing ;
      mysql-test/r/synchronization.result:
        Update output from --send
      mysql-test/r/type_blob.result:
        Update result file after adding missing ;
      mysql-test/t/connect.test:
        Backport test from 5.1
      mysql-test/t/init_file.test:
        Update test so something is printed
      mysql-test/t/mysql_client_test.test:
        Update test so result is sent to file and something is printed
      mysql-test/t/mysqltest.test:
        Backport latest mysqltest.test file
      mysql-test/t/ps.test:
        Move the --replace_column statement to just before the statetement it should replace
      mysql-test/t/ps_1general.test:
        Move the --replace_column statement to just before the statetement it should replace
      mysql-test/t/ps_grant.test:
        Remove the $DB, no other test uses it
      mysql-test/t/rpl_flush_tables.test:
        Fetch $SERVER_VERSION from the db server
      mysql-test/t/rpl_trunc_temp.test:
        Remove the selection of connection master after it's been disconnected already
      mysql-test/t/subselect.test:
        Add missing ;
      mysql-test/t/type_blob.test:
        Add missing ;
      9368c7bc
  4. 16 Sep, 2006 1 commit
    • unknown's avatar
      Fixed bug #22085: Crash on the execution of a prepared · c46151d9
      unknown authored
      statement that uses an aggregating IN subquery with 
      HAVING clause.
      A wrong order of the call of split_sum_func2 for the HAVING
      clause of the subquery and the transformation for the 
      subquery resulted in the creation of a andor structure
      that could not be restored at an execution of the prepared
      statement.
      
      
      mysql-test/r/ps.result:
        Added a test cases for bug #22085.
      mysql-test/t/ps.test:
        Added a test cases for bug #22085.
      c46151d9
  5. 06 Jul, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#19399 "res 'Lost Connection' when · 8995277a
      unknown authored
      dropping/creating tables".
      
      The bug could lead to a crash when multi-delete statements were
      prepared and used with temporary tables.
      
      The bug was caused by lack of clean-up of multi-delete tables before
      re-execution of a prepared statement. In a statement like
      DELETE t1 FROM t1, t2 WHERE ... the first table list (t1) is
      moved to lex->auxilliary_table_list and excluded from lex->query_tables
      or select_lex->tables. Thus it was unaccessible to reinit_stmt_before_use
      and not cleaned up before re-execution of a prepared statement. 
      
      
      mysql-test/r/ps.result:
        Updated test results (Bug#19399)
      mysql-test/t/ps.test:
        A test case for Bug#19399 "Stored Procedures 'Lost Connection' when 
        dropping/creating tables": test that multi-delete
        tables are cleaned up properly before re-execution.
      sql/sql_lex.cc:
        Always initialize auxilliary_table_list when we initialize the lex:
        this way we don't have to check that lex->sql_command equals to
        SQLCOM_DELETE_MULTI whenever we need to access auxilliary_table_list.
        In particular, in reinit_stmt_before_use we can simply check that
        auxilliary_table_list is not NULL and clean it up if the check returns
        a true value.
      sql/sql_prepare.cc:
        Move the one table clean-up functionality to a method of st_table_list.
        Clean up auxiliary_table_list if it's not empty.
      sql/table.cc:
        Implement st_table_list::reinit_before_use().
      sql/table.h:
        Declare st_table_list::reinit_before_use().
      8995277a
  6. 07 Apr, 2006 2 commits
    • unknown's avatar
      A fix and a test case for Bug#16365 "Prepared Statements: DoS with · 5b5530da
      unknown authored
      too many open statements". The patch adds a new global variable
      @@max_prepared_stmt_count. This variable limits the total number
      of prepared statements in the server. The default value of
      @@max_prepared_stmt_count is 16382. 16382 small statements
      (a select against 3 tables with GROUP, ORDER and LIMIT) consume 
      100MB of RAM. Once this limit has been reached, the server will 
      refuse to prepare a new statement and return ER_UNKNOWN_ERROR 
      (unfortunately, we can't add new errors to 4.1 without breaking 5.0). The limit is changeable after startup
      and can accept any value from 0 to 1 million. In case
      the new value of the limit is less than the current
      statement count, no new statements can be added, while the old
      still can be used. Additionally, the current count of prepared 
      statements is now available through a global read-only variable 
      @@prepared_stmt_count.
      
      
      mysql-test/r/ps.result:
        Test results fixed (a test case for Bug#16365)
      mysql-test/t/ps.test:
        A test case for Bug#16365 "Prepared Statements: DoS with too many 
        open statements". Also fix statement leaks in other tests.
      sql/mysql_priv.h:
        Add declarations for new global variables.
      sql/mysqld.cc:
        Add definitions of max_prepared_stmt_count, prepared_stmt_count.
      sql/set_var.cc:
        Implement support for @@prepared_stmt_count and 
        @@max_prepared_stmt_count. Currently these variables are queried
        without acquiring LOCK_prepared_stmt_count due to limitations of
        the set_var/sys_var class design. Updates are, however, protected 
        with a lock.
      sql/set_var.h:
        New declarations to add support for @@max_prepared_stmt_count.
        Implement a new class, where the lock to be used when updating
        a variable is a parameter.
      sql/sql_class.cc:
        Add accounting of the total number of prepared statements in the
        server to the methods of Statement_map.
      sql/sql_class.h:
        Add accounting of the total number of prepared statements in the
        server to the methods of Statement_map.
      sql/sql_prepare.cc:
        Statement_map::insert will now send a message in case of an
        error.
      5b5530da
    • unknown's avatar
      A fix and a test case for Bug#16248 "WHERE (col1,col2) IN ((?,?)) · 9b6e83f4
      unknown authored
      gives wrong results". Implement previously missing 
      Item_row::cleanup. The bug is not repeatable in 5.0, probably 
      due to a coincidence: the problem is present in 5.0 as well.
      
      
      mysql-test/r/ps.result:
        Update the result file (Bug#16248)
      mysql-test/t/ps.test:
        Add a test case for Bug#16248 "WHERE (col1,col2) IN ((?,?)) gives 
        wrong results"
      sql/item_row.cc:
        Implement Item_row::cleanup(): we should reset used_tables_cache
        before reexecution of a prepared statement. In case ROW
        arguments contain a placeholder, used_tables_cache has PARAM_TABLE
        bit set in statement prepare. As a result, when executing a statement,
        the condition push down algorithm (make_cond_for_table) would think
        that the WHERE clause belongs to the non-existent PARAM_TABLE and
        wouldn't attach the WHERE clause to any of the real tables, 
        effectively optimizing the clause away.
      sql/item_row.h:
        Remove a never used member 'array_holder'. Add declaration for
        Item_row::cleanup.
      9b6e83f4
  7. 23 Feb, 2006 1 commit
    • unknown's avatar
      Remove 'delayed' to make the test deterministic (already · ea9ea952
      unknown authored
      fixed in 5.0).
      A post-review fix (Bug#13134)
      
      
      mysql-test/r/heap.result:
        Remove 'delayed' to make the test deterministic.
      mysql-test/r/ps.result:
        Remove an unneeded drop table (test case for Bug#13134)
      mysql-test/t/heap.test:
        Remove 'delayed' to make the test deterministic.
      mysql-test/t/ps.test:
        A post-review fix (Bug#13134)
      ea9ea952
  8. 21 Feb, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#13134 "Length of VARCHAR() utf8 · 9cf3f255
      unknown authored
      column is increasing when table is recreated with PS/SP":
      make use of create_field::char_length more consistent in the code.
      Reinit create_field::length from create_field::char_length
      for every execution of a prepared statement (actually fixes the 
      bug).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#13134)
      mysql-test/t/ps.test:
        A test case for Bug#13134 "Length of VARCHAR() utf8 column is 
        increasing when table is recreated with PS/SP"
      sql/field.cc:
        Move initialization of create_field::char_length to the constructor
        of create_field.
      sql/field.h:
        Rename chars_length to char_length (to be consistent with
        how this term is used throughout the rest of the code).
      sql/sql_parse.cc:
        Initialize char_length in add_field_to_list. This function
        effectively works as another create_field constructor.
      sql/sql_table.cc:
        Reinit length from char_length for every field in 
        mysql_prepare_table. This is not needed if we're executing
        a statement for the first time, however, at subsequent executions
        length contains the number of bytes, not characters (as it's expected 
        to).
      9cf3f255
  9. 16 Jan, 2006 1 commit
    • unknown's avatar
      A fix for Bug#13337 "ps test fails if configure wo/ usc2" · 17ccdd1a
      unknown authored
      mysql-test/r/ctype_ucs.result:
        Test results changed (Bug#13337)
      mysql-test/r/ps.result:
        Test results changed (Bug#13337)
      mysql-test/t/ctype_ucs.test:
        Fix Bug#13337 (move the test that uses UCS character set to 
        ctype_ucs)
      mysql-test/t/ps.test:
        Fix Bug#13337 (move the test that uses UCS character set to 
        ctype_ucs)
      17ccdd1a
  10. 14 Jan, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#12734 " prepared statement may · 04a78106
      unknown authored
      return incorrect result set for a select SQL request"
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#12734)
      mysql-test/t/ps.test:
        A test case for Bug#12734
      sql/item_cmpfunc.cc:
        Reset canDoTurboBM in Item_func_like::cleanup()
      sql/item_cmpfunc.h:
        Add Item_func_like::cleanup()
      04a78106
  11. 25 Nov, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#14410 "Crash in Enum or Set type in · 2a1ae3a5
      unknown authored
      CREATE TABLE and PS/SP": make sure that 'typelib' object for
      ENUM values and 'Item_string' object for DEFAULT clause are 
      created in the statement memory root.
      
      
      mysql-test/r/ps.result:
        Test results has been fixed (Bug#14410)
      mysql-test/t/ps.test:
        A test case for Bug#14410 "Crash in Enum or Set type in CREATE 
        TABLE and PS/SP"
      sql/mysql_priv.h:
        typelib() function declaration has been changed.
      sql/sql_table.cc:
        Supply the statement memory root to use in typelib() and
        safe_charset_converter() functions to ensure that objects 
        created during the first execution of CREATE TABLE statement
        are allocated in persistent memory of the statement.
      sql/table.cc:
        Change typelib() function to require MEM_ROOT.
      2a1ae3a5
  12. 06 Sep, 2005 1 commit
  13. 28 Jul, 2005 1 commit
    • unknown's avatar
      Added end marker for tests to make future merges easier · 167fb5f1
      unknown authored
      mysql-test/t/alias.test:
        Added end marker for test to make future merges easier
      mysql-test/t/alter_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/analyse.test:
        Added end marker for test to make future merges easier
      mysql-test/t/analyze.test:
        Added end marker for test to make future merges easier
        Fixed length of comment lines
      mysql-test/t/ansi.test:
        Added end marker for test to make future merges easier
      mysql-test/t/archive.test:
        Added end marker for test to make future merges easier
      mysql-test/t/auto_increment.test:
        Added end marker for test to make future merges easier
      mysql-test/t/backup.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb-alter-table-1.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb-alter-table-2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb-crash.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb-deadlock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb-deadlock.tminus:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bdb_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bench_count_distinct.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bigint.test:
        Added end marker for test to make future merges easier
      mysql-test/t/binary.test:
        Added end marker for test to make future merges easier
      mysql-test/t/blackhole.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bool.test:
        Added end marker for test to make future merges easier
      mysql-test/t/bulk_replace.test:
        Added end marker for test to make future merges easier
      mysql-test/t/case.test:
        Added end marker for test to make future merges easier
      mysql-test/t/cast.test:
        Added end marker for test to make future merges easier
      mysql-test/t/check.test:
        Added end marker for test to make future merges easier
      mysql-test/t/comments.test:
        Added end marker for test to make future merges easier
      mysql-test/t/compare.test:
        Added end marker for test to make future merges easier
      mysql-test/t/connect.test:
        Added end marker for test to make future merges easier
      mysql-test/t/consistent_snapshot.test:
        Added end marker for test to make future merges easier
      mysql-test/t/constraints.test:
        Added end marker for test to make future merges easier
      mysql-test/t/count_distinct.test:
        Added end marker for test to make future merges easier
      mysql-test/t/count_distinct2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/count_distinct3.test:
        Added end marker for test to make future merges easier
      mysql-test/t/create.test:
        Added end marker for test to make future merges easier
      mysql-test/t/create_select_tmp.test:
        Added end marker for test to make future merges easier
      mysql-test/t/csv.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_big5.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_collate.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_cp1250_ch.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_cp1251.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_cp932.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_create.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_gbk.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_latin1.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_latin1_de.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_latin2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_many.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_mb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_recoding.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_sjis.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_tis620.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_uca.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_ucs.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_ucs_binlog.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_ujis.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ctype_utf8.test:
        Added end marker for test to make future merges easier
      mysql-test/t/date_formats.test:
        Added end marker for test to make future merges easier
      mysql-test/t/delayed.test:
        Added end marker for test to make future merges easier
      mysql-test/t/delete.test:
        Added end marker for test to make future merges easier
      mysql-test/t/derived.test:
        Added end marker for test to make future merges easier
      mysql-test/t/dirty_close.test:
        Added end marker for test to make future merges easier
      mysql-test/t/distinct.test:
        Added end marker for test to make future merges easier
      mysql-test/t/drop.test:
        Added end marker for test to make future merges easier
      mysql-test/t/drop_temp_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/empty_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/endspace.test:
        Added end marker for test to make future merges easier
      mysql-test/t/errors.test:
        Added end marker for test to make future merges easier
      mysql-test/t/exampledb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/explain.test:
        Added end marker for test to make future merges easier
      mysql-test/t/flush.test:
        Added end marker for test to make future merges easier
      mysql-test/t/flush_block_commit.test:
        Added end marker for test to make future merges easier
      mysql-test/t/flush_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/foreign_key.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_distinct.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_left_join.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_multi.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_order_by.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_update.test:
        Added end marker for test to make future merges easier
      mysql-test/t/fulltext_var.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_compress.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_concat.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_crypt.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_date_add.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_default.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_des_encrypt.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_encrypt.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_encrypt_nossl.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_equal.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_gconcat.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_group.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_if.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_in.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_isnull.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_like.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_math.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_misc.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_op.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_regexp.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_sapdb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_set.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_str.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_system.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_test.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_time.test:
        Added end marker for test to make future merges easier
      mysql-test/t/func_timestamp.test:
        Added end marker for test to make future merges easier
      mysql-test/t/gcc296.test:
        Added end marker for test to make future merges easier
      mysql-test/t/gis-rtree.test:
        Added end marker for test to make future merges easier
      mysql-test/t/gis.test:
        Added end marker for test to make future merges easier
      mysql-test/t/grant.test:
        Added end marker for test to make future merges easier
      mysql-test/t/grant2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/grant_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/group_by.test:
        Added end marker for test to make future merges easier
      mysql-test/t/handler.test:
        Added end marker for test to make future merges easier
      mysql-test/t/having.test:
        Added end marker for test to make future merges easier
      mysql-test/t/heap.test:
        Added end marker for test to make future merges easier
      mysql-test/t/heap_auto_increment.test:
        Added end marker for test to make future merges easier
      mysql-test/t/heap_btree.test:
        Added end marker for test to make future merges easier
      mysql-test/t/heap_hash.test:
        Added end marker for test to make future merges easier
      mysql-test/t/help.test:
        Added end marker for test to make future merges easier
      mysql-test/t/init_connect.test:
        Added end marker for test to make future merges easier
      mysql-test/t/init_file.test:
        Added end marker for test to make future merges easier
      mysql-test/t/innodb-deadlock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/innodb-lock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/innodb-replace.test:
        Added end marker for test to make future merges easier
      mysql-test/t/innodb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/innodb_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/innodb_handler.test:
        Added end marker for test to make future merges easier
      mysql-test/t/insert.test:
        Added end marker for test to make future merges easier
      mysql-test/t/insert_select-binlog.test:
        Added end marker for test to make future merges easier
      mysql-test/t/insert_select.test:
        Added end marker for test to make future merges easier
      mysql-test/t/insert_update.test:
        Added end marker for test to make future merges easier
      mysql-test/t/isam.test:
        Added end marker for test to make future merges easier
      mysql-test/t/join.test:
        Added end marker for test to make future merges easier
      mysql-test/t/join_crash.test:
        Added end marker for test to make future merges easier
      mysql-test/t/join_outer.test:
        Added end marker for test to make future merges easier
      mysql-test/t/key.test:
        Added end marker for test to make future merges easier
      mysql-test/t/key_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/key_diff.test:
        Added end marker for test to make future merges easier
      mysql-test/t/key_primary.test:
        Added end marker for test to make future merges easier
      mysql-test/t/keywords.test:
        Added end marker for test to make future merges easier
      mysql-test/t/kill.test:
        Added end marker for test to make future merges easier
      mysql-test/t/limit.test:
        Added end marker for test to make future merges easier
      mysql-test/t/loaddata.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lock_multi.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lock_tables_lost_commit.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lowercase_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lowercase_table2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lowercase_table3.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lowercase_table_grant.test:
        Added end marker for test to make future merges easier
      mysql-test/t/lowercase_table_qcache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/merge.test:
        Added end marker for test to make future merges easier
      mysql-test/t/metadata.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mix_innodb_myisam_binlog.test:
        Added end marker for test to make future merges easier
      mysql-test/t/multi_statement.test:
        Added end marker for test to make future merges easier
      mysql-test/t/multi_update.test:
        Added end marker for test to make future merges easier
      mysql-test/t/myisam-blob.test:
        Added end marker for test to make future merges easier
      mysql-test/t/myisam.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mysql_client_test.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mysql_protocols.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mysqlbinlog.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mysqlbinlog2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mysqldump.test:
        Added end marker for test to make future merges easier
      mysql-test/t/mysqltest.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_alter_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_autodiscover.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_autodiscover2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_basic.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_blob.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_charset.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_config.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_database.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_grant.later:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_index.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_index_ordered.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_index_unique.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_insert.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_limit.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_lock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_minmax.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_multi.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_replace.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_restore.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_subquery.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_transaction.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_truncate.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_types.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ndb_update.test:
        Added end marker for test to make future merges easier
      mysql-test/t/negation_elimination.test:
        Added end marker for test to make future merges easier
      mysql-test/t/not_embedded_server.test:
        Added end marker for test to make future merges easier
      mysql-test/t/null.test:
        Added end marker for test to make future merges easier
      mysql-test/t/null_key.test:
        Added end marker for test to make future merges easier
      mysql-test/t/odbc.test:
        Added end marker for test to make future merges easier
      mysql-test/t/olap.test:
        Added end marker for test to make future merges easier
      mysql-test/t/openssl_1.test:
        Added end marker for test to make future merges easier
      mysql-test/t/order_by.test:
        Added end marker for test to make future merges easier
      mysql-test/t/order_fill_sortbuf.test:
        Added end marker for test to make future merges easier
      mysql-test/t/outfile.test:
        Added end marker for test to make future merges easier
      mysql-test/t/overflow.test:
        Added end marker for test to make future merges easier
      mysql-test/t/packet.test:
        Added end marker for test to make future merges easier
      mysql-test/t/preload.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_10nestset.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_11bugs.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_1general.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_2myisam.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_3innodb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_4heap.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_5merge.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_6bdb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_7ndb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/ps_grant.test:
        Added end marker for test to make future merges easier
      mysql-test/t/query_cache.test:
        Added end marker for test to make future merges easier
      mysql-test/t/query_cache_merge.test:
        Added end marker for test to make future merges easier
      mysql-test/t/raid.test:
        Added end marker for test to make future merges easier
      mysql-test/t/range.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rename.test:
        Added end marker for test to make future merges easier
      mysql-test/t/repair.test:
        Added end marker for test to make future merges easier
      mysql-test/t/replace.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rollback.test:
        Added end marker for test to make future merges easier
      mysql-test/t/row.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000001.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000002.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000004.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000005.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000006.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000008.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000009.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000010.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000011.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000012.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000013.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000015.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000017.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl000018.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_EE_error.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_alter.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_chain_temp_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_change_master.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_charset.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_commit_after_flush.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_create_database.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_ddl.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_deadlock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_delete_all.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_do_grant.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_drop.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_drop_temp.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_empty_master_crash.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_error_ignored_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_failed_optimize.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_failsafe.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_flush_log_loop.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_flush_tables.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_free_items.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_get_lock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_heap.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_ignore_grant.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_init_slave.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_innodb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_insert_id.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_insert_ignore.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_loaddata.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_loaddata_rule_m.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_loaddata_rule_s.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_loaddatalocal.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_log.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_log_pos.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_many_optimize.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_master_pos_wait.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_max_relay_size.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_misc_functions.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_multi_delete.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_multi_delete2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_multi_query.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_multi_update.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_multi_update2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_multi_update3.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_mystery22.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_openssl.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_optimize.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_ps.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_redirect.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_relayrotate.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_relayspace.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_replicate_do.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_reset_slave.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_rewrite_db.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_rotate_logs.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_server_id1.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_server_id2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_set_charset.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_skip_error.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_sporadic_master.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_start_stop_slave.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_temporary.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_timezone.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_trunc_binlog.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_until.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_user_variables.test:
        Added end marker for test to make future merges easier
      mysql-test/t/rpl_variables.test:
        Added end marker for test to make future merges easier
      mysql-test/t/select.test:
        Added end marker for test to make future merges easier
      mysql-test/t/select_found.test:
        Added end marker for test to make future merges easier
      mysql-test/t/select_safe.test:
        Added end marker for test to make future merges easier
      mysql-test/t/show_check.test:
        Added end marker for test to make future merges easier
      mysql-test/t/skip_name_resolve.test:
        Added end marker for test to make future merges easier
      mysql-test/t/sql_mode.test:
        Added end marker for test to make future merges easier
      mysql-test/t/status.test:
        Added end marker for test to make future merges easier
      mysql-test/t/subselect.test:
        Added end marker for test to make future merges easier
      mysql-test/t/subselect2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/subselect_gis.test:
        Added end marker for test to make future merges easier
      mysql-test/t/subselect_innodb.test:
        Added end marker for test to make future merges easier
      mysql-test/t/symlink.test:
        Added end marker for test to make future merges easier
      mysql-test/t/synchronization.test:
        Added end marker for test to make future merges easier
      mysql-test/t/system_mysql_db.test:
        Added end marker for test to make future merges easier
      mysql-test/t/system_mysql_db_fix.test:
        Added end marker for test to make future merges easier
      mysql-test/t/system_mysql_db_refs.test:
        Added end marker for test to make future merges easier
      mysql-test/t/tablelock.test:
        Added end marker for test to make future merges easier
      mysql-test/t/temp_table.test:
        Added end marker for test to make future merges easier
      mysql-test/t/timezone.test:
        Added end marker for test to make future merges easier
      mysql-test/t/timezone2.test:
        Added end marker for test to make future merges easier
      mysql-test/t/timezone3.test:
        Added end marker for test to make future merges easier
      mysql-test/t/timezone_grant.test:
        Added end marker for test to make future merges easier
      mysql-test/t/truncate.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_blob.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_date.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_datetime.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_decimal.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_enum.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_float.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_nchar.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_ranges.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_set.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_time.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_timestamp.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_uint.test:
        Added end marker for test to make future merges easier
      mysql-test/t/type_year.test:
        Added end marker for test to make future merges easier
      mysql-test/t/union.test:
        Added end marker for test to make future merges easier
      mysql-test/t/update.test:
        Added end marker for test to make future merges easier
      mysql-test/t/user_var-binlog.test:
        Added end marker for test to make future merges easier
      mysql-test/t/user_var.test:
        Added end marker for test to make future merges easier
      mysql-test/t/varbinary.test:
        Added end marker for test to make future merges easier
      mysql-test/t/variables.test:
        Added end marker for test to make future merges easier
      mysql-test/t/warnings.test:
        Added end marker for test to make future merges easier
      167fb5f1
  14. 15 Jul, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#9359 "Prepared statements take snapshot · e83e1053
      unknown authored
       of system vars at PREPARE time": implement a special Item
      to handle system variables. This item substitutes itself with 
      a basic constant containing variable value at fix_fields.
      
      
      mysql-test/r/ps.result:
        - test results fixed (Bug#9359).
      mysql-test/t/ps.test:
        - add a test case for Bug#9359 "Prepared statements take snapshot
         of system vars at PREPARE time"
      sql/item_func.cc:
        - implement Item_func_get_system_var: we should not evaluate system
        variables in the parser, but instead should create an item which 
        is evaluated to a constant at execute.
        - remove an unused function
      sql/item_func.h:
        Add a new item, Item_func_get_system_var
      sql/mysql_priv.h:
        Move necessary declarations to make set_var.h objects visible in 
        item_func.h
      sql/set_var.cc:
        - we should not print to network from get_system_var: if it's called
        from prepared statement prepare, we get packets out of order when using
        the binary protocol. Instead report the error to be sent to the user later.
        This is a backport from 5.0.
      sql/set_var.h:
        - declaration of enum_var_type moved to mysql_priv.h
      e83e1053
  15. 14 Jul, 2005 2 commits
    • unknown's avatar
      Fix ps.test in --ps-protocol · 951dacdc
      unknown authored
      mysql-test/t/ps.test:
        Disable prepared statements for a part of the test to avoid
        result mismatch.
      951dacdc
    • unknown's avatar
      A fix and a test case for Bug#11299 "prepared statement makes wrong SQL · cb7a5b53
      unknown authored
       syntax in binlog which stops replication":
      disallow the use of parameter markers which can lead to generation
      of malformed binlog queries. 
      
      
      mysql-test/r/ps.result:
        Test results fixed: a test case for Bug#11299
      mysql-test/t/ps.test:
        A test case for Bug#11299
      sql/sql_lex.cc:
        Introduce a new parser token for a parameter marker. Make sure
        that a parameter marker can not be used in a query which, when
        transformed to a binlog query, becomes grammatically incorrect.
      sql/sql_yacc.yy:
        The check for COM_PREPARE has been moved into the lexer.
      mysql-test/var:
        New BitKeeper file ``mysql-test/var''
      cb7a5b53
  16. 13 Jul, 2005 4 commits
    • unknown's avatar
      A test case for Bug#9442 "Set parameter make query fail if column · c663aa89
      unknown authored
      character set is UCS2".
      The bug is no longer repeatable.
      
      
      mysql-test/r/ps.result:
        Test results fixed (a test case for Bug#9442)
      mysql-test/t/ps.test:
        A test case for Bug#9442 "Set parameter make query fail if column 
        character set is UCS2
      c663aa89
    • unknown's avatar
      A fix and a test case for Bug#9379 (collation of a parameter marker is · 98248f04
      unknown authored
      binary).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#9379)
      mysql-test/t/ps.test:
        A test case for Bug#9379 (collation of a parameter marker is binary)
      sql/item.cc:
        - set Item_param::collation to str_value collation, if Item_param
        is assigned a string. Reset it to default in Item_param::reset() (on 
        the next execution it can be assigned a number).
      sql/item_func.cc:
        - now that item collation can change between executions
        (if this item is Item_param), we need to register the change
        of the execution tree in the rollback list.
      98248f04
    • unknown's avatar
      Cleanup after test for Bug#11458 · f5c8f42f
      unknown authored
      f5c8f42f
    • unknown's avatar
      - a fix for Bug#11458 "Prepared statement with subselects return random · ece17ba3
      unknown authored
      data": remove the fix for another bug (8807) that
      added OUTER_REF_TABLE_BIT to all subqueries that used a placeholder
      to prevent their evaluation at prepare. As this bit hanged in 
      Item_subselect::used_tables_cache for ever, a constant subquery with
      a placeholder was never evaluated as such, which caused wrong 
      choice of the execution plan for the statement.
      - to fix Bug#8807 backport a better fix from 5.0
      - post-review fixes.
      
      
      mysql-test/r/ps.result:
        Bug#11458: test results fixed
      mysql-test/t/ps.test:
        - add a test case for Bug#11458 "Prepared statement with subselects return 
        random data"
      sql/item.cc:
        - remove unnecessary Item_param::fix_fields
        - fix Item_param::set_null to set item_type accordingly (safety:
          Item_param should behave like a basic constant).
      sql/item.h:
        Remove Item_param::fix_fields
      sql/item_subselect.h:
        Remove no more existing friend.
      sql/mysql_priv.h:
        Add UNCACHEABLE_PREPARE to mark all subqueries as uncacheable if
        in statement prepare (backport from 5.0).
      sql/sql_lex.h:
        Comment fixed.
      sql/sql_parse.cc:
        If in statement prepare, mark all subqueries as uncacheable (backport
        from 5.0)
      sql/sql_prepare.cc:
        Switch off the uncacheable flag from all subqueries after statement
        prepare is done (backport from 5.0)
      ece17ba3
  17. 20 Jun, 2005 1 commit
    • unknown's avatar
      Fix for bug #11060 "Server crashes on re-execution of prepared · 78e6794b
      unknown authored
      INSERT ... SELECT with UNION" (reviewed version).
      
      Altough bug manifest itself only starting from 5.0 it is better to
      apply fix to 4.1 to keep some assumptions true and make code more
      future-proof.
      
      
      mysql-test/r/ps.result:
        Added test case for bug #11060 "Server crashes on re-execution of
        prepared INSERT ... SELECT with UNION".
      mysql-test/t/ps.test:
        Added test case for bug #11060 "Server crashes on re-execution of
        prepared INSERT ... SELECT with UNION".
      sql/sql_insert.cc:
        select_insert::prepare():
          Item::fix_fields() methods operate assuming that LEX::current_select
          points to the select to which current item belongs. Thus
          during check_insert_fields() routine execution LEX::current_select
          should point ot the first select in query since this is the
          select with which items in insert list is associated.
          But if we have INSERT SELECT UNION SELECT type of query
          LEX::current_select will point to the fake_select_lex instead
          since select_insert::prepare() is called during processing of JOIN
          which corresponds to this select_lex.
          So we have set LEX::current_select before calling check_insert_fields()
          and restore it afterwards.
      78e6794b
  18. 05 May, 2005 1 commit
    • unknown's avatar
      A fix and test case for Bug#9777 " Empty set returned by Prepared Statement when it · c758512a
      unknown authored
       should return a non empty one"
      (see comments for the changed files for details).
      
      
      mysql-test/r/ps.result:
        A test case for Bug#9777: tests results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#9777
      sql/item.cc:
        A fix for Bug#9777: when creating a constant item from within 
        Item_int_with_ref::new_item, create the item by value, not by name.
        This should work with prepared statements placeholders.
        Item_int_with_ref is a special optimization case used
         when we compare datetime constants with datetime value.
        Converting the item to integer early is OK as it is in line
        with the purpose of Item_int_with_ref - to speed up comparison by 
        using integers.
        Minor cleanups.
      sql/item.h:
        Declaration for Item_int_with_ref::new_item
      c758512a
  19. 03 May, 2005 1 commit
    • unknown's avatar
      A fix and test case for Bug#9096 "select doesn't return all matched · 9fcda7fc
      unknown authored
      records if prepared statements is used".
      This fix changes equality evaluation method of basic constants from
      by-name to by-value, thus effectively enabling use of parameter markers
      in some optimizations (constants propagation, evaluation of possible
      keys for query).
      
      
      mysql-test/r/ps.result:
        Test results for the test case for Bug#9096
      mysql-test/t/ps.test:
        A short test case for Bug#9096 "select doesn't return all matched records if
         prepared statements is used". The is enough to reproduce the
        glitch in update_ref_and_keys causing the bug to occur.
      sql/item.cc:
        Implement by-value equality evaluation of basic constants.
        This is needed to work with Item_param values. Until now
        Item_param was compared with other items by its name, which is always "?".
        The bug at hand showed up when an integer
        constant was created from one parameter marker (with value 200887 and
         name "?") and then compared by-name with another parameter marker
        (with value 860 and name "?"). True returned by this comparison resulted
        in a wrong table access method used to evaluate the query.
        Implement Item_param methods needed to emulate "basic constant" mode at 
        full.
      sql/item.h:
        Change declaration of basic_const_item(): now it also widens its 
        argument from const Item * to Item * if the argument is a basic constant.
        Declare eq() for all basic constatns, as long as now they 
        are compared by value, not by name. Each constant needs its own
        comparison method.
        Declarations of Item_param methods needed to fully emulate 
        a basic constant when parameter value is set.
      sql/item_func.cc:
        Fix wrong casts.
      9fcda7fc
  20. 02 Mar, 2005 1 commit
  21. 08 Dec, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#6873 "PS, having with subquery, crash · 998209d3
      unknown authored
      during execute"
      
      
      mysql-test/r/ps.result:
        Test results updated (Bug#6873)
      mysql-test/t/ps.test:
        A test case for Bug#6873 "PS, having with subquery, crash during execute".
      sql/item_subselect.cc:
        If we transform having subtree, modify SELECT_LEX::having pointer 
        to point to the new having tree root.
      998209d3
  22. 02 Dec, 2004 1 commit
    • unknown's avatar
      Cleanups during review stage · 93cf297f
      unknown authored
      Added auto-correct of field length for enum/set tables for ALTER TABLE
      This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
      
      
      mysql-test/r/rpl_start_stop_slave.result:
        Fixed wrong test
      mysql-test/r/type_enum.result:
        Added test for wrong enum/set length after alter table
      mysql-test/t/ps.test:
        removed empty line
      mysql-test/t/type_enum.test:
        Added test for wrong enum/set length after alter table
      sql/field.cc:
        Added auto-correct of field length for enum/set tables.
        This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
      sql/item_cmpfunc.cc:
        Simple optimization
      sql/mysql_priv.h:
        Made local function global
      sql/set_var.cc:
        Simple cleanup
      sql/sql_table.cc:
        Simple cleanups & optimizations
      93cf297f
  23. 21 Nov, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#6297 "prepared statement, wrong handling · 3507a52e
      unknown authored
       of <parameter> IS NULL":
      we must not only set Item::null_value in Item_param, but implement
      Item_param::is_null() to work well with IS NULL/IS NOT NULL clauses.
      
      
      mysql-test/r/ps.result:
        Test case for Bug#6297: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#6297 "prepared statement, wrong handling of 
        <parameter> IS NULL"
      sql/item.h:
        A fix for Bug#6297: we must not only set null_value in Item_param, but
        also implement Item_param::is_null() to work well with  IS NULL/
        IS NOT NULL.
        Item::is_null() commented.
      3507a52e
  24. 05 Nov, 2004 1 commit
    • unknown's avatar
      ps.result, ctype_ucs.result, ctype_ucs.test, ps.test: · 8264d83d
      unknown authored
        Bug #6351 make test failure "Unknown character set"
        UCS2 related tests were moved into ctype_ucs.
      
      
      mysql-test/t/ps.test:
        Bug #6351 make test failure "Unknown character set"
        UCS2 related tests were moved into ctype_ucs.
        Bug #6351 make test failure "Unknown character set"
        UCS2 related tests were moved into ctype_ucs.
      mysql-test/t/ctype_ucs.test:
        Bug #6351 make test failure "Unknown character set"
        UCS2 related tests were moved into ctype_ucs.
      mysql-test/r/ctype_ucs.result:
        Bug #6351 make test failure "Unknown character set"
        UCS2 related tests were moved into ctype_ucs.
      mysql-test/r/ps.result:
        Bug #6351 make test failure "Unknown character set"
        UCS2 related tests were moved into ctype_ucs.
      8264d83d
  25. 23 Oct, 2004 1 commit
    • unknown's avatar
      Fixed wrong range test code for HEAP tables. This caused a crash when doing a... · 08c39dd2
      unknown authored
      Fixed wrong range test code for HEAP tables. This caused a crash when doing a range test with a key that didn't have lower or upper bound (Bug #6082)
      More test cases
      
      
      
      mysql-test/r/heap.result:
        Test for bug #6082 (delete with NOT NULL)
      mysql-test/r/key.result:
        More tests for BUG#6151 - myisam index corruption
      mysql-test/r/ps.result:
        Test of bug #6047 "Permission problem when executing mysql_stmt_execute with derived table"
      mysql-test/t/heap.test:
        Test for bug #6082 (delete with NOT NULL)
      mysql-test/t/key.test:
        More tests for BUG#6151 - myisam index corruption
      mysql-test/t/ps.test:
        Test of bug #6047 "Permission problem when executing mysql_stmt_execute with derived table"
      sql/ha_heap.cc:
        Fixed wrong range test code for HEAP tables. This caused a crash when doing a range test with a key that didn't have lower or upper bound
      08c39dd2
  26. 22 Oct, 2004 3 commits
    • unknown's avatar
      A fix and test case for Bug#6088 "FOUND_ROWS returns wrong values for · 9b5cf946
      unknown authored
      prepared statements when LIMIT is used" and post-review comments.
      The fix changes the approach we calculate the need for ORDER BY 
      in UNION: the previous was not PS friendly, as it damaged SELECT_LEX 
      options in case of single select.
      
      
      mysql-test/r/ps.result:
        Test results fixed: the test case for Bug#6088
      mysql-test/r/subselect.result:
        Test results fixed: now we don't perform ORDER BY for parts of UNION
        if there is no LIMIT clause.
      mysql-test/t/ps.test:
        A test case for Bug#6088 "FOUND_ROWS returns wrong values for
         prepared statements when LIMIT is used".
      sql/sql_union.cc:
        The actual fix for Bug#6088:
        - don't modify SELECT_LEX'es
        - use boolean variable can_skip_order_by to check if we can skip
          ORDER BY in UNION
      9b5cf946
    • unknown's avatar
      Fix compiler warnings (detected by Intel's C++ compiler) · bc6652db
      unknown authored
      Fixed checking of privilege handling in CREATE ... SELECT (Bug #6094)
      
      
      client/mysql.cc:
        Fix compiler warnings
      client/mysqltest.c:
        Fix wrong counting of lines
        Remove compiler warnings
      heap/hp_hash.c:
        Fix compiler warnings
      innobase/dict/dict0load.c:
        Fix compiler warnings
      innobase/include/mem0mem.h:
        Fix compiler warnings
      libmysql/client_settings.h:
        Fix compiler warnings
      myisam/ft_nlq_search.c:
        Add comments about compiler warnings
      myisam/rt_index.c:
        Add comments about compiler warnings
      myisam/rt_mbr.c:
        Add comments about compiler warnings
      mysql-test/r/ps.result:
        Test case for bug#6094
      mysql-test/t/ps.test:
        Test case for bug#6094
      mysys/hash.c:
        Fix compiler warnings
      mysys/my_handler.c:
        Add comments about compiler warnings
      mysys/my_thr_init.c:
        Add comments about compiler warnings
      ndb/include/mgmapi/mgmapi.h:
        Fix compiler warnings
      regex/main.c:
        Fix compiler warnings
      sql/item.h:
        Fix compiler warnings
      sql/item_func.h:
        Add comments about compiler warnings
      sql/spatial.h:
        Add comments about compiler warnings
      sql/sql_lex.h:
        Fix compiler warning
      sql/sql_list.h:
        Fix compiler warning
      sql/sql_parse.cc:
        Move testing of access rights of tables in CREATE ... SELECT to create_table_precheck() to fix privilege checking in CREATE ... SELECT
        (Bug #6094)
      sql/sql_prepare.cc:
        Remove not needed empty line
      sql/sql_string.h:
        Fix compiler warnings
      strings/ctype-mb.c:
        Fix compiler warnings
      bc6652db
    • unknown's avatar
      A fix and test case for Bug#6050 "EXECUTE stmt reports ambiguous field · 4512a46e
      unknown authored
      names with ident. tables fr. diff. schemata": revise all uses of
      Item_field and make them prepared-statements friendly when necessary.
      
      
      mysql-test/r/ps.result:
        Test results fixed: the test case for Bug#6050
      mysql-test/r/ps_1general.result:
        Test results fixed: in prepared statements we expand '*' to a list
        of fully qualified fields (db.table.column).
      mysql-test/t/ps.test:
        A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with 
        ident. tables fr. diff. schemata"
      sql/item.cc:
        Revise all Item_field constructors: we need to make sure that no Item_field
        object points to unaccessible memory in prepared statements.
      sql/item.h:
        Revise all Item_field constructors: we need to make sure that no Item_field
        object points to unaccessible memory in prepared statements.
      sql/sql_base.cc:
        Item_field use changed to be prepared statements friendly.
      sql/sql_class.h:
        New check of Item_arena state.
      sql/sql_union.cc:
        Fixing the problem with name resolving in UNION and prepared statements:
        In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
        selected items is represented as a List<Item_field>, where each 
        Item_field points to a field of temporary table.
        But the temporary table is created anew on each execution of the prepared 
        statement. So on each subsequent execution we should reset Item_field
        items to point to fields from freshly-created temporary table.
      sql/table.h:
        Comment TABLE member.
      4512a46e
  27. 13 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)" · 54b00f54
      unknown authored
      crashes server." The fix makes Item_func_rand prepared-statements
      aware plus it fixes the case when RAND is used in prepared
      statements and replication is on (as well as several similar issues).
      Until now we did not reset THD before every execution of a prepared
      statement, so if some execution had set thd->time_zone_used
      or thd->rand_used they would not be reset until next mysql_parse.
      Some of post-review fixes done.
      
      
      mysql-test/r/ps.result:
        A test case for Bug#5985: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5985 "prepare stmt from "select rand(?)" crashes
        server."
      sql/item_func.cc:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/item_func.h:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/mysql_priv.h:
        We need a separate call to reset THD state before every execute of
        a prepared statement. Otherwise things like THD->user_var_events
        are never cleaned up and bloat binary log (as the list of events
        grows from execution to execution).
      sql/sql_class.cc:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_class.h:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_lex.cc:
        Move the part responsible for initializing LEX from mysql_init_query
        to lex_start.
      sql/sql_lex.h:
        All lex-related initialization is now in lex_start.
        Move thd->select_number to lex->select_number to be able to use it
        easily in lex_start.
      sql/sql_parse.cc:
        Split mysql_init_query into two functions: mysql_reset_thd_for_next_query,
        which is used in PS and conventional execution, and lex_start, used only
        when we want to parse something.
        Fix init_connect to use initialized THD.
      sql/sql_prepare.cc:
        Deploy mysql_reset_thd_for_next_query to reset THD state before
        execution of a prepared statement.
        Normally this should have been added to just one place, but
        we have to reset thd before assigning placeholders from variables,
        thus we can't do that in execute_stmt (yuck).
      54b00f54
  28. 12 Oct, 2004 1 commit
    • unknown's avatar
      ps.test, ps.result: a test case for Bug#6042 "constants · d007600b
      unknown authored
      propogation works only once (prepared statements)".
      
      
      mysql-test/r/ps.result:
        Test case for Bug#6042: test results fixed
      mysql-test/t/ps.test:
        A test case for Bug#6042 "constants propogation works only once
        (prepared statements).
      d007600b
  29. 09 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5987 "subselect in bool function · 1d48aec2
      unknown authored
      crashes server (prepared statements)": the bug was that all boolean
      items always recovered its original arguments at statement cleanup 
      stage.
      This collided with Item_subselect::select_transformer, which tries to 
      permanently change the item tree to use a transformed subselect instead of
      original one.
      So we had this call sequence for prepare:
      mysql_stmt_prepare -> JOIN::prepare -> 
      Item_subselect::fix_fields -> the item tree gets transformed ->
      Item_bool_rowready_func2::cleanup, item tree is recovered to original
      state, while it shouldn't have been;
      mysql_stmt_execute -> attempts to execute a broken tree -> crash.
      Now instead of bluntly recovering all arguments of bool functions in 
      Item_bool_rowready_func2::cleanup, we recover only those
      which were changed, and do it in one place.
      There still would exist a possibility for a collision with subselect
      tranformation, if permanent and temporary changes were performed at the 
      same stage.
      But fortunately subselect transformation is always done first, so it 
      doesn't conflict with the optimization done by propogate_cond_constants.
      Now we have: 
      mysql_stmt_prepare -> JOIN::prepare -> subselect transformation 
      permanently changes the tree -> cleanup doesn't recover anything, 
      because nothing was registered for recovery.
      mysql_stmt_execute -> JOIN::prepare (the tree is already transformed, 
      so it doesn't change), JOIN::optimize -> 
      propogate_cond_constants -> temporary changes the item tree 
      with constants -> JOIN::execute -> cleanup -> 
      the changes done by propogate_cond_constants are recovered, as
      they were registered for recovery.
      
      
      mysql-test/r/ps.result:
        Bug#5987: test results fixed.
      mysql-test/t/ps.test:
        A test for bug#5987 "subselect in bool function crashes server 
        (prepared statements)"
      sql/item.cc:
        resolve_const_item is now responsible to register all changes of the 
        item tree for recovery
      sql/item.h:
        resolve_const_item signagture changed
      sql/item_cmpfunc.h:
        Arguments of boolean functions are now recovered using the 
        centralized registry of THD.
      sql/sql_class.cc:
        It's crucial to add new items to the beginning of the recovery list,
        so that the recovery is performed in LIFO mode: otherwise if we 
        change one node of a tree twice, it will be recovered to some intermediate
        state.
      sql/sql_select.cc:
        change_cond_ref_to_const and propogate_cond_constants are now responsible
        to register all changes of the item tree for recovery.
        The recovery is done using the centralized THD registry of
        changed tree items.
      1d48aec2
  30. 07 Oct, 2004 1 commit
    • unknown's avatar
      A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values · 8fa6f37a
      unknown authored
      crashes mysqld": implementation for a generic item tree modifications
      registry. Every item tree modification which should be rolled back for
      subsequent execution of a prepared statement or stored procedure should
      be saved in the registry. All such modifications are rolled back at once
      during cleanup stage of PS.
      Actual fix for the bug just adds a call to register modifications to
      convert_constant_item.
      Post review fixes implemented.
      
      
      mysql-test/r/ps.result:
        A fix for bug#5748, test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld"
      sql/item.cc:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld":
        First step in removing up item-specific cleanups: now all such
        tree modifications should be done using the genericm mechanism implemented
        in this changeset.
      sql/item.h:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld": no need for an item-specific change record any more.
      sql/item_cmpfunc.cc:
        A fix for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld": register item tree transformation performed by
        convert_constant_item.
      sql/sql_class.cc:
        Implementation for item tree transformations registry.
      sql/sql_class.h:
        Declarations, necessary for the tree transformations registry.
      sql/sql_parse.cc:
        Assert that the item tree transformations registry is not used for 
        conventional execution.
      sql/sql_prepare.cc:
        Use of the item tree modifications registry in prepared statements:
        rollback all modifications in the end of statement prepare and execute.
        Also we now always set thd->current_arena to be able to determine that
        this is an execution of prepared statement inside the registry code.
      tests/client_test.c:
        A typo fixed.
      8fa6f37a
  31. 23 Sep, 2004 1 commit
    • unknown's avatar
      A fix and test case for bug#5688 "Upgraded 4.1.5 Server seg faults" · edcccfbc
      unknown authored
      mysql-test/r/ps.result:
        Test results fixed: the test case for bug#5688 "Upgraded 4.1.5 Server 
        seg faults"
      mysql-test/t/ps.test:
        Test case for bug#5688 "Upgraded 4.1.5 Server seg faults"
      sql/item_cmpfunc.cc:
        A fix for bug#5688 "Upgraded 4.1.5 Server seg faults":
        fix just another place where we use wrong memory root for an Item
        in statement prepare.
        In addition, make the check for charsets in Item_bool_func2
        more generic (fixes the test case when we use LIKE to compare BLOBs
        with TEXT data).
      edcccfbc
  32. 17 Sep, 2004 1 commit
    • unknown's avatar
      A fix and test case for bug#5510 "inserting Null in AutoIncrement primary · 52683755
      unknown authored
      key Column Fails".
      
      
      mysql-test/r/ps.result:
        Test results updated: a test case for Bug#5510 "inserting Null in 
        AutoIncrement primary key Column Fails".
      mysql-test/r/ps_2myisam.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_3innodb.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_4heap.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_5merge.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_6bdb.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/t/ps.test:
        A test case for Bug#5510 "inserting Null in AutoIncrement primary key Column 
        Fails".
      sql/item.cc:
        A fix for bug#5510 "inserting Null in AutoIncrement primary key Column 
        Fails": use proper Field API function for NULL placholeders.
      52683755
  33. 16 Sep, 2004 1 commit
    • unknown's avatar
      A quick fix for bug#5556: replace a column of SHOW TABLE STATUS result · 38628bca
      unknown authored
      with a fixed constant to pass on QNX:
      max_data_file_length is calculated depending on max possible value of
      record pointer. It's different on QNX, so the difference in results is OK.
      
      
      mysql-test/t/ps.test:
        A quick fix for bug#5556: replace a column of SHOW TABLE STATUS result
        with a fixed constant to pass on QNX:
        max_data_file_length is calculated depending on max value of record
        pointer. It's different on QNX, so the result difference is intentional.
      38628bca