1. 16 Aug, 2014 1 commit
    • Olivier Bertrand's avatar
      - Modifies the way indexed UPDATE/DELETE are sorted in order to execute · 3a69c854
      Olivier Bertrand authored
        them sorted by file position. Firstly a new value is stored in indexes
        to know if they are sorted, preventing to do the sorting when it is not
        needed. Secondly, almost all in now done in connect instead of being
        done by the different file access method classes. This pepares the future
        use of temporary files for all table types and also fix the bug that was
        occuring when partially using a multi-column index because of false MRR
        like call of position followed by unsorted rnd_pos no more using indexing.
      modified:
        storage/connect/connect.cc
        storage/connect/filamap.cpp
        storage/connect/filamap.h
        storage/connect/filamdbf.cpp
        storage/connect/filamdbf.h
        storage/connect/filamfix.cpp
        storage/connect/filamfix.h
        storage/connect/filamtxt.cpp
        storage/connect/filamtxt.h
        storage/connect/filamvct.cpp
        storage/connect/filamvct.h
        storage/connect/tabdos.cpp
        storage/connect/tabdos.h
        storage/connect/tabfix.h
        storage/connect/tabfmt.cpp
        storage/connect/tabfmt.h
        storage/connect/xindex.cpp
        storage/connect/xindex.h
        storage/connect/xtable.h
      3a69c854
  2. 08 Aug, 2014 2 commits
  3. 07 Aug, 2014 2 commits
    • Olivier Bertrand's avatar
      - Commiting merge files · f835588c
      Olivier Bertrand authored
      f835588c
    • Olivier Bertrand's avatar
      This is a major update that fixes most of the issues and bugs that · 0219ac1e
      Olivier Bertrand authored
      have been created by the last addition of new CONNECT features.
      The version previous to this one is a preliminary test version and
      should not be distributed.
      
      - Handle indexed UPDATE/DELETE. Previously this was just tested and
        an error message send when it could not be done. Now CONNECT can
        do it in all the cases. It is done by a MRR like tchnique by making
        a list of all update or delete to do, sort them, then execute them.
      modified:
        storage/connect/array.cpp
        storage/connect/array.h
        storage/connect/filamap.cpp
        storage/connect/filamap.h
        storage/connect/filamdbf.cpp
        storage/connect/filamfix.cpp
        storage/connect/filamfix.h
        storage/connect/filamtxt.cpp
        storage/connect/filamtxt.h
        storage/connect/filamvct.cpp
        storage/connect/filamvct.h
        storage/connect/filamzip.cpp
        storage/connect/filamzip.h
        storage/connect/global.h
        storage/connect/ha_connect.cc
        storage/connect/ha_connect.h
      
      - Differenciate Cardinality that returns a true or estimated table size
        and GetMaxSize that return a value equal or greater than the table
        row number. This fixes the errors of non matching opt files.
      modified:
        storage/connect/connect.cc
        storage/connect/tabdos.cpp
        storage/connect/tabdos.h
        storage/connect/tabfix.cpp
        storage/connect/table.cpp
        storage/connect/tabmac.h
        storage/connect/tabmysql.cpp
        storage/connect/tabmysql.h
        storage/connect/tabodbc.cpp
        storage/connect/tabodbc.h
        storage/connect/tabpivot.h
        storage/connect/tabtbl.cpp
        storage/connect/tabtbl.h
        storage/connect/tabutil.cpp
        storage/connect/tabutil.h
        storage/connect/tabwmi.h
        storage/connect/xtable.h
      
      - Fix some errors and issues when making index and opt files.
        Erase opt and index files for void tables.
        Fix wrong calculation of Block and Last in MakeBlockValues.
        Invalidate indexes before making opt file.
        Fully handle blocked variable tables. Make opt file for blocked
        variable tables even when they have no optimised colums.
      modified:
        storage/connect/tabdos.cpp
        storage/connect/xindex.h
      
      - Fix some errors making index
        Return an error when the allocation is too small (should not
        really occur now that GetMaxSize is sure)
        Don't use XXROW index for DBF tables because of soft deleted lines.
      modified:
        storage/connect/xindex.cpp
      
      - Typo
      modified:
        storage/connect/macutil.cpp
        storage/connect/tabdos.h
        storage/connect/tabsys.cpp
        storage/connect/tabsys.h
      0219ac1e
  4. 05 Aug, 2014 1 commit
  5. 04 Aug, 2014 2 commits
  6. 31 Jul, 2014 7 commits
  7. 30 Jul, 2014 4 commits
  8. 27 Jul, 2014 1 commit
  9. 26 Jul, 2014 1 commit
  10. 25 Jul, 2014 3 commits
    • Sergey Vojtovich's avatar
      MDEV-6489 - rpl.rpl_insert, rpl.rpl_insert_delayed and · 35c78a1f
      Sergey Vojtovich authored
                  main.mysqlslap fail on PPC64
      
      There seem to be a bug on Power8 which doesn't guarantee
      a signal to be delivered to waiting thread if broadcast
      is called outside of mutex.
      
      For now workaround it by calling broadcast while mutex is
      still held.
      35c78a1f
    • Olivier Bertrand's avatar
      - Fix an error pointed out by Valgrind due to uninitialised Correlated · 4d0587c3
      Olivier Bertrand authored
        variable. This variable is not to be used by CONNECT.
      modified:
        storage/connect/array.cpp
        storage/connect/array.h
      4d0587c3
    • Jan Lindström's avatar
      Merge InnoDB fixes from 5.5 revisions 4229, 4230, 4233, 4237 and 4238 i.e. · a3acd725
      Jan Lindström authored
      4229: MDEV-5670: Assertion failure in file buf0lru.c line 2355
            Add more status information if repeatable.
      
      4230: MDEV-5673: Crash while parallel dropping multiple tables under heavy load
            Improve long semaphore wait output to include all semaphore waits
            and try to find out if there is a sequence of waiters.
      
      4233: Fix compiler errors on product build.
      
      4237: Fix too agressive long semaphore wait output and add guard against introducing
            compression failures on insert buffer.
      
      4238: Fix test failure caused by simulated compression failure on
            IBUF_DUMMY table.
      a3acd725
  11. 24 Jul, 2014 2 commits
    • Sergey Vojtovich's avatar
      MDEV-6483 - Deadlock around rw_lock_debug_mutex on PPC64 · 6192f0bf
      Sergey Vojtovich authored
      This problem affects only debug builds on PPC64.
      
      There are at least two race conditions around
      rw_lock_debug_mutex_enter and rw_lock_debug_mutex_exit:
      
      - rw_lock_debug_waiters was loaded/stored without setting
        appropriate locks/memory barriers.
      - there is a gap between calls to os_event_reset() and
        os_event_wait() and in such case we're supposed to pass
        return value of the former to the latter.
      
      Fixed by replacing self-cooked spinlocks with system mutexes.
      These days system mutexes offer much better performance. OTOH
      performance is not that critical for debug builds.
      6192f0bf
    • Olivier Bertrand's avatar
      - Try to fix some test failure · de3ee460
      Olivier Bertrand authored
      modified:
        storage/connect/mysql-test/connect/t/part_table.test
      de3ee460
  12. 23 Jul, 2014 1 commit
    • Sergey Vojtovich's avatar
      MDEV-6473 - main.statistics fails on PPC64 · d466ed90
      Sergey Vojtovich authored
      mysql.column_stats wasn't stored/restored properly on big-endian
      with histogram_type=DOUBLE_PREC_HB.
      
      Store histogram values using int2store()/uint2korr().
      
      Note that this patch invalidates previously calculated histogram
      values on big-endian.
      d466ed90
  13. 22 Jul, 2014 9 commits
  14. 21 Jul, 2014 2 commits
  15. 20 Jul, 2014 2 commits
    • Olivier Bertrand's avatar
      - FIX errors and some gcc warnings · 26e4b69f
      Olivier Bertrand authored
      modified:
        storage/connect/array.cpp
        storage/connect/array.h
        storage/connect/blkfil.cpp
        storage/connect/blkfil.h
        storage/connect/filter.cpp
        storage/connect/filter.h
        storage/connect/ha_connect.cc
        storage/connect/tabdos.cpp
        
      - FIX problems of DIR table on LINUX:
        The order of the result is not the same than the one on Windows
        An error occurs when no file match the pattern
        Also the row numbers may also be different (not fixed yet)
      modified:
        storage/connect/mysql-test/connect/r/part_file.result
        storage/connect/mysql-test/connect/r/part_table.result
        storage/connect/mysql-test/connect/t/part_file.test
      26e4b69f
    • Olivier Bertrand's avatar
      This is a new version of the CONNECT storage engine. It was developed in · 4b2092eb
      Olivier Bertrand authored
      a sub-branch of this one and merged by pushing all the changes from it.
      This version adds the following to CONNECT:
      
      - MRR support (similar to the MyISAM one)
      - Block, Remote and dynamic indexing
      - Partitioning support (using the PARTITION engine)
      
      Here is a list of the commited changes made in the sub-branch:
      ========================================================================
      
      ------------------------------------------------------------
      revno: 4009
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Thu 2014-07-17 18:13:51 +0200
      message:
        This commit brings many changes, in particular two important ones:
        1) Support of partitioning by connect. A table can be partitioned
           by files, this is an enhanced MULTIPLE table. It can be also
           partitioned by sub-tables like TBL and this enables table sharding.
        2) Handling a CONNECT bug that causes in some cases extraneous rows
           to remain in the table after an UPDATE or DELETE when the command
           uses indexing (for not fixed file tables). Until a real fix is
           done, CONNECT tries to ignore indexing and if it cannot do it
           abort the command with an error message.
      
        - Add tests on partitioning
        added:
          storage/connect/mysql-test/connect/r/part_file.result
          storage/connect/mysql-test/connect/r/part_table.result
          storage/connect/mysql-test/connect/t/part_file.test
          storage/connect/mysql-test/connect/t/part_table.test
      
        - Temporary fix
        modified:
          sql/sql_partition.cc
      
        - Add partition support
        modified:
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
          storage/connect/reldef.cpp
          storage/connect/reldef.h
          storage/connect/tabdos.cpp
      
        - Add functions ha_connect::IsUnique and ha_connect::CheckColumnList
        modified:
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
      
        - Prevent updating a partition table column that is part of
          the partition function (outward tables only)
        modified:
          storage/connect/ha_connect.cc
      
        - Support INSERT/UPDATE/DELETE for PROXY tables
        modified:
          storage/connect/tabutil.cpp
      
        - Handle the bug on updating rows via indexing. Waiting for a real fix,
          Don't use indexing when possible else raise an error and abort.
        modified:
          storage/connect/ha_connect.cc
      
        - dbuserp->UseTemp set to TMP_AUTO
        modified:
          storage/connect/connect.cc
      
        - Add members nox, abort and only
        modified:
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
      
        - Add arguments nox and abort to CntCloseTable
        modified:
          storage/connect/connect.cc
          storage/connect/connect.h
          storage/connect/filamap.cpp
          storage/connect/filamap.h
          storage/connect/filamdbf.cpp
          storage/connect/filamdbf.h
          storage/connect/filamfix.cpp
          storage/connect/filamfix.h
          storage/connect/filamtxt.cpp
          storage/connect/filamtxt.h
          storage/connect/filamvct.cpp
          storage/connect/filamvct.h
          storage/connect/filamzip.cpp
          storage/connect/filamzip.h
          storage/connect/ha_connect.cc
      
        - Add arguments abort to CloseTableFile and RenameTempFile
        modified:
          storage/connect/filamap.cpp
          storage/connect/filamap.h
          storage/connect/filamdbf.cpp
          storage/connect/filamdbf.h
          storage/connect/filamfix.cpp
          storage/connect/filamfix.h
          storage/connect/filamtxt.cpp
          storage/connect/filamtxt.h
          storage/connect/filamvct.cpp
          storage/connect/filamvct.h
          storage/connect/filamzip.cpp
          storage/connect/filamzip.h
          storage/connect/tabdos.cpp
          storage/connect/tabdos.h
          storage/connect/tabvct.cpp
          storage/connect/xtable.h
      
        - Fix info->records when file does not exists
        modified:
          storage/connect/connect.cc
      
        - Close XML table when opened for info
        modified:
          storage/connect/connect.cc
      
        - Add function VCTFAM::GetFileLength
        modified:
          storage/connect/filamvct.cpp
          storage/connect/filamvct.h
      
        - Column option DISTRIB -> ENUM
        modified:
          storage/connect/ha_connect.cc
      
        - Options connect, query_string and partname allways available
        modified:
          storage/connect/ha_connect.cc
      
        - Add function MYSQLC::GetTableSize
        modified:
          storage/connect/myconn.cpp
          storage/connect/myconn.h
      
        - Add new special columns (PARTNAME, FNAME, FPATH, FTYPE and FDISK)
        modified:
          storage/connect/colblk.cpp
          storage/connect/colblk.h
          storage/connect/plgdbsem.h
          storage/connect/table.cpp
      
        - Add function ExtractFromPath
        modified:
          storage/connect/colblk.cpp
          storage/connect/plgdbsem.h
          storage/connect/plgdbutl.cpp
      
        - Enhance Cardinality for some table types
        modified:
          storage/connect/tabdos.cpp
          storage/connect/tabmysql.cpp
          storage/connect/tabmysql.h
          storage/connect/tabodbc.cpp
          storage/connect/tabodbc.h
          storage/connect/tabsys.cpp
          storage/connect/tabsys.h
          storage/connect/xindex.cpp
          storage/connect/xindex.h
          storage/connect/xtable.h
      
        - Add test on special column
        modified:
          storage/connect/tabfmt.cpp
      
        - Add new files (added for block indexing)
        modified:
          storage/connect/CMakeLists.txt
      ------------------------------------------------------------
      revno: 4007 [merge]
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Sat 2014-05-31 12:31:26 +0200
      message:
        - Begin adding support of partition tables
        modified:
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
          storage/connect/reldef.cpp
      
        - Add INSERT/UPDATE support to PROXY tables
        modified:
          storage/connect/tabutil.cpp
          storage/connect/tabutil.h
      
        - Take care of SPECIAL columns
        modified:
          storage/connect/filamdbf.cpp
          storage/connect/reldef.h
          storage/connect/tabfmt.cpp
      
        -Typo and misc
        modified:
          storage/connect/odbconn.cpp
          storage/connect/tabfix.cpp
          storage/connect/xindex.cpp
      ------------------------------------------------------------
      revno: 4006
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Sat 2014-05-10 12:21:08 +0200
      message:
        - FIX some MAP and XMAP errors (such as mapped indexes not closed)
          Do not put version in XML files header
          Remove HTON_NO_PARTITION for testing
          Fix a wrong return (instead of DBUG_RETURN) in index_init
          Plus a few typos
        modified:
          storage/connect/connect.cc
          storage/connect/filter.cpp
          storage/connect/ha_connect.cc
          storage/connect/maputil.cpp
          storage/connect/mysql-test/connect/r/alter_xml.result
          storage/connect/mysql-test/connect/r/xml.result
          storage/connect/table.cpp
          storage/connect/tabxml.cpp
          storage/connect/xindex.cpp
          storage/connect/xindex.h
          storage/connect/xtable.h
      ------------------------------------------------------------
      revno: 4005
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Fri 2014-05-02 15:55:45 +0200
      message:
        - Adding fetched columns to Dynamic index key (unique only)
          Fix two bugs concerning added KXYCOL's:
          1 - Not set during reading
          2 - Val_K not set in FastFind
        modified:
          storage/connect/connect.cc
          storage/connect/filamtxt.h
          storage/connect/tabdos.cpp
          storage/connect/tabfix.cpp
          storage/connect/table.cpp
          storage/connect/valblk.h
          storage/connect/xindex.cpp
          storage/connect/xindex.h
          storage/connect/xtable.h
      ------------------------------------------------------------
      revno: 4003
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Wed 2014-04-30 10:48:29 +0200
      message:
        - Implementation of adding selected columns to dynamic indexes.
        modified:
          storage/connect/connect.cc
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
          storage/connect/tabdos.cpp
          storage/connect/tabdos.h
          storage/connect/tabvct.cpp
          storage/connect/tabvct.h
          storage/connect/xindex.cpp
          storage/connect/xindex.h
      ------------------------------------------------------------
      revno: 4001
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Sat 2014-04-26 00:17:26 +0200
      message:
        - Implement dynamic indexing
        modified:
          storage/connect/connect.cc
          storage/connect/filter.cpp
          storage/connect/filter.h
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
          storage/connect/tabdos.cpp
          storage/connect/tabdos.h
          storage/connect/table.cpp
          storage/connect/xindex.cpp
          storage/connect/xindex.h
          storage/connect/xtable.h
      ------------------------------------------------------------
      revno: 3995
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Sun 2014-03-23 18:49:19 +0100
      message:
        - Work in progress
        modified:
          storage/connect/filter.h
          storage/connect/ha_connect.cc
          storage/connect/ha_connect.h
          storage/connect/mysql-test/connect/r/alter.result
          storage/connect/mysql-test/connect/r/xml.result
      ------------------------------------------------------------
      revno: 3991
      committer: Olivier Bertrand <bertrandop@gmail.com>
      branch nick: 10.0-connect
      timestamp: Mon 2014-03-10 18:59:36 +0100
      message:
        - Adding files needed for block indexing
        added:
          storage/connect/array.cpp
          storage/connect/array.h
          storage/connect/blkfil.cpp
          storage/connect/blkfil.h
          storage/connect/filter.cpp
          storage/connect/filter.h
      ========================================================================
      This commit of the main branch adds:
      
      - A change needed to have the engine function check_if_supported_inplace_alter
        called for partition tables (was done manually in the sub-branch) by adding
        the preparser define: PARTITION_SUPPORTS_INPLACE_ALTER
      modified:
        sql/CMakeLists.txt
      
      - A fix concerning the FileExists function. It was needed to force the function
        table_flags to return the same flags for all partitions. This is tested by
        the partition engine and raises an error if flags are not equal.
        The way file name, table name and connection string are retrieved has been
        modified to cope with it.
      modified:
        storage/connect/ha_connect.cc
        storage/connect/ha_connect.h
        storage/connect/reldef.cpp
      
      - A few typos, such as the version string.
      modified:
        storage/connect/ha_connect.cc
      
      - Updating some test result files because some warnings are no more raised.
      modified:
        storage/connect/mysql-test/connect/r/occur.result
        storage/connect/mysql-test/connect/r/part_file.result
        storage/connect/mysql-test/connect/r/pivot.result
      4b2092eb