An error occurred fetching the project authors.
  1. 05 Jan, 2011 1 commit
  2. 27 Nov, 2010 1 commit
    • Michael Widenius's avatar
      Added TRASH() to table->record[0] to find out if we access not initialzed data. · 7c56b082
      Michael Widenius authored
      - Changed Cached_item_field not copy data for fields with NULL value
      - In key_copy() and key_restore() don't copy data for fields with NULL value
      
      Fixed code to avoid valgrind warnings
      - Use c_ptr_safe instead of c_ptr()
      
      Removed "QQ" from comments (QQ was ment to be used for internal comments that should be removed before pushing)
      Fixed wrong alias used (from previous patch)
      
      
      sql/event_db_repository.cc:
        Update testing if event table is valid (to avoid valgrind errors)
      sql/ha_partition.cc:
        m_ordered_scan_ongoing was not initialized
        Reset null bits in record to avoid valgrind errors
      sql/handler.h:
        Added flag if storage engine will write row verbatim and the row contains varchar or null fields
        (in which case we must clear the row to avoid valgrind warnings)
      sql/item_buff.cc:
        Changed Cached_item_field not copy data for fields with NULL value
        (Optimization and avoids valgrind warnings)
      sql/item_func.cc:
        c_ptr() -> c_ptr_safe()
      sql/key.cc:
        In key_copy() and key_restore() don't copy data for fields with NULL value
      sql/opt_range.cc:
        c_ptr() -> c_ptr_safe()
      sql/sql_base.cc:
        Added TRASH() to table->record[0] to find out if we access not initialzed data.
        Initialize null_bytes to:
        - Get consistent tests
        - Ensure we don't get valgrind warnings for null fields (as we may only update a couple of bits in a byte)
      sql/sql_class.cc:
        Removed "QQ" from comments
      sql/sql_insert.cc:
        Initialize row to default values if we are using valgrind and row will be copied verbatim to disk in storage engine.
      sql/sql_load.cc:
        QQ -> TODO
      sql/sql_parse.cc:
        Removed old not used code marked QQ and withing "#ifdef REMOVED"
      sql/sql_select.cc:
        QQ -> TODO
        Initialize some variables that was used uninitialized
        Added DBUG_ASSERT() to find out if thd was not properly initialized for sub queries
      sql/sql_test.cc:
        Fixed format for printing to DBUG file
        Fixed wrong alias used (from previous patch)
      sql/sql_trigger.h:
        QQ -> TODO
      sql/table.cc:
        QQ -> TODO
      storage/maria/ha_maria.cc:
        Mark table with HA_RECORD_MUST_BE_CLEAN_ON_WRITE, if row is written verbatim to disk and contains varchar or null fields.
      storage/maria/ma_open.c:
        Added flags if table has varchar or null fields
      storage/maria/maria_def.h:
        Added flags if table has varchar or null fields
      storage/myisam/ha_myisam.cc:
        Mark table with HA_RECORD_MUST_BE_CLEAN_ON_WRITE, if row is written verbatim to disk and contains varchar or null fields.
      storage/myisam/mi_open.c:
        Fixed memory overrun bug when using fulltext keys
      storage/xtradb/row/row0sel.c:
        Removed initialization of null bits. (not needed anymore)
      7c56b082
  3. 23 Nov, 2010 1 commit
    • Michael Widenius's avatar
      Code cleanup to get fewer reallocs() during execution. · 52090a44
      Michael Widenius authored
      - Changed TABLE->alias to String to get fewer reallocs when alias are used.
      - Preallocate some buffers
      
      Changed some String->c_ptr() -> String->ptr() when \0 is not needed.
      Fixed wrong usage of String->ptr() when we need a \0 terminated string.
      Use my_strtod() instead of my_atof() to avoid having to add \0 to string.
      c_ptr() -> c_ptr_safe() to avoid warnings from valgrind.
      zr 
      
      sql/event_db_repository.cc:
        Update usage of TABLE->alias
      sql/event_scheduler.cc:
        c_ptr() -> c_ptr_safe()
      sql/events.cc:
        c_ptr() -> ptr() as \0 was not needed
      sql/field.cc:
        Update usage of TABLE->alias
      sql/field.h:
        Update usage of TABLE->alias
      sql/ha_partition.cc:
        Update usage of TABLE->alias
      sql/handler.cc:
        Update usage of TABLE->alias
        Fixed wrong usage of str.ptr()
      sql/item.cc:
        Fixed error where code wrongly assumed string was \0 terminated.
      sql/item_func.cc:
        c_ptr() -> c_ptr_safe()
        Update usage of TABLE->alias
      sql/item_sum.h:
        Use my_strtod() instead of my_atof() to avoid having to add \0 to string
      sql/lock.cc:
        Update usage of TABLE->alias
      sql/log.cc:
        c_ptr() -> ptr() as \0 was not needed
      sql/log_event.cc:
        c_ptr_quick() -> ptr() as \0 was not needed
      sql/opt_range.cc:
        ptr() -> c_ptr() as \0 is needed
      sql/opt_subselect.cc:
        Update usage of TABLE->alias
      sql/opt_table_elimination.cc:
        Update usage of TABLE->alias
      sql/set_var.cc:
        ptr() -> c_ptr() as \0 is needed
        c_ptr() -> c_ptr_safe()
      sql/sp.cc:
        c_ptr() -> ptr() as \0 was not needed
      sql/sp_rcontext.cc:
        
        Update usage of TABLE->alias
      sql/sql_base.cc:
        Preallocate buffers
        Update usage of TABLE->alias
      sql/sql_class.cc:
        Fix arguments to sprintf() to work even if string is not \0 terminated
      sql/sql_insert.cc:
        Update usage of TABLE->alias
        c_ptr() -> ptr() as \0 was not needed
      sql/sql_load.cc:
        Preallocate buffers
        Trivial optimizations
      sql/sql_parse.cc:
        Trivial optimization
      sql/sql_plugin.cc:
        c_ptr() -> ptr() as \0 was not needed
      sql/sql_select.cc:
        Update usage of TABLE->alias
      sql/sql_show.cc:
        Update usage of TABLE->alias
      sql/sql_string.h:
        Added move() function to move allocated memory from one object to another.
      sql/sql_table.cc:
        Update usage of TABLE->alias
        c_ptr() -> c_ptr_safe()
      sql/sql_test.cc:
        ptr() -> c_ptr_safe()
      sql/sql_trigger.cc:
        Update usage of TABLE->alias
        c_ptr() -> c_ptr_safe()
      sql/sql_update.cc:
        Update usage of TABLE->alias
      sql/sql_view.cc:
        ptr() -> c_ptr_safe()
      sql/sql_yacc.yy:
        ptr() -> c_ptr()
      sql/table.cc:
        
        Update usage of TABLE->alias
      sql/table.h:
        Changed TABLE->alias to String to get fewer reallocs when alias are used.
      storage/federatedx/ha_federatedx.cc:
        Use c_ptr_safe() to ensure strings are \0 terminated.
      storage/maria/ha_maria.cc:
        Update usage of TABLE->alias
      storage/myisam/ha_myisam.cc:
        Update usage of TABLE->alias
      storage/xtradb/row/row0sel.c:
        Ensure that null bits in record are properly reset.
        (Old code didn't work as row_search_for_mysql() can be called twice while reading fields from one row.
      52090a44
  4. 08 Nov, 2010 1 commit
    • Michael Widenius's avatar
      Make SQLString reallocation addaptive · 7b047a31
      Michael Widenius authored
      Avoid doing reallocs
      Prealloc some strings / provide extension allocation size to some strings
      This gave a 25 % speedup in some mysql-test-run tests.
      
      
      
      mysys/safemalloc.c:
        More DBUG_PRINT
      sql/net_serv.cc:
        Make all mallocs() look the similar. (just-for-safety fix)
      sql/protocol.cc:
        Ensure that communication packet buffer is allocated.
        (It's freed by stored precedures and some DLL statements)
      sql/sp.cc:
        Fixed valgrind warning
      sql/sql_select.cc:
        Set extent allocation for buffer that has a lot of append() calls.
      sql/sql_show.cc:
        Fixed wrong usage of string buffer. Old code worked in test suite 'just-by-chance'
      sql/sql_string.cc:
        Call realloc_with_extra_if_needed() in append() functions.
      sql/sql_string.h:
        Added 'extra_alloc' member, to specify chunck size for realloc().
        extra_alloc is addaptive to catch cases where preallocation of buffers is not done properly.
        Simplified free() to allow compiler to optimize things better (and to keep things consistent).
        Fixed shrink() to take into account the extra memory added to the Alloced_length in realloc(). This saves us a realloc() per query.
      sql/sql_test.cc:
        Set extent allocation for buffer that has a lot of append() calls.
      sql/table.cc:
        Set extent allocation for buffer that has a lot of append() calls.
      7b047a31
  5. 30 Oct, 2010 1 commit
  6. 01 Oct, 2010 1 commit
    • Mattias Jonsson's avatar
      Bug#51851: Server with SBR locks mutex twice on · 814fbc5b
      Mattias Jonsson authored
      LOAD DATA into partitioned MyISAM table
      
      Problem was that both partitioning and myisam
      used the same table_share->mutex for different protections
      (auto inc and repair).
      
      Solved by adding a specific mutex for the partitioning
      auto_increment.
      
      Also adding destroying the ha_data structure in
      free_table_share (which is to be propagated
      into 5.5).
      
      This is a 5.1 ONLY patch, already fixed in 5.5+.
      814fbc5b
  7. 08 Sep, 2010 1 commit
  8. 03 Sep, 2010 2 commits
    • Michael Widenius's avatar
      Enable archive tables to work with mysql_upgrade / repair · 9f855602
      Michael Widenius authored
      Made long file names from previous patch shorter
      
      mysql-test/r/archive.result:
        Added testing of repair (for upgrade) of 5.0 tables.
      mysql-test/std_data/archive_5_0.ARM:
        Archive table created in MySQL 5.0
      mysql-test/std_data/archive_5_0.ARZ:
        Archive table created in MySQL 5.0
      mysql-test/std_data/archive_5_0.frm:
        Archive table created in MySQL 5.0
      mysql-test/std_data/long_table_name.MYD:
        Made long file names shorter
      mysql-test/std_data/long_table_name.MYI:
        Made long file names shorter
      mysql-test/std_data/long_table_name.frm:
        Made long file names shorter
      mysql-test/t/archive.test:
        Added testing of repair (for upgrade) of 5.0 tables.
      sql/sql_table.cc:
        Allow recreate to open crashed tables.
      sql/table.cc:
        Fix error message if storage engine doesn't exists.
      storage/archive/azio.c:
        Reset status values in case archive is of old versions
      storage/archive/ha_archive.cc:
        Fix to allow one to open old versions of table during repair
        Reset status variables for old version tables
        If the the table is of old version, force upgrade with ALTER TABLE when doing repair
      storage/archive/ha_archive.h:
        Added variables to detect old versions
      9f855602
    • Michael Widenius's avatar
      Fix that one can run mysql_upgrade with long table names · a4fff491
      Michael Widenius authored
      Fall back to use ALTER TABLE for engines that doesn't support REPAIR when doing repair for upgrade.
      Nicer output from mysql_upgrade and mysql_check
      Updated all arrays that used NAME_LEN to use SAFE_NAME_LEN to ensure that we don't break things accidently as names can now have a #mysql50# prefix.
      
      client/mysql_upgrade.c:
        If we are using verbose, also run mysqlcheck in verbose mode.
      client/mysqlcheck.c:
        Add more information if running in verbose mode
        Print 'Needs upgrade' instead of complex error if table needs to be upgraded
        Don't write connect information if verbose is not 2 or above
      mysql-test/r/drop.result:
        Updated test and results as we now support full table names
      mysql-test/r/grant.result:
        Now you get a correct error message if using #mysql with paths
      mysql-test/r/show_check.result:
        Update results as table names can temporarly be bigger than NAME_LEN (during upgrade)
      mysql-test/r/upgrade.result:
        Test upgrade for long table names.
      mysql-test/suite/funcs_1/r/is_tables_is.result:
        Updated old test result (had note been updated in a while)
      mysql-test/t/drop.test:
        Updated test and results as we now support full table names
      mysql-test/t/grant.test:
        Now you get a correct error message if using #mysql with paths
      mysql-test/t/upgrade.test:
        Test upgrade for long table names.
      sql/ha_partition.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/item.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/log_event.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/mysql_priv.h:
        Added SAFE_NAME_LEN
      sql/rpl_filter.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sp.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sp_head.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_acl.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_base.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_connect.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_parse.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_prepare.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_select.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_show.cc:
        NAME_LEN -> SAFE_NAME_LEN
        Enlarge table names for SHOW TABLES to also include optional #mysql50#
      sql/sql_table.cc:
        Fall back to use ALTER TABLE for engines that doesn't support REPAIR when doing repair for upgrade.
      sql/sql_trigger.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_udf.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_view.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/table.cc:
        Fixed check_table_name() to not count #mysql50# as part of name
        If #mysql50# is part of the name, don't allow path characters in name.
      a4fff491
  9. 06 Aug, 2010 1 commit
  10. 04 Aug, 2010 2 commits
    • Michael Widenius's avatar
      Fixed compiler warnings · 1f5b93e7
      Michael Widenius authored
      Fixed some wrong test cases
      Fixed bug in null handling in XtraDB
      
      
      extra/comp_err.c:
        Fixed compiler warnings
      extra/my_print_defaults.c:
        Fixed compiler warnings
      mysql-test/suite/binlog/t/binlog_killed.test:
        Added support for timeouts
      mysql-test/suite/funcs_1/r/is_columns_is.result:
        Updated results (INNODB_SYS_TABLES had got new column)
      scripts/mysql_install_db.sh:
        Fixed typo
      sql/mysql_priv.h:
        Removed not needed argument for compare_record()
      sql/sql_insert.cc:
        Removed not needed argument for compare_record()
      sql/sql_update.cc:
        Removed not needed argument for compare_record()
        The argument is not needed becasue we copy the full record[0] to record[1] and the comparison should work even if all columns are not read
      sql/table.cc:
        The comparison of rows is independent of HA_PARTIAL_COLUMN_READ
      storage/maria/maria_chk.c:
        Fixed compiler warnings
      storage/maria/maria_read_log.c:
        Fixed compiler warnings
      storage/myisam/myisamchk.c:
        Fixed compiler warnings
      storage/myisam/myisampack.c:
        Fixed compiler warnings
      storage/xtradb/dict/dict0load.c:
        Fixed compiler warnings
      storage/xtradb/row/row0sel.c:
        Fixed null handling in XtraDB. (See comment)
      storage/xtradb/trx/trx0sys.c:
        Fixed compiler warnings
      support-files/compiler_warnings.supp:
        Fixed compiler warnings
      1f5b93e7
    • Michael Widenius's avatar
      Fixes bug when we run bcmp() on row when the storage engine hasn't filled in all fields in the row. · cd9706b2
      Michael Widenius authored
      This was triggered by innodb.innodb_multi_update, where we had a static length row without nulls and xtradb didn't fill in the delete-marker byte
      
      
      include/my_bitmap.h:
        Added prototype for bitmap_union_is_set_all()
      mysys/my_bitmap.c:
        Added function to check if union of two bit maps covers all bits.
      sql/mysql_priv.h:
        Updated protype for compare_record()
      sql/sql_insert.cc:
        Send to compare_record() flag if all fields are used.
      sql/sql_select.cc:
        Set share->null_bytes_for_compare.
      sql/sql_update.cc:
        In compare_record() don't use the fast cmp_record() (which is basically memcmp) if we don't know that all fields exists.
        Don't compare the null_bytes if there is no data there.
      sql/table.cc:
        Store in share->null_bytes_for_compare the number of bytes that has null or bit fields (but not delete marker)
        Store in can_cmp_whole_record if we can use memcmp() (assuming all rows are read) to compare rows in compare_record()
      sql/table.h:
        Added two elements in table->share to speed up checking how updated rows can be compared.
      cd9706b2
  11. 20 Jul, 2010 2 commits
    • Davi Arnaut's avatar
      Bug#45288: pb2 returns a lot of compilation warnings on linux · 9a5fa17f
      Davi Arnaut authored
      Fix warnings flagged by the new warning option -Wunused-but-set-variable
      that was added to GCC 4.6 and that is enabled by -Wunused and -Wall. The
      option causes a warning whenever a local variable is assigned to but is
      later unused. It also warns about meaningless pointer dereferences.
      
      client/mysql.cc:
        Meaningless pointer dereferences.
      client/mysql_upgrade.c:
        Check whether reading from the file succeeded.
      extra/comp_err.c:
        Unused.
      extra/yassl/src/yassl_imp.cpp:
        Skip instead of reading data that is discarded.
      include/my_pthread.h:
        Variable is only used in debug builds.
      include/mysys_err.h:
        Add new error messages.
      mysys/errors.c:
        Add new error message for permission related functions.
      mysys/mf_iocache.c:
        Variable is only checked under THREAD.
      mysys/my_copy.c:
        Raise a error if chmod or chown fails.
      mysys/my_redel.c:
        Raise a error if chmod or chown fails.
      regex/engine.c:
        Use a equivalent variable for the assert.
      server-tools/instance-manager/instance_options.cc:
        Unused.
      sql/field.cc:
        Unused.
      sql/item.cc:
        Unused.
      sql/log.cc:
        Do not ignore the return value of freopen: only set buffer if
        reopening succeeds.
        
        Adjust doxygen comment to the right function.
        
        Pass message lenght to log function.
      sql/mysqld.cc:
        Do not ignore the return value of freopen: only set buffer if
        reopening succeeds.
      sql/partition_info.cc:
        Unused.
      sql/slave.cc:
        No need to set pointer to the address of '\0'.
      sql/spatial.cc:
        Unused. Left for historical purposes.
      sql/sql_acl.cc:
        Unused.
      sql/sql_base.cc:
        Pointers are always set to the same variables.
      sql/sql_parse.cc:
        End statement if reading fails.
        
        Store the buffer after it has actually been updated.
      sql/sql_repl.cc:
        No need to set pointer to the address of '\0'.
      sql/sql_show.cc:
        Put variable under the same ifdef block.
      sql/udf_example.c:
        Set null pointer flag appropriately.
      storage/csv/ha_tina.cc:
        Meaningless dereferences.
      storage/example/ha_example.cc:
        Return the error since it's available.
      storage/myisam/mi_locking.c:
        Remove unused and dead code.
      9a5fa17f
    • Igor Babaev's avatar
      Fixed bug #607566. · f78b870c
      Igor Babaev authored
      For queries with order by clauses that employed filesort usage of
      virtual column references in select lists could trigger assertion
      failures. It happened because a wrong vcol_set bitmap was used for
      filesort. It turned out that filesort required its own vcol_set bitmap.
      
      Made management of the vcol_set bitmaps similar to the management
      of the read_set and write_set bitmaps.  
      f78b870c
  12. 17 Jul, 2010 1 commit
    • Igor Babaev's avatar
      Fixed bug #604503. · 452860df
      Igor Babaev authored
      If the expression for a virtual column of table contained datetime
      comparison then the execution of the second query that used this
      virtual column caused a crash. It happened because the execution
      of the first query that used this virtual column inserted a cached
      item into the expression tree. The cached tree was allocated in
      the statement memory while the expression tree was allocated in
      the table memory.
      Now the cached items that are inserted into expressions for virtual
      columns with datetime comparisons are always allocated in the same
      mem_root as the expressions for virtual columns. So now the inserted
      cached items are valid for any queries that use these virtual columns. 
      452860df
  13. 15 Jul, 2010 1 commit
    • Igor Babaev's avatar
      Fixed bug #603186. · 40901007
      Igor Babaev authored
      There were two problems that caused wrong results reported with this bug.
      1. In some cases stored(persistent) virtual columns were not marked
      in the write_set and in the vcol_set bitmaps.
      2. If the list of fields in an insert command was empty then the values of
      the stored virtual columns were set to default.
      
      To fix the first problem the function st_table::mark_virtual_columns_for_write
      was modified. Now the function has a parameter that says whether the virtual 
      columns are to be marked for insert or for update.  
      To fix the second problem a special handling of empty insert lists is
      added in the function fill_record().
      40901007
  14. 13 Jul, 2010 1 commit
    • Igor Babaev's avatar
      Fixed bug #604549. · 73be27c0
      Igor Babaev authored
      There was no error thrown when creating a table with a virtual table
      computed by an expression returning a row.
      This caused a crash when inserting into the table.
      
      Removed periods at the end of the error messages for virtual columns.
      Adjusted output in test result files accordingly. 
      73be27c0
  15. 10 Jul, 2010 1 commit
    • unknown's avatar
      Subquery cache (MWL#66) added. · ceb5468f
      unknown authored
      libmysqld/Makefile.am:
        The new file added.
      mysql-test/r/index_merge_myisam.result:
        subquery_cache optimization option added.
      mysql-test/r/myisam_mrr.result:
        subquery_cache optimization option added.
      mysql-test/r/subquery_cache.result:
        The subquery cache tests added.
      mysql-test/r/subselect3.result:
        Subquery cache switched off to avoid changing read statistics.
      mysql-test/r/subselect3_jcl6.result:
        Subquery cache switched off to avoid changing read statistics.
      mysql-test/r/subselect_no_mat.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_no_opts.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_no_semijoin.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_sj.result:
        subquery_cache optimization option added.
      mysql-test/r/subselect_sj_jcl6.result:
        subquery_cache optimization option added.
      mysql-test/t/subquery_cache.test:
        The subquery cache tests added.
      mysql-test/t/subselect3.test:
        Subquery cache switched off to avoid changing read statistics.
      sql/CMakeLists.txt:
        The new file added.
      sql/Makefile.am:
        The new files added.
      sql/item.cc:
        Expression cache item (Item_cache_wrapper) added.
        Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP.
      sql/item.h:
        Expression cache item (Item_cache_wrapper) added.
        Item_ref and Item_field fixed for correct usage of result field and fast resolwing in SP.
      sql/item_cmpfunc.cc:
        Subquery cache added.
      sql/item_cmpfunc.h:
        Subquery cache added.
      sql/item_subselect.cc:
        Subquery cache added.
      sql/item_subselect.h:
        Subquery cache added.
      sql/item_sum.cc:
        Registration of subquery parameters added.
      sql/mysql_priv.h:
        subquery_cache optimization option added.
      sql/mysqld.cc:
        subquery_cache optimization option added.
      sql/opt_range.cc:
        Fix due to subquery cache.
      sql/opt_subselect.cc:
        Parameters of the function cahnged.
      sql/procedure.h:
        .h file guard added.
      sql/sql_base.cc:
        Registration of subquery parameters added.
      sql/sql_class.cc:
        Option to allow add indeces to temporary table.
      sql/sql_class.h:
        Item iterators added.
        Option to allow add indeces to temporary table.
      sql/sql_expression_cache.cc:
        Expression cache for caching subqueries added.
      sql/sql_expression_cache.h:
        Expression cache for caching subqueries added.
      sql/sql_lex.cc:
        Registration of subquery parameters added.
      sql/sql_lex.h:
        Registration of subqueries and subquery parameters added.
      sql/sql_select.cc:
        Subquery cache added.
      sql/sql_select.h:
        Subquery cache added.
      sql/sql_union.cc:
        A new parameter to the function added.
      sql/sql_update.cc:
        A new parameter to the function added.
      sql/table.cc:
        Procedures to manage temporarty tables index added.
      sql/table.h:
        Procedures to manage temporarty tables index added.
      storage/maria/ha_maria.cc:
        Fix of handler to allow destoy a table in case of error during the table creation.
      storage/maria/ha_maria.h:
        .h file guard added.
      storage/myisam/ha_myisam.cc:
        Fix of handler to allow destoy a table in case of error during the table creation.
      ceb5468f
  16. 23 Jun, 2010 2 commits
    • sunanda's avatar
      Backport into build-201006221614-5.1.46sp1 · 1c87c8b1
      sunanda authored
      > ------------------------------------------------------------
      > revno: 3392.1.1
      > revision-id: gshchepa@mysql.com-20100521184732-0jvpzinv0uwyvr2d
      > parent: sven.sandberg@sun.com-20100520153801-yyhujm1qqa4eyfn0
      > committer: Gleb Shchepa <gshchepa@mysql.com>
      > branch nick: 53804-5.1
      > timestamp: Fri 2010-05-21 22:47:32 +0400
      > message:
      >   Bug #53804: serious flaws in the alter database .. upgrade
      >               data directory name command
      >   
      >   The check_db_name function has been modified to validate tails of
      >   #mysql50#-prefixed database names for compliance with MySQL 5.0
      >   database name encoding rules (the check_table_name function call
      >   has been reused).
      1c87c8b1
    • sunanda's avatar
      Backport into build-201006221614-5.1.46sp1 · c658c3ed
      sunanda authored
      > ------------------------------------------------------------
      > revno: 3367 [merge]
      > revision-id: joro@sun.com-20100504140328-srxf3c088j2twnq6
      > parent: kristofer.pettersson@sun.com-20100503172109-f9hracq5pqsaomb1
      > parent: joro@sun.com-20100503151651-nakknn8amrapmdp7
      > committer: Georgi Kodinov <joro@sun.com>
      > branch nick: B53371-5.1-bugteam
      > timestamp: Tue 2010-05-04 17:03:28 +0300
      > message:
      >   Bug #53371: COM_FIELD_LIST can be abused to bypass table level grants.
      >   
      >   This is the 5.1 merge and extension of the fix.
      >   The server was happily accepting paths in table name in all places a table
      >   name is accepted (e.g. a SELECT). This allowed all users that have some 
      >   privilege over some database to read all tables in all databases in all
      >   mysql server instances that the server file system has access to.
      >   Fixed by :
      >   1. making sure no path elements are allowed in quoted table name when
      >   constructing the path (note that the path symbols are still valid in table names
      >   when they're properly escaped by the server).
      >   2. checking the #mysql50# prefixed names the same way they're checked for
      >   path elements in mysql-5.0.
      > ------------------------------------------------------------
      > Use --include-merges or -n0 to see merged revisions.
      c658c3ed
  17. 10 Jun, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · 6f3a540c
      Davi Arnaut authored
                 strict aliasing violations.
      
      Essentially, the problem is that large parts of the server were
      developed in simpler times (last decades, pre C99 standard) when
      strict aliasing and compilers supporting such optimizations were
      rare to non-existent. Thus, when compiling the server with a modern
      compiler that uses strict aliasing rules to perform optimizations,
      there are several places in the code that might trigger undefined
      behavior.
      
      As evinced by some recent bugs, GCC does a somewhat good of job
      misoptimizing such code, but on the other hand also gives warnings
      about suspicious code. One problem is that the warnings aren't
      always accurate, yet we can't afford to just shut them off as we
      might miss real cases. False-positive cases are aggravated mostly
      by casts that are likely to trigger undefined behavior.
      
      The solution is to start a cleanup process focused on fixing and
      reducing the amount of strict-aliasing related warnings produced
      by GCC and others compilers. A good deal of noise reduction can
      be achieved by just removing useless casts that are product of
      historical cruft and are likely to trigger undefined behavior if
      dereferenced.
      
      client/mysql.cc:
        Remove now-unnecessary casts.
        Break up large strings.
      client/mysql_upgrade.c:
        Remove now-unnecessary casts.
      client/mysqladmin.cc:
        Remove now-unnecessary casts.
        Break up large strings.
      client/mysqlbinlog.cc:
        Remove now-unnecessary casts.
      client/mysqlcheck.c:
        Remove now-unnecessary casts.
      client/mysqldump.c:
        Remove now-unnecessary casts.
      client/mysqlimport.c:
        Remove now-unnecessary casts.
      client/mysqlshow.c:
        Remove now-unnecessary casts.
      client/mysqlslap.c:
        Remove now-unnecessary casts.
      client/mysqltest.cc:
        Remove now-unnecessary casts.
      extra/comp_err.c:
        Remove now-unnecessary casts.
      extra/my_print_defaults.c:
        Remove now-unnecessary casts.
        Break up large strings.
      extra/mysql_waitpid.c:
        Remove now-unnecessary casts.
      extra/perror.c:
        Remove now-unnecessary casts.
      extra/resolve_stack_dump.c:
        Remove now-unnecessary casts.
      extra/resolveip.c:
        Remove now-unnecessary casts.
      include/my_getopt.h:
        Use a void pointer type as the opaque type to avoid problems with type
        incompatibility -- GCC issues warnings when the type name is not type
        compatible with a operand. As a side bonus, a explicit cast won't be
        necessary anymore.
      include/sslopt-longopts.h:
        Remove now-unnecessary casts.
        Break up large strings.
      mysys/my_getopt.c:
        Update opaque type and introduce a type definition for the
        argument to my_getopt_register_get_addr.
      server-tools/instance-manager/options.cc:
        Remove now-unnecessary casts.
      sql/mysqld.cc:
        Remove now-unnecessary casts.
        Break up large strings.
        Update mysql_getopt_value prototype (the old prototype
        was different from the definition anyway).
      sql/sql_plugin.cc:
        The type of a pointer to a function must be compatible with the
        pointed-to function type, otherwise the behavior is undefined.
      sql/table.cc:
        The variable buf pointer to pointer to pointer to constant char
        could improperly alias a incompatible type in call to fix_type_
        pointers. Since this was actually dead code, it is simply removed.
      sql/unireg.cc:
        Remove call to get_form_pos. The code creates a new FRM file which
        is always truncated and writes the form position as 0. Hence, no
        need to retrieve it, we now for sure it is 0.
      storage/archive/archive_reader.c:
        Remove now-unnecessary casts.
      storage/myisam/ft_nlq_search.c:
        Read weight directly from the buffer.
      storage/myisam/fulltext.h:
        Add explanation about the type duality of a key buffer.
        Add accessor macro to retrieve a FT float value.
      storage/myisam/mi_test1.c:
        Remove now-unnecessary casts.
      storage/myisam/myisam_ftdump.c:
        Read weight directly from the buffer.
      storage/myisam/myisamchk.c:
        Remove now-unnecessary casts.
      storage/myisam/myisamlog.c:
        A pointer to char was used to alias a pointer to pointer to
        unsigned char, thus violating strict aliasing rules.
      storage/myisam/myisampack.c:
        Remove now-unnecessary casts.
      strings/decimal.c:
        Remove aliasing violation, printing the value is enough for
        debugging purposes.
      tests/mysql_client_test.c:
        Remove now-unnecessary casts.
      6f3a540c
  18. 05 Jun, 2010 1 commit
    • Sergei Golubchik's avatar
      few small MySQL bugs/issues that impact the engines, as discussed in the SE summit · ac6b3c44
      Sergei Golubchik authored
      * remove handler::index_read_last()
      * create handler::keyread_read_time() (was get_index_only_read_time() in opt_range.cc)
      * ha_show_status() allows engine's show_status() to fail
      * remove HTON_FLUSH_AFTER_RENAME
      * fix key_cmp_if_same() to work for floats and doubles
      * set table->status in the server, don't force engines to do it
      * increment status vars in the server, don't force engines to do it
      
      mysql-test/r/status_user.result:
        correct test results - innodb was wrongly counting internal
        index searches as handler_read_* calls.
      sql/ha_partition.cc:
        compensate for handler incrementing status counters -
        we want to count only calls to underlying engines
      sql/handler.h:
        inline methods moved to sql_class.h
      sql/key.cc:
        simplify the check
      sql/opt_range.cc:
        move get_index_only_read_time to the handler class
      sql/sp.cc:
        don't use a key that's stored in the record buffer -
        the engine can overwrite the buffer with anything, destroying the key
      sql/sql_class.h:
        inline handler methods that need to see THD and TABLE definitions
      sql/sql_select.cc:
        no ha_index_read_last_map anymore
      sql/sql_table.cc:
        remove HTON_FLUSH_AFTER_RENAME
      sql/table.cc:
        set HA_CAN_MEMCMP as appropriate
      sql/tztime.cc:
        don't use a key that's stored in the record buffer -
        the engine can overwrite the buffer with anything, destroying the key
      storage/myisam/ha_myisam.cc:
        engines don't need to update table->status or use ha_statistic_increment anymore
      storage/myisam/ha_myisam.h:
        index_read_last_map is no more
      ac6b3c44
  19. 03 Jun, 2010 1 commit
    • Sergei Golubchik's avatar
      fixes for test suite · a0a81bd2
      Sergei Golubchik authored
      mysql-test/suite/pbxt/r/mysqlshow.result:
        update the forgotten test results
      sql/table.cc:
        add defensive asserts.
        fix the code that didn't in MySQL > 5.2.0 with frm's created before 5.1.10
      a0a81bd2
  20. 25 May, 2010 1 commit
    • Alexey Kopytov's avatar
      Bug #53830: !table || (!table->read_set || · 1d0acc77
      Alexey Kopytov authored
                   bitmap_is_set(table->read_set, field_index))
      
      UPDATE on an InnoDB table modifying the same index that is used
      to satisfy the WHERE condition could trigger a debug assertion
      under some circumstances.
      
      Since for engines with the HA_PRIMARY_KEY_IN_READ_INDEX flag
      set results of an index scan on a secondary index are appended
      by the primary key value, if a query involves only columns from
      the primary key and a secondary index, the latter is considered
      to be covering.
      
      That tricks mysql_update() to mark for reading only columns
      from the secondary index when it does an index scan to retrieve
      rows to update in case a part of that key is also being
      updated. However, there may be other columns in WHERE that are
      part of the primary key, but not the secondary one.
      
      What we actually want to do in this case is to add index
      columns to the existing WHERE columns bitmap rather than
      replace it.
      
      mysql-test/r/innodb_mysql.result:
        Test case for bug #53830.
      mysql-test/t/innodb_mysql.test:
        Test case for bug #53830.
      sql/sql_update.cc:
        Add index columns to the read_set bitmap, don't replace it.
      sql/table.cc:
        Added a new add_read_columns_used_by_index() function to 
        st_table.
      sql/table.h:
        Added a new add_read_columns_used_by_index() function to 
        st_table.
      1d0acc77
  21. 21 May, 2010 1 commit
    • Gleb Shchepa's avatar
      Bug #53804: serious flaws in the alter database .. upgrade · d72a4710
      Gleb Shchepa authored
                  data directory name command
      
      The check_db_name function has been modified to validate tails of
      #mysql50#-prefixed database names for compliance with MySQL 5.0
      database name encoding rules (the check_table_name function call
      has been reused).
      
      
      mysql-test/r/renamedb.result:
        Updated test case.
      mysql-test/r/upgrade.result:
        Test case for bug #53804.
      mysql-test/t/renamedb.test:
        Updated test case.
      mysql-test/t/upgrade.test:
        Test case for bug #53804.
      sql/mysql_priv.h:
        Bug #53804: serious flaws in the alter database .. upgrade
                    data directory name command
        
        The check_mysql50_prefix has been added.
      sql/sql_table.cc:
        Bug #53804: serious flaws in the alter database .. upgrade
                    data directory name command
        
        - The check_mysql50_prefix has been added.
        - The check_n_cut_mysql50_prefix function has been refactored
        to share code with new check_mysql50_prefix function.
      sql/table.cc:
        Bug #53804: serious flaws in the alter database .. upgrade
                    data directory name command
        
        The check_db_name function has been modified to validate tails of
        #mysql50#-prefixed database names for compliance with MySQL 5.0
        database name encoding rules.
      d72a4710
  22. 13 May, 2010 1 commit
    • Michael Widenius's avatar
      Fixes after last merge of MySQL 5.1 · 6659ad49
      Michael Widenius authored
      - INSERT with RAND() doesn't require row based logging again
      - Some bugs fixed in opt_range() where we table->key_read was wrongly used
      
      
      
      .bzrignore:
        Ignore new xtstat binary
      mysql-test/r/index_merge_myisam.result:
        Update results (old result was wrong)
      mysql-test/suite/binlog/r/binlog_stm_binlog.result:
        Added drop table first
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
        Added test for when RAND() requires row based logging
      mysql-test/suite/binlog/t/binlog_stm_binlog.test:
        Added drop table first
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test:
        Added test for when RAND() requires row based logging
      scripts/make_binary_distribution.sh:
        Removed type from last commit
      sql/item_create.cc:
        Don't require row based logging when using RAND() with INSERT
      sql/opt_range.cc:
        Revert wrong patch from Oracle:
        - As QUICK_RANGE_SELECT uses it's own 'file' handler to the tables, one can't use 'table->key_read' as a flag to detect if index only read (keyread) is used or not
        - Don't set keyread if keyread is already enabled
        - Don't disable key read, if we didn't enable it ourselves
        - Simplify code (and ensure that we do proper cleanup of index only read)
      sql/opt_range.h:
        Added flags to detect if the range optimizer enabled index only read (key read) or not
      sql/opt_sum.cc:
        Use our more optimized macros
      sql/sql_lex.h:
        Added 'readable' function to check if we are in a sub query function or not (not normal query or sub query in FROM clause)
      sql/sql_select.cc:
        Use our more optimized keyread macros
        Added ASSERTS early
        Simplify code on eliminate_item_equal()
        Fixed that substitute_for_best_equal_field() doesn't core dump in case of out of memory conditions.
        Removed not needed test for 'field->maybe_null()'
        Replaced master_unit()->item with is_subquery_function() (More readable)
      sql/sql_update.cc:
        Use our more optimized keyread macros
      sql/table.cc:
        Use our more optimized keyread macros
      sql/table.h:
        Use separate functions to enable/disable Index only reads
        - Safer, more readable, better logging and faster.
      6659ad49
  23. 11 May, 2010 1 commit
  24. 09 May, 2010 1 commit
  25. 08 May, 2010 1 commit
    • He Zhenxing's avatar
      Bug#53189 Table map version unused and can be removed · df0b6707
      He Zhenxing authored
      MYSQL_BIN_LOG m_table_map_version member and it's associated 
      functions were not used in the logic of binlogging and replication,
      this patch removed all related code.
      
      sql/log.cc:
        removed unused m_table_map_version variable and functions
      sql/log.h:
        removed unused m_table_map_version variable and functions
      sql/log_event.h:
        Removed unused LOG_EVENT_UPDATE_TABLE_MAP_VERSION_F flag
      sql/sql_class.cc:
        Removed unused LOG_EVENT_UPDATE_TABLE_MAP_VERSION_F flag
      sql/sql_load.cc:
        Removed unused LOG_EVENT_UPDATE_TABLE_MAP_VERSION_F flag
      sql/table.cc:
        removed unused table_map_version variable
      sql/table.h:
        removed unused table_map_version variable
      df0b6707
  26. 30 Apr, 2010 1 commit
    • Sergei Golubchik's avatar
      create table options bug: · 8792d8a3
      Sergei Golubchik authored
      parse_engine_table_options() was only called when there was at least option with a
      non-default value. otherwise it was not called and option structure was not
      allocated at all. NULL pointer dereference in ::open().
      8792d8a3
  27. 08 Apr, 2010 1 commit
    • Sergei Golubchik's avatar
      MWL#43 CREATE TABLE options (by Sanja) · e24e1668
      Sergei Golubchik authored
      Docs/sp-imp-spec.txt:
        New sql_mode added.
      include/my_base.h:
        Flag in frm of create options.
      libmysqld/CMakeLists.txt:
        New files added.
      libmysqld/Makefile.am:
        New files added.
      mysql-test/r/events_bugs.result:
        New sql_mode added.
      mysql-test/r/information_schema.result:
        New sql_mode added.
      mysql-test/r/sp.result:
        New sql_mode added.
      mysql-test/r/system_mysql_db.result:
        New sql_mode added.
      mysql-test/suite/funcs_1/r/is_columns_mysql.result:
        New sql_mode added.
      mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result:
        New sql_mode added.
      mysql-test/t/events_bugs.test:
        New sql_mode added.
      mysql-test/t/sp.test:
        New sql_mode added.
      scripts/mysql_system_tables.sql:
        New sql_mode added.
      scripts/mysql_system_tables_fix.sql:
        New sql_mode added.
      sql/CMakeLists.txt:
        New files added.
      sql/Makefile.am:
        New files added.
      sql/event_db_repository.cc:
        New sql_mode added.
      sql/field.cc:
        Create options support added.
      sql/field.h:
        Create options support added.
      sql/ha_partition.cc:
        Create options support added.
      sql/handler.cc:
        Create options support added.
      sql/handler.h:
        Create options support added.
      sql/log_event.h:
        New sql_mode added.
      sql/mysql_priv.h:
        New sql_mode added.
      sql/mysqld.cc:
        New sql_mode added.
      sql/share/errmsg.txt:
        New error messages added.
      sql/sp.cc:
        New sql_mode added.
      sql/sp_head.cc:
        Create options support added.
      sql/sql_class.cc:
        Create options support added.
        Debug added.
      sql/sql_class.h:
        Create options support added.
      sql/sql_insert.cc:
        my_safe_a* moved to mysqld_priv.h
      sql/sql_lex.h:
        Create options support added.
      sql/sql_parse.cc:
        Create options support added.
      sql/sql_show.cc:
        Create options support added.
      sql/sql_table.cc:
        Create options support added.
      sql/sql_view.cc:
        New sql_mode added.
      sql/sql_yacc.yy:
        Create options support added.
      sql/structs.h:
        Create options support added.
      sql/table.cc:
        Create options support added.
      sql/table.h:
        Create options support added.
      sql/unireg.cc:
        Create options support added.
      storage/example/ha_example.cc:
        Create options example.
      storage/example/ha_example.h:
        Create options example.
      storage/pbxt/src/discover_xt.cc:
        Create options support added.
      e24e1668
  28. 29 Mar, 2010 1 commit
    • Sergei Golubchik's avatar
      pluggable auth with plugin examples · 291fd969
      Sergei Golubchik authored
      Makefile.am:
        add new API files to the check_abi rule,
        remove duplicates
      client/CMakeLists.txt:
        now a client can use dlopen too
      client/Makefile.am:
        be csh-friendly
      include/my_global.h:
        add dummy plugs for dlopen and co.
        for the code that needs them to work in static builds
      mysys/Makefile.am:
        be csh-friendly
      plugin/auth/dialog.c:
        typo fixed
      291fd969
  29. 10 Mar, 2010 1 commit
    • unknown's avatar
      Fix some compiler warnings seen in Buildbot. · 3e32ba3f
      unknown authored
      Add some extra error output and code cleanup in an attempt to fix/debug
      a rare random testsuite problem in check_warnings, where the exit code
      from mysqltest is somehow corrupted inside mysql-test-run.pl.
      
      include/my_global.h:
        Fix compiler warnings on some platforms.
      mysql-test/lib/My/SafeProcess.pm:
        Move dereference of $? subprocess exit code closer to where it is generated,
        to make the code more robust and on the chance that this will fix the
        occasional problems in check_warnings we see in Buildbot.
      mysql-test/mysql-test-run.pl:
        When check_warnings failed, also log the mysqld server for which it failed.
      sql/sql_lex.cc:
        Fix compiler warning about possibly uninitialised value, by rewriting a for()
        loop that is always executed at least once into a do .. while() loop with an
        assert.
      sql/table.cc:
        Fix compiler warning about uninitialised value.
      storage/federatedx/ha_federatedx.cc:
        Fix uninitialised variable.
      storage/maria/ma_delete.c:
        Fix compiler warning about uninitialised value.
      storage/maria/ma_loghandler.c:
        Fix compiler warning about uninitialised value.
      storage/myisam/ft_stopwords.c:
        Fix compiler warning.
      storage/myisam/mi_write.c:
        Fix compiler warning about possibly uninitialised value, by rewriting a while()
        loop that is always executed at least once into a do .. while() loop with an
        assert.
      storage/xtradb/btr/btr0cur.c:
        Fix compiler warning about possibly uninitialised value.
      support-files/compiler_warnings.supp:
        Fix warning suppression to cover all cases in yassl.
      vio/viossl.c:
        Fix compiler warning.
      3e32ba3f
  30. 09 Mar, 2010 1 commit
    • unknown's avatar
      A number of after-merge fixes following merge of MySQL 5.1.44 into MariaDB. · c9dffa99
      unknown authored
      Bug#46949: memory leak with failed alter table to create partitions based on extract()
      
      Bug#51830: Incorrect partition pruning on range partition (regression)
      
      Fixed valgrind failure in select_describe(), read of uninitialized 
        Item_subselect::eliminated.
      
      PBXT test file updates to reflect changes done in MySQL.
      
      mysql-test/suite/pbxt/r/partition_error.result:
        Result file update following MySQL 5.1.44 changes.
      mysql-test/suite/pbxt/r/partition_pruning.result:
        Result file update following MySQL 5.1.44 changes.
      mysql-test/suite/pbxt/t/partition_error.test:
        Test file update following MySQL 5.1.44 changes.
      sql/item_subselect.cc:
          Fixed valgrind failure in select_describe(), read of uninitialized 
          Item_subselect::eliminated: 
          - it turns out we can call select_describe() without having fixed 
            subquery items for child subselects. These are not the kind of subqueries
            that we could eliminate, so the fix is to ensure that 
            item_subselect->eliminated==FALSE even before fix_fields is called.
            Also added code to reset item_subselect->eliminated back to FALSE in
            Item::reset() call.
      sql/item_subselect.h:
          Fixed valgrind failure in select_describe(), read of uninitialized 
          Item_subselect::eliminated: 
          - it turns out we can call select_describe() without having fixed 
            subquery items for child subselects. These are not the kind of subqueries
            that we could eliminate, so the fix is to ensure that 
            item_subselect->eliminated==FALSE even before fix_fields is called.
            Also added code to reset item_subselect->eliminated back to FALSE in
            Item::reset() call.
      sql/sql_partition.cc:
        Fix Bug#51830: Revert part of the patch for Bug#49742, which caused the regression.
      sql/table.cc:
        Fix Bug#46949: memory leak in failed ALTER TABLE with partitioning.
      c9dffa99
  31. 12 Mar, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#41788 mysql_fetch_field returns org_table == table by a view · b8132a8d
      Sergey Glukhov authored
      The problem is that Item_direct_view_ref which is inherited
      from Item_ident updates orig_table_name and table_name with
      the same values. The fix is introduction of new constructor
      into Item_ident and up which updates orig_table_name and
      table_name separately.
      
      
      mysql-test/r/metadata.result:
        test case
      mysql-test/t/metadata.test:
        test case
      sql/item.cc:
        new constructor which updates
        orig_table_name and table_name
        separately.
      sql/item.h:
        new constructor which updates
        orig_table_name and table_name
        separately.
      sql/table.cc:
        used new constructor
      b8132a8d
  32. 08 Mar, 2010 1 commit
  33. 10 Feb, 2010 1 commit
    • Michael Widenius's avatar
      When one does a drop table, the indexes are not flushed to disk before drop... · d77e3cde
      Michael Widenius authored
      When one does a drop table, the indexes are not flushed to disk before drop anymore (with MyISAM/Maria)
      myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM.
      (The disadvantage is that changed MyISAM tables will be checked at access time; Use --myisam-recover=OFF for old behavior)
      Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      Added assert to detect if we accidently would use MyISAM versioning in MySQL
      
      include/my_base.h:
        Mark NOT_USED as USED, as we now use this as a flag to not call extra()
      mysql-test/mysql-test-run.pl:
        Don't write all options when there is something wrong with the arguments
      mysql-test/r/sp-destruct.result:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/r/variables.result:
        myisam-recover options changed to 'default'
      mysql-test/r/view.result:
        Don't show create time in result
      mysql-test/suite/maria/t/maria-recovery2-master.opt:
        Don't run test with myisam-recover (as this produces extra warnings during simulated death)
      mysql-test/t/sp-destruct.test:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/t/view.test:
        Don't show create time in result
      sql/lock.cc:
        Added marker if table was deleted to argument list
      sql/mysql_priv.h:
        Added marker if table was deleted to argument list
      sql/mysqld.cc:
        myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM
        Allow one to specify OFF as argument to myisam-recover (was default before but one couldn't specify it)
      sql/sql_base.cc:
        Mark if table is going to be deleted
      sql/sql_delete.cc:
        Mark if table is going to be deleted
      sql/sql_table.cc:
        Mark if table is going to be deleted
        Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      sql/table.cc:
        Signal to handler if table is getting deleted as part of getting droped from table cache.
      sql/table.h:
        Added marker if table is going to be deleted.
      storage/maria/ha_maria.cc:
        Don't search for transaction handler if file is not transactional or outside of transaction
        (Fixed possible core dump)
      storage/maria/ma_blockrec.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_close.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/maria/ma_locking.c:
        Cleanup
      storage/maria/ma_recovery.c:
        We need trnman to be inited during redo phase (to be able to open tables checked with maria_chk)
      storage/maria/maria_def.h:
        Added marker if table is going to be deleted.
      storage/myisam/mi_close.c:
        Don't write changed information if table is going to be deleted.
      storage/myisam/mi_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/myisam/mi_open.c:
        Added assert to detect if we accidently would use MyISAM versioning in MySQL
      storage/myisam/myisamdef.h:
        Added marker if table is going to be deleted.
      d77e3cde
  34. 09 Feb, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#49902 - SELECT returns incorrect results · 0897669c
      Sergey Vojtovich authored
      Queries optimized with GROUP_MIN_MAX didn't cleanup KEYREAD
      optimization properly. As a result subsequent queries may
      return incomplete rows (fields are initialized to default
      values).
      
      mysql-test/r/group_min_max.result:
        A test case for BUG#49902.
      mysql-test/t/group_min_max.test:
        A test case for BUG#49902.
      sql/opt_range.cc:
        Refactor of KEYREAD optimization switch so that KEYREAD
        handler state is in sync with st_table::key_read flag.
        
        All SQL code is supposed to switch KEYREAD optimization
        via st_table::set_keyread().
      sql/opt_sum.cc:
        Refactor of KEYREAD optimization switch so that KEYREAD
        handler state is in sync with st_table::key_read flag.
        
        All SQL code is supposed to switch KEYREAD optimization
        via st_table::set_keyread().
      sql/sql_select.cc:
        Refactor of KEYREAD optimization switch so that KEYREAD
        handler state is in sync with st_table::key_read flag.
        
        All SQL code is supposed to switch KEYREAD optimization
        via st_table::set_keyread().
      sql/sql_update.cc:
        Refactor of KEYREAD optimization switch so that KEYREAD
        handler state is in sync with st_table::key_read flag.
        
        All SQL code is supposed to switch KEYREAD optimization
        via st_table::set_keyread().
      sql/table.cc:
        Refactor of KEYREAD optimization switch so that KEYREAD
        handler state is in sync with st_table::key_read flag.
        
        All SQL code is supposed to switch KEYREAD optimization
        via st_table::set_keyread().
      sql/table.h:
        Refactor of KEYREAD optimization switch so that KEYREAD
        handler state is in sync with st_table::key_read flag.
        
        All SQL code is supposed to switch KEYREAD optimization
        via st_table::set_keyread().
      0897669c
  35. 19 Jan, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#49501 Inefficient information_schema check (system collation) · 81391bd0
      Sergey Glukhov authored
      added check_length optimization for I_S_NAME comparison
      
      
      sql/event_data_objects.cc:
        added check_length optimization for I_S_NAME comparison
      sql/events.cc:
        added check_length optimization for I_S_NAME comparison
      sql/mysql_priv.h:
        added check_length optimization for I_S_NAME comparison
      sql/repl_failsafe.cc:
        added check_length optimization for I_S_NAME comparison
      sql/sql_db.cc:
        added check_length optimization for I_S_NAME comparison
      sql/sql_parse.cc:
        added check_length optimization for I_S_NAME comparison
      sql/sql_show.cc:
        added check_length optimization for I_S_NAME comparison
      sql/sql_view.cc:
        added check_length optimization for I_S_NAME comparison
      sql/table.cc:
        added check_length optimization for I_S_NAME comparison
      81391bd0
  36. 05 Feb, 2010 1 commit