An error occurred fetching the project authors.
  1. 09 Apr, 2013 1 commit
    • Sergei Golubchik's avatar
      revert · 87a9d60e
      Sergei Golubchik authored
      "
        revision-id: sanja@askmonty.org-20110511110948-4kdevwzomvk56y1w
        committer: sanja@askmonty.org
        branch nick: work-maria-5.1-CREATE-merge
        timestamp: Wed 2011-05-11 14:09:48 +0300
          Bugfix: New table creation/renaming block added if old encoded table present
      "
      the old behavior was less inconsistent than the new one.
      In the new one the error message was sometimes different (under LOCK TABLES e.g.),
      and there were race conditions (if this CREATE happened when a concurrent ALTER
      has renamed the old table away but haven't put the new table in place)
      
      The old one was like "(when using old table names) for DML #mysql50# prefix
      is optional, for DDL it's required".
      87a9d60e
  2. 07 Apr, 2013 1 commit
  3. 17 Oct, 2012 1 commit
    • unknown's avatar
      MDEV-452 Add full support for auto-initialized/updated timestamp and datetime · bc4a4567
      unknown authored
      Generalized support for auto-updated and/or auto-initialized timestamp
      and datetime columns. This patch is a reimplementation of MySQL's
      "WL#5874: CURRENT_TIMESTAMP as DEFAULT for DATETIME columns". In order to
      ease future merges, this implementation reused few function and variable
      names from MySQL's patch, however the implementation is quite different.
      
      TODO:
      The only unresolved problem in this patch is the semantics of LOAD DATA for
      TIMESTAMP and DATETIME columns in the cases when there are missing or NULL
      columns. I couldn't fully comprehend the logic behind MySQL's behavior and
      its relationship with their own documentation, so I left the results to be
      more consistent with all other LOAD cases.
      
      The problematic test cases can be seen by running the test file function_defaults,
      and observing the test case differences. Those were left on purpose for discussion.
      bc4a4567
  4. 25 Apr, 2011 1 commit
  5. 22 Nov, 2010 1 commit
    • Vasil Dimov's avatar
      Fix Bug#57739 Scary messages in error log · d5787a3c
      Vasil Dimov authored
      Silence a warning about old table name when InnoDB tests whether the
      format has changed using a nonexistent table name.
      
      Reviewed by:	bar@mysql.com, marko.makela@oracle.com
      d5787a3c
  6. 16 Nov, 2010 1 commit
    • Jon Olav Hauglid's avatar
      Bug #57663 Concurrent statement using stored function and DROP DATABASE · 0ef8d8e2
      Jon Olav Hauglid authored
                 breaks SBR
      
      This pre-requisite patch refactors the code for dropping tables, used
      by DROP TABLE and DROP DATABASE. The patch moves the code for acquiring
      metadata locks out of mysql_rm_table_part2() and makes it the
      responsibility of the caller. This in preparation of changing the
      DROP DATABASE implementation to acquire all metadata locks before any
      changes are made. mysql_rm_table_part2() is renamed
      mysql_rm_table_no_locks() to reflect the change.
      0ef8d8e2
  7. 20 Aug, 2010 2 commits
    • Mattias Jonsson's avatar
      Bug#54747: Deadlock between REORGANIZE PARTITION and SELECT is not detected · 8df0bf13
      Mattias Jonsson authored
      The ALTER PARTITION and SELECT seemed to be deadlocked
      when having innodb_thread_concurrency = 1.
      
      Problem was that there was unreleased latches
      in the ALTER PARTITION thread which was needed
      by the SELECT thread to be able to continue.
      
      Solution was to release the latches by commit 
      before requesting upgrade to exclusive MDL lock.
      
      Updated according to reviewers comments (3).
      
      mysql-test/r/partition_innodb.result:
        updated test result
      mysql-test/t/partition_innodb.test:
        added test
      sql/sql_partition.cc:
        Moved implicit commit into mysql_change_partition
        so that if latches are taken, they are always released
        before waiting on exclusive lock.
      sql/sql_table.cc:
        refactored the code to prepare and commit
        around copy_data_between_tables, to be able
        to reuse it in mysql_change_partitions
      sql/sql_table.h:
        exporting mysql_trans_prepare/commit_alter_copy_data
      8df0bf13
    • Alfranio Correia's avatar
      BUG#53452 Inconsistent behavior of binlog_direct_non_transactional_updates with · ac6026ce
      Alfranio Correia authored
      temp table
                  
      This patch introduces two key changes in the replication's behavior.
                  
      Firstly, it reverts part of BUG#51894 which puts any update to temporary tables
      into the trx-cache. Now, updates to temporary tables are handled according to
      the type of their engines as a regular table.
                  
      Secondly, an unsafe mixed statement, (i.e. a statement that access transactional
      table as well non-transactional or temporary table, and writes to any of them),
      are written into the trx-cache in order to minimize errors in the execution when
      the statement logging format is in use.
                  
      Such changes has a direct impact on which statements are classified as unsafe
      statements and thus part of BUG#53259 is reverted.
      ac6026ce
  8. 16 Aug, 2010 1 commit
    • Mattias Jonsson's avatar
      Bug#49907: ALTER TABLE ... TRUNCATE PARTITION does not wait for · 4b20ccaf
      Mattias Jonsson authored
                 locks on the table
      
      Fixing the partitioning specifics after TRUNCATE TABLE in
      bug-42643 was fixed.
      
      Reorganize of code to decrease the size of the giant switch
      in mysql_execute_command, and to prepare for future parser
      reengineering. Moved code into Sql_statement objects.
      
      Updated patch according to davi's review comments.
      
      libmysqld/CMakeLists.txt:
        Added new files.
      libmysqld/Makefile.am:
        Added new files.
      mysql-test/r/not_partition.result:
        now returning error on partitioning commands
        if partitioning is not enabled.
      mysql-test/r/partition_disabled.result:
        There is no partition handlerton, so it cannot
        find the specified engine in the .frm file.
      mysql-test/r/partition_truncate.result:
        Updated test results.
      mysql-test/suite/parts/inc/partition_mgm.inc:
        Added check that TRUNCATE PARTITION does not delete on failure.
      mysql-test/suite/parts/r/partition_debug_sync_innodb.result:
        updated results.
      mysql-test/suite/parts/r/partition_mgm_lc0_archive.result:
        updated results.
      mysql-test/suite/parts/r/partition_mgm_lc1_archive.result:
        updated results.
      mysql-test/suite/parts/r/partition_mgm_lc2_archive.result:
        updated results.
      mysql-test/suite/parts/t/partition_debug_sync_innodb.test:
        Test case for this bug.
      mysql-test/t/not_partition.test:
        Added check for TRUNCATE PARTITION without partitioning.
      mysql-test/t/partition_truncate.test:
        Added test of TRUNCATE PARTITION on non partitioned table.
      sql/CMakeLists.txt:
        Added new files.
      sql/Makefile.am:
        Added new files.
      sql/datadict.cc:
        Moved out the storage engine check into an own
        function, including assert for lock.
      sql/datadict.h:
        added dd_frm_storage_engine.
      sql/sql_alter_table.cc:
        moved the code for SQLCOM_ALTER_TABLE in mysql_execute_command
        into its own file, and using the Sql_statement object to
        prepare for future parser reengineering.
      sql/sql_alter_table.h:
        Created Sql_statement object for ALTER TABLE.
      sql/sql_lex.cc:
        resetting m_stmt.
      sql/sql_lex.h:
        Temporary hack for forward declaration of enum_alter_table_change_level.
      sql/sql_parse.cc:
        Moved out ALTER/ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
        from the giant switch into their own Sql_statement
        objects.
      sql/sql_parse.h:
        Exporting check_merge_table_access.
      sql/sql_partition_admin.cc:
        created Sql_statement for
        ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR/TRUNCATE
        PARTITION. To be able to reuse the TABLE equivalents.
      sql/sql_partition_admin.h:
        Added Sql_statement of partition admin statements.
      sql/sql_table.cc:
        Moved table maintenance code into sql_table_maintenance.cc
      sql/sql_table.h:
        Moved table maintenance code into sql_table_maintenance.h
        exporting functions used by sql_table_maintenance.
      sql/sql_table_maintenance.cc:
        Moved table maintenance code from sql_table.cc
      sql/sql_table_maintenance.h:
        Sql_statement objects for ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE.
        Also declaring the keycache functions.
      sql/sql_truncate.cc:
        Moved code from SQLCOM_TRUNCATE in mysql_execute_command into
        Truncate_statement::execute.
        Added check for partitioned table on TRUNCATE PARTITION.
        Moved locking fix for partitioned table into
        Alter_table_truncate_partition::execute.
      sql/sql_truncate.h:
        Truncate_statement declaration (sub class of Sql_statement).
      sql/sql_yacc.yy:
        Using the new Sql_statment objects.
      4b20ccaf
  9. 01 Jul, 2010 1 commit
    • Jon Olav Hauglid's avatar
      A 5.5 version of the fix for Bug #54360 "Deadlock DROP/ALTER/CREATE · 9ff272fb
      Jon Olav Hauglid authored
      DATABASE with open HANDLER"
      
      Remove LOCK_create_db, database name locks, and use metadata locks instead.
      This exposes CREATE/DROP/ALTER DATABASE statements to the graph-based
      deadlock detector in MDL, and paves the way for a safe, deadlock-free
      implementation of RENAME DATABASE.
      
      Database DDL statements will now take exclusive metadata locks on
      the database name, while table/view/routine DDL statements take
      intention exclusive locks on the database name. This prevents race
      conditions between database DDL and table/view/routine DDL.
      (e.g. DROP DATABASE with concurrent CREATE/ALTER/DROP TABLE)
      
      By adding database name locks, this patch implements
      WL#4450 "DDL locking: CREATE/DROP DATABASE must use database locks" and
      WL#4985 "DDL locking: namespace/hierarchical locks".
      
      The patch also changes code to use init_one_table() where appropriate.
      The new lock_table_names() function requires TABLE_LIST::db_length to
      be set correctly, and this is taken care of by init_one_table().
      
      This patch also adds a simple template to help work with 
      the mysys HASH data structure.
      
      Most of the patch was written by Konstantin Osipov.
      9ff272fb
  10. 12 Apr, 2010 1 commit
  11. 31 Mar, 2010 1 commit
    • Mats Kindahl's avatar
      WL#5030: Split and remove mysql_priv.h · 23d8586d
      Mats Kindahl authored
      This patch:
      
      - Moves all definitions from the mysql_priv.h file into
        header files for the component where the variable is
        defined
      - Creates header files if the component lacks one
      - Eliminates all include directives from mysql_priv.h
      - Eliminates all circular include cycles
      - Rename time.cc to sql_time.cc
      - Rename mysql_priv.h to sql_priv.h
      23d8586d