An error occurred fetching the project authors.
  1. 07 Apr, 2006 1 commit
    • 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 06 Sep, 2005 1 commit
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 02 Mar, 2005 1 commit
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 03 Sep, 2004 1 commit
    • unknown's avatar
      A fix for bug#4368 '"like" fails in PreparedStatement, crashes · 14c4d0d7
      unknown authored
      server': the bug occurs when arguments of LIKE function are in 
      differentcharacter sets. If these character sets are compatible, 
      we create an item-converter. In prepared mode, this item
      needs to be created in memory of current prepared statement.
      
      
      mysql-test/r/ps.result:
        Test for Bug#4368 added.
      mysql-test/t/ps.test:
        A test case for bug#4368 '"like" fails in PreparedStatement, 
        crashes server'.
      14c4d0d7
  30. 29 Aug, 2004 1 commit
  31. 24 Aug, 2004 1 commit
    • unknown's avatar
      Fix for Bug#5034 "prepared "select 1 into @arg15", second · 49bd559e
      unknown authored
      execute crashes server": we were deleting lex->result
      after each execute, but prepared statements assumed that
      it's left intact.
      The fix adds cleanup() method to select_result hierarchy,
      so that result objects can be reused.
      Plus we now need to delete result objects more wisely.
      
      
      mysql-test/r/ps.result:
        Test results fixed: test case for bug#5034
      mysql-test/t/ps.test:
        A test case for bug#5034, few followups
      sql/sql_class.cc:
        - fix warning in THD::THD
        - implementation of cleanup() for select_result hierarchy
        - select_export::send_eof was identical to 
          select_dump::send_eof: moved to the base class select_to_file.
        - Statement::end_statement() to end lex, free items, and
          delete possible select_result
      sql/sql_class.h:
        - select_result::cleanup() declaration
        -
      sql/sql_insert.cc:
        - implementation of select_insert::cleanup(): currently
          we always create a new instance of select_insert/
          select_create on each execute.
      sql/sql_lex.cc:
        - with more complicated logic of freeing lex->result it's 
          easier to have it non-zero only if it points to a valid
          result.
      sql/sql_lex.h:
        Now st_lex::st_lex is not empty.
      sql/sql_parse.cc:
        mysql_execute_command():
        - delete select_result *result only if it was created in
          this function.
        - use end_statement() to cleanup lex and thd in the end of
          each statement.
        - no need to save THD::lock if this is explain. This save
          apparently left from times when derived tables were 
          materialized here, not in open_and_lock_tables.
      sql/sql_prepare.cc:
        - call result->cleanup() in reset_stmt_for_execute
        - now Statement is responsible for freeing its lex->result.
      sql/sql_select.cc:
        handle_select():
        - don't delete result, it might be needed
          for next executions
        - result is never null
      49bd559e
  32. 20 Aug, 2004 1 commit
    • unknown's avatar
      Fix for bug#4912 "mysqld crashs in case a statement is executed · 095b686c
      unknown authored
       a second time". The bug was caused by incompatibility of
      negations elimination algorithm and PS: during first statement 
      execute a subtree with negation was replaced with equivalent 
      subtree without NOTs.
      The problem was that although this transformation was permanent, 
      items of the new subtree were created in execute-local memory.
      The patch adds means to check if it is the first execute of a
      prepared statement, and if this is the case, to allocate items
      in memory of the prepared statement.
      The implementation:
      - backports Item_arena from 5.0
      - adds Item_arena::is_stmt_prepare(), 
        Item_arena::is_first_stmt_execute().
      - deletes THD::allocate_temporary_pool_for_ps_preparing(),
        THD::free_temporary_pool_for_ps_preparing(); they
        were redundant.
      and adds a few invariants:
      - thd->free_list never contains junk (= freed items)
      - thd->current_arena is never null. If there is no
        prepared statement, it points at the thd. 
      The rest of the patch contains mainly mechanical changes and
      cleanups.
      
      
      mysql-test/r/ps.result:
        Test results updated (test case for Bug#4912)
      mysql-test/t/ps.test:
        A test case for Bug#4912 "mysqld crashs in case a statement is 
        executed a second time"
      sql/item_cmpfunc.cc:
        current_statement -> current_arena
      sql/item_subselect.cc:
        Statement -> Item_arena, current_statement -> current_arena
      sql/item_subselect.h:
        Item_subselect does not need to save thd->current_statement.
      sql/item_sum.cc:
        Statement -> Item_arena
      sql/item_sum.h:
        Statement -> Item_arena
      sql/mysql_priv.h:
        Statement -> Item_arena
      sql/sql_base.cc:
        current_statement -> current_arena
      sql/sql_class.cc:
        - Item_arena
        - convenient set_n_backup_statement, restore_backup_statement
        (nice idea, Sanja)
      sql/sql_class.h:
        - Item_arena: backport from 5.0
        - allocate_temporary_pool_for_ps_preparing,
          free_temporary_pool_for_ps_preparing removed.
      sql/sql_derived.cc:
        current_statement -> current_arena
      sql/sql_lex.cc:
        current_statement -> current_arena
      sql/sql_parse.cc:
        Deploy invariant that thd->free_list never contains junk items
        (backport from 5.0).
      sql/sql_prepare.cc:
        - backporting Item_arena
        - no need to allocate_temporary_pool_for_ps_preparing().
      sql/sql_select.cc:
        Fix for bug#4912 "mysqld crashs in case a statement is 
        executed a second time": if this is the first execute of
        a prepared statement, negation elimination is
        done in memory of the prepared statement.
      sql/sql_union.cc:
        Backporting Item_arena from 5.0.
      095b686c
  33. 26 Jun, 2004 2 commits