An error occurred fetching the project authors.
  1. 05 Mar, 2007 1 commit
    • unknown's avatar
      WL#3527: Extend IGNORE INDEX so places where index is ignored · 79542930
      unknown authored
               can be specified
      Currently MySQL allows one to specify what indexes to ignore during
      join optimization. The scope of the current USE/FORCE/IGNORE INDEX 
      statement is only the FROM clause, while all other clauses are not 
      affected.
      
      However, in certain cases, the optimizer
      may incorrectly choose an index for sorting and/or grouping, and
      produce an inefficient query plan.
      
      This task provides the means to specify what indexes are
      ignored/used for what operation in a more fine-grained manner, thus
      making it possible to manually force a better plan. We do this
      by extending the current IGNORE/USE/FORCE INDEX syntax to:
      
      IGNORE/USE/FORCE INDEX [FOR {JOIN | ORDER | GROUP BY}]
      
      so that:
      - if no FOR is specified, the index hint will apply everywhere.
      - if MySQL is started with the compatibility option --old_mode then
        an index hint without a FOR clause works as in 5.0 (i.e, the 
        index will only be ignored for JOINs, but can still be used to
        compute ORDER BY).
      
      See the WL#3527 for further details.
      
      
      BitKeeper/deleted/.del-mysqld.cc.rej:
        Rename: sql/mysqld.cc.rej -> BitKeeper/deleted/.del-mysqld.cc.rej
      BitKeeper/deleted/.del-sql_parse.cc.rej:
        Rename: sql/sql_parse.cc.rej -> BitKeeper/deleted/.del-sql_parse.cc.rej
      BitKeeper/deleted/.del-table.cc.rej:
        Rename: sql/table.cc.rej -> BitKeeper/deleted/.del-table.cc.rej
      mysql-test/r/endspace.result:
        WL3527 : fixed undeterministic test
      mysql-test/r/group_by.result:
        WL#3527: test cases
      mysql-test/t/endspace.test:
        WL3527 : fixed undeterministic test
      mysql-test/t/group_by.test:
        WL#3527: test cases
      sql/item.cc:
        WL#3527: renames
      sql/mysql_priv.h:
        WL#3527: corrected initialization
      sql/mysqld.cc:
        WL#3527: added old_mode command line option
      sql/opt_range.cc:
        WL#3527: renames
      sql/sql_base.cc:
        WL#3527: 
         - renames
         - correct initialization
         - extended the processing of USE/FORCE/IGNORE index
      sql/sql_class.h:
        WL#3527: added old_mode command line option
      sql/sql_delete.cc:
        WL#3527: renames
      sql/sql_help.cc:
        WL#3527: renames
      sql/sql_lex.cc:
        WL#3527: extended parsing of USE/FORCE/IGNORE index
      sql/sql_lex.h:
        WL#3527: extended parsing of USE/FORCE/IGNORE index
      sql/sql_parse.cc:
        WL#3527: extended parsing of USE/FORCE/IGNORE index
      sql/sql_select.cc:
        WL#3527:
         - renames
         - passing additional info to support the extended 
           USE/FORCE/IGNORE INDEX syntax
         - If there is a covering index, and we have 
           IGNORE INDEX FOR GROUP/ORDER, and this index is 
           used for the JOIN part, then we have to ignore the
           IGNORE INDEX FOR GROUP/ORDER.
      sql/sql_show.cc:
        WL#3527: passing additional info to support the extended 
           USE/FORCE/IGNORE INDEX syntax
      sql/sql_update.cc:
        WL#3527: renames
      sql/sql_yacc.yy:
        WL#3527: extended parsing of USE/FORCE/IGNORE index
      sql/table.cc:
        WL#3527: extended the processing of USE/FORCE/IGNORE index
      sql/table.h:
        WL#3527: extended the processing of USE/FORCE/IGNORE index
      storage/myisam/ha_myisam.cc:
        WL#3527: extended the processing of USE/FORCE/IGNORE index
      79542930
  2. 30 Nov, 2006 2 commits
    • unknown's avatar
      Fixed portability issue in my_thr_init.c (was added in my last push) · 7191e775
      unknown authored
      Fixed compiler warnings (detected by VC++):
      - Removed not used variables
      - Added casts
      - Fixed wrong assignments to bool
      - Fixed wrong calls with bool arguments
      - Added missing argument to store(longlong), which caused wrong store method to be called.
      
      
      
      client/mysqldump.c:
        Removed compiler warning
      heap/hp_clear.c:
        Removed compiler warning
      include/my_global.h:
        Removed compiler warning
      include/my_tree.h:
        Changed memory limits from int to ulong
        (Allowed me to get rid of some compiler warnings)
      myisam/mi_create.c:
        Removed compiler warning
      myisam/myisampack.c:
        Removed compiler warning
      mysys/base64.c:
        Removed compiler warning
      mysys/my_thr_init.c:
        Fixed portability issue (detected on windows)
        Added DBUG_ASSERT to detect if we call my_thread_end() too many times
        Don't wait if THR_thread_count == -1 (error condition)
      mysys/tree.c:
        Removed compiler warning
      sql/field.cc:
        Removed compiler warning
        Fixed wrong parameter to check_date()
        Added missing argument to store(longlong)
      sql/ha_archive.cc:
        Removed compiler warning
      sql/ha_federated.cc:
        Removed compiler warning
      sql/ha_innodb.cc:
        Removed not used variable
      sql/handler.cc:
        Removed not used variable
        Fixed wrong if (we didn't detect if rollback or commit failed). Not critical as value is not yet used
      sql/item.cc:
        Removed compiler warning
      sql/item_func.cc:
        Removed compiler warning
      sql/item_strfunc.cc:
        Removed compiler warning
      sql/item_timefunc.cc:
        Removed compiler warning
      sql/log.cc:
        Removed compiler warning
      sql/mysql_priv.h:
        Removed compiler warning
      sql/opt_range.cc:
        Removed compiler warning
      sql/password.c:
        Removed compiler warning
      sql/set_var.cc:
        Removed compiler warning
      sql/slave.cc:
        Removed compiler warning
      sql/sp.cc:
        Removed compiler warning
      sql/sp_cache.cc:
        Removed compiler warning
      sql/sp_head.cc:
        Removed compiler warning
        Adjusted argument to reserve() to not use up too much memory that we are probably not going to need
      sql/sql_acl.cc:
        Added missing argument to store(longlong)
      sql/sql_base.cc:
        Removed compiler warning
      sql/sql_db.cc:
        Removed compiler warning
      sql/sql_delete.cc:
        Removed compiler warning
      sql/sql_handler.cc:
        Removed not used variable
      sql/sql_lex.h:
        Removed not used variable
      sql/sql_prepare.cc:
        Removed not used variable
      sql/sql_rename.cc:
        Removed not used variable
      sql/sql_select.cc:
        Fixed that select_options are not 'cut'
        Removed some not used variables
        Removed compiler warnings by adding cast
      sql/sql_show.cc:
        Removed not used variables
        Added missing argument to store(longlong)
        Removed compiler warnings
      sql/sql_trigger.cc:
        Removed not used variables
        Added cast to remove compiler warnings
      sql/sql_update.cc:
        Fixed wrong set of bool variable
      sql/sql_view.cc:
        Removed not used variables
        Added cast to get rid of compiler warnings
      sql-common/client.c:
        Fixed compiler warning
      sql-common/my_time.c:
        Fixed wrong argument to check_date()
        Added casts to get rid of compiler warnings
      sql/sql_yacc.yy:
        Removed not used variable
      sql/uniques.cc:
        Changes memory size from uint to ulong
        Added casts to get rid of compiler warnings
      strings/ctype-simple.c:
        Fixed cast to get rid of compiler warnings
      7191e775
    • unknown's avatar
      Fixed compiler warnings (Mostly VC++): · 1e87cfee
      unknown authored
      - Removed not used variables
      - Changed some ulong parameters/variables to ulonglong (possible serious bug)
      - Added casts to get rid of safe assignment from longlong to long (and similar)
      - Added casts to function parameters
      - Fixed signed/unsigned compares
      - Added some constructores to structures
      - Removed some not portable constructs
      
      Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
      (Added new parameter to net_clear() to define when we want the communication buffer to be emptied)
      
      
      client/mysql.cc:
        Removed not used variable
      client/mysqldump.c:
        Fixed compiler warning
      client/mysqlslap.c:
        Fixed compiler warning
      client/mysqltest.c:
        Fixed compiler warning
      extra/replace.c:
        Fixed compiler warning
      include/my_global.h:
        Fixed compiler warning
      include/mysql_com.h:
        Changed prototype for net_clear()
      libmysql/libmysql.c:
        Changed prototype for net_clear()
      mysys/base64.c:
        Fixed compiler warning (function definition and prototype didn't match)
      mysys/my_thr_init.c:
        AFter merge fixes
      mysys/my_vle.c:
        Fixed compiler warning
      sql/event_data_objects.cc:
        Fixed compiler warning
      sql/event_scheduler.cc:
        Removed not used variable
      sql/field.cc:
        Removed not used variables
        Fixed compiler warning
      sql/gen_lex_hash.cc:
        Fixed compiler warning
      sql/ha_partition.h:
        Fixed compiler warning
      sql/handler.cc:
        Fixed compiler warning
      sql/item.cc:
        Fixed compiler warning
      sql/item_create.cc:
        Fixed compiler warning
      sql/item_func.cc:
        Fixed compiler warning
      sql/item_strfunc.cc:
        Fixed compiler warning
      sql/item_timefunc.cc:
        Fixed compiler warning
      sql/item_xmlfunc.cc:
        Fixed compiler warning
      sql/log.cc:
        Fixed compiler warning
      sql/log_event.cc:
        Fixed compiler warning
      sql/log_event.h:
        Fixed compiler warning
      sql/mysql_priv.h:
        Fixed too short 'select_type'
      sql/net_serv.cc:
        Added argument to net_clear() if we should empty the communication buffer.
      sql/opt_range.cc:
        Fixed compiler warning
      sql/partition_info.cc:
        Fixed compiler warning
      sql/rpl_injector.h:
        Fixed compiler warning
      sql/set_var.cc:
        Fixed compiler warning
      sql/slave.cc:
        Fixed compiler warning
      sql/sp_head.cc:
        Fixed compiler warning
      sql/sql_base.cc:
        Fixed compiler warning
      sql/sql_db.cc:
        Fixed compiler warning
      sql/sql_delete.cc:
        Fixed compiler warning
      sql/sql_insert.cc:
        Fixed compiler warning
      sql/sql_lex.h:
        Fixed compiler warning
      sql/sql_parse.cc:
        Fixed compiler warning
      sql/sql_partition.cc:
        Fixed compiler warning
      sql/sql_plugin.cc:
        Fixed compiler warning
      sql/sql_prepare.cc:
        Fixed compiler warning
      sql/sql_rename.cc:
        Fixed compiler warning
      sql/sql_select.cc:
        Fixed compiler warning
      sql/sql_show.cc:
        Fixed compiler warning
      sql/sql_table.cc:
        Fixed compiler warning
      sql/sql_trigger.cc:
        Fixed compiler warning
      sql-common/client.c:
        Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
      sql-common/my_time.c:
        Fixed compiler warning
      sql/sql_union.cc:
        Fixed compiler warning
      sql/sql_update.cc:
        Fixed compiler warning
      sql/sql_view.cc:
        Fixed compiler warning
      sql/sql_yacc.yy:
        Fixed compiler warning
      sql/table.cc:
        Fixed compiler warning
      storage/archive/azio.c:
        Fixed compiler warning
      storage/csv/ha_tina.cc:
        Removed not used code
      storage/myisam/mi_unique.c:
        Fixed compiler warning
      storage/ndb/include/util/OutputStream.hpp:
        Fixed compiler warning
      storage/ndb/include/util/SocketAuthenticator.hpp:
        Fixed compiler warning
      storage/ndb/src/kernel/vm/Pool.hpp:
        Fixed compiler warning
      strings/ctype-simple.c:
        Fixed compiler warning
      strings/my_strchr.c:
        Fixed compiler warning
      1e87cfee
  3. 27 Nov, 2006 1 commit
    • unknown's avatar
      Increased heap max length to > 4G for 64 bit machines · 129a48b0
      unknown authored
      Initialize key_part->type on open. This caused key_copy() to fail for bit_fields. (key_copy is used in HANDLER and opt_range)
      
      
      include/heap.h:
        Increased heap max length to > 4G for 64 bit machines
      mysql-test/r/show_check.result:
        Updated results after heap size change
      mysql-test/r/type_bit.result:
        Added test for bug in bit field handling (in handler and opt_range.cc)
      mysql-test/t/type_bit.test:
        Added test for bug in bit field handling (in handler and opt_range.cc)
      sql/ha_heap.cc:
        Increased heap max length to > 4G for 64 bit machines
      sql/item_sum.cc:
        Increased heap max length to > 4G for 64 bit machines
      sql/mysqld.cc:
        Increased heap max length to > 4G for 64 bit machines
      sql/set_var.cc:
        Increased heap max length to > 4G for 64 bit machines
      sql/sql_class.h:
        Increased heap max length to > 4G for 64 bit machines
      sql/sql_select.cc:
        Increased heap max length to > 4G for 64 bit machines
      sql/table.cc:
        Initialize key_part->type ; This was used for bit fields but only set in temporary tables
      sql/uniques.cc:
        Increased heap max length to > 4G for 64 bit machines
      129a48b0
  4. 21 Nov, 2006 2 commits
    • unknown's avatar
      Added --debug-info to most clients to detect memory leaks in mysql-test-run · 85a590a2
      unknown authored
      Moved .progress files into the log directory
      Moved 'cluster' database tables into the MySQL database, to not have 'cluster' beeing a reserved database name
      Fixed bug where mysqld got a core dump when trying to use a table created by MySQL 3.23
      Fixed some compiler warnings
      Fixed small memory leak in libmysql
      Note that this doesn't changeset doesn't include the new mysqldump.c code required to run some tests. This will be added when I merge 5.0 to 5.1
      
      
      client/client_priv.h:
        Added OPT_DEBUG_INFO and OPT_COLUMN_TYPES
      client/mysql.cc:
        Split --debug-info into --debug-info and --column-type-info
      client/mysql_upgrade.c:
        Give only error info at end if using --debug-info
      client/mysqladmin.cc:
        Added --debug-info to detect memory leaks in mysqltest
      client/mysqlbinlog.cc:
        Added --debug-info to detect memory leaks in mysqltest
      client/mysqlcheck.c:
        Added --debug-info to detect memory leaks in mysqltest
      client/mysqlimport.c:
        Added --debug-info to detect memory leaks in mysqltest
      client/mysqlshow.c:
        Added --debug-info to detect memory leaks in mysqltest
      client/mysqltest.c:
        Added --debug-info to detect memory leaks in mysqltest
        Added option --logdir to force .progress files in a specific directory
      libmysql/libmysql.c:
        Fixed memory leak
      mysql-test/include/ndb_setup_slave.inc:
        Moved cluster tables under 'mysql'
      mysql-test/include/query_cache.inc:
        Added more tests for query cache
      mysql-test/lib/init_db.sql:
        Move cluster.binlog_index -> mysql.binlog_index
      mysql-test/lib/mtr_report.pl:
        Find memory leaks
      mysql-test/mysql-test-run-shell.sh:
        Added --debug-info to programs to detect memory leaks
      mysql-test/mysql-test-run.pl:
        Added --debug-info to programs to detect memory leaks
        Force log files to var/log
        cluster tables moved under 'mysql'
      mysql-test/r/cache_innodb.result:
        New query cache test with innodb
      mysql-test/r/connect.result:
        binlog_index is now in mysql
      mysql-test/r/drop.result:
        Removed 'cluster' database
      mysql-test/r/information_schema.result:
        Removed 'cluster' database
      mysql-test/r/mysqlcheck.result:
        cluster.binlog_index -> mysql.binlog_index
      mysql-test/r/ndb_binlog_basic.result:
        cluster.binlog_index -> mysql.binlog_index
      mysql-test/r/ndb_binlog_ddl_multi.result:
        cluster -> mysql
      mysql-test/r/ndb_binlog_discover.result:
        cluster -> mysql
      mysql-test/r/ndb_binlog_multi.result:
        cluster -> mysql
      mysql-test/r/ndb_restore_compat.result:
        cluster -> mysql
      mysql-test/r/ps_1general.result:
        Removed cluster database
      mysql-test/r/rpl_create_database.result:
        Removed cluster database
      mysql-test/r/rpl_load_from_master.result:
        Removed cluster database
      mysql-test/r/rpl_loaddata_m.result:
        Removed cluster database
      mysql-test/r/rpl_ndb_bank.result:
        cluster -> mysql
      mysql-test/r/rpl_ndb_dd_advance.result:
        cluster -> mysql
      mysql-test/r/rpl_ndb_dd_basic.result:
        cluster -> mysql
      mysql-test/r/rpl_ndb_idempotent.result:
        cluster -> mysql
      mysql-test/r/rpl_ndb_log.result:
        cluster -> mysql
      mysql-test/r/rpl_ndb_multi.result:
        cluster -> mysql
      mysql-test/r/rpl_ndb_sync.result:
        cluster -> mysql
      mysql-test/r/rpl_row_basic_11bugs.result:
        Removed cluster database
      mysql-test/r/rpl_truncate_7ndb.result:
        Position have changed
      mysql-test/r/rpl_truncate_7ndb_2.result:
        cluster -> mysql
      mysql-test/r/schema.result:
        Removed cluster database
      mysql-test/r/show_check.result:
        Removed cluster database
      mysql-test/r/system_mysql_db.result:
        binlog_index moved under mysql
      mysql-test/r/upgrade.result:
        More tests
      mysql-test/t/information_schema.test:
        cluster -> mysql
      mysql-test/t/mysqldump.test:
        More test to detect memory leaks
      mysql-test/t/ndb_binlog_basic.test:
        cluster -> mysql
      mysql-test/t/ndb_binlog_multi.test:
        cluster -> mysql
      mysql-test/t/ndb_restore_compat.test:
        cluster -> mysql
      mysql-test/t/rpl_ndb_bank.test:
        cluster -> mysql
      mysql-test/t/rpl_ndb_dd_advance.test:
        cluster -> mysql
      mysql-test/t/rpl_ndb_idempotent.test:
        cluster -> mysql
      mysql-test/t/rpl_ndb_multi.test:
        cluster -> mysql
      mysql-test/t/rpl_ndb_sync.test:
        cluster -> mysql
      mysql-test/t/system_mysql_db_fix.test:
        Drop also binlog_index
      mysql-test/t/upgrade.test:
        Check that tables created with 3.23 works
      mysys/my_error.c:
        Remove all registered errors (to avoid memory leaks)
      mysys/my_init.c:
        call my_error_unregister_all() to avoid some possible memory leaks
      mysys/mysys_priv.h:
        Added prototype
      scripts/mysql_create_system_tables.sh:
        cluster -> mysql
      scripts/mysql_fix_privilege_tables.sql:
        Changed -- to #
        Create binlog_index table if it dosesn't exist
      sql/field.cc:
        Made offset() inline
      sql/field.h:
        Changed prototype of offset() to not make it depending on TABLE structure
      sql/field_conv.cc:
        Removed some usage of current_thd
      sql/ha_ndbcluster_tables.h:
        cluster -> mysql
      sql/item_sum.cc:
        Usage of new 'offset' parameters
      sql/key.cc:
        Changed 'find_ref_key' to not be dependent on field->table
        (This fixed a crash when using a table created in MySQL 3.23)
      sql/mysql_priv.h:
        Changed find_ref_key() to not use field->table
      sql/mysqld.cc:
        Fix that plugin_init() works properly on bootstrap
        (Previously we got warnings from plugin_init)
      sql/sql_class.cc:
        new 'field->offset()'
      sql/sql_select.cc:
        New field->offset()
      sql/table.cc:
        We don't need field->table to be set in find_ref_key() or find_field() anymore.
      storage/archive/ha_archive.cc:
        New field->offset()
      storage/federated/ha_federated.cc:
        New field->offset()
      storage/innobase/handler/ha_innodb.cc:
        Fixed compiler warnings
      storage/myisam/ha_myisam.cc:
        Fixed compiler warnings (Wrong paramter to sprintf())
        New field->offset()
      storage/myisam/ha_myisam.h:
        Fixed wrong type of table_flags
      storage/ndb/tools/restore/Restore.cpp:
        Fixed compiler warning
      mysql-test/r/1st.result:
        New BitKeeper file ``mysql-test/r/1st.result''
      mysql-test/std_data/old_table-323.frm:
        New BitKeeper file ``mysql-test/std_data/old_table-323.frm''
      mysql-test/t/1st.test:
        New BitKeeper file ``mysql-test/t/1st.test''
      85a590a2
    • unknown's avatar
      Bug#22413 EXPLAIN SELECT FROM view with ORDER BY yield server crash · 1ae9f3b9
      unknown authored
      disable filling of I_S tables for EXPLAIN
      
      
      mysql-test/r/information_schema.result:
        Bug#22413 EXPLAIN SELECT FROM view with ORDER BY yield server crash
        test case
      mysql-test/t/information_schema.test:
        Bug#22413 EXPLAIN SELECT FROM view with ORDER BY yield server crash
        test case
      1ae9f3b9
  5. 20 Nov, 2006 1 commit
    • unknown's avatar
      Remove compiler warnings · 14decc4f
      unknown authored
      (Mostly in DBUG_PRINT() and unused arguments)
      Fixed bug in query cache when used with traceing (--with-debug)
      Fixed memory leak in mysqldump
      Removed warnings from mysqltest scripts (replaced -- with #)
      
      
      BitKeeper/etc/ignore:
        added mysql-test/r/*.warnings
      BUILD/SETUP.sh:
        Don't build with BDB as default
      client/client_priv.h:
        Added OPT_DEBUG_INFO
      client/mysqlbinlog.cc:
        Fixed compiler warning
      client/mysqldump.c:
        Removed compiler warnings
        Added option --debug-info to detect memory leaks
        Fixed memory leak
        Don't backup cluster replication tables (if used with 5.1)
      cmd-line-utils/readline/bind.c:
        Fixed compiler warning
      cmd-line-utils/readline/chardefs.h:
        Fixed compiler warning
      cmd-line-utils/readline/complete.c:
        Fixed compiler warning
      cmd-line-utils/readline/display.c:
        Fixed compiler warning
      cmd-line-utils/readline/histexpand.c:
        Fixed compiler warning
      cmd-line-utils/readline/input.c:
        Fixed compiler warning
      cmd-line-utils/readline/isearch.c:
        Fixed compiler warning
      cmd-line-utils/readline/kill.c:
        Fixed compiler warning
      cmd-line-utils/readline/macro.c:
        Fixed compiler warning
      cmd-line-utils/readline/misc.c:
        Fixed compiler warning
      cmd-line-utils/readline/nls.c:
        Fixed compiler warning
      cmd-line-utils/readline/readline.c:
        Fixed compiler warning
      cmd-line-utils/readline/rltty.c:
        Fixed compiler warning
      cmd-line-utils/readline/search.c:
        Fixed compiler warning
      cmd-line-utils/readline/terminal.c:
        Fixed compiler warning
      cmd-line-utils/readline/text.c:
        Fixed compiler warning
      cmd-line-utils/readline/tilde.c:
        Fixed compiler warning
      cmd-line-utils/readline/undo.c:
        Fixed compiler warning
      cmd-line-utils/readline/util.c:
        Fixed compiler warning
      cmd-line-utils/readline/vi_mode.c:
        Fixed compiler warning
      dbug/dbug_analyze.c:
        Fixed compiler warning
      extra/yassl/src/ssl.cpp:
        Fixed compiler warning
      extra/yassl/testsuite/testsuite.cpp:
        Fixed compiler warning
      heap/_check.c:
        Fixed compiler warning
      heap/hp_delete.c:
        Fixed compiler warning
      heap/hp_hash.c:
        Fixed compiler warning
      heap/hp_open.c:
        Fixed compiler warning
      heap/hp_rkey.c:
        Fixed compiler warning
      heap/hp_rrnd.c:
        Fixed compiler warning
      heap/hp_write.c:
        Fixed compiler warning
      libmysql/libmysql.c:
        Fixed compiler warning
      libmysqld/libmysqld.c:
        Fixed compiler warning
      myisam/mi_close.c:
        Fixed compiler warning
      myisam/mi_delete.c:
        Fixed compiler warning
      myisam/mi_dynrec.c:
        Fixed compiler warning
      myisam/mi_keycache.c:
        Fixed compiler warning
      myisam/mi_page.c:
        Fixed compiler warning
      myisam/mi_statrec.c:
        Fixed compiler warning
      myisam/mi_test2.c:
        Fixed compiler warning
      myisam/mi_write.c:
        Fixed compiler warning
      myisam/myisampack.c:
        Fixed compiler warning
      myisammrg/myrg_extra.c:
        Fixed compiler warning
      mysql-test/mysql-test-run.pl:
        Remove .reject, .progress, .log and .warnings flag at start
        cluster -> mysql database (for 5.1)
      mysql-test/include/federated.inc:
        Remove mysqltest warnings
      mysql-test/include/sp-vars.inc:
        Remove mysqltest warnings
      mysql-test/mysql-test-run.sh:
        Fix so that 'make test' works again
        Remove .reject, .progress .log and .warnings files at startup
      mysql-test/r/ctype_cp1250_ch.result:
        Drop used tables at startup
      mysql-test/t/create.test:
        Remove mysqltest warnings
      mysql-test/t/csv.test:
        Remove mysqltest warnings
      mysql-test/t/ctype_collate.test:
        Remove mysqltest warnings
      mysql-test/t/ctype_cp1250_ch.test:
        Drop used tables at startup
      mysql-test/t/ctype_ucs.test:
        Remove mysqltest warnings
      mysql-test/t/func_sapdb.test:
        Remove mysqltest warnings
      mysql-test/t/func_str.test:
        Remove mysqltest warnings
      mysql-test/t/grant.test:
        Remove mysqltest warnings
      mysql-test/t/greedy_optimizer.test:
        Remove mysqltest warnings
      mysql-test/t/group_min_max.test:
        Remove mysqltest warnings
      mysql-test/t/innodb.test:
        Remove mysqltest warnings
      mysql-test/t/join.test:
        Remove mysqltest warnings
      mysql-test/t/limit.test:
        Remove mysqltest warnings
      mysql-test/t/null.test:
        Remove mysqltest warnings
      mysql-test/t/select.test:
        Remove mysqltest warnings
      mysql-test/t/sp-prelocking.test:
        Remove mysqltest warnings
      mysql-test/t/strict.test:
        Remove mysqltest warnings
      mysql-test/t/subselect.test:
        Remove mysqltest warnings
      mysql-test/t/type_newdecimal.test:
        Remove mysqltest warnings
      mysql-test/t/view_grant.test:
        Remove mysqltest warnings
      mysys/default.c:
        Fixed compiler warning
      mysys/hash.c:
        Fixed compiler warning
      mysys/list.c:
        Fixed compiler warning
      mysys/mf_iocache.c:
        Fixed compiler warning
      mysys/mf_keycache.c:
        Fixed compiler warning
      mysys/mf_keycaches.c:
        Fixed compiler warning
      mysys/my_alloc.c:
        Fixed compiler warning
      mysys/my_dup.c:
        Fixed compiler warning
      mysys/my_fopen.c:
        Fixed compiler warning
      mysys/my_fstream.c:
        Fixed compiler warning
      mysys/my_getwd.c:
        Fixed compiler warning
      mysys/my_handler.c:
        Fixed compiler warning
        Added missing enums in switch
      mysys/my_lib.c:
        Fixed compiler warning
      mysys/my_lread.c:
        Fixed compiler warning
      mysys/my_lwrite.c:
        Fixed compiler warning
      mysys/my_malloc.c:
        Fixed compiler warning
      mysys/my_pread.c:
        Fixed compiler warning
      mysys/my_read.c:
        Fixed compiler warning
      mysys/my_realloc.c:
        Fixed compiler warning
      mysys/my_seek.c:
        Fixed compiler warning
      mysys/my_write.c:
        Fixed compiler warning
      mysys/safemalloc.c:
        Fixed compiler warning
      mysys/thr_lock.c:
        Fixed compiler warning
      mysys/tree.c:
        Fixed compiler warning
      mysys/typelib.c:
        Fixed compiler warning
      ndb/include/logger/LogHandler.hpp:
        Changed SetErrorStr() to take const char* to remove compiler warnings (as many arguments to this are const strings)
      ndb/include/ndb_global.h.in:
        Added LINT_SET_PTR macro to be able to remove some compiler warnings
      ndb/include/util/InputStream.hpp:
        Fixed compiler warning
      ndb/include/util/OutputStream.hpp:
        Fixed compiler warning
      ndb/include/util/SimpleProperties.hpp:
        Fixed compiler warning
      ndb/src/common/debugger/EventLogger.cpp:
        remove if on 'signal' as this is a function pointer and is always true
      ndb/src/common/debugger/signaldata/BackupSignalData.cpp:
        Add missing enums
      ndb/src/common/logger/LogHandler.cpp:
        Changed SetErrorStr() to take const char* to remove compiler warnings (as many arguments to this are const strings)
      ndb/src/common/portlib/NdbMutex.c:
        Fixed compiler warning
      ndb/src/common/portlib/NdbThread.c:
        Fixed compiler warning
      ndb/src/common/transporter/Transporter.cpp:
        Swapped arguments to remove compiler warnings
      ndb/src/cw/cpcd/CPCD.hpp:
        Fixed compiler warning
      ndb/src/kernel/blocks/backup/Backup.cpp:
        Fixed compiler warning
      ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
        Fixed compiler warning
      ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Fixed compiler warning
      ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp:
        Fixed compiler warning
      ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
        Added missing enums
      ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
        Fixed compiler warning
      ndb/src/kernel/error/ErrorReporter.cpp:
        Fixed compiler warning
      ndb/src/kernel/error/ErrorReporter.hpp:
        Fixed compiler warning
      ndb/src/kernel/error/ndbd_exit_codes.c:
        Fixed compiler warning
      ndb/src/kernel/vm/TransporterCallback.cpp:
        Fixed compiler warning
      ndb/src/mgmapi/mgmapi.cpp:
        Fixed compiler warning
      ndb/src/mgmclient/CommandInterpreter.cpp:
        Fixed compiler warning
      ndb/src/mgmsrv/MgmtSrvr.cpp:
        Fixed compiler warning
      ndb/src/mgmsrv/Services.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/ClusterMgr.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/DictCache.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/Ndb.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/NdbOperationDefine.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/NdbOperationExec.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/NdbOperationInt.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/NdbOperationSearch.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/NdbTransaction.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/Ndbif.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/Ndbinit.cpp:
        Fixed compiler warning
      ndb/src/ndbapi/ndb_cluster_connection.cpp:
        Fixed compiler warning
      ndb/tools/drop_index.cpp:
        Fixed compiler warning
      ndb/tools/drop_tab.cpp:
        Fixed compiler warning
      ndb/tools/ndb_config.cpp:
        Fixed compiler warning
      regex/regexec.c:
        Fixed compiler warning
      server-tools/instance-manager/mysql_connection.cc:
        Fixed compiler warning
      sql/Makefile.am:
        Fix for bison 1.875, which adds an attribute statement that gcc 4.1.0 can't parse
      sql/filesort.cc:
        Fixed compiler warning
      sql/ha_archive.cc:
        Fixed compiler warning
      sql/ha_federated.cc:
        Fixed compiler warning
      sql/ha_federated.h:
        Fixed compiler warning
      sql/ha_innodb.cc:
        Fixed compiler warning
      sql/ha_myisam.cc:
        Fixed compiler warning
      sql/ha_myisammrg.cc:
        Fixed compiler warning
      sql/ha_ndbcluster.cc:
        Fixed compiler warning
      sql/handler.cc:
        Fixed compiler warning
      sql/item_cmpfunc.cc:
        Fixed compiler warning
      sql/item_subselect.cc:
        Fixed compiler warning
      sql/item_timefunc.cc:
        Fixed compiler warning
      sql/log_event.cc:
        Fixed compiler warning
      sql/mysqld.cc:
        Fixed compiler warning
      sql/net_serv.cc:
        Fixed compiler warning
      sql/opt_range.cc:
        Fixed compiler warning
        Formated DBUG statements to be as rest of code
      sql/slave.cc:
        Fixed compiler warning
      sql/sql_acl.cc:
        Fixed compiler warning
      sql/sql_cache.cc:
        Fixed compiler warning
        Fixed bug in query cache when used with DBUG traceing
      sql/sql_class.cc:
        Fixed compiler warning
      sql/sql_class.h:
        Fixed compiler warning
      sql/sql_delete.cc:
        Fixed compiler warning
      sql/sql_parse.cc:
        Fixed compiler warning
        Hack to fix my_sprintf() strings with %b
      sql/sql_prepare.cc:
        Fixed compiler warning
        Hack to fix my_sprintf() strings with %b
      sql/sql_repl.cc:
        Fixed compiler warning
      sql/sql_select.cc:
        Fixed compiler warning
      sql/sql_update.cc:
        Fixed compiler warning
      sql/sql_view.cc:
        Fixed compiler warning
      sql/strfunc.cc:
        Fixed compiler warning
      sql-common/client.c:
        Fixed compiler warning
      sql-common/my_time.c:
        Fixed compiler warning
      sql/table.cc:
        Fixed compiler warning
      sql/tztime.cc:
        Fixed compiler warning
      sql/unireg.cc:
        Fixed compiler warning
      strings/decimal.c:
        Fixed compiler warning
      tests/mysql_client_test.c:
        Fixed compiler warning
      vio/viosocket.c:
        Fixed compiler warning
      vio/viossl.c:
        Fixed compiler warning
      vio/viosslfactories.c:
        Fixed compiler warning
      14decc4f
  6. 09 Nov, 2006 2 commits
    • unknown's avatar
      Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs · 59b45b5b
      unknown authored
      When compiling GROUP BY Item_ref instances are dereferenced in 
      setup_copy_fields(), i.e. replaced with the corresponding Item_field 
      (if they point to one) or Item_copy_string for the other cases.
      Since the Item_ref (in the Item_field case) is no longer used the information
      about the aliases stored in it is lost.   
      Fixed by preserving the column, table and DB alias on dereferencing Item_ref
      
      
      mysql-test/r/metadata.result:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - test case
      mysql-test/t/metadata.test:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - test case
      sql/item.cc:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - use the table and db name to fill up the metadata for columns
      sql/sql_select.cc:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - preserve the field, table and DB name on dereferencing an Item_ref
      59b45b5b
    • unknown's avatar
      Bug#21505 Create view - illegal mix of collation for operation 'UNION' · 7614eb0d
      unknown authored
        
        The problem was that any VIEW columns had always implicit derivation.
        Fix: derivation is now copied from the original expression
        given in VIEW definition.
        For example:
        - a VIEW column which comes from a string constant
          in CREATE VIEW definition have now coercible derivation.
        - a VIEW column having COLLATE clause
          in CREATE VIEW definition have now explicit derivation.
      
      
      mysql-test/r/ctype_utf8.result:
        Adding test case
      mysql-test/t/ctype_utf8.test:
        Adding test case
      sql/field.cc:
        Copying derivation from item to field.
      sql/field.h:
        Adding derivation and methods to get/set it into Field.
      sql/item.cc:
        Copying derivation from field to item.
      sql/item.h:
        Moving "enum Derivation" declaration from item.h to mysql_priv.h
      sql/mysql_priv.h:
        Moving "enum Derivation" declaration from item.h to mysql_priv.h
      sql/sql_select.cc:
        Copying derivation from item to field in
        create_tmp_field_from_item() and create_tmp_field().
      7614eb0d
  7. 07 Nov, 2006 1 commit
    • unknown's avatar
      BUG#24056: Crash in subquery: · 1d2e456f
      unknown authored
      Don't assume that condition that was pushed down into subquery has 
      produced exactly one KEY_FIELD element - it could produce several or
      none at all, handle all of those cases.
      
      
      1d2e456f
  8. 01 Nov, 2006 2 commits
    • unknown's avatar
      Fixed a lot of compiler warnings (Mainly in mysqld and instance manager) · 07d8be45
      unknown authored
      Fixed some possible fatal wrong arguments to printf() style functions
      Initialized some not initialized variables
      Fixed bug in stored procedure and continue handlers
      (Fixes Bug#22150)
      
      
      include/mysql/plugin.h:
        Remove compiler warning
      mysql-test/mysql-test-run.pl:
        Ensure that --extern works on a clean tree (when 'var' directory doesn't exists)
      server-tools/instance-manager/commands.cc:
        Fixed possible use of unitialized variable
      server-tools/instance-manager/guardian.cc:
        Fixed wrong arguments to log_info() that could cause crashes
      server-tools/instance-manager/instance.cc:
        Fixed wrong arguments to log_info() and log_error() that could cause crashes
      server-tools/instance-manager/instance_options.cc:
        Fixed wrong arguments to log_error() that could cause crashes
      server-tools/instance-manager/mysql_connection.cc:
        Fixed wrong arguments to log_info()
      server-tools/instance-manager/parse.cc:
        Fixed possible use of unitialized variable
      server-tools/instance-manager/user_map.cc:
        Fixed wrong arguments to log_error() that could cause crashes
      sql/Makefile.am:
        Fix for bison 1.875
        (It write an __attribute__() tag that was causing compiler failures)
      sql/ha_ndbcluster.cc:
        Fixed wrong snprintf() arguments
        Remoed not used variables
      sql/ha_ndbcluster_binlog.cc:
        Fixed compiler warning (unsigned/signed comparision)
      sql/handler.cc:
        Fixed wrong parameter to hton->binlog_func()
      sql/item_cmpfunc.cc:
        Removed compiler warnings
      sql/item_timefunc.cc:
        Removed compiler warnings
      sql/log.cc:
        fixed wrong argument to snprintf()
      sql/mysqld.cc:
        Removed compiler warnings
        Fixed wrong arguments to printf()
      sql/partition_info.cc:
        Removed compiler warnings
      sql/protocol.cc:
        reset is_fatal_error for stored procedures
        (Fix for Bug#22150)
      sql/sp_head.cc:
        More DBUG information
        Reset is_fatal_error in case of continue handler.
        (Fix for Bug#22150)
      sql/sql_base.cc:
        Removed compiler warnings
      sql/sql_class.h:
        More DBUG information
      sql/sql_insert.cc:
        Removed compiler warnings
        Initialize not initialized variable (fatal bug)
      sql/sql_parse.cc:
        Added DBUG_ASSERT to detect if stored procedure code returns with a wrong state
        Removed compiler warning
      sql/sql_plugin.cc:
        Fied wrong aruguments to printf() (Fatal bug)
      sql/sql_select.cc:
        Initailize not initialized variable.
        Remove compiler warnings
        Fixed wrong argument to printf() (Possible fatal error)
      sql/sql_view.cc:
        Removed compiler warnings
      sql/table.cc:
        Fixed wrong argument to printf() (Possible fatal)
      07d8be45
    • unknown's avatar
      Fixed bug #21727. · 2a7cf59f
      unknown authored
      This is a performance issue for queries with subqueries evaluation
      of which requires filesort.
      Allocation of memory for the sort buffer at each evaluation of a
      subquery may take a significant amount of time if the buffer is rather big.
      With the fix we allocate the buffer at the first evaluation of the
      subquery and reuse it at each subsequent evaluation.
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #21727.
      mysql-test/t/subselect.test:
        Added a test case for bug #21727.
      sql/item_subselect.h:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added an implementation for Item_subselect::is_uncacheable()
        returning TRUE if the engine if the subselect is uncacheable.
      sql/mysql_priv.h:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/records.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/sql_base.cc:
        Fixed bug #21727.
        Made sure that st_table::pos_in_table_list would be always initialized.
      sql/sql_select.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/sql_show.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/sql_table.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Cleanup.
      sql/table.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added st_table_list::in_subselect() returning for a table the subselect that 
        contains the FROM list this table is taken from (if there is any).
      sql/table.h:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added fields for sort_keys and buffpek buffers to the FILESORT_INFO structure.
      2a7cf59f
  9. 31 Oct, 2006 1 commit
    • unknown's avatar
      BUG#8804: wrong results for NULL IN (SELECT ...) · 48df3b96
      unknown authored
      Evaluate "NULL IN (SELECT ...)" in a special way: Disable pushed-down 
      conditions and their "consequences": 
       = Do full table scans instead of unique_[index_subquery] lookups.
       = Change appropriate "ref_or_null" accesses to full table scans in
         subquery's joins.
      Also cache value of NULL IN (SELECT ...) if the SELECT is not correlated 
      wrt any upper select.
      
      
      mysql-test/r/subselect.result:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
         - Updated test results
      sql/item.h:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
         - Added comments
      sql/item_cmpfunc.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
        Made Item_in_optimizer to:
        - cache the value of "NULL IN (uncorrelated select)"
        - Turn off pushed-down predicates when evaluating "NULL IN (SELECT ...)"
      sql/item_cmpfunc.h:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
        - Made Item_in_optimizer cache the value of "NULL IN (uncorrelated select)"
        - Added comments
      sql/item_subselect.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - When needed, wrap the predicates we push into subquery into an 
          Item_func_trig_cond so we're able to turn them off when evaluating 
          NULL IN (SELECT ...).
        - Added code to evaluate NULL IN (SELECT ...) in a special way:
          = In [unique_]index_subquery, do full table scan to see if there 
            are any rows.
          = For other subqueries, change ref[_or_null] to ALL if the
            ref[_or_null] was created from pushed-down predicate.
      sql/item_subselect.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added Item_subselect::is_correlated
        - Added comments
      sql/records.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Make rr_sequential() non-static
      sql/sql_lex.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added st_select_lex::is_correlated and Item_subselect::is_correlated.
      sql/sql_lex.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added st_select_lex::is_correlated
      sql/sql_select.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added KEY_FIELD::outer_ref to keep track of which ref accesses are 
          created from predicates that were pushed down into the subquery.
      sql/sql_select.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added KEYUSE::outer_ref
      mysql-test/r/subselect3.result:
        New BitKeeper file ``mysql-test/r/subselect3.result''
      mysql-test/t/subselect3.test:
        New BitKeeper file ``mysql-test/t/subselect3.test''
      48df3b96
  10. 26 Oct, 2006 1 commit
    • unknown's avatar
      Bug#18888 Trying to overwrite sql/lex_hash.h during build · ed53c394
      unknown authored
       - As a sideeffect of the patch to generate lex_hash.h only once
      on the machine where the source dist was produced, a problem
      was found when compiling a mysqld without partition support - it 
      would crash when looking up the lex symbols due to mismatch between
      lex.h and the generated lex_hash.h
      
       - Remove the ifdef for partition in lex.h 
       - Fix minor problem with"EXPLAIN PARTITION" when not compiled with
         partition(existed also without the above patch)
       - Add test case that will be run when we don't have partition
         support compiled into mysqld
       - Return error ER_FEATURE_DISABLED if user tries to use PARTITION
         when there is no support for it.
      
      
      sql/lex.h:
        There should be no ifdefs of features in lex.h
      sql/sql_class.cc:
        In line with the comment in sql_yacc.yy that we want the same output
        from "EXPLAIN PARTITIONS.." regardless of wheter we have compiled in
        support for partition  or not, remove the ifdef so the extra field
        is added to output if the DESCRIBE_PARTITIONS bit it set. Without
        this patch we get a crash as the code in select_describe believes the
        field is there.
      sql/sql_select.cc:
        Use "const" for the variable as it's a ssigned once and never changes
      sql/sql_yacc.yy:
        Don't allow PARTITION syntax oif there is no suport for partitioning
      mysql-test/r/not_partition.require:
        New BitKeeper file ``mysql-test/r/not_partition.require''
      mysql-test/r/not_partition.result:
        New BitKeeper file ``mysql-test/r/not_partition.result''
      mysql-test/t/not_partition.test:
        New BitKeeper file ``mysql-test/t/not_partition.test''
      ed53c394
  11. 19 Oct, 2006 1 commit
    • unknown's avatar
      Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes · da7af481
      unknown authored
      We miss some records sometimes using RANGE method if we have
      partial key segments.
      Example:
        Create table t1(a char(2), key(a(1)));
        insert into t1 values ('a'), ('xx');
        select a from t1 where a > 'x';
      We call index_read() passing 'x' key and HA_READ_AFTER_KEY flag
      in the handler::read_range_first() wich is wrong because we have
      a partial key segment for the field and might miss records like 'xx'.
      
      Fix: don't use open segments in such a case.
      
      
      mysql-test/r/range.result:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - test result.
      mysql-test/t/range.test:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - test case.
      sql/opt_range.cc:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - check if we have a partial key segment for a Item_func::GT_FUNC;
            if so, don't set NEAR_MIN flag in order to use HA_READ_KEY_OR_NEXT
            instead of HA_READ_AFTER_KEY.
      sql/opt_range.h:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - key segment 'flag' slot added.
      sql/sql_select.cc:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - test (HA_PART_KEY_SEG | HA_NULL_PART) as we split it in the sql/table.cc
      sql/table.cc:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - set HA_NULL_PART flag instead of HA_PART_KEY_SEG in order not to mix them.
      da7af481
  12. 17 Oct, 2006 2 commits
    • unknown's avatar
      71b67e4a
    • unknown's avatar
      Bug#21798: memory leak during query execution with subquery in column · 841ea461
      unknown authored
                  list using a function
      When executing dependent subqueries they are re-inited and re-exec() for 
      each row of the outer context.
      The cause for the bug is that during subquery reinitialization/re-execution,
      the optimizer reallocates JOIN::join_tab, JOIN::table in make_simple_join()
      and the local variable in 'sortorder' in create_sort_index(), which is
      allocated by make_unireg_sortorder().
      Care must be taken not to allocate anything into the thread's memory pool
      while re-initializing query plan structures between subquery re-executions.
      All such items mush be cached and reused because the thread's memory pool
      is freed at the end of the whole query.
      Note that they must be cached and reused even for queries that are not 
      otherwise cacheable because otherwise it will grow the thread's memory 
      pool every time a cacheable query is re-executed. 
      We provide additional members to the JOIN structure to store references 
      to the items that need to be cached.
      
      
      mysql-test/r/subselect.result:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - test case
      mysql-test/t/subselect.test:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - test case
      sql/mysql_priv.h:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the entities allocated in the threads memory pool by
           JOIN::exec ().
      sql/sql_delete.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_select.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_select.h:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_table.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      sql/sql_update.cc:
        Bug#21798: memory leak during query execution with subquery in column
                    list using a function
         - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
           memory pool by JOIN::exec ().
      841ea461
  13. 16 Oct, 2006 1 commit
    • unknown's avatar
      Fixed bug #19579: at range analysis optimizer did not take into · 6101fd25
      unknown authored
      account predicates that become sargable after reading const tables.
      In some cases this resulted in choosing non-optimal execution plans.
      Now info of such potentially saragable predicates is saved in
      an array and after reading const tables we check whether this
      predicates has become saragable.
      
      
      
      mysql-test/r/select.result:
        Added a test case for bug #19579.
      mysql-test/t/select.test:
        Added a test case for bug #19579.
      sql/item_cmpfunc.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_base.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_lex.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_lex.h:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Added a counter of between predicates.
      sql/sql_select.cc:
        Fixed bug #19579: at range analysis optimizer did not take into 
        account predicates that become sargable after reading const tables.
        Now info of such potentially saragable predicates is saved in
        an array and after reading const tables we check whether this
        predicates has become saragable.
      6101fd25
  14. 11 Oct, 2006 1 commit
    • unknown's avatar
      Bug#12240 - Rows Examined in Slow Log showing incorrect number? · ddc5ae38
      unknown authored
      Examined rows are counted for every join part. The per-join-part
      counter was incremented over all iterations. The result variable
      was replaced at the end of every iteration. The final result was
      the number of examined rows by the join part that ended its
      execution as the last one. The numbers of other join parts was
      lost.
      
      Now we reset the per-join-part counter before every iteration and
      add it to the result variable at the end of the iteration. That
      way we get the sum of all iterations of all join parts.
      
      No test case. Testing this needs a look into the slow query log.
      I don't know of a way to do this portably with the test suite.
      
      
      sql/sql_select.cc:
        Bug#12240 - Rows Examined in Slow Log showing incorrect number?
        Fixed reseting and accumulation of examined rows counts.
      ddc5ae38
  15. 09 Oct, 2006 1 commit
    • unknown's avatar
      Bug #22781: SQL_BIG_RESULT fails to influence sort plan · 45cad70f
      unknown authored
       Currently SQL_BIG_RESULT is checked only at compile time.
       However, additional optimizations may take place after
       this check that change the sort method from 'filesort'
       to sorting via index. As a result the actual plan
       executed is not the one specified by the SQL_BIG_RESULT
       hint. Similarly, there is no such test when executing
       EXPLAIN, resulting in incorrect output.
       The patch corrects the problem by testing for
       SQL_BIG_RESULT both during the explain and execution
       phases.
      
      
      mysql-test/r/bdb.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/r/group_by.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with MyISAM
      mysql-test/r/innodb.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/r/innodb_mysql.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with InnoDB
      mysql-test/r/myisam.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/t/group_by.test:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with MyISAM
      mysql-test/t/innodb_mysql.test:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with InnoDB
      sql/sql_select.cc:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - When SQL_BIG_RESULT is specified, disable the optimization performed
        at execution/explain time that decides to use an index instead
        of filesort.
      45cad70f
  16. 06 Oct, 2006 1 commit
    • unknown's avatar
      BUG#21726: Incorrect result with multiple invocations of LAST_INSERT_ID. · f603c1cc
      unknown authored
      Note: bug#21726 does not directly apply to 4.1, as it doesn't have stored
      procedures.  However, 4.1 had some bugs that were fixed in 5.0 by the
      patch for bug#21726, and this patch is a backport of those fixes.
      Namely, in 4.1 it fixes:
      
        - LAST_INSERT_ID(expr) didn't return value of expr (4.1 specific).
      
        - LAST_INSERT_ID() could return the value generated by current
          statement if the call happens after the generation, like in
      
            CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT);
            INSERT INTO t1 VALUES (NULL, 0), (NULL, LAST_INSERT_ID());
      
        - Redundant binary log LAST_INSERT_ID_EVENTs could be generated.
      
      
      mysql-test/r/rpl_insert_id.result:
        Add result for bug#21726: Incorrect result with multiple invocations
        of LAST_INSERT_ID.
      mysql-test/t/rpl_insert_id.test:
        Add test case for bug#21726: Incorrect result with multiple invocations
        of LAST_INSERT_ID.
      sql/item_func.cc:
        Add implementation of Item_func_last_insert_id::fix_fields(), where we
        set THD::last_insert_id_used when statement calls LAST_INSERT_ID().
        In Item_func_last_insert_id::val_int(), return THD::current_insert_id
        if called like LAST_INSERT_ID(), otherwise return value of argument if
        called like LAST_INSERT_ID(expr).
      sql/item_func.h:
        Add declaration of Item_func_last_insert_id::fix_fields().
      sql/log_event.cc:
        Do not set THD::last_insert_id_used on LAST_INSERT_ID_EVENT.  Though we
        know the statement will call LAST_INSERT_ID(), it wasn't called yet.
      sql/set_var.cc:
        In sys_var_last_insert_id::value_ptr(), set THD::last_insert_id_used,
        and return THD::current_insert_id for @@LAST_INSERT_ID.
      sql/sql_class.h:
        Update comments.
        Remove THD::insert_id(), as it has lost its purpose now.
      sql/sql_insert.cc:
        Now it is OK to read THD::last_insert_id directly.
      sql/sql_load.cc:
        Now it is OK to read THD::last_insert_id directly.
      sql/sql_parse.cc:
        In mysql_execute_command(), remember THD::last_insert_id (first
        generated value of the previous statement) in THD::current_insert_id,
        which then will be returned for LAST_INSERT_ID() and @@LAST_INSERT_ID.
      sql/sql_select.cc:
        If "IS NULL" is replaced with "= <LAST_INSERT_ID>", use right value,
        which is THD::current_insert_id, and also set THD::last_insert_id_used
        to issue binary log LAST_INSERT_ID_EVENT.
      sql/sql_update.cc:
        Now it is OK to read THD::last_insert_id directly.
      tests/mysql_client_test.c:
        Add test case for bug#21726: Incorrect result with multiple invocations
        of LAST_INSERT_ID.
      f603c1cc
  17. 03 Oct, 2006 1 commit
    • unknown's avatar
      Fix for the patch for bug#21726: Incorrect result with multiple · 37b5cbdc
      unknown authored
      invocations of LAST_INSERT_ID.
      
      Reding of LAST_INSERT_ID inside stored function wasn't noted by caller,
      and no LAST_INSERT_ID_EVENT was issued for binary log.
      
      The solution is to add THD::last_insert_id_used_bin_log, which is much
      like THD::last_insert_id_used, but is reset only for upper-level
      statements.  This new variable is used to issue LAST_INSERT_ID_EVENT.
      
      
      mysql-test/r/rpl_insert_id.result:
        For bug#21726, add result for statement-based replication of function
        calls.
      mysql-test/t/rpl_insert_id.test:
        For bug#21726, add test case for statement-based replication of function
        calls.
      sql/item_func.cc:
        Set THD::last_insert_id_used_bin_log for issuing of LAST_INSERT_ID_EVENT.
      sql/log.cc:
        Issue LAST_INSERT_ID_EVENT if THD::last_insert_id_used_bin_log is set.
      sql/set_var.cc:
        Set THD::last_insert_id_used_bin_log for issuing of LAST_INSERT_ID_EVENT.
      sql/sql_class.cc:
        Initialize THD::last_insert_id_used_bin_log.
        Fix typo, add whitespace.
      sql/sql_class.h:
        Add THD::last_insert_id_used_bin_log.
      sql/sql_parse.cc:
        Reset THD::last_insert_id_used_bin_log for upper-level statements.
      sql/sql_select.cc:
        Set THD::last_insert_id_used_bin_log for issuing of LAST_INSERT_ID_EVENT.
      37b5cbdc
  18. 02 Oct, 2006 1 commit
    • unknown's avatar
      BUG#21726: Incorrect result with multiple invocations of LAST_INSERT_ID · be929087
      unknown authored
      Non-upper-level INSERTs (the ones in the body of stored procedure,
      stored function, or trigger) into a table that have AUTO_INCREMENT
      column didn't affected the result of LAST_INSERT_ID() on this level.
      
      The problem was introduced with the fix of bug 6880, which in turn was
      introduced with the fix of bug 3117, where current insert_id value was
      remembered on the first call to LAST_INSERT_ID() (bug 3117) and was
      returned from that function until it was reset before the next
      _upper-level_ statement (bug 6880).
      
      The fix for bug#21726 brings back the behaviour of version 4.0, and
      implements the following: remember insert_id value at the beginning
      of the statement or expression (which at that point equals to
      the first insert_id value generated by the previous statement), and
      return that remembered value from LAST_INSERT_ID() or @@LAST_INSERT_ID.
      
      Thus, the value returned by LAST_INSERT_ID() is not affected by values
      generated by current statement, nor by LAST_INSERT_ID(expr) calls in
      this statement.
      
      Version 5.1 does not have this bug (it was fixed by WL 3146).
      
      
      mysql-test/r/rpl_insert_id.result:
        Add results for bug#21726: Incorrect result with multiple invocations
        of LAST_INSERT_ID, and bug#20339: stored procedure using LAST_INSERT_ID()
        does not replicate statement-based.
      mysql-test/t/rpl_insert_id.test:
        Add test cases for bug#21726: Incorrect result with multiple invocations
        of LAST_INSERT_ID, and bug#20339: stored procedure using LAST_INSERT_ID()
        does not replicate statement-based.
      sql/item_func.cc:
        Add implementation of Item_func_last_insert_id::fix_fields(), where we
        remember in THD::current_insert_id the first value generated during
        execution of the previous statement, which is returned then from
        Item_func_last_insert_id::val_int().
      sql/item_func.h:
        Add declaration of Item_func_last_insert_id::fix_fields().
      sql/log_event.cc:
        Do not set THD::last_insert_id_used on LAST_INSERT_ID_EVENT.  Though we
        know the statement will call LAST_INSERT_ID(), it wasn't called yet.
      sql/set_var.cc:
        In sys_var_last_insert_id::value_ptr() remember in
        THD::current_insert_id the first value generated during execution of the
        previous statement, and return this value for @@LAST_INSERT_ID.
      sql/sql_class.cc:
        Reset THD::last_insert_id_used after each statement execution.
      sql/sql_class.h:
        Rather then remember current insert_id value on first invocation of
        THD::insert_id(), remember it in Item_func_last_insert_id::fix_fields(),
        sys_var_last_insert_id::value_ptr(), or mysql_execute_command().
        Remove THD::insert_id(), as it lost its value now.
      sql/sql_insert.cc:
        THD::insert_id() is removed, use THD::last_insert_id directly.
      sql/sql_load.cc:
        THD::insert_id() is removed, using THD::last_insert_id directly is OK.
      sql/sql_parse.cc:
        Remember in THD::current_insert_id first generated insert id value of
        the previous statement in mysql_execute_command().
        No need to reset THD::last_insert_id_used in
        mysql_reset_thd_for_next_command(), it will be reset after each
        statement.
      sql/sql_select.cc:
        If "IS NULL" is replaced with "= <LAST_INSERT_ID>", use right value,
        which is THD::current_insert_id, and also set THD::last_insert_id_used
        to issue binary log LAST_INSERT_ID_EVENT.
      sql/sql_update.cc:
        THD::insert_id() is removed, use THD::last_insert_id directly.
      tests/mysql_client_test.c:
        Add test case for bug#21726: Incorrect result with multiple invocations
        of LAST_INSERT_ID.
      be929087
  19. 29 Sep, 2006 3 commits
    • unknown's avatar
      Fixed bug#20825: rollup puts non-equal values together · da9f990b
      unknown authored
      Fix for bug 7894 replaces a field(s) in a non-aggregate function with a item
      reference if such a field was specified in the GROUP BY clause in order to
      get a correct result.
      When ROLLUP is involved this lead to a wrong result due to value of a such
      field is got through a copy function and copying happens after the function
      evaluation.
      Such replacement isn't needed if grouping is also done by such a function.
      
      The change_group_ref() function now isn't called for a function present in
      the group list.
      
      
      mysql-test/t/olap.test:
        Added the test case for the bug#20825:  rollup puts non-equal values together
      mysql-test/r/olap.result:
        Added the test case for the bug#20825:  rollup puts non-equal values together
      sql/sql_select.cc:
        Fixed bug#20825: rollup puts non-equal values together
        The change_group_ref() function now isn't called for a function present in
        the group list.
      da9f990b
    • unknown's avatar
      Remove empty line · 9481cd80
      unknown authored
      9481cd80
    • unknown's avatar
      BUG#14940: Slow join order is chosen: [2nd commit with post-review fixes] · 5df80677
      unknown authored
      - Re-worked the prev_record_reads() function to return the lower bound of
        number of different table access scans that will be performed.
      
      
      mysql-test/r/join.result:
        BUG#14940: testcase
      mysql-test/t/join.test:
        BUG#14940: testcase
      sql/sql_select.cc:
        BUG#14940: Slow join order is chosen: 
        - Re-worked the prev_record_reads() function to return the lower bound of
          number of different table access scans that will be performed.
      sql/sql_select.h:
        BUG#14940: Slow join order is chosen:
        - Added comments in struct POSITION
        - Added POSITION::ref_depend_map: bitmap of tables that the table access
          method depends on.
      5df80677
  20. 28 Sep, 2006 3 commits
    • unknown's avatar
      Fixed bug#20503: Server crash due to the ORDER clause not taken into account · 4fd71723
      unknown authored
      while space allocation
      
      Under some circumstances DISTINCT clause can be converted to grouping.
      In such cases grouping is performed by all items in the select list.
      If an ORDER clause is present then items from it is prepended to group list.
      But the case with ORDER wasn't taken into account when allocating the
      array for sum functions. This leads to memory corruption and crash.
      
      The JOIN::alloc_func_list() function now allocates additional space if there
      is an ORDER by clause is specified and DISTINCT -> GROUP BY optimization is
      possible.
      
      
      mysql-test/t/select.test:
        Added the test case for bug#20503: Server crash due to the ORDER clause not taken into account while space allocation
      mysql-test/r/select.result:
        Added the test case for bug#20503: Server crash due to the ORDER clause not taken into account while space allocation
      sql/sql_select.cc:
        Fixed bug#20503: Server crash due to the ORDER clause not taken into account
        while space allocation
        The JOIN::alloc_func_list() function now allocates additional space if there
        is an ORDER by clause is specified and DISTINCT -> GROUP BY optimization is
        possible.
      4fd71723
    • unknown's avatar
      Fix for bug#22338 "Valgrind warning: uninitialized variable in · 5d46e299
      unknown authored
      create_tmp_table()".
      
      The fix for bug 21787 "COUNT(*) + ORDER BY + LIMIT returns wrong
      result" introduced valgrind warnings which occured during execution
      of information_schema.test and sp-prelocking.test in version 5.0.
      There were no user visible effects.
      
      The latter fix made create_tmp_table() dependant on
      THD::lex::current_select value. Valgrind warnings occured when this
      function was executed and THD::lex::current_select member pointed
      to uninitialized SELECT_LEX instance.
      
      This fix tries to remove this dependancy by moving some logic
      outside of create_tmp_table() function.
      
      
      sql/sql_select.cc:
        create_tmp_table():
          Moved code which is responsible for determining if optimization
          which pushes down LIMIT clause to temporary table creation is
          applicable out of this function.
          Such move made this function independant of THD::lex::current_select
          value and removed valgrind warnings which occured in cases when this
          member pointed to uninitialized SELECT_LEX object (particularly these
          warnings occured in sp-prelocking.test and information_schema.test
          in 5.0). This seems like a better solution than trying to force this
          pointer always to point to relevant select because:
          - In some cases when we use create_tmp_table() there are no relevant
            SELECT_LEX object (we use it just to create temporary table/object).
          - There is only one place in code where we call this funciton and
            where this optimization can be enabled. And in this place we
            already have some logic which tries to determine if it is applicable.
      5d46e299
    • unknown's avatar
      BUG#19914 SELECT COUNT(*) sometimes returns MAX_INT on cluster tables · 44a882f9
      unknown authored
      post-review fixes as indicated by Serg.
      
      manual testing of error cases done in 5.0 due to support for DBUG_EXECUTE_IF
      to insert errors.
      Unable to write test case for mysql-test until 5.1 due to support for setting
      debug options at runtime.
      
      
      sql/ha_blackhole.cc:
        update for handler::info() now returning int
      sql/ha_blackhole.h:
        update for handler::info() now returning int
      sql/ha_isam.cc:
        update for handler::info() now returning int
      sql/ha_isam.h:
        update for handler::info() now returning int
      sql/ha_isammrg.cc:
        update for handler::info() now returning int
      sql/ha_isammrg.h:
        update for handler::info() now returning int
      sql/item_sum.cc:
        update for handler::info() now returning int.
        
        return error to user if info call fails
      sql/sql_delete.cc:
        update for handler::info() now returning int.
        
        return error to user if info call fails
      sql/sql_select.cc:
        update for handler::info() now returning int.
        
        return error to user if info call fails
      sql/sql_union.cc:
        update for handler::info() now returning int.
        
        return error to user if info call fails
      44a882f9
  21. 27 Sep, 2006 2 commits
  22. 19 Sep, 2006 1 commit
  23. 18 Sep, 2006 1 commit
  24. 16 Sep, 2006 2 commits
    • 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
    • unknown's avatar
      Fixed bug #21493: crash for the second execution of a function · 58e178c5
      unknown authored
      containing a select statement that uses an aggregating IN subquery.
      Added a parameter to the function fix_prepare_information 
      to restore correctly the having clause for the second execution.
      Saved andor structure of the having conditions at the proper moment
      before any calls of split_sum_func2 that could modify the having structure
      adding new Item_ref objects. (These additions, are produced not with 
      the statement mem_root, but rather with the execution mem_root.)
      
      
      mysql-test/r/sp.result:
        Added a test case for bug #21493.
      mysql-test/t/sp.test:
        Added a test case for bug #21493.
      sql/sql_delete.cc:
        Fixed bug #21493: crash for the second execution of a function
        containing a select statement that uses an aggregating IN subquery.
        Added a parameter to the function fix_prepare_information 
        to restore correctly the having clause for the second execution.
      sql/sql_insert.cc:
        Fixed bug #21493: crash for the second execution of a function
        containing a select statement that uses an aggregating IN subquery.
        Added a parameter to the function fix_prepare_information 
        to restore correctly the having clause for the second execution.
      sql/sql_lex.cc:
        Fixed bug #21493: crash for the second execution of a function
        containing a select statement that uses an aggregating IN subquery.
        Added a parameter to the function fix_prepare_information 
        to restore correctly the having clause for the second execution.
      sql/sql_lex.h:
        Fixed bug #21493: crash for the second execution of a function
        containing a select statement that uses an aggregating IN subquery.
        Added a parameter to the function fix_prepare_information 
        to restore correctly the having clause for the second execution.
      sql/sql_update.cc:
        Fixed bug #21493: crash for the second execution of a function
        containing a select statement that uses an aggregating IN subquery.
        Added a parameter to the function fix_prepare_information 
        to restore correctly the having clause for the second execution.
      58e178c5
  25. 15 Sep, 2006 1 commit
    • unknown's avatar
      This changes the order of the universe, black is now the new white. · d79485a9
      unknown authored
      In practice this means that handlerton is now created by the server and is passed to the engine. Plugin startups can now also control how plugins are inited (and can optionally pass values). Bit more flexibility to those who want to write plugin interfaces to the database. 
      
      
      include/mysql/plugin.h:
        Optional to pass parameter now to init and deinit functions
      sql/ha_ndbcluster.cc:
        Cleanup, handlerton is now a pointer.
      sql/ha_ndbcluster_binlog.cc:
        Cleanup (handlerton is now a pointer)
      sql/ha_ndbcluster_binlog.h:
        Cleanup (handlerton is now a pointer)
      sql/ha_partition.cc:
        Cleaned up handlerton change
      sql/handler.cc:
        Cheanup of handlerton change
      sql/item_sum.cc:
        Cleanedup of handlerton change
      sql/log.cc:
        Cleanup of handlerton change
      sql/mysql_priv.h:
        Reverted patch for variables (what would have happen previously if a have_ would have been called that was dynamically loaded? boom!)
      sql/mysqld.cc:
        Cleanup of handlerton changes and reverted have variable patch
      sql/partition_info.cc:
        Cleanup of handlerton (we need to clean this up a bit more).
      sql/set_var.cc:
        Cleanup related to handlerton changes
      sql/sql_cache.cc:
        Handlerton changes cleanup
      sql/sql_insert.cc:
        Handlerton changes cleanup.
      sql/sql_partition.cc:
        Handlerton cleanup changes
      sql/sql_plugin.cc:
        Handlerton changes.
        
        init() can now be controlled by a plugin specific startup. 
        
        There was also an issue with how we deinited the status variables. It should have been occuring before we shut down the engines.
      sql/sql_select.cc:
        Handlerton cleanup changes
      sql/sql_show.cc:
        Handlerton cleanup changes
      sql/sql_table.cc:
        Handlerton cleanup changes
      sql/table.cc:
        Cleanup
      storage/archive/ha_archive.cc:
        Cleanup
      storage/archive/ha_archive.h:
        Cleanup
      storage/blackhole/ha_blackhole.cc:
        Cleanup
      storage/csv/ha_tina.cc:
        Cleanup
      storage/example/ha_example.cc:
        Cleanup
      storage/federated/ha_federated.cc:
        Cleanup
      storage/heap/ha_heap.cc:
        Cleanup
      storage/innobase/handler/ha_innodb.cc:
        Cleanup
      storage/myisam/ha_myisam.cc:
        Cleanup
      storage/myisammrg/ha_myisammrg.cc:
        Cleanup
      d79485a9
  26. 09 Sep, 2006 1 commit
  27. 07 Sep, 2006 1 commit
    • unknown's avatar
      Fixed bug #21698: erroneously a field could be replaced by an · 87166702
      unknown authored
      equal constant under any circumstances.
      In fact this substitution can be allowed if the field is
      not of a type string or if the field reference serves as 
      an argument of a comparison predicate.  
      
      
      mysql-test/r/func_str.result:
        Added test cases for bug #21698.
      mysql-test/r/heap_hash.result:
        Adjusted results after the fix for bug #21198.
      mysql-test/t/func_str.test:
        Added test cases for bug #21698.
      sql/item.cc:
        Fixed bug #21198.
        Added a method to check whether a field reference can be 
        substituted for a constant equal to the field.
        This substitution is allowed if the field is not of a type string
        or if the field reference serves as an argument of a comparison
        predicate.
      sql/item.h:
        Fixed bug #21698.
        Added a new virtual transformation method for a item 'compile'
        with two callback function parameters.
        Added a new virtual method 'subst_argument_checker' to be used
        as an amnalyzer method.
        This method is supposed to set its in/out argument to NULL for
        the nodes where substitution of a string field for a constant
        is not valid.
      sql/item_cmpfunc.cc:
        Fixed bug #21698.
        Added an implementation of the compile method for class Item_cond.
        First it processes the Item_cond node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/item_cmpfunc.h:
        Fixed bug #21698.
        Added the implementations of 'subst_argument_checker'
        for the Item_func and Item_cond classes.
        This method is supposed to set its in/out argument to NULL for
        the nodes where substitution of a string field for a constant
        is not valid.
        Added the declaration of an implementation of the compile method for 
        class Item_cond.
        First it processes the Item_cond node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/item_func.cc:
        Fixed bug #21698.
        Added an implementation of the compile method for class Item_func.
        First it processes the Item_func node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/item_func.h:
        Fixed bug #21698.
        Added the declaration of the implementation of the compile method for
        class Item_func.
        First it processes the Item_func node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/sql_select.cc:
        Fixed bug #21698.
        Limited the conditions at which a field can be substituted 
        a for an equal constant in a formula. 
        This substitution is allowed if the field is not of a type string
        or if the field reference serves as an argument of a comparison
        predicate.
      87166702
  28. 06 Sep, 2006 1 commit
    • unknown's avatar
      Fixed bug #5500: EXPLAIN returned a wrong select_type for queries using views. · 22c3e7b4
      unknown authored
      Select_type in the EXPLAIN output for the query SELECT * FROM t1 was
      'SIMPLE', while for the query SELECT * FROM v1, where the view v1
      was defined as SELECT * FROM t1, the EXPLAIN output contained 'PRIMARY'
      for the select_type column.
       
      
      
      mysql-test/r/group_by.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/information_schema.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/olap.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/range.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/view.result:
        Added a test case for bug #5500.
        Adjusted other results.
      mysql-test/r/view_grant.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/t/view.test:
        Added a test case for bug #5500.
      22c3e7b4
  29. 04 Sep, 2006 1 commit