• 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
reldef.cpp 22.1 KB