You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6317 lines
187 KiB

This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
Fixing compilation problems on Unix: 1. Conflicting declarations: In file included from /usr/include/sql.h:19:0, from <path>/storage/connect/odbconn.h:15, from <path>/storage/connect/ha_connect.cc:117: /usr/include/sqltypes.h:98:23: error: conflicting declaration ‘typedef unsigned int DWORD’ os.h and unixODBC's sqltypes.h (included from sql.h) have conflicting declarations, because unixODBC for some reasons incorrectly defines DWORD as "unsigned int", while we define DWORD as "unsigned long" (which is the Microsoft way). We should never include os.h and odbconn.h from the same file. Inside tabodbc.cpp DWORD must be seen as sql.h defines it. In all other files DWORD must be seen as os.h defines it. Fix: Moving ODBC catalog function prototypes into a separate file odbccat.h. Fixing ha_connect.cc to include odbccat.h instead of odbcon.h 2. Use of ambiguous overloaded function in myconn.cpp: There's no a method SetValue(const char *fmt, int i); There's only a method SetValue(char *fmt, int i); Fixing the call accordingly: - crp->Kdata->SetValue((fmt) ? fmt : "", i); + crp->Kdata->SetValue((fmt) ? fmt : (char*) "", i); Note, this is a quick hack. The correct fix would be to change the method prototype to have the "fmt" argument as "const char *". However, it is tightly related to about 300 other places where "char*" is used instead of "const char *". We'll need to fix all of them gradually (in separate changes). added: storage/connect/odbccat.h modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/odbconn.h storage/connect/tabodbc.cpp
13 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
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
12 years ago
"mtr --suite=connect --embedded" tests did not work for two reasons: 1. The Connect engine code assumed that mysql_home_directory is always "./", which is not the fact in case of embedded server. Fixing the routines creating file names to add the mysql_home_directory prefix. 2. FILE privilege is not checked in embedded server. Moving FILE related tests into separate files. Skipping the FILE related tests when running with --embedded. added: storage/connect/mysql-test/connect/r/grant.result storage/connect/mysql-test/connect/r/ini_grant.result storage/connect/mysql-test/connect/r/mysql_grant.result storage/connect/mysql-test/connect/r/xml_grant.result storage/connect/mysql-test/connect/t/grant.test storage/connect/mysql-test/connect/t/ini_grant.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/mysql.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/r/xml.result storage/connect/mysql-test/connect/t/bin.test storage/connect/mysql-test/connect/t/csv.test storage/connect/mysql-test/connect/t/dbf.test storage/connect/mysql-test/connect/t/dir.test storage/connect/mysql-test/connect/t/fix.test storage/connect/mysql-test/connect/t/ini.test storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/vec.test storage/connect/mysql-test/connect/t/xml.test storage/connect/plgdbsem.h storage/connect/plugutil.c
13 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
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
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
13 years ago
13 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
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
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
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
12 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
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
12 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
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
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
13 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
"mtr --suite=connect --embedded" tests did not work for two reasons: 1. The Connect engine code assumed that mysql_home_directory is always "./", which is not the fact in case of embedded server. Fixing the routines creating file names to add the mysql_home_directory prefix. 2. FILE privilege is not checked in embedded server. Moving FILE related tests into separate files. Skipping the FILE related tests when running with --embedded. added: storage/connect/mysql-test/connect/r/grant.result storage/connect/mysql-test/connect/r/ini_grant.result storage/connect/mysql-test/connect/r/mysql_grant.result storage/connect/mysql-test/connect/r/xml_grant.result storage/connect/mysql-test/connect/t/grant.test storage/connect/mysql-test/connect/t/ini_grant.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/mysql.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/r/xml.result storage/connect/mysql-test/connect/t/bin.test storage/connect/mysql-test/connect/t/csv.test storage/connect/mysql-test/connect/t/dbf.test storage/connect/mysql-test/connect/t/dir.test storage/connect/mysql-test/connect/t/fix.test storage/connect/mysql-test/connect/t/ini.test storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/vec.test storage/connect/mysql-test/connect/t/xml.test storage/connect/plgdbsem.h storage/connect/plugutil.c
13 years ago
"mtr --suite=connect --embedded" tests did not work for two reasons: 1. The Connect engine code assumed that mysql_home_directory is always "./", which is not the fact in case of embedded server. Fixing the routines creating file names to add the mysql_home_directory prefix. 2. FILE privilege is not checked in embedded server. Moving FILE related tests into separate files. Skipping the FILE related tests when running with --embedded. added: storage/connect/mysql-test/connect/r/grant.result storage/connect/mysql-test/connect/r/ini_grant.result storage/connect/mysql-test/connect/r/mysql_grant.result storage/connect/mysql-test/connect/r/xml_grant.result storage/connect/mysql-test/connect/t/grant.test storage/connect/mysql-test/connect/t/ini_grant.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/mysql.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/r/xml.result storage/connect/mysql-test/connect/t/bin.test storage/connect/mysql-test/connect/t/csv.test storage/connect/mysql-test/connect/t/dbf.test storage/connect/mysql-test/connect/t/dir.test storage/connect/mysql-test/connect/t/fix.test storage/connect/mysql-test/connect/t/ini.test storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/vec.test storage/connect/mysql-test/connect/t/xml.test storage/connect/plgdbsem.h storage/connect/plugutil.c
13 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
"mtr --suite=connect --embedded" tests did not work for two reasons: 1. The Connect engine code assumed that mysql_home_directory is always "./", which is not the fact in case of embedded server. Fixing the routines creating file names to add the mysql_home_directory prefix. 2. FILE privilege is not checked in embedded server. Moving FILE related tests into separate files. Skipping the FILE related tests when running with --embedded. added: storage/connect/mysql-test/connect/r/grant.result storage/connect/mysql-test/connect/r/ini_grant.result storage/connect/mysql-test/connect/r/mysql_grant.result storage/connect/mysql-test/connect/r/xml_grant.result storage/connect/mysql-test/connect/t/grant.test storage/connect/mysql-test/connect/t/ini_grant.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/mysql.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/r/xml.result storage/connect/mysql-test/connect/t/bin.test storage/connect/mysql-test/connect/t/csv.test storage/connect/mysql-test/connect/t/dbf.test storage/connect/mysql-test/connect/t/dir.test storage/connect/mysql-test/connect/t/fix.test storage/connect/mysql-test/connect/t/ini.test storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/vec.test storage/connect/mysql-test/connect/t/xml.test storage/connect/plgdbsem.h storage/connect/plugutil.c
13 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
"mtr --suite=connect --embedded" tests did not work for two reasons: 1. The Connect engine code assumed that mysql_home_directory is always "./", which is not the fact in case of embedded server. Fixing the routines creating file names to add the mysql_home_directory prefix. 2. FILE privilege is not checked in embedded server. Moving FILE related tests into separate files. Skipping the FILE related tests when running with --embedded. added: storage/connect/mysql-test/connect/r/grant.result storage/connect/mysql-test/connect/r/ini_grant.result storage/connect/mysql-test/connect/r/mysql_grant.result storage/connect/mysql-test/connect/r/xml_grant.result storage/connect/mysql-test/connect/t/grant.test storage/connect/mysql-test/connect/t/ini_grant.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/mysql.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/r/xml.result storage/connect/mysql-test/connect/t/bin.test storage/connect/mysql-test/connect/t/csv.test storage/connect/mysql-test/connect/t/dbf.test storage/connect/mysql-test/connect/t/dir.test storage/connect/mysql-test/connect/t/fix.test storage/connect/mysql-test/connect/t/ini.test storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/vec.test storage/connect/mysql-test/connect/t/xml.test storage/connect/plgdbsem.h storage/connect/plugutil.c
13 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
13 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
This is a major update that fixes most of the issues and bugs that 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
11 years ago
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
12 years ago
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
12 years ago
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
12 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
MDEV-5241: Collation incompatibilities with MySQL-5.6 - Character set code & tests from Alexander Barkov - Integration with ALTER TABLE, REPAIR and open_table from Monty The problem was that MySQL 5.6 added some croatian and vitanamese character set collations that are incompatible with MariaDB. The fix is to move the MariaDB conflicting collation numbers out of the region that MySQL is likely to use. mysql_upgrade, REPAIR TABLE or ALTER TABLE will fix the collations. If one tries to access and old incompatible table, one will get the error "Table upgrade required...." After this patch, MariaDB supports all the MySQL character set collations and the old MariaDB croatian collations, which are closer to the latest standard than the MySQL versions. New character sets: ucs2_croatian_mysql561_uca_ci utf8_croatian_mysql561_uca_ci utf16_croatian_mysql561_uca_ci utf32_croatian_mysql561_uca_ci utf8mb4_croatian_mysql561_uca_ci Other things: - Fixed some compiler warnings - mysql_upgrade prints information about repaired tables. - Increased version number VERSION: Increased VERSION number client/mysqlcheck.c: Print repaired table name when using --verbose include/m_ctype.h: Add new MariaDB collation regions that are not likely to conflict with MySQL include/my_base.h: Added flag to detect if table was opened for ALTER TABLE mysql-test/r/ctype_ldml.result: Updated result mysql-test/r/ctype_uca.result: Updated result mysql-test/r/ctype_upgrade.result: Updated result mysql-test/r/ctype_utf16_uca.result: Updated result mysql-test/r/ctype_utf32_uca.result: Updated result mysql-test/r/ctype_utf8mb4_uca.result: Updated result mysql-test/std_data/ctype_upgrade: Test files for testing upgrading of conflicting collations mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result: New collations added mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result: New collations added mysql-test/suite/innodb/r/innodb_ctype_ldml.result: Updated test result mysql-test/suite/innodb/t/innodb_ctype_ldml.test: Updated test result mysql-test/suite/plugins/r/show_all_plugins.result: Updated version number mysql-test/suite/roles/create_and_drop_role_invalid_user_table.result: Updated version number mysql-test/t/ctype_ldml.test: Updated test mysql-test/t/ctype_uca.test: Testing of new collations mysql-test/t/ctype_upgrade.test: Testing of upgrading tables with old collations The test ensures that: - We will get an error if we try to open a table with old collations. - CHECK TABLE will detect that the table needs to be upgraded. - ALTER TABLE and REPAIR will fix the table. - mysql_upgrade works as expected mysql-test/t/ctype_utf16_uca.test: Testing of new collations mysql-test/t/ctype_utf32_uca.test: Testing of new collations mysql-test/t/ctype_utf8mb4_uca.test: Testing of new collations mysys/charset-def.c: Added new character sets mysys/charset.c: Always give an error, if requested, if a character set didn't exist sql/handler.cc: - Added upgrade_collation() to check if collation is compatible with old version - check_collation_compatibility() checks if we are using an old collation from MariaDB 5.5 or MySQL 5.6 - ha_check_for_upgrade() returns HA_ADMIN_NEEDS_ALTER if we have an incompatible collation sql/handler.h: Added new prototypes sql/sql_table.cc: - Mark that tables are opened for ALTER TABLE - If table needs to be upgraded, ensure we are not using online alter table. sql/table.cc: - If we are using an old incompatible collation, change to use the new one and mark table as incompatible. - Give an error if we try to open an incompatible table. sql/table.h: Added error that table needs to be rebuild storage/connect/ha_connect.cc: Fixed compiler warning strings/ctype-uca.c: New character sets
12 years ago
Fixes to get valgrind to work with jemalloc - Added MALLOC_LIBRARY variable to hold name of malloc library - Back ported valgrind related fixes from jemalloc 3.4.1 to the included jemalloc 3.3.1 - Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1 - Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc - Show version related variables in mysqld --help -- Added SHOW_VALUE_IN_HELP marker Increased back_log to 150 as the original value was a bit too small CMakeLists.txt: Added MALLOC_LIBRARY variable to hold name of malloc library cmake/jemalloc.cmake: Added MALLOC_LIBRARY variable to hold name of malloc library config.h.cmake: Added MALLOC_LIBRARY variable to hold name of malloc library extra/jemalloc/ChangeLog: Updates changelog extra/jemalloc/include/jemalloc/internal/arena.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/private_namespace.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/tcache.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/src/arena.c: Backported valgrind fixes from jemalloc 3.4.1 include/my_bitmap.h: Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1 mysql-test/mysql-test-run.pl: Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc mysql-test/valgrind.supp: Supression of memory leak in OpenSuse 12.3 mysys/my_bitmap.c: Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() sql/ha_ndbcluster_binlog.cc: Renames sql/ha_ndbcluster_cond.h: Renames sql/ha_partition.cc: Renames sql/handler.cc: Renames sql/item_subselect.cc: Renames sql/log_event.cc: Renames sql/log_event_old.cc: Renames sql/mysqld.cc: Renames Show version related variables in mysqld --help sql/opt_range.cc: Renames sql/opt_table_elimination.cc: Renames sql/partition_info.cc: Renames sql/rpl_injector.h: Renames sql/set_var.h: Renames sql/slave.cc: Renames sql/sql_bitmap.h: Renames sql/sql_insert.cc: Renames sql/sql_lex.h: Renames sql/sql_parse.cc: Renames sql/sql_partition.cc: Renames sql/sql_select.cc: Renames sql/sql_show.cc: Renames sql/sql_update.cc: Renames sql/sys_vars.cc: Show version related variables in mysqld --help sql/sys_vars.h: Added SHOW_VALUE_IN_HELP marker for variables that should be shown in --help sql/table.cc: Renames sql/table.h: Removed not used bitmap_init_value storage/connect/ha_connect.cc: Removed compiler warning storage/maria/ma_open.c: Renames unittest/mysys/bitmap-t.c: Renames
12 years ago
Fixes to get valgrind to work with jemalloc - Added MALLOC_LIBRARY variable to hold name of malloc library - Back ported valgrind related fixes from jemalloc 3.4.1 to the included jemalloc 3.3.1 - Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1 - Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc - Show version related variables in mysqld --help -- Added SHOW_VALUE_IN_HELP marker Increased back_log to 150 as the original value was a bit too small CMakeLists.txt: Added MALLOC_LIBRARY variable to hold name of malloc library cmake/jemalloc.cmake: Added MALLOC_LIBRARY variable to hold name of malloc library config.h.cmake: Added MALLOC_LIBRARY variable to hold name of malloc library extra/jemalloc/ChangeLog: Updates changelog extra/jemalloc/include/jemalloc/internal/arena.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/private_namespace.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/include/jemalloc/internal/tcache.h: Backported valgrind fixes from jemalloc 3.4.1 extra/jemalloc/src/arena.c: Backported valgrind fixes from jemalloc 3.4.1 include/my_bitmap.h: Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() to avoid clash with jemalloc 3.4.1 mysql-test/mysql-test-run.pl: Use option --soname-synonyms=somalloc=NON to valgrind when using jemalloc mysql-test/valgrind.supp: Supression of memory leak in OpenSuse 12.3 mysys/my_bitmap.c: Renamed bitmap_init() and bitmap_free() to my_bitmap_init() and my_bitmap_free() sql/ha_ndbcluster_binlog.cc: Renames sql/ha_ndbcluster_cond.h: Renames sql/ha_partition.cc: Renames sql/handler.cc: Renames sql/item_subselect.cc: Renames sql/log_event.cc: Renames sql/log_event_old.cc: Renames sql/mysqld.cc: Renames Show version related variables in mysqld --help sql/opt_range.cc: Renames sql/opt_table_elimination.cc: Renames sql/partition_info.cc: Renames sql/rpl_injector.h: Renames sql/set_var.h: Renames sql/slave.cc: Renames sql/sql_bitmap.h: Renames sql/sql_insert.cc: Renames sql/sql_lex.h: Renames sql/sql_parse.cc: Renames sql/sql_partition.cc: Renames sql/sql_select.cc: Renames sql/sql_show.cc: Renames sql/sql_update.cc: Renames sql/sys_vars.cc: Show version related variables in mysqld --help sql/sys_vars.h: Added SHOW_VALUE_IN_HELP marker for variables that should be shown in --help sql/table.cc: Renames sql/table.h: Removed not used bitmap_init_value storage/connect/ha_connect.cc: Removed compiler warning storage/maria/ma_open.c: Renames unittest/mysys/bitmap-t.c: Renames
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
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
12 years ago
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
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
- NOTE: an experimental implementation of MRR was done but not kept in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h 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/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
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
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a new version of the CONNECT storage engine. It was developed in 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
11 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
This is a major update of CONNECT that goes from version 1.1 to 1.2 =================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
12 years ago
- Commit merged files removed: libmysql/libmysql.ver.in libmysql/rpm_support.cc mysql-test/r/backup.result mysql-test/r/binlog_tx_isolation.result mysql-test/r/isam.result mysql-test/r/rpl_colSize.result mysql-test/r/rpl_extraColmaster_innodb.result mysql-test/r/rpl_extraColmaster_myisam.result mysql-test/r/slave-running.result mysql-test/r/slave-stopped.result storage/test_sql_discovery/mysql-test/archive/discover.rdiff storage/test_sql_discovery/mysql-test/main/r/plugin.rdiff storage/tokudb/ft-index/portability/tests/test-fair-rwlock.cc storage/tokudb/ft-index/portability/toku_fair_rwlock.cc storage/tokudb/ft-index/portability/toku_fair_rwlock.h storage/tokudb/scripts/run.tests.7.0.3.bash added: cmake/CPackRPM.cmake cmake/pcre.cmake mysql-test/include/have_metadata_lock_info.inc mysql-test/include/have_metadata_lock_info.opt mysql-test/include/have_rbr_triggers.inc mysql-test/include/have_unix_socket.inc mysql-test/include/save_master_gtid.inc mysql-test/include/sync_with_master_gtid.inc mysql-test/r/create_or_replace.result mysql-test/r/create_or_replace2.result mysql-test/r/failed_auth_unixsocket.result mysql-test/r/locked_temporary-5955.result mysql-test/r/lowercase_table5.result mysql-test/r/selectivity_no_engine.result mysql-test/r/stack-crash.result mysql-test/r/udf_debug_sync.result mysql-test/r/union_crash-714.result mysql-test/std_data/mariadb-5.5-binlog.000001 mysql-test/suite/archive/archive_no_symlink-master.opt mysql-test/suite/archive/archive_no_symlink.result mysql-test/suite/archive/archive_no_symlink.test mysql-test/suite/archive/archive_symlink.result mysql-test/suite/archive/archive_symlink.test mysql-test/suite/federated/federated_maybe_16324629.result mysql-test/suite/federated/federated_maybe_16324629.test mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result mysql-test/suite/innodb/r/row_lock.result mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test mysql-test/suite/innodb/t/row_lock.test mysql-test/suite/innodb_zip/ mysql-test/suite/innodb_zip/r/ mysql-test/suite/innodb_zip/t/ mysql-test/suite/multi_source/gtid_ignore_duplicates.cnf mysql-test/suite/multi_source/gtid_ignore_duplicates.result mysql-test/suite/multi_source/gtid_ignore_duplicates.test mysql-test/suite/plugins/r/server_audit.result mysql-test/suite/plugins/t/server_audit.opt mysql-test/suite/plugins/t/server_audit.test mysql-test/suite/roles/grant-5771.result mysql-test/suite/roles/grant-5771.test mysql-test/suite/rpl/r/create_or_replace_mix.result mysql-test/suite/rpl/r/create_or_replace_row.result mysql-test/suite/rpl/r/create_or_replace_statement.result mysql-test/suite/rpl/r/rpl_old_master.result mysql-test/suite/rpl/r/rpl_parallel2.result mysql-test/suite/rpl/r/rpl_row_triggers.result mysql-test/suite/rpl/r/rpl_row_triggers_sbr.result mysql-test/suite/rpl/t/create_or_replace.inc mysql-test/suite/rpl/t/create_or_replace_mix.cnf mysql-test/suite/rpl/t/create_or_replace_mix.test mysql-test/suite/rpl/t/create_or_replace_row.cnf mysql-test/suite/rpl/t/create_or_replace_row.test mysql-test/suite/rpl/t/create_or_replace_statement.cnf mysql-test/suite/rpl/t/create_or_replace_statement.test mysql-test/suite/rpl/t/rpl_000011-slave.opt mysql-test/suite/rpl/t/rpl_old_master.test mysql-test/suite/rpl/t/rpl_parallel2.test mysql-test/suite/rpl/t/rpl_row_triggers.test mysql-test/suite/rpl/t/rpl_row_triggers_sbr.test mysql-test/suite/sys_vars/r/gtid_ignore_duplicates_basic.result mysql-test/suite/sys_vars/r/last_gtid_basic.result mysql-test/suite/sys_vars/r/slave_ddl_exec_mode_basic.result mysql-test/suite/sys_vars/r/slave_domain_parallel_threads_basic.result mysql-test/suite/sys_vars/r/version_malloc_library_basic.result mysql-test/suite/sys_vars/t/gtid_ignore_duplicates_basic.test mysql-test/suite/sys_vars/t/last_gtid_basic.test mysql-test/suite/sys_vars/t/slave_ddl_exec_mode_basic.test mysql-test/suite/sys_vars/t/slave_domain_parallel_threads_basic.test mysql-test/suite/sys_vars/t/version_malloc_library_basic.test mysql-test/t/create_or_replace-master.opt mysql-test/t/create_or_replace.test mysql-test/t/create_or_replace2.test mysql-test/t/failed_auth_unixsocket.test mysql-test/t/locked_temporary-5955.test mysql-test/t/lowercase_table5.test mysql-test/t/selectivity_no_engine.test mysql-test/t/stack-crash.test mysql-test/t/udf_debug_sync.test mysql-test/t/union_crash-714.test packaging/rpm-oel/ packaging/rpm-oel/CMakeLists.txt packaging/rpm-oel/filter-provides.sh packaging/rpm-oel/filter-requires.sh packaging/rpm-oel/my.cnf packaging/rpm-oel/my_config.h packaging/rpm-oel/mysql-embedded-check.c packaging/rpm-oel/mysql-systemd-start packaging/rpm-oel/mysql.conf packaging/rpm-oel/mysql.init packaging/rpm-oel/mysql.spec.in packaging/rpm-oel/mysql_config.sh packaging/rpm-oel/mysqld.service plugin/server_audit/ plugin/server_audit/CMakeLists.txt plugin/server_audit/COPYING plugin/server_audit/server_audit.c storage/connect/mysql-test/connect/r/xml_mult.result storage/connect/mysql-test/connect/std_data/bookstore.xml storage/connect/mysql-test/connect/t/xml_mult.test storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test storage/sphinx/mysql-test/sphinx/union-5539.result storage/sphinx/mysql-test/sphinx/union-5539.test storage/tokudb/ft-index/ft/tests/mempool-115.cc storage/tokudb/ft-index/locktree/tests/lock_request_killed.cc storage/tokudb/ft-index/locktree/tests/lock_request_not_killed.cc storage/tokudb/ft-index/locktree/tests/lock_request_wait_time_callback.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_1big7lt_1small.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_2big_1lt.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_2big_2lt.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_impossible.cc storage/tokudb/ft-index/src/tests/env_nproc.cc storage/tokudb/ft-index/src/tests/get_last_key.cc storage/tokudb/ft-index/src/tests/locktree_escalation_stalls.cc storage/tokudb/ft-index/src/tests/recover-child-rollback.cc storage/tokudb/ft-index/src/tests/test_bad_implicit_promotion.cc storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc storage/tokudb/ft-index/src/tests/test_insert_many_gc.cc storage/tokudb/ft-index/util/context.cc storage/tokudb/ft-index/util/context.h storage/tokudb/ft-index/util/scoped_malloc.cc storage/tokudb/ft-index/util/scoped_malloc.h storage/tokudb/ft-index/util/tests/test-frwlock-fair-writers.cc storage/tokudb/ft-index/util/tests/test-rwlock-unfair-writers.cc storage/tokudb/mysql-test/tokudb_alter_table/r/drop_pk_with_prefix.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_drop_char0_t6.result storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result storage/tokudb/mysql-test/tokudb_alter_table/t/drop_pk_with_prefix.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_drop_char0_t6.test storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test storage/tokudb/mysql-test/tokudb_bugs/include/not_5_5.inc storage/tokudb/mysql-test/tokudb_bugs/r/alter_external_lock_assert.result storage/tokudb/mysql-test/tokudb_bugs/r/alter_part_tokudb_bug_155.result storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result storage/tokudb/mysql-test/tokudb_bugs/r/commit_index_end_1.result storage/tokudb/mysql-test/tokudb_bugs/r/commit_index_end_2.result storage/tokudb/mysql-test/tokudb_bugs/r/leak172.result storage/tokudb/mysql-test/tokudb_bugs/r/optimize_temp_table_tokudb.result storage/tokudb/mysql-test/tokudb_bugs/r/subselect_index_next_same_bug_157.result storage/tokudb/mysql-test/tokudb_bugs/std_data/ storage/tokudb/mysql-test/tokudb_bugs/std_data/leak172_t1.data storage/tokudb/mysql-test/tokudb_bugs/std_data/leak172_t2.data storage/tokudb/mysql-test/tokudb_bugs/t/alter_external_lock_assert.test storage/tokudb/mysql-test/tokudb_bugs/t/alter_part_tokudb_bug_155.test storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test storage/tokudb/mysql-test/tokudb_bugs/t/commit_index_end_1.test storage/tokudb/mysql-test/tokudb_bugs/t/commit_index_end_2.test storage/tokudb/mysql-test/tokudb_bugs/t/leak172.test storage/tokudb/mysql-test/tokudb_bugs/t/optimize_temp_table_tokudb.test storage/tokudb/mysql-test/tokudb_bugs/t/subselect_index_next_same_bug_157.test storage/tokudb/mysql-test/tokudb_mariadb/r/create_or_replace.result storage/tokudb/mysql-test/tokudb_mariadb/r/discover_names.result storage/tokudb/mysql-test/tokudb_mariadb/t/create_or_replace.test storage/tokudb/mysql-test/tokudb_mariadb/t/discover_names.test renamed: libmysql/libmysql_rpm_version.in => libmysql/libmysql_versions.ld.in mysql-test/suite/innodb/r/innodb-create-options.result => mysql-test/suite/innodb_zip/r/innodb-create-options.result mysql-test/suite/innodb/r/innodb-zip.result => mysql-test/suite/innodb_zip/r/innodb-zip.result mysql-test/suite/innodb/r/innodb_bug36169.result => mysql-test/suite/innodb_zip/r/innodb_bug36169.result mysql-test/suite/innodb/r/innodb_bug36172.result => mysql-test/suite/innodb_zip/r/innodb_bug36172.result mysql-test/suite/innodb/r/innodb_bug52745.result => mysql-test/suite/innodb_zip/r/innodb_bug52745.result mysql-test/suite/innodb/r/innodb_bug53591.result => mysql-test/suite/innodb_zip/r/innodb_bug53591.result mysql-test/suite/innodb/r/innodb_bug56680.result => mysql-test/suite/innodb_zip/r/innodb_bug56680.result mysql-test/suite/innodb/r/innodb_cmp_drop_table.result => mysql-test/suite/innodb_zip/r/innodb_cmp_drop_table.result mysql-test/suite/innodb/r/innodb_index_large_prefix.result => mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result => mysql-test/suite/innodb_zip/r/innodb_prefix_index_liftedlimit.result mysql-test/suite/innodb/t/innodb-create-options.test => mysql-test/suite/innodb_zip/t/innodb-create-options.test mysql-test/suite/innodb/t/innodb-zip.test => mysql-test/suite/innodb_zip/t/innodb-zip.test mysql-test/suite/innodb/t/innodb_bug36169.test => mysql-test/suite/innodb_zip/t/innodb_bug36169.test mysql-test/suite/innodb/t/innodb_bug36172.test => mysql-test/suite/innodb_zip/t/innodb_bug36172.test mysql-test/suite/innodb/t/innodb_bug52745.test => mysql-test/suite/innodb_zip/t/innodb_bug52745.test mysql-test/suite/innodb/t/innodb_bug53591.test => mysql-test/suite/innodb_zip/t/innodb_bug53591.test mysql-test/suite/innodb/t/innodb_bug56680.test => mysql-test/suite/innodb_zip/t/innodb_bug56680.test mysql-test/suite/innodb/t/innodb_cmp_drop_table-master.opt => mysql-test/suite/innodb_zip/t/innodb_cmp_drop_table-master.opt mysql-test/suite/innodb/t/innodb_cmp_drop_table.test => mysql-test/suite/innodb_zip/t/innodb_cmp_drop_table.test mysql-test/suite/innodb/t/innodb_index_large_prefix.test => mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test => mysql-test/suite/innodb_zip/t/innodb_prefix_index_liftedlimit.test mysql-test/suite/roles/show_grants_anon-5238.result => mysql-test/suite/roles/grant_empty.result mysql-test/suite/roles/show_grants_anon-5238.test => mysql-test/suite/roles/grant_empty.test modified: .bzrignore CMakeLists.txt CREDITS VERSION client/CMakeLists.txt client/mysql.cc client/mysql_plugin.c client/mysqlcheck.c client/mysqldump.c client/mysqltest.cc cmake/cpack_rpm.cmake cmake/install_macros.cmake cmake/jemalloc.cmake cmake/mysql_add_executable.cmake cmake/plugin.cmake cmake/versioninfo.rc.in cmake/zlib.cmake config.h.cmake dbug/dbug.c debian/dist/Debian/mariadb-server-10.0.files.in debian/dist/Ubuntu/mariadb-server-10.0.files.in debian/po/it.po debian/po/sv.po extra/jemalloc/ChangeLog extra/jemalloc/include/jemalloc/internal/arena.h extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in extra/jemalloc/include/jemalloc/internal/private_namespace.h extra/jemalloc/include/jemalloc/internal/tcache.h extra/jemalloc/src/arena.c extra/replace.c extra/yassl/CMakeLists.txt extra/yassl/include/yassl_error.hpp extra/yassl/include/yassl_types.hpp extra/yassl/src/handshake.cpp extra/yassl/src/yassl_error.cpp extra/yassl/src/yassl_imp.cpp extra/yassl/taocrypt/CMakeLists.txt include/atomic/gcc_builtins.h include/hash.h include/heap.h include/ma_dyncol.h include/maria.h include/my_bitmap.h include/my_getopt.h include/my_global.h include/my_net.h include/my_pthread.h include/my_sys.h include/my_time.h include/my_valgrind.h include/myisam.h include/mysql/plugin.h include/mysql/plugin_audit.h include/mysql/plugin_audit.h.pp include/mysql/plugin_auth.h.pp include/mysql/plugin_ftparser.h.pp include/mysql/psi/mysql_thread.h include/queues.h include/welcome_copyright_notice.h libmysql/CMakeLists.txt libmysql/conf_to_src.c libmysql/libmysql.c libmysqld/CMakeLists.txt libmysqld/examples/CMakeLists.txt libmysqld/lib_sql.cc mysql-test/CMakeLists.txt mysql-test/collections/default.weekly mysql-test/extra/rpl_tests/rpl_ddl.test mysql-test/extra/rpl_tests/rpl_log.test mysql-test/extra/rpl_tests/rpl_stop_slave.test mysql-test/include/commit.inc mysql-test/include/ctype_filesort2.inc mysql-test/include/have_innodb.combinations mysql-test/include/index_merge_ror_cpk.inc mysql-test/include/mtr_check.sql mysql-test/include/type_hrtime.inc mysql-test/lib/My/Config.pm mysql-test/lib/My/SafeProcess/safe_process.cc mysql-test/lib/My/SysInfo.pm mysql-test/lib/mtr_cases.pm mysql-test/mysql-test-run.pl mysql-test/r/alter_table.result mysql-test/r/blackhole.result mysql-test/r/cast.result mysql-test/r/comment_column.result mysql-test/r/comments.result mysql-test/r/commit_1innodb.result mysql-test/r/contributors.result mysql-test/r/create-big.result mysql-test/r/create.result mysql-test/r/ctype_binary.result mysql-test/r/ctype_cp1250_ch.result mysql-test/r/ctype_cp1251.result mysql-test/r/ctype_latin1.result mysql-test/r/ctype_ucs.result mysql-test/r/ctype_utf16.result mysql-test/r/ctype_utf16le.result mysql-test/r/ctype_utf32.result mysql-test/r/ctype_utf8.result mysql-test/r/ctype_utf8mb4.result mysql-test/r/derived_view.result mysql-test/r/distinct.result mysql-test/r/drop.result mysql-test/r/dyncol.result mysql-test/r/error_simulation.result mysql-test/r/events_trans.result mysql-test/r/func_compress.result mysql-test/r/func_group.result mysql-test/r/func_math.result mysql-test/r/func_misc.result mysql-test/r/func_regexp.result mysql-test/r/func_str.result mysql-test/r/func_time.result mysql-test/r/gis-precise.result mysql-test/r/gis.result mysql-test/r/index_intersect_innodb.result mysql-test/r/index_merge_innodb.result mysql-test/r/index_merge_myisam.result mysql-test/r/information_schema-big.result mysql-test/r/information_schema.result mysql-test/r/information_schema_all_engines.result mysql-test/r/innodb_ext_key.result mysql-test/r/join.result mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/key.result mysql-test/r/lowercase_fs_off.result mysql-test/r/lowercase_table.result mysql-test/r/lowercase_table2.result mysql-test/r/lowercase_view.result mysql-test/r/merge.result mysql-test/r/multi_update.result mysql-test/r/myisampack.result mysql-test/r/mysqld--help.result mysql-test/r/mysqldump.result mysql-test/r/not_embedded_server.result mysql-test/r/not_partition.result mysql-test/r/old-mode.result mysql-test/r/partition.result mysql-test/r/partition_debug_sync.result mysql-test/r/partition_disabled.result mysql-test/r/partition_error.result mysql-test/r/partition_exchange.result mysql-test/r/partition_innodb.result mysql-test/r/partition_order.result mysql-test/r/partition_windows.result mysql-test/r/plugin.result mysql-test/r/plugin_auth_qa_3.result mysql-test/r/ps.result mysql-test/r/ps_ddl.result mysql-test/r/range.result mysql-test/r/range_mrr_icp.result mysql-test/r/range_vs_index_merge.result mysql-test/r/range_vs_index_merge_innodb.result mysql-test/r/rpl_mysqldump_slave.result mysql-test/r/select.result mysql-test/r/select_found.result mysql-test/r/select_jcl6.result mysql-test/r/select_pkeycache.result mysql-test/r/selectivity.result mysql-test/r/selectivity_innodb.result mysql-test/r/show_check.result mysql-test/r/sp-security.result mysql-test/r/ssl.result mysql-test/r/stat_tables.result mysql-test/r/stat_tables_innodb.result mysql-test/r/stat_tables_par.result mysql-test/r/stat_tables_par_innodb.result mysql-test/r/stat_tables_partition.result mysql-test/r/stat_tables_rbr.result mysql-test/r/stat_tables_repl.result mysql-test/r/statistics.result mysql-test/r/subselect.result mysql-test/r/subselect2.result mysql-test/r/subselect4.result mysql-test/r/subselect_exists2in.result mysql-test/r/subselect_exists_to_in.result mysql-test/r/subselect_extra.result mysql-test/r/subselect_innodb.result mysql-test/r/subselect_mat.result mysql-test/r/subselect_no_mat.result mysql-test/r/subselect_no_opts.result mysql-test/r/subselect_no_scache.result mysql-test/r/subselect_no_semijoin.result mysql-test/r/subselect_sj.result mysql-test/r/subselect_sj2.result mysql-test/r/subselect_sj2_jcl6.result mysql-test/r/subselect_sj2_mat.result mysql-test/r/subselect_sj_jcl6.result mysql-test/r/subselect_sj_mat.result mysql-test/r/temporal_literal.result mysql-test/r/timezone2.result mysql-test/r/trigger.result mysql-test/r/type_datetime.result mysql-test/r/type_datetime_hires.result mysql-test/r/type_float.result mysql-test/r/type_time.result mysql-test/r/type_time_hires.result mysql-test/r/type_timestamp_hires.result mysql-test/r/update.result mysql-test/r/variables.result mysql-test/r/view.result mysql-test/r/view_grant.result mysql-test/r/xml.result mysql-test/std_data/cacert.pem mysql-test/std_data/client-cert.pem mysql-test/std_data/client-key.pem mysql-test/std_data/server-cert.pem mysql-test/std_data/server-key.pem mysql-test/std_data/server8k-cert.pem mysql-test/std_data/server8k-key.pem mysql-test/suite.pm mysql-test/suite/archive/discover.result mysql-test/suite/archive/discover.test mysql-test/suite/binlog/r/binlog_checkpoint.result mysql-test/suite/binlog/t/binlog_checkpoint.test mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test mysql-test/suite/csv/csv.result mysql-test/suite/csv/csv.test mysql-test/suite/federated/federated.test mysql-test/suite/funcs_1/r/innodb_func_view.result mysql-test/suite/funcs_1/r/innodb_views.result mysql-test/suite/funcs_1/r/is_columns_is.result mysql-test/suite/funcs_1/r/memory_func_view.result mysql-test/suite/funcs_1/r/memory_views.result mysql-test/suite/funcs_1/r/myisam_func_view.result mysql-test/suite/funcs_1/r/myisam_views-big.result mysql-test/suite/funcs_1/views/func_view.inc mysql-test/suite/heap/heap.result mysql-test/suite/heap/heap.test mysql-test/suite/innodb/r/innodb_bug54044.result mysql-test/suite/innodb/r/innodb_information_schema.result mysql-test/suite/innodb/r/innodb_mysql.result mysql-test/suite/innodb/t/innodb_bug54044.test mysql-test/suite/innodb/t/innodb_bug60196-master.opt mysql-test/suite/innodb/t/innodb_mysql.test mysql-test/suite/maria/icp.result mysql-test/suite/maria/maria-preload.result mysql-test/suite/maria/maria.result mysql-test/suite/maria/maria.test mysql-test/suite/multi_source/skip_counter.result mysql-test/suite/multi_source/skip_counter.test mysql-test/suite/optimizer_unfixed_bugs/t/bug42991.test mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result mysql-test/suite/parts/r/partition_mgm_lc2_memory.result mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result mysql-test/suite/perfschema/r/dml_setup_instruments.result mysql-test/suite/perfschema/r/func_mutex.result mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result mysql-test/suite/perfschema/r/server_init.result mysql-test/suite/perfschema/t/func_mutex.test mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test mysql-test/suite/perfschema/t/hostcache_ipv6_blocked.test mysql-test/suite/perfschema/t/server_init.test mysql-test/suite/plugins/t/unix_socket.test mysql-test/suite/roles/recursive_dbug.result mysql-test/suite/rpl/disabled.def mysql-test/suite/rpl/r/rpl_000011.result mysql-test/suite/rpl/r/rpl_ddl.result mysql-test/suite/rpl/r/rpl_drop_view.result mysql-test/suite/rpl/r/rpl_gtid_basic.result mysql-test/suite/rpl/r/rpl_gtid_crash.result mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result mysql-test/suite/rpl/r/rpl_gtid_ignored.result mysql-test/suite/rpl/r/rpl_gtid_nobinlog.result mysql-test/suite/rpl/r/rpl_gtid_startpos.result mysql-test/suite/rpl/r/rpl_gtid_stop_start.result mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result mysql-test/suite/rpl/r/rpl_mdev382.result mysql-test/suite/rpl/r/rpl_parallel.result mysql-test/suite/rpl/r/rpl_parallel_no_log_slave_updates.result mysql-test/suite/rpl/r/rpl_row_create_table.result mysql-test/suite/rpl/r/rpl_row_log.result mysql-test/suite/rpl/r/rpl_row_log_innodb.result mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_stm_log.result mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result mysql-test/suite/rpl/t/rpl_000011.test mysql-test/suite/rpl/t/rpl_bug37426.test mysql-test/suite/rpl/t/rpl_connection.test mysql-test/suite/rpl/t/rpl_create_if_not_exists.test mysql-test/suite/rpl/t/rpl_drop_db.test mysql-test/suite/rpl/t/rpl_gtid_basic.test mysql-test/suite/rpl/t/rpl_gtid_crash.test mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test mysql-test/suite/rpl/t/rpl_gtid_ignored.test mysql-test/suite/rpl/t/rpl_gtid_mdev4485.test mysql-test/suite/rpl/t/rpl_gtid_nobinlog.test mysql-test/suite/rpl/t/rpl_gtid_startpos.test mysql-test/suite/rpl/t/rpl_gtid_stop_start.test mysql-test/suite/rpl/t/rpl_heartbeat_basic.test mysql-test/suite/rpl/t/rpl_known_bugs_detection.test mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test mysql-test/suite/rpl/t/rpl_mix_found_rows.test mysql-test/suite/rpl/t/rpl_parallel.test mysql-test/suite/rpl/t/rpl_parallel_no_log_slave_updates.test mysql-test/suite/rpl/t/rpl_row_create_table.test mysql-test/suite/rpl/t/rpl_row_find_row_debug.test mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test mysql-test/suite/rpl/t/rpl_row_utf32.test mysql-test/suite/rpl/t/rpl_stm_log.test mysql-test/suite/rpl/t/rpl_stm_sql_mode.test mysql-test/suite/rpl/t/rpl_stm_stop_middle_group.test mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test mysql-test/suite/sys_vars/r/back_log_basic.result mysql-test/suite/sys_vars/r/engine_condition_pushdown_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result mysql-test/suite/sys_vars/r/old_mode_basic.result mysql-test/suite/sys_vars/r/optimizer_switch_basic.result mysql-test/suite/sys_vars/r/progress_report_time_basic.result mysql-test/suite/sys_vars/t/old_mode_basic.test mysql-test/suite/vcol/r/vcol_misc.result mysql-test/suite/vcol/t/vcol_misc.test mysql-test/t/aborted_clients.test mysql-test/t/alter_table.test mysql-test/t/auth_rpl.test mysql-test/t/blackhole.test mysql-test/t/cast.test mysql-test/t/comment_column.test mysql-test/t/comments.test mysql-test/t/create-big.test mysql-test/t/create.test mysql-test/t/derived_view.test mysql-test/t/distinct.test mysql-test/t/drop.test mysql-test/t/dyncol.test mysql-test/t/error_simulation.test mysql-test/t/events_trans.test mysql-test/t/func_compress.test mysql-test/t/func_gconcat.test mysql-test/t/func_group.test mysql-test/t/func_math.test mysql-test/t/func_misc.test mysql-test/t/func_regexp.test mysql-test/t/func_time.test mysql-test/t/gis-precise.test mysql-test/t/gis.test mysql-test/t/information_schema.test mysql-test/t/join.test mysql-test/t/key.test mysql-test/t/lowercase_table.test mysql-test/t/lowercase_table2.test mysql-test/t/lowercase_table4-master.opt mysql-test/t/lowercase_table4.test mysql-test/t/multi_update.test mysql-test/t/myisampack.test mysql-test/t/mysqld--help.test mysql-test/t/mysqldump.test mysql-test/t/not_embedded_server.test mysql-test/t/not_partition.test mysql-test/t/old-mode.test mysql-test/t/partition.test mysql-test/t/partition_debug_sync.test mysql-test/t/partition_disabled.test mysql-test/t/partition_error.test mysql-test/t/partition_exchange.test mysql-test/t/partition_innodb.test mysql-test/t/plugin.test mysql-test/t/ps.test mysql-test/t/ps_ddl.test mysql-test/t/range.test mysql-test/t/range_vs_index_merge.test mysql-test/t/rpl_mysqldump_slave.test mysql-test/t/select.test mysql-test/t/select_found.test mysql-test/t/selectivity.test mysql-test/t/show_check.test mysql-test/t/sp-security.test mysql-test/t/stat_tables_par.test mysql-test/t/statistics.test mysql-test/t/subselect4.test mysql-test/t/subselect_exists2in.test mysql-test/t/subselect_innodb.test mysql-test/t/subselect_sj.test mysql-test/t/subselect_sj2.test mysql-test/t/subselect_sj_mat.test mysql-test/t/temporal_literal.test mysql-test/t/timezone2.test mysql-test/t/type_float.test mysql-test/t/type_time.test mysql-test/t/update.test mysql-test/t/view.test mysql-test/t/view_grant.test mysql-test/t/xml.test mysql-test/valgrind.supp mysys/array.c mysys/file_logger.c mysys/hash.c mysys/ma_dyncol.c mysys/md5.c.THIS mysys/mf_iocache.c mysys/mf_keycache.c mysys/mf_qsort.c mysys/mf_radix.c mysys/mf_same.c mysys/mf_soundex.c mysys/mf_tempdir.c mysys/mf_tempfile.c mysys/mf_wcomp.c mysys/mulalloc.c mysys/my_access.c mysys/my_aes.c.THIS mysys/my_alloc.c mysys/my_bitmap.c mysys/my_conio.c mysys/my_copy.c mysys/my_crc32.c mysys/my_delete.c mysys/my_div.c mysys/my_error.c mysys/my_fopen.c mysys/my_gethwaddr.c mysys/my_getpagesize.c mysys/my_getwd.c mysys/my_libwrap.c mysys/my_lockmem.c mysys/my_malloc.c mysys/my_memmem.c mysys/my_mkdir.c mysys/my_once.c mysys/my_rename.c mysys/my_symlink2.c mysys/my_wincond.c mysys/my_winthread.c mysys/safemalloc.c mysys/test_dir.c mysys/test_xml.c mysys/thr_alarm.c mysys/thr_mutex.c mysys/tree.c packaging/WiX/CPackWixConfig.cmake packaging/WiX/custom_ui.wxs packaging/WiX/mysql_server.wxs.in plugin/auth_pam/auth_pam.c plugin/auth_socket/auth_socket.c plugin/daemon_example/daemon_example.cc plugin/feedback/CMakeLists.txt plugin/feedback/feedback.cc plugin/handler_socket/libhsclient/auto_file.hpp plugin/locale_info/locale_info.cc plugin/metadata_lock_info/metadata_lock_info.cc plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/user_lock.result plugin/qc_info/CMakeLists.txt plugin/qc_info/qc_info.cc plugin/query_response_time/mysql-test/query_response_time/basic.result plugin/query_response_time/plugin.cc plugin/sql_errlog/sql_errlog.c plugin/win_auth_client/CMakeLists.txt scripts/CMakeLists.txt scripts/mysql_config.pl.in scripts/mysql_config.sh scripts/mysql_install_db.pl.in scripts/mysql_install_db.sh scripts/mysql_system_tables.sql scripts/mysql_system_tables_fix.sql scripts/mysqlaccess.sh sql-bench/innotest1.sh sql-bench/innotest1a.sh sql-bench/innotest1b.sh sql-bench/innotest2.sh sql-bench/innotest2a.sh sql-bench/innotest2b.sh sql-bench/limits/access_odbc.cfg sql-common/client.c sql-common/my_time.c sql-common/mysql_async.c sql-common/pack.c sql/CMakeLists.txt sql/authors.h sql/contributors.h sql/create_options.cc sql/custom_conf.h sql/event_db_repository.cc sql/event_scheduler.cc sql/event_scheduler.h sql/events.cc sql/events.h sql/field.cc sql/field.h sql/field_conv.cc sql/filesort.cc sql/filesort_utils.h sql/ha_ndbcluster_binlog.cc sql/ha_ndbcluster_cond.cc sql/ha_ndbcluster_cond.h sql/ha_ndbcluster_tables.h sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/hash_filo.h sql/hostname.cc sql/item.cc sql/item.h sql/item_cmpfunc.cc sql/item_cmpfunc.h sql/item_create.cc sql/item_func.cc sql/item_func.h sql/item_geofunc.cc sql/item_strfunc.cc sql/item_strfunc.h sql/item_subselect.cc sql/item_subselect.h sql/item_sum.cc sql/item_sum.h sql/item_timefunc.cc sql/item_xmlfunc.cc sql/item_xmlfunc.h sql/key.cc sql/key.h sql/lex_symbol.h sql/lock.cc sql/log.cc sql/log.h sql/log_event.cc sql/log_event.h sql/log_event_old.cc sql/log_event_old.h sql/mdl.cc sql/mdl.h sql/mem_root_array.h sql/message.h sql/multi_range_read.cc sql/my_apc.h sql/my_decimal.h sql/mysqld.cc sql/mysqld.h sql/net_serv.cc sql/opt_index_cond_pushdown.cc sql/opt_range.cc sql/opt_range.h sql/opt_subselect.cc sql/opt_subselect.h sql/opt_sum.cc sql/opt_table_elimination.cc sql/partition_element.h sql/partition_info.cc sql/partition_info.h sql/password.c sql/rpl_filter.cc sql/rpl_gtid.cc sql/rpl_gtid.h sql/rpl_injector.h sql/rpl_mi.cc sql/rpl_parallel.cc sql/rpl_parallel.h sql/rpl_record.cc sql/rpl_record.h sql/rpl_rli.cc sql/rpl_rli.h sql/rpl_utility.cc sql/rpl_utility.h sql/scheduler.cc sql/scheduler.h sql/set_var.cc sql/set_var.h sql/share/charsets/Index.xml sql/share/charsets/armscii8.xml sql/share/charsets/ascii.xml sql/share/charsets/cp1250.xml sql/share/charsets/cp852.xml sql/share/charsets/hebrew.xml sql/share/charsets/latin1.xml sql/share/charsets/latin2.xml sql/share/charsets/latin5.xml sql/share/errmsg-utf8.txt sql/signal_handler.cc sql/slave.cc sql/sp_head.cc sql/sp_head.h sql/sp_rcontext.h sql/spatial.cc sql/sql_acl.cc sql/sql_admin.cc sql/sql_admin.h sql/sql_alter.cc sql/sql_analyse.cc sql/sql_analyse.h sql/sql_audit.cc sql/sql_audit.h sql/sql_base.cc sql/sql_base.h sql/sql_binlog.cc sql/sql_bitmap.h sql/sql_cache.cc sql/sql_class.cc sql/sql_class.h sql/sql_connect.cc sql/sql_db.cc sql/sql_delete.cc sql/sql_derived.cc sql/sql_error.cc sql/sql_handler.cc sql/sql_help.cc sql/sql_insert.cc sql/sql_insert.h sql/sql_join_cache.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_lifo_buffer.h sql/sql_list.h sql/sql_load.cc sql/sql_manager.cc sql/sql_parse.cc sql/sql_parse.h sql/sql_partition.cc sql/sql_partition_admin.cc sql/sql_plugin.cc sql/sql_prepare.cc sql/sql_prepare.h sql/sql_priv.h sql/sql_rename.cc sql/sql_repl.cc sql/sql_repl.h sql/sql_select.cc sql/sql_select.h sql/sql_servers.cc sql/sql_show.cc sql/sql_show.h sql/sql_statistics.cc sql/sql_statistics.h sql/sql_string.cc sql/sql_string.h sql/sql_table.cc sql/sql_table.h sql/sql_test.cc sql/sql_time.cc sql/sql_time.h sql/sql_trigger.cc sql/sql_truncate.cc sql/sql_udf.cc sql/sql_union.cc sql/sql_update.cc sql/sql_view.cc sql/sql_yacc.yy sql/strfunc.cc sql/sys_vars.cc sql/sys_vars.h sql/table.cc sql/table.h sql/table_cache.cc sql/table_cache.h sql/threadpool_unix.cc sql/transaction.cc sql/transaction.h sql/tztime.cc sql/uniques.cc sql/unireg.cc storage/archive/ha_archive.cc storage/cassandra/ha_cassandra.cc storage/connect/csort.cpp storage/connect/domdoc.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/inihandl.c storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/os.h storage/connect/osutil.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp storage/example/ha_example.cc storage/example/ha_example.h storage/federated/ha_federated.cc storage/federated/ha_federated.h storage/federatedx/CMakeLists.txt storage/federatedx/federatedx_io_mysql.cc storage/federatedx/ha_federatedx.cc storage/heap/_check.c storage/heap/_rectest.c storage/heap/ha_heap.cc storage/heap/ha_heap.h storage/heap/hp_create.c storage/heap/hp_delete.c storage/heap/hp_extra.c storage/heap/hp_hash.c storage/heap/hp_open.c storage/heap/hp_rfirst.c storage/heap/hp_rlast.c storage/heap/hp_rnext.c storage/heap/hp_rprev.c storage/heap/hp_rrnd.c storage/heap/hp_rsame.c storage/heap/hp_scan.c storage/heap/hp_update.c storage/heap/hp_write.c storage/innobase/CMakeLists.txt storage/innobase/api/api0api.cc storage/innobase/btr/btr0btr.cc storage/innobase/btr/btr0cur.cc storage/innobase/btr/btr0pcur.cc storage/innobase/compile-innodb* storage/innobase/dict/dict0crea.cc storage/innobase/dict/dict0dict.cc storage/innobase/dict/dict0load.cc storage/innobase/dict/dict0mem.cc storage/innobase/dict/dict0stats.cc storage/innobase/fil/fil0fil.cc storage/innobase/fts/fts0config.cc storage/innobase/fts/fts0fts.cc storage/innobase/fts/fts0opt.cc storage/innobase/fts/fts0que.cc storage/innobase/handler/ha_innodb.cc storage/innobase/handler/handler0alter.cc storage/innobase/handler/i_s.cc storage/innobase/ibuf/ibuf0ibuf.cc storage/innobase/include/api0api.h storage/innobase/include/btr0cur.h storage/innobase/include/btr0pcur.h storage/innobase/include/btr0pcur.ic storage/innobase/include/btr0sea.h storage/innobase/include/db0err.h storage/innobase/include/dict0stats.ic storage/innobase/include/dict0types.h storage/innobase/include/fts0fts.h storage/innobase/include/fts0types.h storage/innobase/include/ibuf0ibuf.h storage/innobase/include/log0log.h storage/innobase/include/mtr0mtr.h storage/innobase/include/mtr0mtr.ic storage/innobase/include/os0file.h storage/innobase/include/row0ftsort.h storage/innobase/include/srv0conc.h storage/innobase/include/srv0mon.h storage/innobase/include/srv0mon.ic storage/innobase/include/sync0arr.h storage/innobase/include/sync0arr.ic storage/innobase/include/sync0sync.h storage/innobase/include/trx0trx.h storage/innobase/include/univ.i storage/innobase/include/ut0bh.h storage/innobase/include/ut0bh.ic storage/innobase/log/log0log.cc storage/innobase/mtr/mtr0mtr.cc storage/innobase/os/os0file.cc storage/innobase/os/os0thread.cc storage/innobase/pars/make_bison.sh* storage/innobase/pars/make_flex.sh* storage/innobase/row/row0ftsort.cc storage/innobase/row/row0log.cc storage/innobase/row/row0merge.cc storage/innobase/row/row0mysql.cc storage/innobase/row/row0quiesce.cc storage/innobase/row/row0sel.cc storage/innobase/srv/srv0mon.cc storage/innobase/srv/srv0start.cc storage/innobase/sync/sync0arr.cc storage/innobase/sync/sync0rw.cc storage/innobase/sync/sync0sync.cc storage/innobase/trx/trx0purge.cc storage/innobase/trx/trx0sys.cc storage/innobase/trx/trx0trx.cc storage/innobase/ut/ut0ut.cc storage/maria/ha_maria.cc storage/maria/ha_maria.h storage/maria/ma_blockrec.c storage/maria/ma_check.c storage/maria/ma_create.c storage/maria/ma_delete_table.c storage/maria/ma_dynrec.c storage/maria/ma_extra.c storage/maria/ma_ft_boolean_search.c storage/maria/ma_locking.c storage/maria/ma_loghandler.c storage/maria/ma_open.c storage/maria/ma_packrec.c storage/maria/ma_pagecache.c storage/maria/ma_pagecrc.c storage/maria/ma_range.c storage/maria/ma_recovery.c storage/maria/ma_static.c storage/maria/ma_test1.c storage/maria/ma_test2.c storage/maria/ma_test_force_start.pl storage/maria/ma_unique.c storage/maria/maria_chk.c storage/maria/maria_def.h storage/maria/maria_pack.c storage/maria/maria_read_log.c storage/maria/unittest/ma_pagecache_single.c storage/maria/unittest/ma_test_loghandler-t.c storage/maria/unittest/ma_test_loghandler_multigroup-t.c storage/myisam/ft_boolean_search.c storage/myisam/ft_stopwords.c storage/myisam/ftbench/Ecompare.pl storage/myisam/ftbench/Ecreate.pl storage/myisam/ftbench/Ereport.pl storage/myisam/ftbench/ft-test-run.sh storage/myisam/ha_myisam.cc storage/myisam/mi_check.c storage/myisam/mi_checksum.c storage/myisam/mi_create.c storage/myisam/mi_delete.c storage/myisam/mi_delete_table.c storage/myisam/mi_dynrec.c storage/myisam/mi_extra.c storage/myisam/mi_locking.c storage/myisam/mi_open.c storage/myisam/mi_rfirst.c storage/myisam/mi_rlast.c storage/myisam/mi_rrnd.c storage/myisam/mi_rsamepos.c storage/myisam/mi_scan.c storage/myisam/mi_search.c storage/myisam/mi_test1.c storage/myisam/mi_write.c storage/myisam/myisamchk.c storage/myisam/myisampack.c storage/myisam/rt_index.h storage/myisam/rt_key.c storage/myisam/rt_key.h storage/myisam/rt_mbr.c storage/myisam/rt_mbr.h storage/myisam/sp_defs.h storage/myisammrg/myrg_delete.c storage/myisammrg/myrg_locking.c storage/myisammrg/myrg_panic.c storage/myisammrg/myrg_range.c storage/myisammrg/myrg_rfirst.c storage/myisammrg/myrg_rlast.c storage/myisammrg/myrg_rnext.c storage/myisammrg/myrg_rnext_same.c storage/myisammrg/myrg_rprev.c storage/myisammrg/myrg_rrnd.c storage/myisammrg/myrg_rsame.c storage/myisammrg/myrg_update.c storage/myisammrg/myrg_write.c storage/ndb/config/win-includes storage/ndb/config/win-libraries storage/ndb/config/win-name storage/ndb/config/win-sources storage/ndb/include/debugger/DebuggerNames.hpp storage/ndb/include/debugger/EventLogger.hpp storage/ndb/include/debugger/GrepError.hpp storage/ndb/include/debugger/SignalLoggerManager.hpp storage/ndb/include/editline/editline.h storage/ndb/include/kernel/AttributeDescriptor.hpp storage/ndb/include/kernel/AttributeHeader.hpp storage/ndb/include/kernel/AttributeList.hpp storage/ndb/include/kernel/BlockNumbers.h storage/ndb/include/kernel/GlobalSignalNumbers.h storage/ndb/include/kernel/GrepEvent.hpp storage/ndb/include/kernel/Interpreter.hpp storage/ndb/include/kernel/LogLevel.hpp storage/ndb/include/kernel/NodeBitmask.hpp storage/ndb/include/kernel/NodeInfo.hpp storage/ndb/include/kernel/NodeState.hpp storage/ndb/include/kernel/RefConvert.hpp storage/ndb/include/kernel/kernel_types.h storage/ndb/include/kernel/ndb_limits.h storage/ndb/include/kernel/signaldata/AbortAll.hpp storage/ndb/include/kernel/signaldata/AccFrag.hpp storage/ndb/include/kernel/signaldata/AccLock.hpp storage/ndb/include/kernel/signaldata/AccScan.hpp storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp storage/ndb/include/kernel/signaldata/AllocNodeId.hpp storage/ndb/include/kernel/signaldata/AlterIndx.hpp storage/ndb/include/kernel/signaldata/AlterTab.hpp storage/ndb/include/kernel/signaldata/AlterTable.hpp storage/ndb/include/kernel/signaldata/AlterTrig.hpp storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp storage/ndb/include/kernel/signaldata/ApiVersion.hpp storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp storage/ndb/include/kernel/signaldata/AttrInfo.hpp storage/ndb/include/kernel/signaldata/BackupContinueB.hpp storage/ndb/include/kernel/signaldata/BackupImpl.hpp storage/ndb/include/kernel/signaldata/BackupSignalData.hpp storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp storage/ndb/include/kernel/signaldata/BuildIndx.hpp storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp storage/ndb/include/kernel/signaldata/CmInit.hpp storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp storage/ndb/include/kernel/signaldata/ConfigParamId.hpp storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp storage/ndb/include/kernel/signaldata/CopyActive.hpp storage/ndb/include/kernel/signaldata/CopyFrag.hpp storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp storage/ndb/include/kernel/signaldata/CreateEvnt.hpp storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp storage/ndb/include/kernel/signaldata/CreateFrag.hpp storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp storage/ndb/include/kernel/signaldata/CreateIndx.hpp storage/ndb/include/kernel/signaldata/CreateObj.hpp storage/ndb/include/kernel/signaldata/CreateTab.hpp storage/ndb/include/kernel/signaldata/CreateTable.hpp storage/ndb/include/kernel/signaldata/CreateTrig.hpp storage/ndb/include/kernel/signaldata/DiAddTab.hpp storage/ndb/include/kernel/signaldata/DiGetNodes.hpp storage/ndb/include/kernel/signaldata/DictLock.hpp storage/ndb/include/kernel/signaldata/DictObjOp.hpp storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp storage/ndb/include/kernel/signaldata/DictStart.hpp storage/ndb/include/kernel/signaldata/DictTabInfo.hpp storage/ndb/include/kernel/signaldata/DihAddFrag.hpp storage/ndb/include/kernel/signaldata/DihContinueB.hpp storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp storage/ndb/include/kernel/signaldata/DihStartTab.hpp storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp storage/ndb/include/kernel/signaldata/DisconnectRep.hpp storage/ndb/include/kernel/signaldata/DropFilegroup.hpp storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp storage/ndb/include/kernel/signaldata/DropIndx.hpp storage/ndb/include/kernel/signaldata/DropObj.hpp storage/ndb/include/kernel/signaldata/DropTab.hpp storage/ndb/include/kernel/signaldata/DropTabFile.hpp storage/ndb/include/kernel/signaldata/DropTable.hpp storage/ndb/include/kernel/signaldata/DropTrig.hpp storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp storage/ndb/include/kernel/signaldata/EmptyLcp.hpp storage/ndb/include/kernel/signaldata/EndTo.hpp storage/ndb/include/kernel/signaldata/EventReport.hpp storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp storage/ndb/include/kernel/signaldata/ExecFragReq.hpp storage/ndb/include/kernel/signaldata/Extent.hpp storage/ndb/include/kernel/signaldata/FailRep.hpp storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp storage/ndb/include/kernel/signaldata/FsAppendReq.hpp storage/ndb/include/kernel/signaldata/FsCloseReq.hpp storage/ndb/include/kernel/signaldata/FsConf.hpp storage/ndb/include/kernel/signaldata/FsOpenReq.hpp storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp storage/ndb/include/kernel/signaldata/FsRef.hpp storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp storage/ndb/include/kernel/signaldata/GCPSave.hpp storage/ndb/include/kernel/signaldata/GetTabInfo.hpp storage/ndb/include/kernel/signaldata/GetTableId.hpp storage/ndb/include/kernel/signaldata/GrepImpl.hpp storage/ndb/include/kernel/signaldata/HotSpareRep.hpp storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp storage/ndb/include/kernel/signaldata/KeyInfo.hpp storage/ndb/include/kernel/signaldata/LCP.hpp storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp storage/ndb/include/kernel/signaldata/ListTables.hpp storage/ndb/include/kernel/signaldata/LqhFrag.hpp storage/ndb/include/kernel/signaldata/LqhKey.hpp storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp storage/ndb/include/kernel/signaldata/LqhTransConf.hpp storage/ndb/include/kernel/signaldata/ManagementServer.hpp storage/ndb/include/kernel/signaldata/MasterGCP.hpp storage/ndb/include/kernel/signaldata/MasterLCP.hpp storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp storage/ndb/include/kernel/signaldata/NdbSttor.hpp storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp storage/ndb/include/kernel/signaldata/NextScan.hpp storage/ndb/include/kernel/signaldata/NodeFailRep.hpp storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp storage/ndb/include/kernel/signaldata/PackedSignal.hpp storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp storage/ndb/include/kernel/signaldata/PrepDropTab.hpp storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp storage/ndb/include/kernel/signaldata/RelTabMem.hpp storage/ndb/include/kernel/signaldata/RepImpl.hpp storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp storage/ndb/include/kernel/signaldata/RestoreImpl.hpp storage/ndb/include/kernel/signaldata/ResumeReq.hpp storage/ndb/include/kernel/signaldata/RouteOrd.hpp storage/ndb/include/kernel/signaldata/ScanFrag.hpp storage/ndb/include/kernel/signaldata/ScanTab.hpp storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp storage/ndb/include/kernel/signaldata/SetVarReq.hpp storage/ndb/include/kernel/signaldata/SignalData.hpp storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp storage/ndb/include/kernel/signaldata/SrFragidConf.hpp storage/ndb/include/kernel/signaldata/StartFragReq.hpp storage/ndb/include/kernel/signaldata/StartInfo.hpp storage/ndb/include/kernel/signaldata/StartMe.hpp storage/ndb/include/kernel/signaldata/StartOrd.hpp storage/ndb/include/kernel/signaldata/StartPerm.hpp storage/ndb/include/kernel/signaldata/StartRec.hpp storage/ndb/include/kernel/signaldata/StartTo.hpp storage/ndb/include/kernel/signaldata/StopMe.hpp storage/ndb/include/kernel/signaldata/StopPerm.hpp storage/ndb/include/kernel/signaldata/StopReq.hpp storage/ndb/include/kernel/signaldata/SumaImpl.hpp storage/ndb/include/kernel/signaldata/SystemError.hpp storage/ndb/include/kernel/signaldata/TamperOrd.hpp storage/ndb/include/kernel/signaldata/TcCommit.hpp storage/ndb/include/kernel/signaldata/TcContinueB.hpp storage/ndb/include/kernel/signaldata/TcHbRep.hpp storage/ndb/include/kernel/signaldata/TcIndx.hpp storage/ndb/include/kernel/signaldata/TcKeyConf.hpp storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp storage/ndb/include/kernel/signaldata/TcKeyRef.hpp storage/ndb/include/kernel/signaldata/TcKeyReq.hpp storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp storage/ndb/include/kernel/signaldata/TestOrd.hpp storage/ndb/include/kernel/signaldata/TransIdAI.hpp storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp storage/ndb/include/kernel/signaldata/TupCommit.hpp storage/ndb/include/kernel/signaldata/TupFrag.hpp storage/ndb/include/kernel/signaldata/TupKey.hpp storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp storage/ndb/include/kernel/signaldata/TuxBound.hpp storage/ndb/include/kernel/signaldata/TuxContinueB.hpp storage/ndb/include/kernel/signaldata/TuxMaint.hpp storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp storage/ndb/include/kernel/signaldata/UpdateTo.hpp storage/ndb/include/kernel/signaldata/UtilDelete.hpp storage/ndb/include/kernel/signaldata/UtilExecute.hpp storage/ndb/include/kernel/signaldata/UtilLock.hpp storage/ndb/include/kernel/signaldata/UtilPrepare.hpp storage/ndb/include/kernel/signaldata/UtilRelease.hpp storage/ndb/include/kernel/signaldata/UtilSequence.hpp storage/ndb/include/kernel/signaldata/WaitGCP.hpp storage/ndb/include/kernel/trigger_definitions.h storage/ndb/include/logger/ConsoleLogHandler.hpp storage/ndb/include/logger/FileLogHandler.hpp storage/ndb/include/logger/LogHandler.hpp storage/ndb/include/logger/Logger.hpp storage/ndb/include/logger/SysLogHandler.hpp storage/ndb/include/mgmapi/mgmapi.h storage/ndb/include/mgmapi/mgmapi_debug.h storage/ndb/include/mgmapi/mgmapi_error.h storage/ndb/include/mgmapi/ndb_logevent.h storage/ndb/include/mgmapi/ndbd_exit_codes.h storage/ndb/include/mgmcommon/ConfigRetriever.hpp storage/ndb/include/mgmcommon/IPCConfig.hpp storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp storage/ndb/include/ndb_constants.h storage/ndb/include/ndb_global.h.in storage/ndb/include/ndb_init.h storage/ndb/include/ndb_types.h.in storage/ndb/include/ndb_version.h.in storage/ndb/include/ndbapi/Ndb.hpp storage/ndb/include/ndbapi/NdbApi.hpp storage/ndb/include/ndbapi/NdbBlob.hpp storage/ndb/include/ndbapi/NdbDictionary.hpp storage/ndb/include/ndbapi/NdbError.hpp storage/ndb/include/ndbapi/NdbEventOperation.hpp storage/ndb/include/ndbapi/NdbIndexOperation.hpp storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp storage/ndb/include/ndbapi/NdbIndexStat.hpp storage/ndb/include/ndbapi/NdbOperation.hpp storage/ndb/include/ndbapi/NdbPool.hpp storage/ndb/include/ndbapi/NdbRecAttr.hpp storage/ndb/include/ndbapi/NdbReceiver.hpp storage/ndb/include/ndbapi/NdbScanFilter.hpp storage/ndb/include/ndbapi/NdbScanOperation.hpp storage/ndb/include/ndbapi/NdbTransaction.hpp storage/ndb/include/ndbapi/ndb_cluster_connection.hpp storage/ndb/include/ndbapi/ndb_opt_defaults.h storage/ndb/include/ndbapi/ndbapi_limits.h storage/ndb/include/ndbapi/ndberror.h storage/ndb/include/newtonapi/dba.h storage/ndb/include/newtonapi/defs/pcn_types.h storage/ndb/include/portlib/NdbCondition.h storage/ndb/include/portlib/NdbConfig.h storage/ndb/include/portlib/NdbDaemon.h storage/ndb/include/portlib/NdbEnv.h storage/ndb/include/portlib/NdbHost.h storage/ndb/include/portlib/NdbMain.h storage/ndb/include/portlib/NdbMem.h storage/ndb/include/portlib/NdbMutex.h storage/ndb/include/portlib/NdbSleep.h storage/ndb/include/portlib/NdbTCP.h storage/ndb/include/portlib/NdbThread.h storage/ndb/include/portlib/NdbTick.h storage/ndb/include/portlib/PortDefs.h storage/ndb/include/portlib/prefetch.h storage/ndb/include/transporter/TransporterCallback.hpp storage/ndb/include/transporter/TransporterDefinitions.hpp storage/ndb/include/transporter/TransporterRegistry.hpp storage/ndb/include/util/BaseString.hpp storage/ndb/include/util/Bitmask.hpp storage/ndb/include/util/File.hpp storage/ndb/include/util/InputStream.hpp storage/ndb/include/util/NdbAutoPtr.hpp storage/ndb/include/util/NdbOut.hpp storage/ndb/include/util/NdbSqlUtil.hpp storage/ndb/include/util/OutputStream.hpp storage/ndb/include/util/Parser.hpp storage/ndb/include/util/Properties.hpp storage/ndb/include/util/SimpleProperties.hpp storage/ndb/include/util/SocketAuthenticator.hpp storage/ndb/include/util/SocketClient.hpp storage/ndb/include/util/SocketServer.hpp storage/ndb/include/util/UtilBuffer.hpp storage/ndb/include/util/Vector.hpp storage/ndb/include/util/basestring_vsnprintf.h storage/ndb/include/util/md5_hash.hpp storage/ndb/include/util/ndb_opts.h storage/ndb/include/util/ndb_rand.h storage/ndb/include/util/random.h storage/ndb/include/util/socket_io.h storage/ndb/include/util/uucode.h storage/ndb/include/util/version.h storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp storage/ndb/src/common/debugger/BlockNames.cpp storage/ndb/src/common/debugger/DebuggerNames.cpp storage/ndb/src/common/debugger/EventLogger.cpp storage/ndb/src/common/debugger/GrepError.cpp storage/ndb/src/common/debugger/SignalLoggerManager.cpp storage/ndb/src/common/debugger/signaldata/AccLock.cpp storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp storage/ndb/src/common/debugger/signaldata/AlterTab.cpp storage/ndb/src/common/debugger/signaldata/AlterTable.cpp storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp storage/ndb/src/common/debugger/signaldata/ContinueB.cpp storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp storage/ndb/src/common/debugger/signaldata/DropIndx.cpp storage/ndb/src/common/debugger/signaldata/DropTab.cpp storage/ndb/src/common/debugger/signaldata/DropTrig.cpp storage/ndb/src/common/debugger/signaldata/FailRep.cpp storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp storage/ndb/src/common/debugger/signaldata/FsConf.cpp storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp storage/ndb/src/common/debugger/signaldata/FsRef.cpp storage/ndb/src/common/debugger/signaldata/GCPSave.cpp storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp storage/ndb/src/common/debugger/signaldata/LCP.cpp storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp storage/ndb/src/common/debugger/signaldata/LqhKey.cpp storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp storage/ndb/src/common/debugger/signaldata/ScanTab.cpp storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp storage/ndb/src/common/debugger/signaldata/SignalNames.cpp storage/ndb/src/common/debugger/signaldata/StartRec.cpp storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp storage/ndb/src/common/debugger/signaldata/SystemError.cpp storage/ndb/src/common/debugger/signaldata/TcIndx.cpp storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp storage/ndb/src/common/debugger/signaldata/TupCommit.cpp storage/ndb/src/common/debugger/signaldata/TupKey.cpp storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp storage/ndb/src/common/debugger/signaldata/UtilLock.cpp storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp storage/ndb/src/common/logger/ConsoleLogHandler.cpp storage/ndb/src/common/logger/FileLogHandler.cpp storage/ndb/src/common/logger/LogHandler.cpp storage/ndb/src/common/logger/LogHandlerList.cpp storage/ndb/src/common/logger/LogHandlerList.hpp storage/ndb/src/common/logger/Logger.cpp storage/ndb/src/common/logger/SysLogHandler.cpp storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp storage/ndb/src/common/mgmcommon/IPCConfig.cpp storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp storage/ndb/src/common/portlib/NdbCondition.c storage/ndb/src/common/portlib/NdbConfig.c storage/ndb/src/common/portlib/NdbDaemon.c storage/ndb/src/common/portlib/NdbEnv.c storage/ndb/src/common/portlib/NdbHost.c storage/ndb/src/common/portlib/NdbMem.c storage/ndb/src/common/portlib/NdbMutex.c storage/ndb/src/common/portlib/NdbPortLibTest.cpp storage/ndb/src/common/portlib/NdbSleep.c storage/ndb/src/common/portlib/NdbTCP.cpp storage/ndb/src/common/portlib/NdbThread.c storage/ndb/src/common/portlib/NdbTick.c storage/ndb/src/common/portlib/memtest.c storage/ndb/src/common/portlib/mmstest.cpp storage/ndb/src/common/portlib/munmaptest.cpp storage/ndb/src/common/portlib/win32/NdbCondition.c storage/ndb/src/common/portlib/win32/NdbDaemon.c storage/ndb/src/common/portlib/win32/NdbEnv.c storage/ndb/src/common/portlib/win32/NdbHost.c storage/ndb/src/common/portlib/win32/NdbMem.c storage/ndb/src/common/portlib/win32/NdbMutex.c storage/ndb/src/common/portlib/win32/NdbSleep.c storage/ndb/src/common/portlib/win32/NdbTCP.c storage/ndb/src/common/portlib/win32/NdbThread.c storage/ndb/src/common/portlib/win32/NdbTick.c storage/ndb/src/common/transporter/Packer.cpp storage/ndb/src/common/transporter/Packer.hpp storage/ndb/src/common/transporter/SCI_Transporter.cpp storage/ndb/src/common/transporter/SCI_Transporter.hpp storage/ndb/src/common/transporter/SHM_Buffer.hpp storage/ndb/src/common/transporter/SHM_Transporter.cpp storage/ndb/src/common/transporter/SHM_Transporter.hpp storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp storage/ndb/src/common/transporter/SendBuffer.cpp storage/ndb/src/common/transporter/SendBuffer.hpp storage/ndb/src/common/transporter/TCP_Transporter.cpp storage/ndb/src/common/transporter/TCP_Transporter.hpp storage/ndb/src/common/transporter/Transporter.cpp storage/ndb/src/common/transporter/Transporter.hpp storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp storage/ndb/src/common/transporter/TransporterRegistry.cpp storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp storage/ndb/src/common/transporter/buddy.cpp storage/ndb/src/common/transporter/buddy.hpp storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp storage/ndb/src/common/util/BaseString.cpp storage/ndb/src/common/util/File.cpp storage/ndb/src/common/util/InputStream.cpp storage/ndb/src/common/util/NdbOut.cpp storage/ndb/src/common/util/NdbSqlUtil.cpp storage/ndb/src/common/util/OutputStream.cpp storage/ndb/src/common/util/Parser.cpp storage/ndb/src/common/util/Properties.cpp storage/ndb/src/common/util/SimpleProperties.cpp storage/ndb/src/common/util/SocketAuthenticator.cpp storage/ndb/src/common/util/SocketClient.cpp storage/ndb/src/common/util/SocketServer.cpp storage/ndb/src/common/util/basestring_vsnprintf.c storage/ndb/src/common/util/filetest/FileUnitTest.cpp storage/ndb/src/common/util/filetest/FileUnitTest.hpp storage/ndb/src/common/util/md5_hash.cpp storage/ndb/src/common/util/ndb_init.c storage/ndb/src/common/util/ndb_rand.c storage/ndb/src/common/util/random.c storage/ndb/src/common/util/socket_io.cpp storage/ndb/src/common/util/strdup.c storage/ndb/src/common/util/testProperties/testProperties.cpp storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp storage/ndb/src/common/util/uucode.c storage/ndb/src/common/util/version.c storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp storage/ndb/src/cw/cpcc-win32/C++/TreeView.h storage/ndb/src/cw/cpcc-win32/C++/resource.h storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/Database.cs storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs storage/ndb/src/cw/cpcc-win32/csharp/Process.cs storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs storage/ndb/src/cw/cpcd/APIService.cpp storage/ndb/src/cw/cpcd/APIService.hpp storage/ndb/src/cw/cpcd/CPCD.cpp storage/ndb/src/cw/cpcd/CPCD.hpp storage/ndb/src/cw/cpcd/Monitor.cpp storage/ndb/src/cw/cpcd/Process.cpp storage/ndb/src/cw/cpcd/common.cpp storage/ndb/src/cw/cpcd/common.hpp storage/ndb/src/cw/cpcd/main.cpp storage/ndb/src/cw/test/socketclient/socketClientTest.cpp storage/ndb/src/cw/util/ClientInterface.cpp storage/ndb/src/cw/util/ClientInterface.hpp storage/ndb/src/cw/util/SocketRegistry.cpp storage/ndb/src/cw/util/SocketRegistry.hpp storage/ndb/src/cw/util/SocketService.cpp storage/ndb/src/cw/util/SocketService.hpp storage/ndb/src/kernel/SimBlockList.cpp storage/ndb/src/kernel/blocks/backup/Backup.cpp storage/ndb/src/kernel/blocks/backup/Backup.hpp storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp storage/ndb/src/kernel/blocks/backup/BackupInit.cpp storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp storage/ndb/src/kernel/blocks/backup/read.cpp storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp storage/ndb/src/kernel/blocks/diskpage.hpp storage/ndb/src/kernel/blocks/lgman.hpp storage/ndb/src/kernel/blocks/mutexes.hpp storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp storage/ndb/src/kernel/blocks/pgman.cpp storage/ndb/src/kernel/blocks/pgman.hpp storage/ndb/src/kernel/blocks/print_file.cpp storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp storage/ndb/src/kernel/blocks/qmgr/timer.hpp storage/ndb/src/kernel/blocks/record_types.hpp storage/ndb/src/kernel/blocks/restore.cpp storage/ndb/src/kernel/blocks/restore.hpp storage/ndb/src/kernel/blocks/suma/Suma.cpp storage/ndb/src/kernel/blocks/suma/Suma.hpp storage/ndb/src/kernel/blocks/suma/SumaInit.cpp storage/ndb/src/kernel/blocks/trix/Trix.cpp storage/ndb/src/kernel/blocks/trix/Trix.hpp storage/ndb/src/kernel/blocks/tsman.cpp storage/ndb/src/kernel/blocks/tsman.hpp storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp storage/ndb/src/kernel/error/ErrorReporter.cpp storage/ndb/src/kernel/error/ErrorReporter.hpp storage/ndb/src/kernel/error/TimeModule.cpp storage/ndb/src/kernel/error/TimeModule.hpp storage/ndb/src/kernel/error/ndbd_exit_codes.c storage/ndb/src/kernel/main.cpp storage/ndb/src/kernel/vm/Array.hpp storage/ndb/src/kernel/vm/ArrayPool.hpp storage/ndb/src/kernel/vm/CArray.hpp storage/ndb/src/kernel/vm/Callback.hpp storage/ndb/src/kernel/vm/ClusterConfiguration.cpp storage/ndb/src/kernel/vm/ClusterConfiguration.hpp storage/ndb/src/kernel/vm/Configuration.cpp storage/ndb/src/kernel/vm/Configuration.hpp storage/ndb/src/kernel/vm/DLCFifoList.hpp storage/ndb/src/kernel/vm/DLCHashTable.hpp storage/ndb/src/kernel/vm/DLFifoList.hpp storage/ndb/src/kernel/vm/DLHashTable.hpp storage/ndb/src/kernel/vm/DLHashTable2.hpp storage/ndb/src/kernel/vm/DLList.hpp storage/ndb/src/kernel/vm/DataBuffer.hpp storage/ndb/src/kernel/vm/DynArr256.cpp storage/ndb/src/kernel/vm/DynArr256.hpp storage/ndb/src/kernel/vm/Emulator.cpp storage/ndb/src/kernel/vm/Emulator.hpp storage/ndb/src/kernel/vm/FastScheduler.cpp storage/ndb/src/kernel/vm/FastScheduler.hpp storage/ndb/src/kernel/vm/GlobalData.hpp storage/ndb/src/kernel/vm/KeyDescriptor.hpp storage/ndb/src/kernel/vm/KeyTable.hpp storage/ndb/src/kernel/vm/KeyTable2.hpp storage/ndb/src/kernel/vm/KeyTable2Ref.hpp storage/ndb/src/kernel/vm/LinearPool.hpp storage/ndb/src/kernel/vm/LongSignal.hpp storage/ndb/src/kernel/vm/Mutex.cpp storage/ndb/src/kernel/vm/Mutex.hpp storage/ndb/src/kernel/vm/NdbdSuperPool.cpp storage/ndb/src/kernel/vm/NdbdSuperPool.hpp storage/ndb/src/kernel/vm/Pool.cpp storage/ndb/src/kernel/vm/Pool.hpp storage/ndb/src/kernel/vm/Prio.hpp storage/ndb/src/kernel/vm/RWPool.cpp storage/ndb/src/kernel/vm/RWPool.hpp storage/ndb/src/kernel/vm/RequestTracker.hpp storage/ndb/src/kernel/vm/Rope.hpp storage/ndb/src/kernel/vm/SLFifoList.hpp storage/ndb/src/kernel/vm/SLList.hpp storage/ndb/src/kernel/vm/SafeCounter.cpp storage/ndb/src/kernel/vm/SafeCounter.hpp storage/ndb/src/kernel/vm/SectionReader.cpp storage/ndb/src/kernel/vm/SectionReader.hpp storage/ndb/src/kernel/vm/SignalCounter.hpp storage/ndb/src/kernel/vm/SimBlockList.hpp storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp storage/ndb/src/kernel/vm/SimulatedBlock.cpp storage/ndb/src/kernel/vm/SimulatedBlock.hpp storage/ndb/src/kernel/vm/SuperPool.cpp storage/ndb/src/kernel/vm/SuperPool.hpp storage/ndb/src/kernel/vm/ThreadConfig.cpp storage/ndb/src/kernel/vm/ThreadConfig.hpp storage/ndb/src/kernel/vm/TimeQueue.cpp storage/ndb/src/kernel/vm/TimeQueue.hpp storage/ndb/src/kernel/vm/TransporterCallback.cpp storage/ndb/src/kernel/vm/VMSignal.cpp storage/ndb/src/kernel/vm/VMSignal.hpp storage/ndb/src/kernel/vm/WOPool.cpp storage/ndb/src/kernel/vm/WOPool.hpp storage/ndb/src/kernel/vm/WaitQueue.hpp storage/ndb/src/kernel/vm/WatchDog.cpp storage/ndb/src/kernel/vm/WatchDog.hpp storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp storage/ndb/src/kernel/vm/al_test/main.cpp storage/ndb/src/kernel/vm/bench_pool.cpp storage/ndb/src/kernel/vm/ndbd_malloc.cpp storage/ndb/src/kernel/vm/ndbd_malloc.hpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp storage/ndb/src/kernel/vm/pc.hpp storage/ndb/src/kernel/vm/testCopy/rr.cpp storage/ndb/src/kernel/vm/testCopy/testCopy.cpp storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp storage/ndb/src/kernel/vm/testSuperPool.cpp storage/ndb/src/mgmapi/LocalConfig.cpp storage/ndb/src/mgmapi/LocalConfig.hpp storage/ndb/src/mgmapi/mgmapi.cpp storage/ndb/src/mgmapi/mgmapi_configuration.hpp storage/ndb/src/mgmapi/mgmapi_internal.h storage/ndb/src/mgmapi/ndb_logevent.cpp storage/ndb/src/mgmapi/ndb_logevent.hpp storage/ndb/src/mgmapi/test/keso.c storage/ndb/src/mgmapi/test/mgmSrvApi.cpp storage/ndb/src/mgmclient/CommandInterpreter.cpp storage/ndb/src/mgmclient/main.cpp storage/ndb/src/mgmclient/ndb_mgmclient.h storage/ndb/src/mgmclient/ndb_mgmclient.hpp storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp storage/ndb/src/mgmsrv/Config.cpp storage/ndb/src/mgmsrv/Config.hpp storage/ndb/src/mgmsrv/ConfigInfo.cpp storage/ndb/src/mgmsrv/ConfigInfo.hpp storage/ndb/src/mgmsrv/InitConfigFileParser.cpp storage/ndb/src/mgmsrv/InitConfigFileParser.hpp storage/ndb/src/mgmsrv/MgmtSrvr.cpp storage/ndb/src/mgmsrv/MgmtSrvr.hpp storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp storage/ndb/src/mgmsrv/Services.cpp storage/ndb/src/mgmsrv/Services.hpp storage/ndb/src/mgmsrv/SignalQueue.cpp storage/ndb/src/mgmsrv/SignalQueue.hpp storage/ndb/src/mgmsrv/convertStrToInt.cpp storage/ndb/src/mgmsrv/convertStrToInt.hpp storage/ndb/src/mgmsrv/main.cpp storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp storage/ndb/src/ndbapi/API.hpp storage/ndb/src/ndbapi/ClusterMgr.cpp storage/ndb/src/ndbapi/ClusterMgr.hpp storage/ndb/src/ndbapi/DictCache.cpp storage/ndb/src/ndbapi/DictCache.hpp storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/src/ndbapi/NdbApiSignal.cpp storage/ndb/src/ndbapi/NdbApiSignal.hpp storage/ndb/src/ndbapi/NdbBlob.cpp storage/ndb/src/ndbapi/NdbBlobImpl.hpp storage/ndb/src/ndbapi/NdbDictionary.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp storage/ndb/src/ndbapi/NdbErrorOut.cpp storage/ndb/src/ndbapi/NdbEventOperation.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp storage/ndb/src/ndbapi/NdbImpl.hpp storage/ndb/src/ndbapi/NdbIndexOperation.cpp storage/ndb/src/ndbapi/NdbIndexStat.cpp storage/ndb/src/ndbapi/NdbLinHash.hpp storage/ndb/src/ndbapi/NdbOperation.cpp storage/ndb/src/ndbapi/NdbOperationDefine.cpp storage/ndb/src/ndbapi/NdbOperationExec.cpp storage/ndb/src/ndbapi/NdbOperationInt.cpp storage/ndb/src/ndbapi/NdbOperationScan.cpp storage/ndb/src/ndbapi/NdbOperationSearch.cpp storage/ndb/src/ndbapi/NdbPool.cpp storage/ndb/src/ndbapi/NdbPoolImpl.cpp storage/ndb/src/ndbapi/NdbPoolImpl.hpp storage/ndb/src/ndbapi/NdbRecAttr.cpp storage/ndb/src/ndbapi/NdbReceiver.cpp storage/ndb/src/ndbapi/NdbScanFilter.cpp storage/ndb/src/ndbapi/NdbScanOperation.cpp storage/ndb/src/ndbapi/NdbTransaction.cpp storage/ndb/src/ndbapi/NdbTransactionScan.cpp storage/ndb/src/ndbapi/NdbUtil.cpp storage/ndb/src/ndbapi/NdbUtil.hpp storage/ndb/src/ndbapi/NdbWaiter.hpp storage/ndb/src/ndbapi/Ndberr.cpp storage/ndb/src/ndbapi/Ndbif.cpp storage/ndb/src/ndbapi/Ndbinit.cpp storage/ndb/src/ndbapi/Ndblist.cpp storage/ndb/src/ndbapi/ObjectMap.cpp storage/ndb/src/ndbapi/ObjectMap.hpp storage/ndb/src/ndbapi/SignalSender.cpp storage/ndb/src/ndbapi/SignalSender.hpp storage/ndb/src/ndbapi/TransporterFacade.cpp storage/ndb/src/ndbapi/TransporterFacade.hpp storage/ndb/src/ndbapi/ndb_cluster_connection.cpp storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp storage/ndb/src/ndbapi/ndberror.c storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp storage/ndb/test/include/AtrtClient.hpp storage/ndb/test/include/CpcClient.hpp storage/ndb/test/include/DbUtil.hpp storage/ndb/test/include/HugoAsynchTransactions.hpp storage/ndb/test/include/HugoCalculator.hpp storage/ndb/test/include/HugoOperations.hpp storage/ndb/test/include/HugoTransactions.hpp storage/ndb/test/include/NDBT.hpp storage/ndb/test/include/NDBT_DataSet.hpp storage/ndb/test/include/NDBT_DataSetTransaction.hpp storage/ndb/test/include/NDBT_Error.hpp storage/ndb/test/include/NDBT_Output.hpp storage/ndb/test/include/NDBT_ResultRow.hpp storage/ndb/test/include/NDBT_ReturnCodes.h storage/ndb/test/include/NDBT_Stats.hpp storage/ndb/test/include/NDBT_Table.hpp storage/ndb/test/include/NDBT_Tables.hpp storage/ndb/test/include/NDBT_Test.hpp storage/ndb/test/include/NDBT_Thread.hpp storage/ndb/test/include/NdbBackup.hpp storage/ndb/test/include/NdbConfig.hpp storage/ndb/test/include/NdbGrep.hpp storage/ndb/test/include/NdbMixRestarter.hpp storage/ndb/test/include/NdbRestarter.hpp storage/ndb/test/include/NdbRestarts.hpp storage/ndb/test/include/NdbSchemaCon.hpp storage/ndb/test/include/NdbSchemaOp.hpp storage/ndb/test/include/NdbTest.hpp storage/ndb/test/include/NdbTimer.hpp storage/ndb/test/include/TestNdbEventOperation.hpp storage/ndb/test/include/UtilTransactions.hpp storage/ndb/test/include/getarg.h storage/ndb/test/ndbapi/InsertRecs.cpp storage/ndb/test/ndbapi/ScanFilter.hpp storage/ndb/test/ndbapi/ScanFunctions.hpp storage/ndb/test/ndbapi/ScanInterpretTest.hpp storage/ndb/test/ndbapi/TraceNdbApi.cpp storage/ndb/test/ndbapi/VerifyNdbApi.cpp storage/ndb/test/ndbapi/acid.cpp storage/ndb/test/ndbapi/acid2.cpp storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp storage/ndb/test/ndbapi/adoInsertRecs.cpp storage/ndb/test/ndbapi/asyncGenerator.cpp storage/ndb/test/ndbapi/bank/Bank.cpp storage/ndb/test/ndbapi/bank/Bank.hpp storage/ndb/test/ndbapi/bank/BankLoad.cpp storage/ndb/test/ndbapi/bank/bankCreator.cpp storage/ndb/test/ndbapi/bank/bankMakeGL.cpp storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp storage/ndb/test/ndbapi/bank/bankTimer.cpp storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp storage/ndb/test/ndbapi/bank/testBank.cpp storage/ndb/test/ndbapi/bench/asyncGenerator.cpp storage/ndb/test/ndbapi/bench/dbGenerator.h storage/ndb/test/ndbapi/bench/dbPopulate.cpp storage/ndb/test/ndbapi/bench/dbPopulate.h storage/ndb/test/ndbapi/bench/macros.h storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp storage/ndb/test/ndbapi/bench/mainPopulate.cpp storage/ndb/test/ndbapi/bench/ndb_async1.cpp storage/ndb/test/ndbapi/bench/ndb_async2.cpp storage/ndb/test/ndbapi/bench/ndb_error.hpp storage/ndb/test/ndbapi/bench/ndb_schema.hpp storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp storage/ndb/test/ndbapi/bench/testData.h storage/ndb/test/ndbapi/bench/testDefinitions.h storage/ndb/test/ndbapi/bench/userInterface.cpp storage/ndb/test/ndbapi/bench/userInterface.h storage/ndb/test/ndbapi/benchronja.cpp storage/ndb/test/ndbapi/bulk_copy.cpp storage/ndb/test/ndbapi/cdrserver.cpp storage/ndb/test/ndbapi/celloDb.cpp storage/ndb/test/ndbapi/create_all_tabs.cpp storage/ndb/test/ndbapi/create_tab.cpp storage/ndb/test/ndbapi/drop_all_tabs.cpp storage/ndb/test/ndbapi/flexAsynch.cpp storage/ndb/test/ndbapi/flexBench.cpp storage/ndb/test/ndbapi/flexHammer.cpp storage/ndb/test/ndbapi/flexScan.cpp storage/ndb/test/ndbapi/flexTT.cpp storage/ndb/test/ndbapi/flexTimedAsynch.cpp storage/ndb/test/ndbapi/flex_bench_mysql.cpp storage/ndb/test/ndbapi/index.cpp storage/ndb/test/ndbapi/index2.cpp storage/ndb/test/ndbapi/initronja.cpp storage/ndb/test/ndbapi/interpreterInTup.cpp storage/ndb/test/ndbapi/mainAsyncGenerator.cpp storage/ndb/test/ndbapi/msa.cpp storage/ndb/test/ndbapi/ndb_async1.cpp storage/ndb/test/ndbapi/ndb_async2.cpp storage/ndb/test/ndbapi/ndb_user_populate.cpp storage/ndb/test/ndbapi/ndb_user_transaction.cpp storage/ndb/test/ndbapi/ndb_user_transaction2.cpp storage/ndb/test/ndbapi/ndb_user_transaction3.cpp storage/ndb/test/ndbapi/ndb_user_transaction4.cpp storage/ndb/test/ndbapi/ndb_user_transaction5.cpp storage/ndb/test/ndbapi/ndb_user_transaction6.cpp storage/ndb/test/ndbapi/restarter.cpp storage/ndb/test/ndbapi/restarter2.cpp storage/ndb/test/ndbapi/restarts.cpp storage/ndb/test/ndbapi/size.cpp storage/ndb/test/ndbapi/testBackup.cpp storage/ndb/test/ndbapi/testBasic.cpp storage/ndb/test/ndbapi/testBasicAsynch.cpp storage/ndb/test/ndbapi/testBlobs.cpp storage/ndb/test/ndbapi/testDataBuffers.cpp storage/ndb/test/ndbapi/testDeadlock.cpp storage/ndb/test/ndbapi/testDict.cpp storage/ndb/test/ndbapi/testGrepVerify.cpp storage/ndb/test/ndbapi/testIndex.cpp storage/ndb/test/ndbapi/testIndexStat.cpp storage/ndb/test/ndbapi/testInterpreter.cpp storage/ndb/test/ndbapi/testMgm.cpp storage/ndb/test/ndbapi/testNDBT.cpp storage/ndb/test/ndbapi/testNdbApi.cpp storage/ndb/test/ndbapi/testNodeRestart.cpp storage/ndb/test/ndbapi/testOIBasic.cpp storage/ndb/test/ndbapi/testOperations.cpp storage/ndb/test/ndbapi/testOrderedIndex.cpp storage/ndb/test/ndbapi/testPartitioning.cpp storage/ndb/test/ndbapi/testReadPerf.cpp storage/ndb/test/ndbapi/testRestartGci.cpp storage/ndb/test/ndbapi/testSRBank.cpp storage/ndb/test/ndbapi/testScan.cpp storage/ndb/test/ndbapi/testScanInterpreter.cpp storage/ndb/test/ndbapi/testScanPerf.cpp storage/ndb/test/ndbapi/testSystemRestart.cpp storage/ndb/test/ndbapi/testTimeout.cpp storage/ndb/test/ndbapi/testTransactions.cpp storage/ndb/test/ndbapi/test_event.cpp storage/ndb/test/ndbapi/test_event_merge.cpp storage/ndb/test/ndbapi/test_event_multi_table.cpp storage/ndb/test/ndbapi/userInterface.cpp storage/ndb/test/ndbnet/test.run storage/ndb/test/ndbnet/testError.run storage/ndb/test/ndbnet/testMNF.run storage/ndb/test/ndbnet/testNR.run storage/ndb/test/ndbnet/testNR1.run storage/ndb/test/ndbnet/testNR4.run storage/ndb/test/ndbnet/testSRhang.run storage/ndb/test/ndbnet/testTR295.run storage/ndb/test/newtonapi/basic_test/basic/basic.cpp storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp storage/ndb/test/newtonapi/basic_test/common.cpp storage/ndb/test/newtonapi/basic_test/common.hpp storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp storage/ndb/test/newtonapi/basic_test/too_basic.cpp storage/ndb/test/newtonapi/perf_test/perf.cpp storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp storage/ndb/test/odbc/SQL99_test/SQL99_test.h storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp storage/ndb/test/odbc/client/SQLBindColTest.cpp storage/ndb/test/odbc/client/SQLBindParameterTest.cpp storage/ndb/test/odbc/client/SQLCancelTest.cpp storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp storage/ndb/test/odbc/client/SQLColAttributeTest.cpp storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp storage/ndb/test/odbc/client/SQLConnectTest.cpp storage/ndb/test/odbc/client/SQLCopyDescTest.cpp storage/ndb/test/odbc/client/SQLDescribeColTest.cpp storage/ndb/test/odbc/client/SQLDisconnectTest.cpp storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp storage/ndb/test/odbc/client/SQLEndTranTest.cpp storage/ndb/test/odbc/client/SQLErrorTest.cpp storage/ndb/test/odbc/client/SQLExecDirectTest.cpp storage/ndb/test/odbc/client/SQLExecuteTest.cpp storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp storage/ndb/test/odbc/client/SQLFetchTest.cpp storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp storage/ndb/test/odbc/client/SQLGetDataTest.cpp storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp storage/ndb/test/odbc/client/SQLGetInfoTest.cpp storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp storage/ndb/test/odbc/client/SQLParamDataTest.cpp storage/ndb/test/odbc/client/SQLPrepareTest.cpp storage/ndb/test/odbc/client/SQLPutDataTest.cpp storage/ndb/test/odbc/client/SQLRowCountTest.cpp storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp storage/ndb/test/odbc/client/SQLTablesTest.cpp storage/ndb/test/odbc/client/SQLTransactTest.cpp storage/ndb/test/odbc/client/common.hpp storage/ndb/test/odbc/client/main.cpp storage/ndb/test/odbc/driver/testOdbcDriver.cpp storage/ndb/test/odbc/test_compiler/test_compiler.cpp storage/ndb/test/run-test/atrt-analyze-result.sh storage/ndb/test/run-test/atrt-clear-result.sh storage/ndb/test/run-test/atrt-gather-result.sh storage/ndb/test/run-test/atrt-setup.sh storage/ndb/test/run-test/atrt-testBackup storage/ndb/test/run-test/atrt.hpp storage/ndb/test/run-test/main.cpp storage/ndb/test/run-test/make-index.sh storage/ndb/test/src/CpcClient.cpp storage/ndb/test/src/DbUtil.cpp storage/ndb/test/src/HugoAsynchTransactions.cpp storage/ndb/test/src/HugoCalculator.cpp storage/ndb/test/src/HugoOperations.cpp storage/ndb/test/src/HugoTransactions.cpp storage/ndb/test/src/NDBT_Error.cpp storage/ndb/test/src/NDBT_Output.cpp storage/ndb/test/src/NDBT_ResultRow.cpp storage/ndb/test/src/NDBT_ReturnCodes.cpp storage/ndb/test/src/NDBT_Table.cpp storage/ndb/test/src/NDBT_Tables.cpp storage/ndb/test/src/NDBT_Test.cpp storage/ndb/test/src/NDBT_Thread.cpp storage/ndb/test/src/NdbBackup.cpp storage/ndb/test/src/NdbConfig.cpp storage/ndb/test/src/NdbGrep.cpp storage/ndb/test/src/NdbMixRestarter.cpp storage/ndb/test/src/NdbRestarter.cpp storage/ndb/test/src/NdbRestarts.cpp storage/ndb/test/src/NdbSchemaCon.cpp storage/ndb/test/src/NdbSchemaOp.cpp storage/ndb/test/src/UtilTransactions.cpp storage/ndb/test/tools/connect.cpp storage/ndb/test/tools/copy_tab.cpp storage/ndb/test/tools/cpcc.cpp storage/ndb/test/tools/create_index.cpp storage/ndb/test/tools/hugoCalculator.cpp storage/ndb/test/tools/hugoFill.cpp storage/ndb/test/tools/hugoLoad.cpp storage/ndb/test/tools/hugoLockRecords.cpp storage/ndb/test/tools/hugoPkDelete.cpp storage/ndb/test/tools/hugoPkRead.cpp storage/ndb/test/tools/hugoPkReadRecord.cpp storage/ndb/test/tools/hugoPkUpdate.cpp storage/ndb/test/tools/hugoScanRead.cpp storage/ndb/test/tools/hugoScanUpdate.cpp storage/ndb/test/tools/listen.cpp storage/ndb/test/tools/rep_latency.cpp storage/ndb/test/tools/restart.cpp storage/ndb/test/tools/transproxy.cpp storage/ndb/test/tools/verify_index.cpp storage/ndb/tools/clean-links.sh storage/ndb/tools/delete_all.cpp storage/ndb/tools/desc.cpp storage/ndb/tools/drop_index.cpp storage/ndb/tools/drop_tab.cpp storage/ndb/tools/listTables.cpp storage/ndb/tools/make-errors.pl storage/ndb/tools/make-links.sh storage/ndb/tools/ndb_config.cpp storage/ndb/tools/ndb_error_reporter storage/ndb/tools/ndb_test_platform.cpp storage/ndb/tools/ndbsql.cpp storage/ndb/tools/restore/Restore.cpp storage/ndb/tools/restore/Restore.hpp storage/ndb/tools/restore/consumer.cpp storage/ndb/tools/restore/consumer.hpp storage/ndb/tools/restore/consumer_printer.cpp storage/ndb/tools/restore/consumer_printer.hpp storage/ndb/tools/restore/consumer_restore.cpp storage/ndb/tools/restore/consumer_restore.hpp storage/ndb/tools/restore/consumer_restorem.cpp storage/ndb/tools/restore/ndb_nodegroup_map.h storage/ndb/tools/restore/restore_main.cpp storage/ndb/tools/rgrep storage/ndb/tools/select_all.cpp storage/ndb/tools/select_count.cpp storage/ndb/tools/waiter.cpp storage/oqgraph/CMakeLists.txt storage/oqgraph/ha_oqgraph.cc storage/oqgraph/ha_oqgraph.h storage/oqgraph/mysql-test/oqgraph/boundary_conditions.result storage/oqgraph/mysql-test/oqgraph/boundary_conditions.test storage/oqgraph/mysql-test/oqgraph/invalid_operations.result storage/oqgraph/mysql-test/oqgraph/invalid_operations.test storage/oqgraph/mysql-test/oqgraph/isnull.result storage/oqgraph/mysql-test/oqgraph/isnull.test storage/oqgraph/mysql-test/oqgraph/regression_1233113.result storage/oqgraph/mysql-test/oqgraph/regression_1233113.test storage/oqgraph/mysql-test/oqgraph/regression_drop_after.result storage/oqgraph/mysql-test/oqgraph/regression_drop_after.test storage/oqgraph/mysql-test/oqgraph/suite.pm storage/perfschema/CMakeLists.txt storage/perfschema/pfs_check.cc storage/perfschema/pfs_events_waits.cc storage/perfschema/pfs_global.cc storage/perfschema/table_events_waits.cc storage/perfschema/unittest/CMakeLists.txt storage/sequence/mysql-test/sequence/simple.result storage/sequence/mysql-test/sequence/simple.test storage/sequence/sequence.cc storage/sphinx/ha_sphinx.cc storage/sphinx/mysql-test/sphinx/suite.pm storage/spider/ha_spider.cc storage/spider/ha_spider.h storage/spider/mysql-test/spider/bg/suite.opt storage/spider/scripts/install_spider.sql storage/spider/spd_conn.cc storage/spider/spd_conn.h storage/spider/spd_copy_tables.cc storage/spider/spd_copy_tables.h storage/spider/spd_db_conn.cc storage/spider/spd_db_conn.h storage/spider/spd_db_handlersocket.cc storage/spider/spd_db_handlersocket.h storage/spider/spd_db_include.h storage/spider/spd_db_mysql.cc storage/spider/spd_db_mysql.h storage/spider/spd_db_oracle.cc storage/spider/spd_db_oracle.h storage/spider/spd_direct_sql.cc storage/spider/spd_direct_sql.h storage/spider/spd_err.h storage/spider/spd_i_s.cc storage/spider/spd_include.h storage/spider/spd_malloc.cc storage/spider/spd_malloc.h storage/spider/spd_param.cc storage/spider/spd_param.h storage/spider/spd_ping_table.cc storage/spider/spd_ping_table.h storage/spider/spd_sys_table.cc storage/spider/spd_sys_table.h storage/spider/spd_table.cc storage/spider/spd_table.h storage/spider/spd_trx.cc storage/spider/spd_trx.h storage/spider/spd_udf.cc storage/spider/spd_udf.h storage/tokudb/CMakeLists.txt storage/tokudb/README.md storage/tokudb/ft-index/CMakeLists.txt storage/tokudb/ft-index/README.md storage/tokudb/ft-index/buildheader/CMakeLists.txt storage/tokudb/ft-index/buildheader/make_tdb.cc storage/tokudb/ft-index/cmake_modules/TokuSetupCTest.cmake storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake storage/tokudb/ft-index/examples/CMakeLists.txt storage/tokudb/ft-index/ft/CMakeLists.txt storage/tokudb/ft-index/ft/bndata.cc storage/tokudb/ft-index/ft/bndata.h storage/tokudb/ft-index/ft/cachetable-internal.h storage/tokudb/ft-index/ft/cachetable.cc storage/tokudb/ft-index/ft/cachetable.h storage/tokudb/ft-index/ft/checkpoint.cc storage/tokudb/ft-index/ft/compress.cc storage/tokudb/ft-index/ft/fifo.cc storage/tokudb/ft-index/ft/fifo.h storage/tokudb/ft-index/ft/ft-cachetable-wrappers.cc storage/tokudb/ft-index/ft/ft-flusher.cc storage/tokudb/ft-index/ft/ft-flusher.h storage/tokudb/ft-index/ft/ft-hot-flusher.cc storage/tokudb/ft-index/ft/ft-internal.h storage/tokudb/ft-index/ft/ft-ops.cc storage/tokudb/ft-index/ft/ft-ops.h storage/tokudb/ft-index/ft/ft-serialize.cc storage/tokudb/ft-index/ft/ft-test-helpers.cc storage/tokudb/ft-index/ft/ft.cc storage/tokudb/ft-index/ft/ft.h storage/tokudb/ft-index/ft/ft_layout_version.h storage/tokudb/ft-index/ft/ft_node-serialize.cc storage/tokudb/ft-index/ft/ftloader-internal.h storage/tokudb/ft-index/ft/ftloader.cc storage/tokudb/ft-index/ft/fttypes.h storage/tokudb/ft-index/ft/leafentry.h storage/tokudb/ft-index/ft/log-internal.h storage/tokudb/ft-index/ft/logformat.cc storage/tokudb/ft-index/ft/logger.cc storage/tokudb/ft-index/ft/logger.h storage/tokudb/ft-index/ft/roll.cc storage/tokudb/ft-index/ft/rollback-apply.cc storage/tokudb/ft-index/ft/rollback-ct-callbacks.cc storage/tokudb/ft-index/ft/rollback-ct-callbacks.h storage/tokudb/ft-index/ft/rollback.cc storage/tokudb/ft-index/ft/rollback.h storage/tokudb/ft-index/ft/rollback_log_node_cache.cc storage/tokudb/ft-index/ft/rollback_log_node_cache.h storage/tokudb/ft-index/ft/tests/cachetable-5097.cc storage/tokudb/ft-index/ft/tests/cachetable-5978.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction2.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction3.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction4.cc storage/tokudb/ft-index/ft/tests/cachetable-eviction-close-test2.cc storage/tokudb/ft-index/ft/tests/cachetable-eviction-getandpin-test2.cc storage/tokudb/ft-index/ft/tests/cachetable-evictor-class.cc storage/tokudb/ft-index/ft/tests/ft-bfe-query.cc storage/tokudb/ft-index/ft/tests/ft-clock-test.cc storage/tokudb/ft-index/ft/tests/ft-serialize-benchmark.cc storage/tokudb/ft-index/ft/tests/ft-serialize-test.cc storage/tokudb/ft-index/ft/tests/ftloader-test-bad-generate.cc storage/tokudb/ft-index/ft/tests/ftloader-test-extractor-errors.cc storage/tokudb/ft-index/ft/tests/ftloader-test-extractor.cc storage/tokudb/ft-index/ft/tests/ftloader-test-merge-files-dbufio.cc storage/tokudb/ft-index/ft/tests/ftloader-test-open.cc storage/tokudb/ft-index/ft/tests/ftloader-test-writer-errors.cc storage/tokudb/ft-index/ft/tests/ftloader-test-writer.cc storage/tokudb/ft-index/ft/tests/ftloader-test.cc storage/tokudb/ft-index/ft/tests/make-tree.cc storage/tokudb/ft-index/ft/tests/msnfilter.cc storage/tokudb/ft-index/ft/tests/orthopush-flush.cc storage/tokudb/ft-index/ft/tests/test-flushes-on-cleaner.cc storage/tokudb/ft-index/ft/tests/test-hot-with-bounds.cc storage/tokudb/ft-index/ft/tests/test-inc-split.cc storage/tokudb/ft-index/ft/tests/test-leafentry-nested.cc storage/tokudb/ft-index/ft/tests/test-pick-child-to-flush.cc storage/tokudb/ft-index/ft/tests/test.h storage/tokudb/ft-index/ft/tests/upgrade_test_simple.cc storage/tokudb/ft-index/ft/tests/verify-bad-msn.cc storage/tokudb/ft-index/ft/tests/verify-bad-pivots.cc storage/tokudb/ft-index/ft/tests/verify-dup-in-leaf.cc storage/tokudb/ft-index/ft/tests/verify-dup-pivots.cc storage/tokudb/ft-index/ft/tests/verify-misrouted-msgs.cc storage/tokudb/ft-index/ft/tests/verify-unsorted-leaf.cc storage/tokudb/ft-index/ft/tests/verify-unsorted-pivots.cc storage/tokudb/ft-index/ft/txn.cc storage/tokudb/ft-index/ft/txn_manager.cc storage/tokudb/ft-index/ft/txn_manager.h storage/tokudb/ft-index/ft/ule.cc storage/tokudb/ft-index/ft/ule.h storage/tokudb/ft-index/locktree/lock_request.cc storage/tokudb/ft-index/locktree/lock_request.h storage/tokudb/ft-index/locktree/locktree.cc storage/tokudb/ft-index/locktree/locktree.h storage/tokudb/ft-index/locktree/manager.cc storage/tokudb/ft-index/locktree/tests/lock_request_create_set.cc storage/tokudb/ft-index/locktree/tests/lock_request_get_set_keys.cc storage/tokudb/ft-index/locktree/tests/lock_request_start_deadlock.cc storage/tokudb/ft-index/locktree/tests/lock_request_start_pending.cc storage/tokudb/ft-index/locktree/tests/lock_request_unit_test.h storage/tokudb/ft-index/locktree/tests/locktree_conflicts.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_stalls.cc storage/tokudb/ft-index/locktree/tests/locktree_infinity.cc storage/tokudb/ft-index/locktree/tests/locktree_overlapping_relock.cc storage/tokudb/ft-index/locktree/tests/locktree_simple_lock.cc storage/tokudb/ft-index/locktree/tests/locktree_single_txnid_optimization.cc storage/tokudb/ft-index/locktree/tests/manager_create_destroy.cc storage/tokudb/ft-index/locktree/tests/manager_params.cc storage/tokudb/ft-index/locktree/tests/manager_status.cc storage/tokudb/ft-index/portability/CMakeLists.txt storage/tokudb/ft-index/portability/file.cc storage/tokudb/ft-index/portability/os_malloc.cc storage/tokudb/ft-index/scripts/run.stress-tests.py storage/tokudb/ft-index/src/CMakeLists.txt storage/tokudb/ft-index/src/export.map storage/tokudb/ft-index/src/indexer-undo-do.cc storage/tokudb/ft-index/src/loader.cc storage/tokudb/ft-index/src/tests/CMakeLists.txt storage/tokudb/ft-index/src/tests/blocking-first-empty.cc storage/tokudb/ft-index/src/tests/blocking-first.cc storage/tokudb/ft-index/src/tests/blocking-last.cc storage/tokudb/ft-index/src/tests/blocking-next-prev-deadlock.cc storage/tokudb/ft-index/src/tests/blocking-prelock-range.cc storage/tokudb/ft-index/src/tests/blocking-put-timeout.cc storage/tokudb/ft-index/src/tests/blocking-put-wakeup.cc storage/tokudb/ft-index/src/tests/blocking-put.cc storage/tokudb/ft-index/src/tests/blocking-set-range-0.cc storage/tokudb/ft-index/src/tests/blocking-set-range-n.cc storage/tokudb/ft-index/src/tests/blocking-set-range-reverse-0.cc storage/tokudb/ft-index/src/tests/blocking-set.cc storage/tokudb/ft-index/src/tests/blocking-table-lock.cc storage/tokudb/ft-index/src/tests/db-put-simple-deadlock-threads.cc storage/tokudb/ft-index/src/tests/db-put-simple-lockwait.cc storage/tokudb/ft-index/src/tests/db-put-update-deadlock.cc storage/tokudb/ft-index/src/tests/env_loader_memory.cc storage/tokudb/ft-index/src/tests/filesize.cc storage/tokudb/ft-index/src/tests/hot-optimize-table-tests.cc storage/tokudb/ft-index/src/tests/test_4368.cc storage/tokudb/ft-index/src/tests/test_iterate_pending_lock_requests.cc storage/tokudb/ft-index/src/tests/test_kv_gen.h storage/tokudb/ft-index/src/tests/test_lock_timeout_callback.cc storage/tokudb/ft-index/src/tests/test_stress5.cc storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h storage/tokudb/ft-index/src/tests/update-multiple-with-indexer-array.cc storage/tokudb/ft-index/src/ydb-internal.h storage/tokudb/ft-index/src/ydb.cc storage/tokudb/ft-index/src/ydb_cursor.cc storage/tokudb/ft-index/src/ydb_db.cc storage/tokudb/ft-index/src/ydb_env_func.cc storage/tokudb/ft-index/src/ydb_row_lock.cc storage/tokudb/ft-index/src/ydb_txn.cc storage/tokudb/ft-index/src/ydb_txn.h storage/tokudb/ft-index/toku_include/CMakeLists.txt storage/tokudb/ft-index/util/CMakeLists.txt storage/tokudb/ft-index/util/frwlock.cc storage/tokudb/ft-index/util/frwlock.h storage/tokudb/ft-index/util/kibbutz.cc storage/tokudb/ft-index/util/kibbutz.h storage/tokudb/ft-index/util/mempool.cc storage/tokudb/ft-index/util/mempool.h storage/tokudb/ft-index/util/tests/test-kibbutz.cc storage/tokudb/ft-index/util/tests/test-kibbutz2.cc storage/tokudb/ft-index/util/tests/test-rwlock-cheapness.cc storage/tokudb/ft-index/util/tests/test-rwlock.cc storage/tokudb/ha_tokudb.cc storage/tokudb/ha_tokudb.h storage/tokudb/ha_tokudb_admin.cc storage/tokudb/ha_tokudb_alter_56.cc storage/tokudb/ha_tokudb_alter_common.cc storage/tokudb/ha_tokudb_update.cc storage/tokudb/hatoku_cmp.cc storage/tokudb/hatoku_cmp.h storage/tokudb/hatoku_defines.h storage/tokudb/hatoku_hton.cc storage/tokudb/hatoku_hton.h storage/tokudb/mysql-test/tokudb/locks-blocking-row-locks-testgen.py storage/tokudb/mysql-test/tokudb/r/auto_increment.result storage/tokudb/mysql-test/tokudb/r/auto_increment_boundary.result storage/tokudb/mysql-test/tokudb/r/auto_increment_boundary_traditional.result storage/tokudb/mysql-test/tokudb/r/change_column_char_default.result storage/tokudb/mysql-test/tokudb/r/change_column_int_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin_multiple.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_prefix_a.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_prefix_b.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_sum_cross256.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-0.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-1.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-2.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-3.result storage/tokudb/mysql-test/tokudb/r/cluster_create_table.result storage/tokudb/mysql-test/tokudb/r/cluster_filter_unpack_varchar_and_int_hidden.result storage/tokudb/mysql-test/tokudb/r/ctype_collate.result storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result storage/tokudb/mysql-test/tokudb/r/hotindex-del-fast.result storage/tokudb/mysql-test/tokudb/r/hotindex-del-slow.result storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result storage/tokudb/mysql-test/tokudb/r/locks-blocking-row-locks-getset.result storage/tokudb/mysql-test/tokudb/r/locks-blocking-row-locks.result storage/tokudb/mysql-test/tokudb/r/mvcc-10.result storage/tokudb/mysql-test/tokudb/r/mvcc-11.result storage/tokudb/mysql-test/tokudb/r/mvcc-12.result storage/tokudb/mysql-test/tokudb/r/mvcc-13.result storage/tokudb/mysql-test/tokudb/r/mvcc-14.result storage/tokudb/mysql-test/tokudb/r/mvcc-15.result storage/tokudb/mysql-test/tokudb/r/mvcc-16.result storage/tokudb/mysql-test/tokudb/r/mvcc-17.result storage/tokudb/mysql-test/tokudb/r/mvcc-18.result storage/tokudb/mysql-test/tokudb/r/mvcc-21.result storage/tokudb/mysql-test/tokudb/r/mvcc-22.result storage/tokudb/mysql-test/tokudb/r/mvcc-23.result storage/tokudb/mysql-test/tokudb/r/mvcc-25.result storage/tokudb/mysql-test/tokudb/r/mvcc-3.result storage/tokudb/mysql-test/tokudb/r/mvcc-33.result storage/tokudb/mysql-test/tokudb/r/mvcc-34.result storage/tokudb/mysql-test/tokudb/r/mvcc-35.result storage/tokudb/mysql-test/tokudb/r/mvcc-36.result storage/tokudb/mysql-test/tokudb/r/mvcc-37.result storage/tokudb/mysql-test/tokudb/r/mvcc-38.result storage/tokudb/mysql-test/tokudb/r/mvcc-39.result storage/tokudb/mysql-test/tokudb/r/mvcc-4.result storage/tokudb/mysql-test/tokudb/r/mvcc-40.result storage/tokudb/mysql-test/tokudb/r/mvcc-5.result storage/tokudb/mysql-test/tokudb/r/mvcc-6.result storage/tokudb/mysql-test/tokudb/r/mvcc-7.result storage/tokudb/mysql-test/tokudb/r/mvcc-8.result storage/tokudb/mysql-test/tokudb/r/mvcc-9.result storage/tokudb/mysql-test/tokudb/r/mvcc-checksum-locks.result storage/tokudb/mysql-test/tokudb/r/type_binary.result storage/tokudb/mysql-test/tokudb/r/type_bit.result storage/tokudb/mysql-test/tokudb/r/type_blob.result storage/tokudb/mysql-test/tokudb/r/type_datetime.result storage/tokudb/mysql-test/tokudb/r/type_decimal.result storage/tokudb/mysql-test/tokudb/r/type_enum.result storage/tokudb/mysql-test/tokudb/r/type_float.result storage/tokudb/mysql-test/tokudb/r/type_nchar.result storage/tokudb/mysql-test/tokudb/r/type_newdecimal.result storage/tokudb/mysql-test/tokudb/r/type_set.result storage/tokudb/mysql-test/tokudb/r/type_timestamp.result storage/tokudb/mysql-test/tokudb/r/type_varchar.result storage/tokudb/mysql-test/tokudb/t/auto_increment.test storage/tokudb/mysql-test/tokudb/t/auto_increment_boundary.test storage/tokudb/mysql-test/tokudb/t/auto_increment_boundary_traditional.test storage/tokudb/mysql-test/tokudb/t/bulk-fetch.test storage/tokudb/mysql-test/tokudb/t/bulk-fetch2.test storage/tokudb/mysql-test/tokudb/t/change_column_all_1000_1.test storage/tokudb/mysql-test/tokudb/t/change_column_all_1000_10.test storage/tokudb/mysql-test/tokudb/t/change_column_auto_inc.test storage/tokudb/mysql-test/tokudb/t/change_column_bin.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_key.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_pad.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_blob.test storage/tokudb/mysql-test/tokudb/t/change_column_char.test storage/tokudb/mysql-test/tokudb/t/change_column_char_binary.test storage/tokudb/mysql-test/tokudb/t/change_column_char_charbinary.test storage/tokudb/mysql-test/tokudb/t/change_column_char_charset.test storage/tokudb/mysql-test/tokudb/t/change_column_char_default.test storage/tokudb/mysql-test/tokudb/t/change_column_char_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_char_key.test storage/tokudb/mysql-test/tokudb/t/change_column_char_null.test storage/tokudb/mysql-test/tokudb/t/change_column_char_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_int.test storage/tokudb/mysql-test/tokudb/t/change_column_int_default.test storage/tokudb/mysql-test/tokudb/t/change_column_int_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_int_key.test storage/tokudb/mysql-test/tokudb/t/change_column_int_not_supported.test storage/tokudb/mysql-test/tokudb/t/change_column_int_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_multiple_columns.test storage/tokudb/mysql-test/tokudb/t/change_column_text.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_default.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_key.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_multiple.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_null.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_varchar.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_charset.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_default.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_key.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_null.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_prefix_a.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_prefix_b.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_sum_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_varbin.test storage/tokudb/mysql-test/tokudb/t/cluster_1829.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test storage/tokudb/mysql-test/tokudb/t/cluster_create_table.test storage/tokudb/mysql-test/tokudb/t/cluster_delete.test storage/tokudb/mysql-test/tokudb/t/cluster_delete2.test storage/tokudb/mysql-test/tokudb/t/cluster_filter.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_key.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_and_int_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_varchar_prefix.test storage/tokudb/mysql-test/tokudb/t/cluster_key.test storage/tokudb/mysql-test/tokudb/t/cluster_query_plan.test storage/tokudb/mysql-test/tokudb/t/cluster_tokudb_bug_993.test storage/tokudb/mysql-test/tokudb/t/cluster_tokudb_bug_993_2.test storage/tokudb/mysql-test/tokudb/t/cluster_update.test storage/tokudb/mysql-test/tokudb/t/cluster_update2.test storage/tokudb/mysql-test/tokudb/t/ctype_ascii.test storage/tokudb/mysql-test/tokudb/t/ctype_collate.test storage/tokudb/mysql-test/tokudb/t/ctype_cp1250_ch.test storage/tokudb/mysql-test/tokudb/t/ctype_cp1251.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-1.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-fast.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-slow.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-1.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-2.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-bigchar.test storage/tokudb/mysql-test/tokudb/t/hotindex-update-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-update-1.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_lock_waits_released.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_lock_waits_timeout.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_locks_released.test storage/tokudb/mysql-test/tokudb/t/information-schema-global-status.test storage/tokudb/mysql-test/tokudb/t/lockretry-insert.writelocktable.test storage/tokudb/mysql-test/tokudb/t/lockretry-writelocktable.insert.test storage/tokudb/mysql-test/tokudb/t/lockretry-writelocktable.insert2.test storage/tokudb/mysql-test/tokudb/t/locks-blocking-row-locks-getset.test storage/tokudb/mysql-test/tokudb/t/locks-blocking-row-locks.test storage/tokudb/mysql-test/tokudb/t/locks-delete-deadlock-1.test storage/tokudb/mysql-test/tokudb/t/locks-no-read-lock-serializable-autocommit.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-1.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-2.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-3.test storage/tokudb/mysql-test/tokudb/t/locks-update-deadlock-1.test storage/tokudb/mysql-test/tokudb/t/mvcc-1.test storage/tokudb/mysql-test/tokudb/t/mvcc-10.test storage/tokudb/mysql-test/tokudb/t/mvcc-11.test storage/tokudb/mysql-test/tokudb/t/mvcc-12.test storage/tokudb/mysql-test/tokudb/t/mvcc-13.test storage/tokudb/mysql-test/tokudb/t/mvcc-14.test storage/tokudb/mysql-test/tokudb/t/mvcc-15.test storage/tokudb/mysql-test/tokudb/t/mvcc-16.test storage/tokudb/mysql-test/tokudb/t/mvcc-17.test storage/tokudb/mysql-test/tokudb/t/mvcc-18.test storage/tokudb/mysql-test/tokudb/t/mvcc-19.test storage/tokudb/mysql-test/tokudb/t/mvcc-2.test storage/tokudb/mysql-test/tokudb/t/mvcc-20.test storage/tokudb/mysql-test/tokudb/t/mvcc-21.test storage/tokudb/mysql-test/tokudb/t/mvcc-22.test storage/tokudb/mysql-test/tokudb/t/mvcc-23.test storage/tokudb/mysql-test/tokudb/t/mvcc-24.test storage/tokudb/mysql-test/tokudb/t/mvcc-25.test storage/tokudb/mysql-test/tokudb/t/mvcc-26.test storage/tokudb/mysql-test/tokudb/t/mvcc-27.test storage/tokudb/mysql-test/tokudb/t/mvcc-28.test storage/tokudb/mysql-test/tokudb/t/mvcc-2808-read-committed.test storage/tokudb/mysql-test/tokudb/t/mvcc-2808-read-uncommitted.test storage/tokudb/mysql-test/tokudb/t/mvcc-29.test storage/tokudb/mysql-test/tokudb/t/mvcc-3.test storage/tokudb/mysql-test/tokudb/t/mvcc-30.test storage/tokudb/mysql-test/tokudb/t/mvcc-31.test storage/tokudb/mysql-test/tokudb/t/mvcc-33.test storage/tokudb/mysql-test/tokudb/t/mvcc-34.test storage/tokudb/mysql-test/tokudb/t/mvcc-35.test storage/tokudb/mysql-test/tokudb/t/mvcc-36.test storage/tokudb/mysql-test/tokudb/t/mvcc-37.test storage/tokudb/mysql-test/tokudb/t/mvcc-38.test storage/tokudb/mysql-test/tokudb/t/mvcc-39.test storage/tokudb/mysql-test/tokudb/t/mvcc-4.test storage/tokudb/mysql-test/tokudb/t/mvcc-40.test storage/tokudb/mysql-test/tokudb/t/mvcc-5.test storage/tokudb/mysql-test/tokudb/t/mvcc-6.test storage/tokudb/mysql-test/tokudb/t/mvcc-7.test storage/tokudb/mysql-test/tokudb/t/mvcc-8.test storage/tokudb/mysql-test/tokudb/t/mvcc-9.test storage/tokudb/mysql-test/tokudb/t/mvcc-checksum-locks.test storage/tokudb/mysql-test/tokudb/t/nested_txn_autocommit.test storage/tokudb/mysql-test/tokudb/t/nested_txn_begin.test storage/tokudb/mysql-test/tokudb/t/nested_txn_implicit_commit.test storage/tokudb/mysql-test/tokudb/t/prim_key_1.test storage/tokudb/mysql-test/tokudb/t/prim_key_2.test storage/tokudb/mysql-test/tokudb/t/prim_key_3.test storage/tokudb/mysql-test/tokudb/t/prim_key_4.test storage/tokudb/mysql-test/tokudb/t/prim_key_5.test storage/tokudb/mysql-test/tokudb/t/prim_key_6.test storage/tokudb/mysql-test/tokudb/t/replace-ignore.test storage/tokudb/mysql-test/tokudb/t/rows-32m-0.test storage/tokudb/mysql-test/tokudb/t/rows-32m-1.test storage/tokudb/mysql-test/tokudb/t/rows-32m-rand-insert.test storage/tokudb/mysql-test/tokudb/t/rows-32m-seq-insert.test storage/tokudb/mysql-test/tokudb/t/savepoint-3.test storage/tokudb/mysql-test/tokudb/t/simple_delete_all.test storage/tokudb/mysql-test/tokudb/t/simple_join_tokudb_myisam.test storage/tokudb/mysql-test/tokudb/t/simple_truncate.test storage/tokudb/mysql-test/tokudb/t/truncate_row_count.test storage/tokudb/mysql-test/tokudb/t/truncate_txn_commit.test storage/tokudb/mysql-test/tokudb/t/truncate_txn_rollback.test storage/tokudb/mysql-test/tokudb/t/type_varchar.test storage/tokudb/mysql-test/tokudb_add_index/r/hot_create_unique_index.result storage/tokudb/mysql-test/tokudb_add_index/t/1522.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_1.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_10.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_11.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_12.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_13.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_14.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_16.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_17.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_18.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_2.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_3.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_4.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_6.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_7.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_8.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_9.test storage/tokudb/mysql-test/tokudb_add_index/t/falcon_bug_23691.test storage/tokudb/mysql-test/tokudb_add_index/t/falcon_bug_23692.test storage/tokudb/mysql-test/tokudb_add_index/t/hot_create_unique_index.test storage/tokudb/mysql-test/tokudb_add_index/t/tokudb_bug_1152.test storage/tokudb/mysql-test/tokudb_alter_table/r/ai_part.result storage/tokudb/mysql-test/tokudb_alter_table/r/alter_column_default.result storage/tokudb/mysql-test/tokudb_alter_table/r/auto_inc.result storage/tokudb/mysql-test/tokudb_alter_table/r/fractional_time_alter_table.result storage/tokudb/mysql-test/tokudb_alter_table/r/frm_discover.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_and_rename_table.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_part.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcr.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcr3.result storage/tokudb/mysql-test/tokudb_alter_table/r/other_alter.result storage/tokudb/mysql-test/tokudb_alter_table/r/other_alter2.result storage/tokudb/mysql-test/tokudb_alter_table/r/row_format_alter.result storage/tokudb/mysql-test/tokudb_alter_table/r/test_field_same_detection.result storage/tokudb/mysql-test/tokudb_alter_table/t/5260.test storage/tokudb/mysql-test/tokudb_alter_table/t/ai_di.test storage/tokudb/mysql-test/tokudb_alter_table/t/auto_inc.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add3.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_blob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_blob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_fixed_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_fixed_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_var_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_var_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_and_rename_table.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_clustering.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_clustering2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_diff_num_offset_bytes.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_indexing_mix.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_null_bits.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_pk.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_pk2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_template.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_tmp_tables.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_tmp_tables_56.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_dels.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_lock_sps.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_locks.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr3.test storage/tokudb/mysql-test/tokudb_alter_table/t/hot_row_format_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/other_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/other_alter2.test storage/tokudb/mysql-test/tokudb_alter_table/t/row_format_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/test_field_same_detection.test storage/tokudb/mysql-test/tokudb_alter_table/t/virtual_columns.test storage/tokudb/mysql-test/tokudb_bugs/disabled.def storage/tokudb/mysql-test/tokudb_bugs/r/2952.result storage/tokudb/mysql-test/tokudb_bugs/r/2970.result storage/tokudb/mysql-test/tokudb_bugs/r/4676.result storage/tokudb/mysql-test/tokudb_bugs/r/5089.result storage/tokudb/mysql-test/tokudb_bugs/r/checkpoint_lock.result storage/tokudb/mysql-test/tokudb_bugs/r/checkpoint_lock_3.result storage/tokudb/mysql-test/tokudb_bugs/r/dict_leak_3518.result storage/tokudb/mysql-test/tokudb_bugs/r/expand_tinytext_text.result storage/tokudb/mysql-test/tokudb_bugs/r/fractional_time.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store2.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store3.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_drop_part_table_668.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_drop_simple_table_668.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_mrr.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_mrr2.result storage/tokudb/mysql-test/tokudb_bugs/t/1913.test storage/tokudb/mysql-test/tokudb_bugs/t/1938.test storage/tokudb/mysql-test/tokudb_bugs/t/1949.test storage/tokudb/mysql-test/tokudb_bugs/t/2043.test storage/tokudb/mysql-test/tokudb_bugs/t/2219.test storage/tokudb/mysql-test/tokudb_bugs/t/2262.test storage/tokudb/mysql-test/tokudb_bugs/t/2383.test storage/tokudb/mysql-test/tokudb_bugs/t/2458.test storage/tokudb/mysql-test/tokudb_bugs/t/2548.test storage/tokudb/mysql-test/tokudb_bugs/t/2641.test storage/tokudb/mysql-test/tokudb_bugs/t/2952.test storage/tokudb/mysql-test/tokudb_bugs/t/2970.test storage/tokudb/mysql-test/tokudb_bugs/t/3014.test storage/tokudb/mysql-test/tokudb_bugs/t/3015.test storage/tokudb/mysql-test/tokudb_bugs/t/3083.test storage/tokudb/mysql-test/tokudb_bugs/t/4472.test storage/tokudb/mysql-test/tokudb_bugs/t/4656.test storage/tokudb/mysql-test/tokudb_bugs/t/4656_2.test storage/tokudb/mysql-test/tokudb_bugs/t/5089.test storage/tokudb/mysql-test/tokudb_bugs/t/5733_innodb.test storage/tokudb/mysql-test/tokudb_bugs/t/6053.test storage/tokudb/mysql-test/tokudb_bugs/t/6684.test storage/tokudb/mysql-test/tokudb_bugs/t/checkpoint_lock.test storage/tokudb/mysql-test/tokudb_bugs/t/checkpoint_lock_3.test storage/tokudb/mysql-test/tokudb_bugs/t/expand_tinytext_text.test storage/tokudb/mysql-test/tokudb_bugs/t/fileops-4.test storage/tokudb/mysql-test/tokudb_bugs/t/ft-index-40.test storage/tokudb/mysql-test/tokudb_bugs/t/index_read.test storage/tokudb/mysql-test/tokudb_bugs/t/tokudb_drop_part_table_668.test storage/tokudb/mysql-test/tokudb_bugs/t/tokudb_drop_simple_table_668.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-1.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-2.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test storage/tokudb/mysql-test/tokudb_mariadb/r/alter.result storage/tokudb/mysql-test/tokudb_mariadb/r/clustering.result storage/tokudb/mysql-test/tokudb_mariadb/r/compression.result storage/tokudb/mysql-test/tokudb_mariadb/t/compression.test storage/tokudb/scripts/common.sh storage/tokudb/scripts/make.mysql.bash storage/tokudb/scripts/make.mysql.debug.env.bash storage/tokudb/scripts/nightly.mysql.build.and.test.bash storage/tokudb/scripts/run.atc.ontime.bash storage/tokudb/scripts/run.mysql.tests.bash storage/tokudb/scripts/run.sql.bench.bash storage/tokudb/scripts/run.tpch.bash storage/tokudb/scripts/setup.mysql.bash storage/tokudb/scripts/tokutek.make.mysql.bash storage/tokudb/tokudb_card.h storage/tokudb/tokudb_update_fun.cc storage/xtradb/CMakeLists.txt storage/xtradb/api/api0api.cc storage/xtradb/btr/btr0btr.cc storage/xtradb/btr/btr0cur.cc storage/xtradb/btr/btr0pcur.cc storage/xtradb/buf/buf0buf.cc storage/xtradb/buf/buf0flu.cc storage/xtradb/dict/dict0crea.cc storage/xtradb/dict/dict0dict.cc storage/xtradb/dict/dict0load.cc storage/xtradb/dict/dict0mem.cc storage/xtradb/dict/dict0stats.cc storage/xtradb/fil/fil0fil.cc storage/xtradb/fts/fts0config.cc storage/xtradb/fts/fts0fts.cc storage/xtradb/fts/fts0opt.cc storage/xtradb/fts/fts0que.cc storage/xtradb/handler/ha_innodb.cc storage/xtradb/handler/handler0alter.cc storage/xtradb/handler/i_s.cc storage/xtradb/handler/xtradb_i_s.cc storage/xtradb/ibuf/ibuf0ibuf.cc storage/xtradb/include/api0api.h storage/xtradb/include/btr0cur.h storage/xtradb/include/btr0pcur.h storage/xtradb/include/btr0pcur.ic storage/xtradb/include/btr0sea.h storage/xtradb/include/buf0flu.h storage/xtradb/include/buf0flu.ic storage/xtradb/include/db0err.h storage/xtradb/include/dict0stats.ic storage/xtradb/include/dict0types.h storage/xtradb/include/fts0fts.h storage/xtradb/include/fts0types.h storage/xtradb/include/ibuf0ibuf.h storage/xtradb/include/log0log.h storage/xtradb/include/mtr0mtr.h storage/xtradb/include/mtr0mtr.ic storage/xtradb/include/os0file.h storage/xtradb/include/row0ftsort.h storage/xtradb/include/srv0conc.h storage/xtradb/include/srv0mon.h storage/xtradb/include/srv0mon.ic storage/xtradb/include/sync0arr.h storage/xtradb/include/sync0arr.ic storage/xtradb/include/sync0rw.h storage/xtradb/include/sync0rw.ic storage/xtradb/include/sync0sync.h storage/xtradb/include/sync0sync.ic storage/xtradb/include/sync0types.h storage/xtradb/include/trx0trx.h storage/xtradb/include/univ.i storage/xtradb/include/ut0bh.h storage/xtradb/include/ut0bh.ic storage/xtradb/log/log0log.cc storage/xtradb/log/log0online.cc storage/xtradb/log/log0recv.cc storage/xtradb/mtr/mtr0mtr.cc storage/xtradb/os/os0file.cc storage/xtradb/os/os0thread.cc storage/xtradb/row/row0ftsort.cc storage/xtradb/row/row0log.cc storage/xtradb/row/row0merge.cc storage/xtradb/row/row0mysql.cc storage/xtradb/row/row0quiesce.cc storage/xtradb/row/row0sel.cc storage/xtradb/srv/srv0mon.cc storage/xtradb/srv/srv0start.cc storage/xtradb/sync/sync0arr.cc storage/xtradb/sync/sync0rw.cc storage/xtradb/sync/sync0sync.cc storage/xtradb/trx/trx0purge.cc storage/xtradb/trx/trx0sys.cc storage/xtradb/trx/trx0trx.cc storage/xtradb/ut/ut0ut.cc strings/CMakeLists.txt strings/ctype-bin.c strings/ctype-mb.c strings/ctype-simple.c strings/ctype-uca.c strings/ctype-ucs2.c strings/ctype-utf8.c strings/ctype-win1250ch.c strings/ctype.c strings/decimal.c strings/dtoa.c strings/t_ctype.h support-files/MySQL-shared-compat.spec.sh support-files/compiler_warnings.supp support-files/mysql.server.sh support-files/rpm/server-postun.sh support-files/rpm/server-prein.sh tests/connect_test.c tests/fork_big.pl tests/fork_big2.pl tests/insert_test.c tests/list_test.c tests/mysql_client_test.c tests/select_test.c tests/showdb_test.c tests/ssl_test.c unittest/mysys/CMakeLists.txt unittest/mysys/bitmap-t.c unittest/mysys/ma_dyncol-t.c vio/CMakeLists.txt vio/vio.c vio/viosocket.c vio/viossl.c vio/viosslfactories.c zlib/CMakeLists.txt libmysql/libmysql_versions.ld.in mysql-test/suite/roles/grant_empty.result mysql-test/suite/roles/grant_empty.test pending merges: Olivier Bertrand 2014-04-22 - FIX a bug causing libxml2 not retrieving expanded multiple co...
12 years ago
- Commit merged files removed: libmysql/libmysql.ver.in libmysql/rpm_support.cc mysql-test/r/backup.result mysql-test/r/binlog_tx_isolation.result mysql-test/r/isam.result mysql-test/r/rpl_colSize.result mysql-test/r/rpl_extraColmaster_innodb.result mysql-test/r/rpl_extraColmaster_myisam.result mysql-test/r/slave-running.result mysql-test/r/slave-stopped.result storage/test_sql_discovery/mysql-test/archive/discover.rdiff storage/test_sql_discovery/mysql-test/main/r/plugin.rdiff storage/tokudb/ft-index/portability/tests/test-fair-rwlock.cc storage/tokudb/ft-index/portability/toku_fair_rwlock.cc storage/tokudb/ft-index/portability/toku_fair_rwlock.h storage/tokudb/scripts/run.tests.7.0.3.bash added: cmake/CPackRPM.cmake cmake/pcre.cmake mysql-test/include/have_metadata_lock_info.inc mysql-test/include/have_metadata_lock_info.opt mysql-test/include/have_rbr_triggers.inc mysql-test/include/have_unix_socket.inc mysql-test/include/save_master_gtid.inc mysql-test/include/sync_with_master_gtid.inc mysql-test/r/create_or_replace.result mysql-test/r/create_or_replace2.result mysql-test/r/failed_auth_unixsocket.result mysql-test/r/locked_temporary-5955.result mysql-test/r/lowercase_table5.result mysql-test/r/selectivity_no_engine.result mysql-test/r/stack-crash.result mysql-test/r/udf_debug_sync.result mysql-test/r/union_crash-714.result mysql-test/std_data/mariadb-5.5-binlog.000001 mysql-test/suite/archive/archive_no_symlink-master.opt mysql-test/suite/archive/archive_no_symlink.result mysql-test/suite/archive/archive_no_symlink.test mysql-test/suite/archive/archive_symlink.result mysql-test/suite/archive/archive_symlink.test mysql-test/suite/federated/federated_maybe_16324629.result mysql-test/suite/federated/federated_maybe_16324629.test mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result mysql-test/suite/innodb/r/row_lock.result mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test mysql-test/suite/innodb/t/row_lock.test mysql-test/suite/innodb_zip/ mysql-test/suite/innodb_zip/r/ mysql-test/suite/innodb_zip/t/ mysql-test/suite/multi_source/gtid_ignore_duplicates.cnf mysql-test/suite/multi_source/gtid_ignore_duplicates.result mysql-test/suite/multi_source/gtid_ignore_duplicates.test mysql-test/suite/plugins/r/server_audit.result mysql-test/suite/plugins/t/server_audit.opt mysql-test/suite/plugins/t/server_audit.test mysql-test/suite/roles/grant-5771.result mysql-test/suite/roles/grant-5771.test mysql-test/suite/rpl/r/create_or_replace_mix.result mysql-test/suite/rpl/r/create_or_replace_row.result mysql-test/suite/rpl/r/create_or_replace_statement.result mysql-test/suite/rpl/r/rpl_old_master.result mysql-test/suite/rpl/r/rpl_parallel2.result mysql-test/suite/rpl/r/rpl_row_triggers.result mysql-test/suite/rpl/r/rpl_row_triggers_sbr.result mysql-test/suite/rpl/t/create_or_replace.inc mysql-test/suite/rpl/t/create_or_replace_mix.cnf mysql-test/suite/rpl/t/create_or_replace_mix.test mysql-test/suite/rpl/t/create_or_replace_row.cnf mysql-test/suite/rpl/t/create_or_replace_row.test mysql-test/suite/rpl/t/create_or_replace_statement.cnf mysql-test/suite/rpl/t/create_or_replace_statement.test mysql-test/suite/rpl/t/rpl_000011-slave.opt mysql-test/suite/rpl/t/rpl_old_master.test mysql-test/suite/rpl/t/rpl_parallel2.test mysql-test/suite/rpl/t/rpl_row_triggers.test mysql-test/suite/rpl/t/rpl_row_triggers_sbr.test mysql-test/suite/sys_vars/r/gtid_ignore_duplicates_basic.result mysql-test/suite/sys_vars/r/last_gtid_basic.result mysql-test/suite/sys_vars/r/slave_ddl_exec_mode_basic.result mysql-test/suite/sys_vars/r/slave_domain_parallel_threads_basic.result mysql-test/suite/sys_vars/r/version_malloc_library_basic.result mysql-test/suite/sys_vars/t/gtid_ignore_duplicates_basic.test mysql-test/suite/sys_vars/t/last_gtid_basic.test mysql-test/suite/sys_vars/t/slave_ddl_exec_mode_basic.test mysql-test/suite/sys_vars/t/slave_domain_parallel_threads_basic.test mysql-test/suite/sys_vars/t/version_malloc_library_basic.test mysql-test/t/create_or_replace-master.opt mysql-test/t/create_or_replace.test mysql-test/t/create_or_replace2.test mysql-test/t/failed_auth_unixsocket.test mysql-test/t/locked_temporary-5955.test mysql-test/t/lowercase_table5.test mysql-test/t/selectivity_no_engine.test mysql-test/t/stack-crash.test mysql-test/t/udf_debug_sync.test mysql-test/t/union_crash-714.test packaging/rpm-oel/ packaging/rpm-oel/CMakeLists.txt packaging/rpm-oel/filter-provides.sh packaging/rpm-oel/filter-requires.sh packaging/rpm-oel/my.cnf packaging/rpm-oel/my_config.h packaging/rpm-oel/mysql-embedded-check.c packaging/rpm-oel/mysql-systemd-start packaging/rpm-oel/mysql.conf packaging/rpm-oel/mysql.init packaging/rpm-oel/mysql.spec.in packaging/rpm-oel/mysql_config.sh packaging/rpm-oel/mysqld.service plugin/server_audit/ plugin/server_audit/CMakeLists.txt plugin/server_audit/COPYING plugin/server_audit/server_audit.c storage/connect/mysql-test/connect/r/xml_mult.result storage/connect/mysql-test/connect/std_data/bookstore.xml storage/connect/mysql-test/connect/t/xml_mult.test storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test storage/sphinx/mysql-test/sphinx/union-5539.result storage/sphinx/mysql-test/sphinx/union-5539.test storage/tokudb/ft-index/ft/tests/mempool-115.cc storage/tokudb/ft-index/locktree/tests/lock_request_killed.cc storage/tokudb/ft-index/locktree/tests/lock_request_not_killed.cc storage/tokudb/ft-index/locktree/tests/lock_request_wait_time_callback.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_1big7lt_1small.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_2big_1lt.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_2big_2lt.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_impossible.cc storage/tokudb/ft-index/src/tests/env_nproc.cc storage/tokudb/ft-index/src/tests/get_last_key.cc storage/tokudb/ft-index/src/tests/locktree_escalation_stalls.cc storage/tokudb/ft-index/src/tests/recover-child-rollback.cc storage/tokudb/ft-index/src/tests/test_bad_implicit_promotion.cc storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc storage/tokudb/ft-index/src/tests/test_insert_many_gc.cc storage/tokudb/ft-index/util/context.cc storage/tokudb/ft-index/util/context.h storage/tokudb/ft-index/util/scoped_malloc.cc storage/tokudb/ft-index/util/scoped_malloc.h storage/tokudb/ft-index/util/tests/test-frwlock-fair-writers.cc storage/tokudb/ft-index/util/tests/test-rwlock-unfair-writers.cc storage/tokudb/mysql-test/tokudb_alter_table/r/drop_pk_with_prefix.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_drop_char0_t6.result storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result storage/tokudb/mysql-test/tokudb_alter_table/t/drop_pk_with_prefix.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_drop_char0_t6.test storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test storage/tokudb/mysql-test/tokudb_bugs/include/not_5_5.inc storage/tokudb/mysql-test/tokudb_bugs/r/alter_external_lock_assert.result storage/tokudb/mysql-test/tokudb_bugs/r/alter_part_tokudb_bug_155.result storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result storage/tokudb/mysql-test/tokudb_bugs/r/commit_index_end_1.result storage/tokudb/mysql-test/tokudb_bugs/r/commit_index_end_2.result storage/tokudb/mysql-test/tokudb_bugs/r/leak172.result storage/tokudb/mysql-test/tokudb_bugs/r/optimize_temp_table_tokudb.result storage/tokudb/mysql-test/tokudb_bugs/r/subselect_index_next_same_bug_157.result storage/tokudb/mysql-test/tokudb_bugs/std_data/ storage/tokudb/mysql-test/tokudb_bugs/std_data/leak172_t1.data storage/tokudb/mysql-test/tokudb_bugs/std_data/leak172_t2.data storage/tokudb/mysql-test/tokudb_bugs/t/alter_external_lock_assert.test storage/tokudb/mysql-test/tokudb_bugs/t/alter_part_tokudb_bug_155.test storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test storage/tokudb/mysql-test/tokudb_bugs/t/commit_index_end_1.test storage/tokudb/mysql-test/tokudb_bugs/t/commit_index_end_2.test storage/tokudb/mysql-test/tokudb_bugs/t/leak172.test storage/tokudb/mysql-test/tokudb_bugs/t/optimize_temp_table_tokudb.test storage/tokudb/mysql-test/tokudb_bugs/t/subselect_index_next_same_bug_157.test storage/tokudb/mysql-test/tokudb_mariadb/r/create_or_replace.result storage/tokudb/mysql-test/tokudb_mariadb/r/discover_names.result storage/tokudb/mysql-test/tokudb_mariadb/t/create_or_replace.test storage/tokudb/mysql-test/tokudb_mariadb/t/discover_names.test renamed: libmysql/libmysql_rpm_version.in => libmysql/libmysql_versions.ld.in mysql-test/suite/innodb/r/innodb-create-options.result => mysql-test/suite/innodb_zip/r/innodb-create-options.result mysql-test/suite/innodb/r/innodb-zip.result => mysql-test/suite/innodb_zip/r/innodb-zip.result mysql-test/suite/innodb/r/innodb_bug36169.result => mysql-test/suite/innodb_zip/r/innodb_bug36169.result mysql-test/suite/innodb/r/innodb_bug36172.result => mysql-test/suite/innodb_zip/r/innodb_bug36172.result mysql-test/suite/innodb/r/innodb_bug52745.result => mysql-test/suite/innodb_zip/r/innodb_bug52745.result mysql-test/suite/innodb/r/innodb_bug53591.result => mysql-test/suite/innodb_zip/r/innodb_bug53591.result mysql-test/suite/innodb/r/innodb_bug56680.result => mysql-test/suite/innodb_zip/r/innodb_bug56680.result mysql-test/suite/innodb/r/innodb_cmp_drop_table.result => mysql-test/suite/innodb_zip/r/innodb_cmp_drop_table.result mysql-test/suite/innodb/r/innodb_index_large_prefix.result => mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result => mysql-test/suite/innodb_zip/r/innodb_prefix_index_liftedlimit.result mysql-test/suite/innodb/t/innodb-create-options.test => mysql-test/suite/innodb_zip/t/innodb-create-options.test mysql-test/suite/innodb/t/innodb-zip.test => mysql-test/suite/innodb_zip/t/innodb-zip.test mysql-test/suite/innodb/t/innodb_bug36169.test => mysql-test/suite/innodb_zip/t/innodb_bug36169.test mysql-test/suite/innodb/t/innodb_bug36172.test => mysql-test/suite/innodb_zip/t/innodb_bug36172.test mysql-test/suite/innodb/t/innodb_bug52745.test => mysql-test/suite/innodb_zip/t/innodb_bug52745.test mysql-test/suite/innodb/t/innodb_bug53591.test => mysql-test/suite/innodb_zip/t/innodb_bug53591.test mysql-test/suite/innodb/t/innodb_bug56680.test => mysql-test/suite/innodb_zip/t/innodb_bug56680.test mysql-test/suite/innodb/t/innodb_cmp_drop_table-master.opt => mysql-test/suite/innodb_zip/t/innodb_cmp_drop_table-master.opt mysql-test/suite/innodb/t/innodb_cmp_drop_table.test => mysql-test/suite/innodb_zip/t/innodb_cmp_drop_table.test mysql-test/suite/innodb/t/innodb_index_large_prefix.test => mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test => mysql-test/suite/innodb_zip/t/innodb_prefix_index_liftedlimit.test mysql-test/suite/roles/show_grants_anon-5238.result => mysql-test/suite/roles/grant_empty.result mysql-test/suite/roles/show_grants_anon-5238.test => mysql-test/suite/roles/grant_empty.test modified: .bzrignore CMakeLists.txt CREDITS VERSION client/CMakeLists.txt client/mysql.cc client/mysql_plugin.c client/mysqlcheck.c client/mysqldump.c client/mysqltest.cc cmake/cpack_rpm.cmake cmake/install_macros.cmake cmake/jemalloc.cmake cmake/mysql_add_executable.cmake cmake/plugin.cmake cmake/versioninfo.rc.in cmake/zlib.cmake config.h.cmake dbug/dbug.c debian/dist/Debian/mariadb-server-10.0.files.in debian/dist/Ubuntu/mariadb-server-10.0.files.in debian/po/it.po debian/po/sv.po extra/jemalloc/ChangeLog extra/jemalloc/include/jemalloc/internal/arena.h extra/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in extra/jemalloc/include/jemalloc/internal/private_namespace.h extra/jemalloc/include/jemalloc/internal/tcache.h extra/jemalloc/src/arena.c extra/replace.c extra/yassl/CMakeLists.txt extra/yassl/include/yassl_error.hpp extra/yassl/include/yassl_types.hpp extra/yassl/src/handshake.cpp extra/yassl/src/yassl_error.cpp extra/yassl/src/yassl_imp.cpp extra/yassl/taocrypt/CMakeLists.txt include/atomic/gcc_builtins.h include/hash.h include/heap.h include/ma_dyncol.h include/maria.h include/my_bitmap.h include/my_getopt.h include/my_global.h include/my_net.h include/my_pthread.h include/my_sys.h include/my_time.h include/my_valgrind.h include/myisam.h include/mysql/plugin.h include/mysql/plugin_audit.h include/mysql/plugin_audit.h.pp include/mysql/plugin_auth.h.pp include/mysql/plugin_ftparser.h.pp include/mysql/psi/mysql_thread.h include/queues.h include/welcome_copyright_notice.h libmysql/CMakeLists.txt libmysql/conf_to_src.c libmysql/libmysql.c libmysqld/CMakeLists.txt libmysqld/examples/CMakeLists.txt libmysqld/lib_sql.cc mysql-test/CMakeLists.txt mysql-test/collections/default.weekly mysql-test/extra/rpl_tests/rpl_ddl.test mysql-test/extra/rpl_tests/rpl_log.test mysql-test/extra/rpl_tests/rpl_stop_slave.test mysql-test/include/commit.inc mysql-test/include/ctype_filesort2.inc mysql-test/include/have_innodb.combinations mysql-test/include/index_merge_ror_cpk.inc mysql-test/include/mtr_check.sql mysql-test/include/type_hrtime.inc mysql-test/lib/My/Config.pm mysql-test/lib/My/SafeProcess/safe_process.cc mysql-test/lib/My/SysInfo.pm mysql-test/lib/mtr_cases.pm mysql-test/mysql-test-run.pl mysql-test/r/alter_table.result mysql-test/r/blackhole.result mysql-test/r/cast.result mysql-test/r/comment_column.result mysql-test/r/comments.result mysql-test/r/commit_1innodb.result mysql-test/r/contributors.result mysql-test/r/create-big.result mysql-test/r/create.result mysql-test/r/ctype_binary.result mysql-test/r/ctype_cp1250_ch.result mysql-test/r/ctype_cp1251.result mysql-test/r/ctype_latin1.result mysql-test/r/ctype_ucs.result mysql-test/r/ctype_utf16.result mysql-test/r/ctype_utf16le.result mysql-test/r/ctype_utf32.result mysql-test/r/ctype_utf8.result mysql-test/r/ctype_utf8mb4.result mysql-test/r/derived_view.result mysql-test/r/distinct.result mysql-test/r/drop.result mysql-test/r/dyncol.result mysql-test/r/error_simulation.result mysql-test/r/events_trans.result mysql-test/r/func_compress.result mysql-test/r/func_group.result mysql-test/r/func_math.result mysql-test/r/func_misc.result mysql-test/r/func_regexp.result mysql-test/r/func_str.result mysql-test/r/func_time.result mysql-test/r/gis-precise.result mysql-test/r/gis.result mysql-test/r/index_intersect_innodb.result mysql-test/r/index_merge_innodb.result mysql-test/r/index_merge_myisam.result mysql-test/r/information_schema-big.result mysql-test/r/information_schema.result mysql-test/r/information_schema_all_engines.result mysql-test/r/innodb_ext_key.result mysql-test/r/join.result mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/key.result mysql-test/r/lowercase_fs_off.result mysql-test/r/lowercase_table.result mysql-test/r/lowercase_table2.result mysql-test/r/lowercase_view.result mysql-test/r/merge.result mysql-test/r/multi_update.result mysql-test/r/myisampack.result mysql-test/r/mysqld--help.result mysql-test/r/mysqldump.result mysql-test/r/not_embedded_server.result mysql-test/r/not_partition.result mysql-test/r/old-mode.result mysql-test/r/partition.result mysql-test/r/partition_debug_sync.result mysql-test/r/partition_disabled.result mysql-test/r/partition_error.result mysql-test/r/partition_exchange.result mysql-test/r/partition_innodb.result mysql-test/r/partition_order.result mysql-test/r/partition_windows.result mysql-test/r/plugin.result mysql-test/r/plugin_auth_qa_3.result mysql-test/r/ps.result mysql-test/r/ps_ddl.result mysql-test/r/range.result mysql-test/r/range_mrr_icp.result mysql-test/r/range_vs_index_merge.result mysql-test/r/range_vs_index_merge_innodb.result mysql-test/r/rpl_mysqldump_slave.result mysql-test/r/select.result mysql-test/r/select_found.result mysql-test/r/select_jcl6.result mysql-test/r/select_pkeycache.result mysql-test/r/selectivity.result mysql-test/r/selectivity_innodb.result mysql-test/r/show_check.result mysql-test/r/sp-security.result mysql-test/r/ssl.result mysql-test/r/stat_tables.result mysql-test/r/stat_tables_innodb.result mysql-test/r/stat_tables_par.result mysql-test/r/stat_tables_par_innodb.result mysql-test/r/stat_tables_partition.result mysql-test/r/stat_tables_rbr.result mysql-test/r/stat_tables_repl.result mysql-test/r/statistics.result mysql-test/r/subselect.result mysql-test/r/subselect2.result mysql-test/r/subselect4.result mysql-test/r/subselect_exists2in.result mysql-test/r/subselect_exists_to_in.result mysql-test/r/subselect_extra.result mysql-test/r/subselect_innodb.result mysql-test/r/subselect_mat.result mysql-test/r/subselect_no_mat.result mysql-test/r/subselect_no_opts.result mysql-test/r/subselect_no_scache.result mysql-test/r/subselect_no_semijoin.result mysql-test/r/subselect_sj.result mysql-test/r/subselect_sj2.result mysql-test/r/subselect_sj2_jcl6.result mysql-test/r/subselect_sj2_mat.result mysql-test/r/subselect_sj_jcl6.result mysql-test/r/subselect_sj_mat.result mysql-test/r/temporal_literal.result mysql-test/r/timezone2.result mysql-test/r/trigger.result mysql-test/r/type_datetime.result mysql-test/r/type_datetime_hires.result mysql-test/r/type_float.result mysql-test/r/type_time.result mysql-test/r/type_time_hires.result mysql-test/r/type_timestamp_hires.result mysql-test/r/update.result mysql-test/r/variables.result mysql-test/r/view.result mysql-test/r/view_grant.result mysql-test/r/xml.result mysql-test/std_data/cacert.pem mysql-test/std_data/client-cert.pem mysql-test/std_data/client-key.pem mysql-test/std_data/server-cert.pem mysql-test/std_data/server-key.pem mysql-test/std_data/server8k-cert.pem mysql-test/std_data/server8k-key.pem mysql-test/suite.pm mysql-test/suite/archive/discover.result mysql-test/suite/archive/discover.test mysql-test/suite/binlog/r/binlog_checkpoint.result mysql-test/suite/binlog/t/binlog_checkpoint.test mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test mysql-test/suite/csv/csv.result mysql-test/suite/csv/csv.test mysql-test/suite/federated/federated.test mysql-test/suite/funcs_1/r/innodb_func_view.result mysql-test/suite/funcs_1/r/innodb_views.result mysql-test/suite/funcs_1/r/is_columns_is.result mysql-test/suite/funcs_1/r/memory_func_view.result mysql-test/suite/funcs_1/r/memory_views.result mysql-test/suite/funcs_1/r/myisam_func_view.result mysql-test/suite/funcs_1/r/myisam_views-big.result mysql-test/suite/funcs_1/views/func_view.inc mysql-test/suite/heap/heap.result mysql-test/suite/heap/heap.test mysql-test/suite/innodb/r/innodb_bug54044.result mysql-test/suite/innodb/r/innodb_information_schema.result mysql-test/suite/innodb/r/innodb_mysql.result mysql-test/suite/innodb/t/innodb_bug54044.test mysql-test/suite/innodb/t/innodb_bug60196-master.opt mysql-test/suite/innodb/t/innodb_mysql.test mysql-test/suite/maria/icp.result mysql-test/suite/maria/maria-preload.result mysql-test/suite/maria/maria.result mysql-test/suite/maria/maria.test mysql-test/suite/multi_source/skip_counter.result mysql-test/suite/multi_source/skip_counter.test mysql-test/suite/optimizer_unfixed_bugs/t/bug42991.test mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result mysql-test/suite/parts/r/partition_mgm_lc2_memory.result mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result mysql-test/suite/perfschema/r/dml_setup_instruments.result mysql-test/suite/perfschema/r/func_mutex.result mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result mysql-test/suite/perfschema/r/server_init.result mysql-test/suite/perfschema/t/func_mutex.test mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test mysql-test/suite/perfschema/t/hostcache_ipv6_blocked.test mysql-test/suite/perfschema/t/server_init.test mysql-test/suite/plugins/t/unix_socket.test mysql-test/suite/roles/recursive_dbug.result mysql-test/suite/rpl/disabled.def mysql-test/suite/rpl/r/rpl_000011.result mysql-test/suite/rpl/r/rpl_ddl.result mysql-test/suite/rpl/r/rpl_drop_view.result mysql-test/suite/rpl/r/rpl_gtid_basic.result mysql-test/suite/rpl/r/rpl_gtid_crash.result mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result mysql-test/suite/rpl/r/rpl_gtid_ignored.result mysql-test/suite/rpl/r/rpl_gtid_nobinlog.result mysql-test/suite/rpl/r/rpl_gtid_startpos.result mysql-test/suite/rpl/r/rpl_gtid_stop_start.result mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result mysql-test/suite/rpl/r/rpl_mdev382.result mysql-test/suite/rpl/r/rpl_parallel.result mysql-test/suite/rpl/r/rpl_parallel_no_log_slave_updates.result mysql-test/suite/rpl/r/rpl_row_create_table.result mysql-test/suite/rpl/r/rpl_row_log.result mysql-test/suite/rpl/r/rpl_row_log_innodb.result mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_stm_log.result mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result mysql-test/suite/rpl/t/rpl_000011.test mysql-test/suite/rpl/t/rpl_bug37426.test mysql-test/suite/rpl/t/rpl_connection.test mysql-test/suite/rpl/t/rpl_create_if_not_exists.test mysql-test/suite/rpl/t/rpl_drop_db.test mysql-test/suite/rpl/t/rpl_gtid_basic.test mysql-test/suite/rpl/t/rpl_gtid_crash.test mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test mysql-test/suite/rpl/t/rpl_gtid_ignored.test mysql-test/suite/rpl/t/rpl_gtid_mdev4485.test mysql-test/suite/rpl/t/rpl_gtid_nobinlog.test mysql-test/suite/rpl/t/rpl_gtid_startpos.test mysql-test/suite/rpl/t/rpl_gtid_stop_start.test mysql-test/suite/rpl/t/rpl_heartbeat_basic.test mysql-test/suite/rpl/t/rpl_known_bugs_detection.test mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test mysql-test/suite/rpl/t/rpl_mix_found_rows.test mysql-test/suite/rpl/t/rpl_parallel.test mysql-test/suite/rpl/t/rpl_parallel_no_log_slave_updates.test mysql-test/suite/rpl/t/rpl_row_create_table.test mysql-test/suite/rpl/t/rpl_row_find_row_debug.test mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test mysql-test/suite/rpl/t/rpl_row_utf32.test mysql-test/suite/rpl/t/rpl_stm_log.test mysql-test/suite/rpl/t/rpl_stm_sql_mode.test mysql-test/suite/rpl/t/rpl_stm_stop_middle_group.test mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test mysql-test/suite/sys_vars/r/back_log_basic.result mysql-test/suite/sys_vars/r/engine_condition_pushdown_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result mysql-test/suite/sys_vars/r/old_mode_basic.result mysql-test/suite/sys_vars/r/optimizer_switch_basic.result mysql-test/suite/sys_vars/r/progress_report_time_basic.result mysql-test/suite/sys_vars/t/old_mode_basic.test mysql-test/suite/vcol/r/vcol_misc.result mysql-test/suite/vcol/t/vcol_misc.test mysql-test/t/aborted_clients.test mysql-test/t/alter_table.test mysql-test/t/auth_rpl.test mysql-test/t/blackhole.test mysql-test/t/cast.test mysql-test/t/comment_column.test mysql-test/t/comments.test mysql-test/t/create-big.test mysql-test/t/create.test mysql-test/t/derived_view.test mysql-test/t/distinct.test mysql-test/t/drop.test mysql-test/t/dyncol.test mysql-test/t/error_simulation.test mysql-test/t/events_trans.test mysql-test/t/func_compress.test mysql-test/t/func_gconcat.test mysql-test/t/func_group.test mysql-test/t/func_math.test mysql-test/t/func_misc.test mysql-test/t/func_regexp.test mysql-test/t/func_time.test mysql-test/t/gis-precise.test mysql-test/t/gis.test mysql-test/t/information_schema.test mysql-test/t/join.test mysql-test/t/key.test mysql-test/t/lowercase_table.test mysql-test/t/lowercase_table2.test mysql-test/t/lowercase_table4-master.opt mysql-test/t/lowercase_table4.test mysql-test/t/multi_update.test mysql-test/t/myisampack.test mysql-test/t/mysqld--help.test mysql-test/t/mysqldump.test mysql-test/t/not_embedded_server.test mysql-test/t/not_partition.test mysql-test/t/old-mode.test mysql-test/t/partition.test mysql-test/t/partition_debug_sync.test mysql-test/t/partition_disabled.test mysql-test/t/partition_error.test mysql-test/t/partition_exchange.test mysql-test/t/partition_innodb.test mysql-test/t/plugin.test mysql-test/t/ps.test mysql-test/t/ps_ddl.test mysql-test/t/range.test mysql-test/t/range_vs_index_merge.test mysql-test/t/rpl_mysqldump_slave.test mysql-test/t/select.test mysql-test/t/select_found.test mysql-test/t/selectivity.test mysql-test/t/show_check.test mysql-test/t/sp-security.test mysql-test/t/stat_tables_par.test mysql-test/t/statistics.test mysql-test/t/subselect4.test mysql-test/t/subselect_exists2in.test mysql-test/t/subselect_innodb.test mysql-test/t/subselect_sj.test mysql-test/t/subselect_sj2.test mysql-test/t/subselect_sj_mat.test mysql-test/t/temporal_literal.test mysql-test/t/timezone2.test mysql-test/t/type_float.test mysql-test/t/type_time.test mysql-test/t/update.test mysql-test/t/view.test mysql-test/t/view_grant.test mysql-test/t/xml.test mysql-test/valgrind.supp mysys/array.c mysys/file_logger.c mysys/hash.c mysys/ma_dyncol.c mysys/md5.c.THIS mysys/mf_iocache.c mysys/mf_keycache.c mysys/mf_qsort.c mysys/mf_radix.c mysys/mf_same.c mysys/mf_soundex.c mysys/mf_tempdir.c mysys/mf_tempfile.c mysys/mf_wcomp.c mysys/mulalloc.c mysys/my_access.c mysys/my_aes.c.THIS mysys/my_alloc.c mysys/my_bitmap.c mysys/my_conio.c mysys/my_copy.c mysys/my_crc32.c mysys/my_delete.c mysys/my_div.c mysys/my_error.c mysys/my_fopen.c mysys/my_gethwaddr.c mysys/my_getpagesize.c mysys/my_getwd.c mysys/my_libwrap.c mysys/my_lockmem.c mysys/my_malloc.c mysys/my_memmem.c mysys/my_mkdir.c mysys/my_once.c mysys/my_rename.c mysys/my_symlink2.c mysys/my_wincond.c mysys/my_winthread.c mysys/safemalloc.c mysys/test_dir.c mysys/test_xml.c mysys/thr_alarm.c mysys/thr_mutex.c mysys/tree.c packaging/WiX/CPackWixConfig.cmake packaging/WiX/custom_ui.wxs packaging/WiX/mysql_server.wxs.in plugin/auth_pam/auth_pam.c plugin/auth_socket/auth_socket.c plugin/daemon_example/daemon_example.cc plugin/feedback/CMakeLists.txt plugin/feedback/feedback.cc plugin/handler_socket/libhsclient/auto_file.hpp plugin/locale_info/locale_info.cc plugin/metadata_lock_info/metadata_lock_info.cc plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/user_lock.result plugin/qc_info/CMakeLists.txt plugin/qc_info/qc_info.cc plugin/query_response_time/mysql-test/query_response_time/basic.result plugin/query_response_time/plugin.cc plugin/sql_errlog/sql_errlog.c plugin/win_auth_client/CMakeLists.txt scripts/CMakeLists.txt scripts/mysql_config.pl.in scripts/mysql_config.sh scripts/mysql_install_db.pl.in scripts/mysql_install_db.sh scripts/mysql_system_tables.sql scripts/mysql_system_tables_fix.sql scripts/mysqlaccess.sh sql-bench/innotest1.sh sql-bench/innotest1a.sh sql-bench/innotest1b.sh sql-bench/innotest2.sh sql-bench/innotest2a.sh sql-bench/innotest2b.sh sql-bench/limits/access_odbc.cfg sql-common/client.c sql-common/my_time.c sql-common/mysql_async.c sql-common/pack.c sql/CMakeLists.txt sql/authors.h sql/contributors.h sql/create_options.cc sql/custom_conf.h sql/event_db_repository.cc sql/event_scheduler.cc sql/event_scheduler.h sql/events.cc sql/events.h sql/field.cc sql/field.h sql/field_conv.cc sql/filesort.cc sql/filesort_utils.h sql/ha_ndbcluster_binlog.cc sql/ha_ndbcluster_cond.cc sql/ha_ndbcluster_cond.h sql/ha_ndbcluster_tables.h sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/hash_filo.h sql/hostname.cc sql/item.cc sql/item.h sql/item_cmpfunc.cc sql/item_cmpfunc.h sql/item_create.cc sql/item_func.cc sql/item_func.h sql/item_geofunc.cc sql/item_strfunc.cc sql/item_strfunc.h sql/item_subselect.cc sql/item_subselect.h sql/item_sum.cc sql/item_sum.h sql/item_timefunc.cc sql/item_xmlfunc.cc sql/item_xmlfunc.h sql/key.cc sql/key.h sql/lex_symbol.h sql/lock.cc sql/log.cc sql/log.h sql/log_event.cc sql/log_event.h sql/log_event_old.cc sql/log_event_old.h sql/mdl.cc sql/mdl.h sql/mem_root_array.h sql/message.h sql/multi_range_read.cc sql/my_apc.h sql/my_decimal.h sql/mysqld.cc sql/mysqld.h sql/net_serv.cc sql/opt_index_cond_pushdown.cc sql/opt_range.cc sql/opt_range.h sql/opt_subselect.cc sql/opt_subselect.h sql/opt_sum.cc sql/opt_table_elimination.cc sql/partition_element.h sql/partition_info.cc sql/partition_info.h sql/password.c sql/rpl_filter.cc sql/rpl_gtid.cc sql/rpl_gtid.h sql/rpl_injector.h sql/rpl_mi.cc sql/rpl_parallel.cc sql/rpl_parallel.h sql/rpl_record.cc sql/rpl_record.h sql/rpl_rli.cc sql/rpl_rli.h sql/rpl_utility.cc sql/rpl_utility.h sql/scheduler.cc sql/scheduler.h sql/set_var.cc sql/set_var.h sql/share/charsets/Index.xml sql/share/charsets/armscii8.xml sql/share/charsets/ascii.xml sql/share/charsets/cp1250.xml sql/share/charsets/cp852.xml sql/share/charsets/hebrew.xml sql/share/charsets/latin1.xml sql/share/charsets/latin2.xml sql/share/charsets/latin5.xml sql/share/errmsg-utf8.txt sql/signal_handler.cc sql/slave.cc sql/sp_head.cc sql/sp_head.h sql/sp_rcontext.h sql/spatial.cc sql/sql_acl.cc sql/sql_admin.cc sql/sql_admin.h sql/sql_alter.cc sql/sql_analyse.cc sql/sql_analyse.h sql/sql_audit.cc sql/sql_audit.h sql/sql_base.cc sql/sql_base.h sql/sql_binlog.cc sql/sql_bitmap.h sql/sql_cache.cc sql/sql_class.cc sql/sql_class.h sql/sql_connect.cc sql/sql_db.cc sql/sql_delete.cc sql/sql_derived.cc sql/sql_error.cc sql/sql_handler.cc sql/sql_help.cc sql/sql_insert.cc sql/sql_insert.h sql/sql_join_cache.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_lifo_buffer.h sql/sql_list.h sql/sql_load.cc sql/sql_manager.cc sql/sql_parse.cc sql/sql_parse.h sql/sql_partition.cc sql/sql_partition_admin.cc sql/sql_plugin.cc sql/sql_prepare.cc sql/sql_prepare.h sql/sql_priv.h sql/sql_rename.cc sql/sql_repl.cc sql/sql_repl.h sql/sql_select.cc sql/sql_select.h sql/sql_servers.cc sql/sql_show.cc sql/sql_show.h sql/sql_statistics.cc sql/sql_statistics.h sql/sql_string.cc sql/sql_string.h sql/sql_table.cc sql/sql_table.h sql/sql_test.cc sql/sql_time.cc sql/sql_time.h sql/sql_trigger.cc sql/sql_truncate.cc sql/sql_udf.cc sql/sql_union.cc sql/sql_update.cc sql/sql_view.cc sql/sql_yacc.yy sql/strfunc.cc sql/sys_vars.cc sql/sys_vars.h sql/table.cc sql/table.h sql/table_cache.cc sql/table_cache.h sql/threadpool_unix.cc sql/transaction.cc sql/transaction.h sql/tztime.cc sql/uniques.cc sql/unireg.cc storage/archive/ha_archive.cc storage/cassandra/ha_cassandra.cc storage/connect/csort.cpp storage/connect/domdoc.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/inihandl.c storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/os.h storage/connect/osutil.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp storage/example/ha_example.cc storage/example/ha_example.h storage/federated/ha_federated.cc storage/federated/ha_federated.h storage/federatedx/CMakeLists.txt storage/federatedx/federatedx_io_mysql.cc storage/federatedx/ha_federatedx.cc storage/heap/_check.c storage/heap/_rectest.c storage/heap/ha_heap.cc storage/heap/ha_heap.h storage/heap/hp_create.c storage/heap/hp_delete.c storage/heap/hp_extra.c storage/heap/hp_hash.c storage/heap/hp_open.c storage/heap/hp_rfirst.c storage/heap/hp_rlast.c storage/heap/hp_rnext.c storage/heap/hp_rprev.c storage/heap/hp_rrnd.c storage/heap/hp_rsame.c storage/heap/hp_scan.c storage/heap/hp_update.c storage/heap/hp_write.c storage/innobase/CMakeLists.txt storage/innobase/api/api0api.cc storage/innobase/btr/btr0btr.cc storage/innobase/btr/btr0cur.cc storage/innobase/btr/btr0pcur.cc storage/innobase/compile-innodb* storage/innobase/dict/dict0crea.cc storage/innobase/dict/dict0dict.cc storage/innobase/dict/dict0load.cc storage/innobase/dict/dict0mem.cc storage/innobase/dict/dict0stats.cc storage/innobase/fil/fil0fil.cc storage/innobase/fts/fts0config.cc storage/innobase/fts/fts0fts.cc storage/innobase/fts/fts0opt.cc storage/innobase/fts/fts0que.cc storage/innobase/handler/ha_innodb.cc storage/innobase/handler/handler0alter.cc storage/innobase/handler/i_s.cc storage/innobase/ibuf/ibuf0ibuf.cc storage/innobase/include/api0api.h storage/innobase/include/btr0cur.h storage/innobase/include/btr0pcur.h storage/innobase/include/btr0pcur.ic storage/innobase/include/btr0sea.h storage/innobase/include/db0err.h storage/innobase/include/dict0stats.ic storage/innobase/include/dict0types.h storage/innobase/include/fts0fts.h storage/innobase/include/fts0types.h storage/innobase/include/ibuf0ibuf.h storage/innobase/include/log0log.h storage/innobase/include/mtr0mtr.h storage/innobase/include/mtr0mtr.ic storage/innobase/include/os0file.h storage/innobase/include/row0ftsort.h storage/innobase/include/srv0conc.h storage/innobase/include/srv0mon.h storage/innobase/include/srv0mon.ic storage/innobase/include/sync0arr.h storage/innobase/include/sync0arr.ic storage/innobase/include/sync0sync.h storage/innobase/include/trx0trx.h storage/innobase/include/univ.i storage/innobase/include/ut0bh.h storage/innobase/include/ut0bh.ic storage/innobase/log/log0log.cc storage/innobase/mtr/mtr0mtr.cc storage/innobase/os/os0file.cc storage/innobase/os/os0thread.cc storage/innobase/pars/make_bison.sh* storage/innobase/pars/make_flex.sh* storage/innobase/row/row0ftsort.cc storage/innobase/row/row0log.cc storage/innobase/row/row0merge.cc storage/innobase/row/row0mysql.cc storage/innobase/row/row0quiesce.cc storage/innobase/row/row0sel.cc storage/innobase/srv/srv0mon.cc storage/innobase/srv/srv0start.cc storage/innobase/sync/sync0arr.cc storage/innobase/sync/sync0rw.cc storage/innobase/sync/sync0sync.cc storage/innobase/trx/trx0purge.cc storage/innobase/trx/trx0sys.cc storage/innobase/trx/trx0trx.cc storage/innobase/ut/ut0ut.cc storage/maria/ha_maria.cc storage/maria/ha_maria.h storage/maria/ma_blockrec.c storage/maria/ma_check.c storage/maria/ma_create.c storage/maria/ma_delete_table.c storage/maria/ma_dynrec.c storage/maria/ma_extra.c storage/maria/ma_ft_boolean_search.c storage/maria/ma_locking.c storage/maria/ma_loghandler.c storage/maria/ma_open.c storage/maria/ma_packrec.c storage/maria/ma_pagecache.c storage/maria/ma_pagecrc.c storage/maria/ma_range.c storage/maria/ma_recovery.c storage/maria/ma_static.c storage/maria/ma_test1.c storage/maria/ma_test2.c storage/maria/ma_test_force_start.pl storage/maria/ma_unique.c storage/maria/maria_chk.c storage/maria/maria_def.h storage/maria/maria_pack.c storage/maria/maria_read_log.c storage/maria/unittest/ma_pagecache_single.c storage/maria/unittest/ma_test_loghandler-t.c storage/maria/unittest/ma_test_loghandler_multigroup-t.c storage/myisam/ft_boolean_search.c storage/myisam/ft_stopwords.c storage/myisam/ftbench/Ecompare.pl storage/myisam/ftbench/Ecreate.pl storage/myisam/ftbench/Ereport.pl storage/myisam/ftbench/ft-test-run.sh storage/myisam/ha_myisam.cc storage/myisam/mi_check.c storage/myisam/mi_checksum.c storage/myisam/mi_create.c storage/myisam/mi_delete.c storage/myisam/mi_delete_table.c storage/myisam/mi_dynrec.c storage/myisam/mi_extra.c storage/myisam/mi_locking.c storage/myisam/mi_open.c storage/myisam/mi_rfirst.c storage/myisam/mi_rlast.c storage/myisam/mi_rrnd.c storage/myisam/mi_rsamepos.c storage/myisam/mi_scan.c storage/myisam/mi_search.c storage/myisam/mi_test1.c storage/myisam/mi_write.c storage/myisam/myisamchk.c storage/myisam/myisampack.c storage/myisam/rt_index.h storage/myisam/rt_key.c storage/myisam/rt_key.h storage/myisam/rt_mbr.c storage/myisam/rt_mbr.h storage/myisam/sp_defs.h storage/myisammrg/myrg_delete.c storage/myisammrg/myrg_locking.c storage/myisammrg/myrg_panic.c storage/myisammrg/myrg_range.c storage/myisammrg/myrg_rfirst.c storage/myisammrg/myrg_rlast.c storage/myisammrg/myrg_rnext.c storage/myisammrg/myrg_rnext_same.c storage/myisammrg/myrg_rprev.c storage/myisammrg/myrg_rrnd.c storage/myisammrg/myrg_rsame.c storage/myisammrg/myrg_update.c storage/myisammrg/myrg_write.c storage/ndb/config/win-includes storage/ndb/config/win-libraries storage/ndb/config/win-name storage/ndb/config/win-sources storage/ndb/include/debugger/DebuggerNames.hpp storage/ndb/include/debugger/EventLogger.hpp storage/ndb/include/debugger/GrepError.hpp storage/ndb/include/debugger/SignalLoggerManager.hpp storage/ndb/include/editline/editline.h storage/ndb/include/kernel/AttributeDescriptor.hpp storage/ndb/include/kernel/AttributeHeader.hpp storage/ndb/include/kernel/AttributeList.hpp storage/ndb/include/kernel/BlockNumbers.h storage/ndb/include/kernel/GlobalSignalNumbers.h storage/ndb/include/kernel/GrepEvent.hpp storage/ndb/include/kernel/Interpreter.hpp storage/ndb/include/kernel/LogLevel.hpp storage/ndb/include/kernel/NodeBitmask.hpp storage/ndb/include/kernel/NodeInfo.hpp storage/ndb/include/kernel/NodeState.hpp storage/ndb/include/kernel/RefConvert.hpp storage/ndb/include/kernel/kernel_types.h storage/ndb/include/kernel/ndb_limits.h storage/ndb/include/kernel/signaldata/AbortAll.hpp storage/ndb/include/kernel/signaldata/AccFrag.hpp storage/ndb/include/kernel/signaldata/AccLock.hpp storage/ndb/include/kernel/signaldata/AccScan.hpp storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp storage/ndb/include/kernel/signaldata/AllocNodeId.hpp storage/ndb/include/kernel/signaldata/AlterIndx.hpp storage/ndb/include/kernel/signaldata/AlterTab.hpp storage/ndb/include/kernel/signaldata/AlterTable.hpp storage/ndb/include/kernel/signaldata/AlterTrig.hpp storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp storage/ndb/include/kernel/signaldata/ApiVersion.hpp storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp storage/ndb/include/kernel/signaldata/AttrInfo.hpp storage/ndb/include/kernel/signaldata/BackupContinueB.hpp storage/ndb/include/kernel/signaldata/BackupImpl.hpp storage/ndb/include/kernel/signaldata/BackupSignalData.hpp storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp storage/ndb/include/kernel/signaldata/BuildIndx.hpp storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp storage/ndb/include/kernel/signaldata/CmInit.hpp storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp storage/ndb/include/kernel/signaldata/ConfigParamId.hpp storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp storage/ndb/include/kernel/signaldata/CopyActive.hpp storage/ndb/include/kernel/signaldata/CopyFrag.hpp storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp storage/ndb/include/kernel/signaldata/CreateEvnt.hpp storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp storage/ndb/include/kernel/signaldata/CreateFrag.hpp storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp storage/ndb/include/kernel/signaldata/CreateIndx.hpp storage/ndb/include/kernel/signaldata/CreateObj.hpp storage/ndb/include/kernel/signaldata/CreateTab.hpp storage/ndb/include/kernel/signaldata/CreateTable.hpp storage/ndb/include/kernel/signaldata/CreateTrig.hpp storage/ndb/include/kernel/signaldata/DiAddTab.hpp storage/ndb/include/kernel/signaldata/DiGetNodes.hpp storage/ndb/include/kernel/signaldata/DictLock.hpp storage/ndb/include/kernel/signaldata/DictObjOp.hpp storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp storage/ndb/include/kernel/signaldata/DictStart.hpp storage/ndb/include/kernel/signaldata/DictTabInfo.hpp storage/ndb/include/kernel/signaldata/DihAddFrag.hpp storage/ndb/include/kernel/signaldata/DihContinueB.hpp storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp storage/ndb/include/kernel/signaldata/DihStartTab.hpp storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp storage/ndb/include/kernel/signaldata/DisconnectRep.hpp storage/ndb/include/kernel/signaldata/DropFilegroup.hpp storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp storage/ndb/include/kernel/signaldata/DropIndx.hpp storage/ndb/include/kernel/signaldata/DropObj.hpp storage/ndb/include/kernel/signaldata/DropTab.hpp storage/ndb/include/kernel/signaldata/DropTabFile.hpp storage/ndb/include/kernel/signaldata/DropTable.hpp storage/ndb/include/kernel/signaldata/DropTrig.hpp storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp storage/ndb/include/kernel/signaldata/EmptyLcp.hpp storage/ndb/include/kernel/signaldata/EndTo.hpp storage/ndb/include/kernel/signaldata/EventReport.hpp storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp storage/ndb/include/kernel/signaldata/ExecFragReq.hpp storage/ndb/include/kernel/signaldata/Extent.hpp storage/ndb/include/kernel/signaldata/FailRep.hpp storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp storage/ndb/include/kernel/signaldata/FsAppendReq.hpp storage/ndb/include/kernel/signaldata/FsCloseReq.hpp storage/ndb/include/kernel/signaldata/FsConf.hpp storage/ndb/include/kernel/signaldata/FsOpenReq.hpp storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp storage/ndb/include/kernel/signaldata/FsRef.hpp storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp storage/ndb/include/kernel/signaldata/GCPSave.hpp storage/ndb/include/kernel/signaldata/GetTabInfo.hpp storage/ndb/include/kernel/signaldata/GetTableId.hpp storage/ndb/include/kernel/signaldata/GrepImpl.hpp storage/ndb/include/kernel/signaldata/HotSpareRep.hpp storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp storage/ndb/include/kernel/signaldata/KeyInfo.hpp storage/ndb/include/kernel/signaldata/LCP.hpp storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp storage/ndb/include/kernel/signaldata/ListTables.hpp storage/ndb/include/kernel/signaldata/LqhFrag.hpp storage/ndb/include/kernel/signaldata/LqhKey.hpp storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp storage/ndb/include/kernel/signaldata/LqhTransConf.hpp storage/ndb/include/kernel/signaldata/ManagementServer.hpp storage/ndb/include/kernel/signaldata/MasterGCP.hpp storage/ndb/include/kernel/signaldata/MasterLCP.hpp storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp storage/ndb/include/kernel/signaldata/NdbSttor.hpp storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp storage/ndb/include/kernel/signaldata/NextScan.hpp storage/ndb/include/kernel/signaldata/NodeFailRep.hpp storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp storage/ndb/include/kernel/signaldata/PackedSignal.hpp storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp storage/ndb/include/kernel/signaldata/PrepDropTab.hpp storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp storage/ndb/include/kernel/signaldata/RelTabMem.hpp storage/ndb/include/kernel/signaldata/RepImpl.hpp storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp storage/ndb/include/kernel/signaldata/RestoreImpl.hpp storage/ndb/include/kernel/signaldata/ResumeReq.hpp storage/ndb/include/kernel/signaldata/RouteOrd.hpp storage/ndb/include/kernel/signaldata/ScanFrag.hpp storage/ndb/include/kernel/signaldata/ScanTab.hpp storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp storage/ndb/include/kernel/signaldata/SetVarReq.hpp storage/ndb/include/kernel/signaldata/SignalData.hpp storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp storage/ndb/include/kernel/signaldata/SrFragidConf.hpp storage/ndb/include/kernel/signaldata/StartFragReq.hpp storage/ndb/include/kernel/signaldata/StartInfo.hpp storage/ndb/include/kernel/signaldata/StartMe.hpp storage/ndb/include/kernel/signaldata/StartOrd.hpp storage/ndb/include/kernel/signaldata/StartPerm.hpp storage/ndb/include/kernel/signaldata/StartRec.hpp storage/ndb/include/kernel/signaldata/StartTo.hpp storage/ndb/include/kernel/signaldata/StopMe.hpp storage/ndb/include/kernel/signaldata/StopPerm.hpp storage/ndb/include/kernel/signaldata/StopReq.hpp storage/ndb/include/kernel/signaldata/SumaImpl.hpp storage/ndb/include/kernel/signaldata/SystemError.hpp storage/ndb/include/kernel/signaldata/TamperOrd.hpp storage/ndb/include/kernel/signaldata/TcCommit.hpp storage/ndb/include/kernel/signaldata/TcContinueB.hpp storage/ndb/include/kernel/signaldata/TcHbRep.hpp storage/ndb/include/kernel/signaldata/TcIndx.hpp storage/ndb/include/kernel/signaldata/TcKeyConf.hpp storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp storage/ndb/include/kernel/signaldata/TcKeyRef.hpp storage/ndb/include/kernel/signaldata/TcKeyReq.hpp storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp storage/ndb/include/kernel/signaldata/TestOrd.hpp storage/ndb/include/kernel/signaldata/TransIdAI.hpp storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp storage/ndb/include/kernel/signaldata/TupCommit.hpp storage/ndb/include/kernel/signaldata/TupFrag.hpp storage/ndb/include/kernel/signaldata/TupKey.hpp storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp storage/ndb/include/kernel/signaldata/TuxBound.hpp storage/ndb/include/kernel/signaldata/TuxContinueB.hpp storage/ndb/include/kernel/signaldata/TuxMaint.hpp storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp storage/ndb/include/kernel/signaldata/UpdateTo.hpp storage/ndb/include/kernel/signaldata/UtilDelete.hpp storage/ndb/include/kernel/signaldata/UtilExecute.hpp storage/ndb/include/kernel/signaldata/UtilLock.hpp storage/ndb/include/kernel/signaldata/UtilPrepare.hpp storage/ndb/include/kernel/signaldata/UtilRelease.hpp storage/ndb/include/kernel/signaldata/UtilSequence.hpp storage/ndb/include/kernel/signaldata/WaitGCP.hpp storage/ndb/include/kernel/trigger_definitions.h storage/ndb/include/logger/ConsoleLogHandler.hpp storage/ndb/include/logger/FileLogHandler.hpp storage/ndb/include/logger/LogHandler.hpp storage/ndb/include/logger/Logger.hpp storage/ndb/include/logger/SysLogHandler.hpp storage/ndb/include/mgmapi/mgmapi.h storage/ndb/include/mgmapi/mgmapi_debug.h storage/ndb/include/mgmapi/mgmapi_error.h storage/ndb/include/mgmapi/ndb_logevent.h storage/ndb/include/mgmapi/ndbd_exit_codes.h storage/ndb/include/mgmcommon/ConfigRetriever.hpp storage/ndb/include/mgmcommon/IPCConfig.hpp storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp storage/ndb/include/ndb_constants.h storage/ndb/include/ndb_global.h.in storage/ndb/include/ndb_init.h storage/ndb/include/ndb_types.h.in storage/ndb/include/ndb_version.h.in storage/ndb/include/ndbapi/Ndb.hpp storage/ndb/include/ndbapi/NdbApi.hpp storage/ndb/include/ndbapi/NdbBlob.hpp storage/ndb/include/ndbapi/NdbDictionary.hpp storage/ndb/include/ndbapi/NdbError.hpp storage/ndb/include/ndbapi/NdbEventOperation.hpp storage/ndb/include/ndbapi/NdbIndexOperation.hpp storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp storage/ndb/include/ndbapi/NdbIndexStat.hpp storage/ndb/include/ndbapi/NdbOperation.hpp storage/ndb/include/ndbapi/NdbPool.hpp storage/ndb/include/ndbapi/NdbRecAttr.hpp storage/ndb/include/ndbapi/NdbReceiver.hpp storage/ndb/include/ndbapi/NdbScanFilter.hpp storage/ndb/include/ndbapi/NdbScanOperation.hpp storage/ndb/include/ndbapi/NdbTransaction.hpp storage/ndb/include/ndbapi/ndb_cluster_connection.hpp storage/ndb/include/ndbapi/ndb_opt_defaults.h storage/ndb/include/ndbapi/ndbapi_limits.h storage/ndb/include/ndbapi/ndberror.h storage/ndb/include/newtonapi/dba.h storage/ndb/include/newtonapi/defs/pcn_types.h storage/ndb/include/portlib/NdbCondition.h storage/ndb/include/portlib/NdbConfig.h storage/ndb/include/portlib/NdbDaemon.h storage/ndb/include/portlib/NdbEnv.h storage/ndb/include/portlib/NdbHost.h storage/ndb/include/portlib/NdbMain.h storage/ndb/include/portlib/NdbMem.h storage/ndb/include/portlib/NdbMutex.h storage/ndb/include/portlib/NdbSleep.h storage/ndb/include/portlib/NdbTCP.h storage/ndb/include/portlib/NdbThread.h storage/ndb/include/portlib/NdbTick.h storage/ndb/include/portlib/PortDefs.h storage/ndb/include/portlib/prefetch.h storage/ndb/include/transporter/TransporterCallback.hpp storage/ndb/include/transporter/TransporterDefinitions.hpp storage/ndb/include/transporter/TransporterRegistry.hpp storage/ndb/include/util/BaseString.hpp storage/ndb/include/util/Bitmask.hpp storage/ndb/include/util/File.hpp storage/ndb/include/util/InputStream.hpp storage/ndb/include/util/NdbAutoPtr.hpp storage/ndb/include/util/NdbOut.hpp storage/ndb/include/util/NdbSqlUtil.hpp storage/ndb/include/util/OutputStream.hpp storage/ndb/include/util/Parser.hpp storage/ndb/include/util/Properties.hpp storage/ndb/include/util/SimpleProperties.hpp storage/ndb/include/util/SocketAuthenticator.hpp storage/ndb/include/util/SocketClient.hpp storage/ndb/include/util/SocketServer.hpp storage/ndb/include/util/UtilBuffer.hpp storage/ndb/include/util/Vector.hpp storage/ndb/include/util/basestring_vsnprintf.h storage/ndb/include/util/md5_hash.hpp storage/ndb/include/util/ndb_opts.h storage/ndb/include/util/ndb_rand.h storage/ndb/include/util/random.h storage/ndb/include/util/socket_io.h storage/ndb/include/util/uucode.h storage/ndb/include/util/version.h storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp storage/ndb/src/common/debugger/BlockNames.cpp storage/ndb/src/common/debugger/DebuggerNames.cpp storage/ndb/src/common/debugger/EventLogger.cpp storage/ndb/src/common/debugger/GrepError.cpp storage/ndb/src/common/debugger/SignalLoggerManager.cpp storage/ndb/src/common/debugger/signaldata/AccLock.cpp storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp storage/ndb/src/common/debugger/signaldata/AlterTab.cpp storage/ndb/src/common/debugger/signaldata/AlterTable.cpp storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp storage/ndb/src/common/debugger/signaldata/ContinueB.cpp storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp storage/ndb/src/common/debugger/signaldata/DropIndx.cpp storage/ndb/src/common/debugger/signaldata/DropTab.cpp storage/ndb/src/common/debugger/signaldata/DropTrig.cpp storage/ndb/src/common/debugger/signaldata/FailRep.cpp storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp storage/ndb/src/common/debugger/signaldata/FsConf.cpp storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp storage/ndb/src/common/debugger/signaldata/FsRef.cpp storage/ndb/src/common/debugger/signaldata/GCPSave.cpp storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp storage/ndb/src/common/debugger/signaldata/LCP.cpp storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp storage/ndb/src/common/debugger/signaldata/LqhKey.cpp storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp storage/ndb/src/common/debugger/signaldata/ScanTab.cpp storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp storage/ndb/src/common/debugger/signaldata/SignalNames.cpp storage/ndb/src/common/debugger/signaldata/StartRec.cpp storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp storage/ndb/src/common/debugger/signaldata/SystemError.cpp storage/ndb/src/common/debugger/signaldata/TcIndx.cpp storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp storage/ndb/src/common/debugger/signaldata/TupCommit.cpp storage/ndb/src/common/debugger/signaldata/TupKey.cpp storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp storage/ndb/src/common/debugger/signaldata/UtilLock.cpp storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp storage/ndb/src/common/logger/ConsoleLogHandler.cpp storage/ndb/src/common/logger/FileLogHandler.cpp storage/ndb/src/common/logger/LogHandler.cpp storage/ndb/src/common/logger/LogHandlerList.cpp storage/ndb/src/common/logger/LogHandlerList.hpp storage/ndb/src/common/logger/Logger.cpp storage/ndb/src/common/logger/SysLogHandler.cpp storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp storage/ndb/src/common/mgmcommon/IPCConfig.cpp storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp storage/ndb/src/common/portlib/NdbCondition.c storage/ndb/src/common/portlib/NdbConfig.c storage/ndb/src/common/portlib/NdbDaemon.c storage/ndb/src/common/portlib/NdbEnv.c storage/ndb/src/common/portlib/NdbHost.c storage/ndb/src/common/portlib/NdbMem.c storage/ndb/src/common/portlib/NdbMutex.c storage/ndb/src/common/portlib/NdbPortLibTest.cpp storage/ndb/src/common/portlib/NdbSleep.c storage/ndb/src/common/portlib/NdbTCP.cpp storage/ndb/src/common/portlib/NdbThread.c storage/ndb/src/common/portlib/NdbTick.c storage/ndb/src/common/portlib/memtest.c storage/ndb/src/common/portlib/mmstest.cpp storage/ndb/src/common/portlib/munmaptest.cpp storage/ndb/src/common/portlib/win32/NdbCondition.c storage/ndb/src/common/portlib/win32/NdbDaemon.c storage/ndb/src/common/portlib/win32/NdbEnv.c storage/ndb/src/common/portlib/win32/NdbHost.c storage/ndb/src/common/portlib/win32/NdbMem.c storage/ndb/src/common/portlib/win32/NdbMutex.c storage/ndb/src/common/portlib/win32/NdbSleep.c storage/ndb/src/common/portlib/win32/NdbTCP.c storage/ndb/src/common/portlib/win32/NdbThread.c storage/ndb/src/common/portlib/win32/NdbTick.c storage/ndb/src/common/transporter/Packer.cpp storage/ndb/src/common/transporter/Packer.hpp storage/ndb/src/common/transporter/SCI_Transporter.cpp storage/ndb/src/common/transporter/SCI_Transporter.hpp storage/ndb/src/common/transporter/SHM_Buffer.hpp storage/ndb/src/common/transporter/SHM_Transporter.cpp storage/ndb/src/common/transporter/SHM_Transporter.hpp storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp storage/ndb/src/common/transporter/SendBuffer.cpp storage/ndb/src/common/transporter/SendBuffer.hpp storage/ndb/src/common/transporter/TCP_Transporter.cpp storage/ndb/src/common/transporter/TCP_Transporter.hpp storage/ndb/src/common/transporter/Transporter.cpp storage/ndb/src/common/transporter/Transporter.hpp storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp storage/ndb/src/common/transporter/TransporterRegistry.cpp storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp storage/ndb/src/common/transporter/buddy.cpp storage/ndb/src/common/transporter/buddy.hpp storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp storage/ndb/src/common/util/BaseString.cpp storage/ndb/src/common/util/File.cpp storage/ndb/src/common/util/InputStream.cpp storage/ndb/src/common/util/NdbOut.cpp storage/ndb/src/common/util/NdbSqlUtil.cpp storage/ndb/src/common/util/OutputStream.cpp storage/ndb/src/common/util/Parser.cpp storage/ndb/src/common/util/Properties.cpp storage/ndb/src/common/util/SimpleProperties.cpp storage/ndb/src/common/util/SocketAuthenticator.cpp storage/ndb/src/common/util/SocketClient.cpp storage/ndb/src/common/util/SocketServer.cpp storage/ndb/src/common/util/basestring_vsnprintf.c storage/ndb/src/common/util/filetest/FileUnitTest.cpp storage/ndb/src/common/util/filetest/FileUnitTest.hpp storage/ndb/src/common/util/md5_hash.cpp storage/ndb/src/common/util/ndb_init.c storage/ndb/src/common/util/ndb_rand.c storage/ndb/src/common/util/random.c storage/ndb/src/common/util/socket_io.cpp storage/ndb/src/common/util/strdup.c storage/ndb/src/common/util/testProperties/testProperties.cpp storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp storage/ndb/src/common/util/uucode.c storage/ndb/src/common/util/version.c storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp storage/ndb/src/cw/cpcc-win32/C++/TreeView.h storage/ndb/src/cw/cpcc-win32/C++/resource.h storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/Database.cs storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs storage/ndb/src/cw/cpcc-win32/csharp/Process.cs storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs storage/ndb/src/cw/cpcd/APIService.cpp storage/ndb/src/cw/cpcd/APIService.hpp storage/ndb/src/cw/cpcd/CPCD.cpp storage/ndb/src/cw/cpcd/CPCD.hpp storage/ndb/src/cw/cpcd/Monitor.cpp storage/ndb/src/cw/cpcd/Process.cpp storage/ndb/src/cw/cpcd/common.cpp storage/ndb/src/cw/cpcd/common.hpp storage/ndb/src/cw/cpcd/main.cpp storage/ndb/src/cw/test/socketclient/socketClientTest.cpp storage/ndb/src/cw/util/ClientInterface.cpp storage/ndb/src/cw/util/ClientInterface.hpp storage/ndb/src/cw/util/SocketRegistry.cpp storage/ndb/src/cw/util/SocketRegistry.hpp storage/ndb/src/cw/util/SocketService.cpp storage/ndb/src/cw/util/SocketService.hpp storage/ndb/src/kernel/SimBlockList.cpp storage/ndb/src/kernel/blocks/backup/Backup.cpp storage/ndb/src/kernel/blocks/backup/Backup.hpp storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp storage/ndb/src/kernel/blocks/backup/BackupInit.cpp storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp storage/ndb/src/kernel/blocks/backup/read.cpp storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp storage/ndb/src/kernel/blocks/diskpage.hpp storage/ndb/src/kernel/blocks/lgman.hpp storage/ndb/src/kernel/blocks/mutexes.hpp storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp storage/ndb/src/kernel/blocks/pgman.cpp storage/ndb/src/kernel/blocks/pgman.hpp storage/ndb/src/kernel/blocks/print_file.cpp storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp storage/ndb/src/kernel/blocks/qmgr/timer.hpp storage/ndb/src/kernel/blocks/record_types.hpp storage/ndb/src/kernel/blocks/restore.cpp storage/ndb/src/kernel/blocks/restore.hpp storage/ndb/src/kernel/blocks/suma/Suma.cpp storage/ndb/src/kernel/blocks/suma/Suma.hpp storage/ndb/src/kernel/blocks/suma/SumaInit.cpp storage/ndb/src/kernel/blocks/trix/Trix.cpp storage/ndb/src/kernel/blocks/trix/Trix.hpp storage/ndb/src/kernel/blocks/tsman.cpp storage/ndb/src/kernel/blocks/tsman.hpp storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp storage/ndb/src/kernel/error/ErrorReporter.cpp storage/ndb/src/kernel/error/ErrorReporter.hpp storage/ndb/src/kernel/error/TimeModule.cpp storage/ndb/src/kernel/error/TimeModule.hpp storage/ndb/src/kernel/error/ndbd_exit_codes.c storage/ndb/src/kernel/main.cpp storage/ndb/src/kernel/vm/Array.hpp storage/ndb/src/kernel/vm/ArrayPool.hpp storage/ndb/src/kernel/vm/CArray.hpp storage/ndb/src/kernel/vm/Callback.hpp storage/ndb/src/kernel/vm/ClusterConfiguration.cpp storage/ndb/src/kernel/vm/ClusterConfiguration.hpp storage/ndb/src/kernel/vm/Configuration.cpp storage/ndb/src/kernel/vm/Configuration.hpp storage/ndb/src/kernel/vm/DLCFifoList.hpp storage/ndb/src/kernel/vm/DLCHashTable.hpp storage/ndb/src/kernel/vm/DLFifoList.hpp storage/ndb/src/kernel/vm/DLHashTable.hpp storage/ndb/src/kernel/vm/DLHashTable2.hpp storage/ndb/src/kernel/vm/DLList.hpp storage/ndb/src/kernel/vm/DataBuffer.hpp storage/ndb/src/kernel/vm/DynArr256.cpp storage/ndb/src/kernel/vm/DynArr256.hpp storage/ndb/src/kernel/vm/Emulator.cpp storage/ndb/src/kernel/vm/Emulator.hpp storage/ndb/src/kernel/vm/FastScheduler.cpp storage/ndb/src/kernel/vm/FastScheduler.hpp storage/ndb/src/kernel/vm/GlobalData.hpp storage/ndb/src/kernel/vm/KeyDescriptor.hpp storage/ndb/src/kernel/vm/KeyTable.hpp storage/ndb/src/kernel/vm/KeyTable2.hpp storage/ndb/src/kernel/vm/KeyTable2Ref.hpp storage/ndb/src/kernel/vm/LinearPool.hpp storage/ndb/src/kernel/vm/LongSignal.hpp storage/ndb/src/kernel/vm/Mutex.cpp storage/ndb/src/kernel/vm/Mutex.hpp storage/ndb/src/kernel/vm/NdbdSuperPool.cpp storage/ndb/src/kernel/vm/NdbdSuperPool.hpp storage/ndb/src/kernel/vm/Pool.cpp storage/ndb/src/kernel/vm/Pool.hpp storage/ndb/src/kernel/vm/Prio.hpp storage/ndb/src/kernel/vm/RWPool.cpp storage/ndb/src/kernel/vm/RWPool.hpp storage/ndb/src/kernel/vm/RequestTracker.hpp storage/ndb/src/kernel/vm/Rope.hpp storage/ndb/src/kernel/vm/SLFifoList.hpp storage/ndb/src/kernel/vm/SLList.hpp storage/ndb/src/kernel/vm/SafeCounter.cpp storage/ndb/src/kernel/vm/SafeCounter.hpp storage/ndb/src/kernel/vm/SectionReader.cpp storage/ndb/src/kernel/vm/SectionReader.hpp storage/ndb/src/kernel/vm/SignalCounter.hpp storage/ndb/src/kernel/vm/SimBlockList.hpp storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp storage/ndb/src/kernel/vm/SimulatedBlock.cpp storage/ndb/src/kernel/vm/SimulatedBlock.hpp storage/ndb/src/kernel/vm/SuperPool.cpp storage/ndb/src/kernel/vm/SuperPool.hpp storage/ndb/src/kernel/vm/ThreadConfig.cpp storage/ndb/src/kernel/vm/ThreadConfig.hpp storage/ndb/src/kernel/vm/TimeQueue.cpp storage/ndb/src/kernel/vm/TimeQueue.hpp storage/ndb/src/kernel/vm/TransporterCallback.cpp storage/ndb/src/kernel/vm/VMSignal.cpp storage/ndb/src/kernel/vm/VMSignal.hpp storage/ndb/src/kernel/vm/WOPool.cpp storage/ndb/src/kernel/vm/WOPool.hpp storage/ndb/src/kernel/vm/WaitQueue.hpp storage/ndb/src/kernel/vm/WatchDog.cpp storage/ndb/src/kernel/vm/WatchDog.hpp storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp storage/ndb/src/kernel/vm/al_test/main.cpp storage/ndb/src/kernel/vm/bench_pool.cpp storage/ndb/src/kernel/vm/ndbd_malloc.cpp storage/ndb/src/kernel/vm/ndbd_malloc.hpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp storage/ndb/src/kernel/vm/pc.hpp storage/ndb/src/kernel/vm/testCopy/rr.cpp storage/ndb/src/kernel/vm/testCopy/testCopy.cpp storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp storage/ndb/src/kernel/vm/testSuperPool.cpp storage/ndb/src/mgmapi/LocalConfig.cpp storage/ndb/src/mgmapi/LocalConfig.hpp storage/ndb/src/mgmapi/mgmapi.cpp storage/ndb/src/mgmapi/mgmapi_configuration.hpp storage/ndb/src/mgmapi/mgmapi_internal.h storage/ndb/src/mgmapi/ndb_logevent.cpp storage/ndb/src/mgmapi/ndb_logevent.hpp storage/ndb/src/mgmapi/test/keso.c storage/ndb/src/mgmapi/test/mgmSrvApi.cpp storage/ndb/src/mgmclient/CommandInterpreter.cpp storage/ndb/src/mgmclient/main.cpp storage/ndb/src/mgmclient/ndb_mgmclient.h storage/ndb/src/mgmclient/ndb_mgmclient.hpp storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp storage/ndb/src/mgmsrv/Config.cpp storage/ndb/src/mgmsrv/Config.hpp storage/ndb/src/mgmsrv/ConfigInfo.cpp storage/ndb/src/mgmsrv/ConfigInfo.hpp storage/ndb/src/mgmsrv/InitConfigFileParser.cpp storage/ndb/src/mgmsrv/InitConfigFileParser.hpp storage/ndb/src/mgmsrv/MgmtSrvr.cpp storage/ndb/src/mgmsrv/MgmtSrvr.hpp storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp storage/ndb/src/mgmsrv/Services.cpp storage/ndb/src/mgmsrv/Services.hpp storage/ndb/src/mgmsrv/SignalQueue.cpp storage/ndb/src/mgmsrv/SignalQueue.hpp storage/ndb/src/mgmsrv/convertStrToInt.cpp storage/ndb/src/mgmsrv/convertStrToInt.hpp storage/ndb/src/mgmsrv/main.cpp storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp storage/ndb/src/ndbapi/API.hpp storage/ndb/src/ndbapi/ClusterMgr.cpp storage/ndb/src/ndbapi/ClusterMgr.hpp storage/ndb/src/ndbapi/DictCache.cpp storage/ndb/src/ndbapi/DictCache.hpp storage/ndb/src/ndbapi/Ndb.cpp storage/ndb/src/ndbapi/NdbApiSignal.cpp storage/ndb/src/ndbapi/NdbApiSignal.hpp storage/ndb/src/ndbapi/NdbBlob.cpp storage/ndb/src/ndbapi/NdbBlobImpl.hpp storage/ndb/src/ndbapi/NdbDictionary.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp storage/ndb/src/ndbapi/NdbErrorOut.cpp storage/ndb/src/ndbapi/NdbEventOperation.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp storage/ndb/src/ndbapi/NdbImpl.hpp storage/ndb/src/ndbapi/NdbIndexOperation.cpp storage/ndb/src/ndbapi/NdbIndexStat.cpp storage/ndb/src/ndbapi/NdbLinHash.hpp storage/ndb/src/ndbapi/NdbOperation.cpp storage/ndb/src/ndbapi/NdbOperationDefine.cpp storage/ndb/src/ndbapi/NdbOperationExec.cpp storage/ndb/src/ndbapi/NdbOperationInt.cpp storage/ndb/src/ndbapi/NdbOperationScan.cpp storage/ndb/src/ndbapi/NdbOperationSearch.cpp storage/ndb/src/ndbapi/NdbPool.cpp storage/ndb/src/ndbapi/NdbPoolImpl.cpp storage/ndb/src/ndbapi/NdbPoolImpl.hpp storage/ndb/src/ndbapi/NdbRecAttr.cpp storage/ndb/src/ndbapi/NdbReceiver.cpp storage/ndb/src/ndbapi/NdbScanFilter.cpp storage/ndb/src/ndbapi/NdbScanOperation.cpp storage/ndb/src/ndbapi/NdbTransaction.cpp storage/ndb/src/ndbapi/NdbTransactionScan.cpp storage/ndb/src/ndbapi/NdbUtil.cpp storage/ndb/src/ndbapi/NdbUtil.hpp storage/ndb/src/ndbapi/NdbWaiter.hpp storage/ndb/src/ndbapi/Ndberr.cpp storage/ndb/src/ndbapi/Ndbif.cpp storage/ndb/src/ndbapi/Ndbinit.cpp storage/ndb/src/ndbapi/Ndblist.cpp storage/ndb/src/ndbapi/ObjectMap.cpp storage/ndb/src/ndbapi/ObjectMap.hpp storage/ndb/src/ndbapi/SignalSender.cpp storage/ndb/src/ndbapi/SignalSender.hpp storage/ndb/src/ndbapi/TransporterFacade.cpp storage/ndb/src/ndbapi/TransporterFacade.hpp storage/ndb/src/ndbapi/ndb_cluster_connection.cpp storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp storage/ndb/src/ndbapi/ndberror.c storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp storage/ndb/test/include/AtrtClient.hpp storage/ndb/test/include/CpcClient.hpp storage/ndb/test/include/DbUtil.hpp storage/ndb/test/include/HugoAsynchTransactions.hpp storage/ndb/test/include/HugoCalculator.hpp storage/ndb/test/include/HugoOperations.hpp storage/ndb/test/include/HugoTransactions.hpp storage/ndb/test/include/NDBT.hpp storage/ndb/test/include/NDBT_DataSet.hpp storage/ndb/test/include/NDBT_DataSetTransaction.hpp storage/ndb/test/include/NDBT_Error.hpp storage/ndb/test/include/NDBT_Output.hpp storage/ndb/test/include/NDBT_ResultRow.hpp storage/ndb/test/include/NDBT_ReturnCodes.h storage/ndb/test/include/NDBT_Stats.hpp storage/ndb/test/include/NDBT_Table.hpp storage/ndb/test/include/NDBT_Tables.hpp storage/ndb/test/include/NDBT_Test.hpp storage/ndb/test/include/NDBT_Thread.hpp storage/ndb/test/include/NdbBackup.hpp storage/ndb/test/include/NdbConfig.hpp storage/ndb/test/include/NdbGrep.hpp storage/ndb/test/include/NdbMixRestarter.hpp storage/ndb/test/include/NdbRestarter.hpp storage/ndb/test/include/NdbRestarts.hpp storage/ndb/test/include/NdbSchemaCon.hpp storage/ndb/test/include/NdbSchemaOp.hpp storage/ndb/test/include/NdbTest.hpp storage/ndb/test/include/NdbTimer.hpp storage/ndb/test/include/TestNdbEventOperation.hpp storage/ndb/test/include/UtilTransactions.hpp storage/ndb/test/include/getarg.h storage/ndb/test/ndbapi/InsertRecs.cpp storage/ndb/test/ndbapi/ScanFilter.hpp storage/ndb/test/ndbapi/ScanFunctions.hpp storage/ndb/test/ndbapi/ScanInterpretTest.hpp storage/ndb/test/ndbapi/TraceNdbApi.cpp storage/ndb/test/ndbapi/VerifyNdbApi.cpp storage/ndb/test/ndbapi/acid.cpp storage/ndb/test/ndbapi/acid2.cpp storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp storage/ndb/test/ndbapi/adoInsertRecs.cpp storage/ndb/test/ndbapi/asyncGenerator.cpp storage/ndb/test/ndbapi/bank/Bank.cpp storage/ndb/test/ndbapi/bank/Bank.hpp storage/ndb/test/ndbapi/bank/BankLoad.cpp storage/ndb/test/ndbapi/bank/bankCreator.cpp storage/ndb/test/ndbapi/bank/bankMakeGL.cpp storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp storage/ndb/test/ndbapi/bank/bankTimer.cpp storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp storage/ndb/test/ndbapi/bank/testBank.cpp storage/ndb/test/ndbapi/bench/asyncGenerator.cpp storage/ndb/test/ndbapi/bench/dbGenerator.h storage/ndb/test/ndbapi/bench/dbPopulate.cpp storage/ndb/test/ndbapi/bench/dbPopulate.h storage/ndb/test/ndbapi/bench/macros.h storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp storage/ndb/test/ndbapi/bench/mainPopulate.cpp storage/ndb/test/ndbapi/bench/ndb_async1.cpp storage/ndb/test/ndbapi/bench/ndb_async2.cpp storage/ndb/test/ndbapi/bench/ndb_error.hpp storage/ndb/test/ndbapi/bench/ndb_schema.hpp storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp storage/ndb/test/ndbapi/bench/testData.h storage/ndb/test/ndbapi/bench/testDefinitions.h storage/ndb/test/ndbapi/bench/userInterface.cpp storage/ndb/test/ndbapi/bench/userInterface.h storage/ndb/test/ndbapi/benchronja.cpp storage/ndb/test/ndbapi/bulk_copy.cpp storage/ndb/test/ndbapi/cdrserver.cpp storage/ndb/test/ndbapi/celloDb.cpp storage/ndb/test/ndbapi/create_all_tabs.cpp storage/ndb/test/ndbapi/create_tab.cpp storage/ndb/test/ndbapi/drop_all_tabs.cpp storage/ndb/test/ndbapi/flexAsynch.cpp storage/ndb/test/ndbapi/flexBench.cpp storage/ndb/test/ndbapi/flexHammer.cpp storage/ndb/test/ndbapi/flexScan.cpp storage/ndb/test/ndbapi/flexTT.cpp storage/ndb/test/ndbapi/flexTimedAsynch.cpp storage/ndb/test/ndbapi/flex_bench_mysql.cpp storage/ndb/test/ndbapi/index.cpp storage/ndb/test/ndbapi/index2.cpp storage/ndb/test/ndbapi/initronja.cpp storage/ndb/test/ndbapi/interpreterInTup.cpp storage/ndb/test/ndbapi/mainAsyncGenerator.cpp storage/ndb/test/ndbapi/msa.cpp storage/ndb/test/ndbapi/ndb_async1.cpp storage/ndb/test/ndbapi/ndb_async2.cpp storage/ndb/test/ndbapi/ndb_user_populate.cpp storage/ndb/test/ndbapi/ndb_user_transaction.cpp storage/ndb/test/ndbapi/ndb_user_transaction2.cpp storage/ndb/test/ndbapi/ndb_user_transaction3.cpp storage/ndb/test/ndbapi/ndb_user_transaction4.cpp storage/ndb/test/ndbapi/ndb_user_transaction5.cpp storage/ndb/test/ndbapi/ndb_user_transaction6.cpp storage/ndb/test/ndbapi/restarter.cpp storage/ndb/test/ndbapi/restarter2.cpp storage/ndb/test/ndbapi/restarts.cpp storage/ndb/test/ndbapi/size.cpp storage/ndb/test/ndbapi/testBackup.cpp storage/ndb/test/ndbapi/testBasic.cpp storage/ndb/test/ndbapi/testBasicAsynch.cpp storage/ndb/test/ndbapi/testBlobs.cpp storage/ndb/test/ndbapi/testDataBuffers.cpp storage/ndb/test/ndbapi/testDeadlock.cpp storage/ndb/test/ndbapi/testDict.cpp storage/ndb/test/ndbapi/testGrepVerify.cpp storage/ndb/test/ndbapi/testIndex.cpp storage/ndb/test/ndbapi/testIndexStat.cpp storage/ndb/test/ndbapi/testInterpreter.cpp storage/ndb/test/ndbapi/testMgm.cpp storage/ndb/test/ndbapi/testNDBT.cpp storage/ndb/test/ndbapi/testNdbApi.cpp storage/ndb/test/ndbapi/testNodeRestart.cpp storage/ndb/test/ndbapi/testOIBasic.cpp storage/ndb/test/ndbapi/testOperations.cpp storage/ndb/test/ndbapi/testOrderedIndex.cpp storage/ndb/test/ndbapi/testPartitioning.cpp storage/ndb/test/ndbapi/testReadPerf.cpp storage/ndb/test/ndbapi/testRestartGci.cpp storage/ndb/test/ndbapi/testSRBank.cpp storage/ndb/test/ndbapi/testScan.cpp storage/ndb/test/ndbapi/testScanInterpreter.cpp storage/ndb/test/ndbapi/testScanPerf.cpp storage/ndb/test/ndbapi/testSystemRestart.cpp storage/ndb/test/ndbapi/testTimeout.cpp storage/ndb/test/ndbapi/testTransactions.cpp storage/ndb/test/ndbapi/test_event.cpp storage/ndb/test/ndbapi/test_event_merge.cpp storage/ndb/test/ndbapi/test_event_multi_table.cpp storage/ndb/test/ndbapi/userInterface.cpp storage/ndb/test/ndbnet/test.run storage/ndb/test/ndbnet/testError.run storage/ndb/test/ndbnet/testMNF.run storage/ndb/test/ndbnet/testNR.run storage/ndb/test/ndbnet/testNR1.run storage/ndb/test/ndbnet/testNR4.run storage/ndb/test/ndbnet/testSRhang.run storage/ndb/test/ndbnet/testTR295.run storage/ndb/test/newtonapi/basic_test/basic/basic.cpp storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp storage/ndb/test/newtonapi/basic_test/common.cpp storage/ndb/test/newtonapi/basic_test/common.hpp storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp storage/ndb/test/newtonapi/basic_test/too_basic.cpp storage/ndb/test/newtonapi/perf_test/perf.cpp storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp storage/ndb/test/odbc/SQL99_test/SQL99_test.h storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp storage/ndb/test/odbc/client/SQLBindColTest.cpp storage/ndb/test/odbc/client/SQLBindParameterTest.cpp storage/ndb/test/odbc/client/SQLCancelTest.cpp storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp storage/ndb/test/odbc/client/SQLColAttributeTest.cpp storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp storage/ndb/test/odbc/client/SQLConnectTest.cpp storage/ndb/test/odbc/client/SQLCopyDescTest.cpp storage/ndb/test/odbc/client/SQLDescribeColTest.cpp storage/ndb/test/odbc/client/SQLDisconnectTest.cpp storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp storage/ndb/test/odbc/client/SQLEndTranTest.cpp storage/ndb/test/odbc/client/SQLErrorTest.cpp storage/ndb/test/odbc/client/SQLExecDirectTest.cpp storage/ndb/test/odbc/client/SQLExecuteTest.cpp storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp storage/ndb/test/odbc/client/SQLFetchTest.cpp storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp storage/ndb/test/odbc/client/SQLGetDataTest.cpp storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp storage/ndb/test/odbc/client/SQLGetInfoTest.cpp storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp storage/ndb/test/odbc/client/SQLParamDataTest.cpp storage/ndb/test/odbc/client/SQLPrepareTest.cpp storage/ndb/test/odbc/client/SQLPutDataTest.cpp storage/ndb/test/odbc/client/SQLRowCountTest.cpp storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp storage/ndb/test/odbc/client/SQLTablesTest.cpp storage/ndb/test/odbc/client/SQLTransactTest.cpp storage/ndb/test/odbc/client/common.hpp storage/ndb/test/odbc/client/main.cpp storage/ndb/test/odbc/driver/testOdbcDriver.cpp storage/ndb/test/odbc/test_compiler/test_compiler.cpp storage/ndb/test/run-test/atrt-analyze-result.sh storage/ndb/test/run-test/atrt-clear-result.sh storage/ndb/test/run-test/atrt-gather-result.sh storage/ndb/test/run-test/atrt-setup.sh storage/ndb/test/run-test/atrt-testBackup storage/ndb/test/run-test/atrt.hpp storage/ndb/test/run-test/main.cpp storage/ndb/test/run-test/make-index.sh storage/ndb/test/src/CpcClient.cpp storage/ndb/test/src/DbUtil.cpp storage/ndb/test/src/HugoAsynchTransactions.cpp storage/ndb/test/src/HugoCalculator.cpp storage/ndb/test/src/HugoOperations.cpp storage/ndb/test/src/HugoTransactions.cpp storage/ndb/test/src/NDBT_Error.cpp storage/ndb/test/src/NDBT_Output.cpp storage/ndb/test/src/NDBT_ResultRow.cpp storage/ndb/test/src/NDBT_ReturnCodes.cpp storage/ndb/test/src/NDBT_Table.cpp storage/ndb/test/src/NDBT_Tables.cpp storage/ndb/test/src/NDBT_Test.cpp storage/ndb/test/src/NDBT_Thread.cpp storage/ndb/test/src/NdbBackup.cpp storage/ndb/test/src/NdbConfig.cpp storage/ndb/test/src/NdbGrep.cpp storage/ndb/test/src/NdbMixRestarter.cpp storage/ndb/test/src/NdbRestarter.cpp storage/ndb/test/src/NdbRestarts.cpp storage/ndb/test/src/NdbSchemaCon.cpp storage/ndb/test/src/NdbSchemaOp.cpp storage/ndb/test/src/UtilTransactions.cpp storage/ndb/test/tools/connect.cpp storage/ndb/test/tools/copy_tab.cpp storage/ndb/test/tools/cpcc.cpp storage/ndb/test/tools/create_index.cpp storage/ndb/test/tools/hugoCalculator.cpp storage/ndb/test/tools/hugoFill.cpp storage/ndb/test/tools/hugoLoad.cpp storage/ndb/test/tools/hugoLockRecords.cpp storage/ndb/test/tools/hugoPkDelete.cpp storage/ndb/test/tools/hugoPkRead.cpp storage/ndb/test/tools/hugoPkReadRecord.cpp storage/ndb/test/tools/hugoPkUpdate.cpp storage/ndb/test/tools/hugoScanRead.cpp storage/ndb/test/tools/hugoScanUpdate.cpp storage/ndb/test/tools/listen.cpp storage/ndb/test/tools/rep_latency.cpp storage/ndb/test/tools/restart.cpp storage/ndb/test/tools/transproxy.cpp storage/ndb/test/tools/verify_index.cpp storage/ndb/tools/clean-links.sh storage/ndb/tools/delete_all.cpp storage/ndb/tools/desc.cpp storage/ndb/tools/drop_index.cpp storage/ndb/tools/drop_tab.cpp storage/ndb/tools/listTables.cpp storage/ndb/tools/make-errors.pl storage/ndb/tools/make-links.sh storage/ndb/tools/ndb_config.cpp storage/ndb/tools/ndb_error_reporter storage/ndb/tools/ndb_test_platform.cpp storage/ndb/tools/ndbsql.cpp storage/ndb/tools/restore/Restore.cpp storage/ndb/tools/restore/Restore.hpp storage/ndb/tools/restore/consumer.cpp storage/ndb/tools/restore/consumer.hpp storage/ndb/tools/restore/consumer_printer.cpp storage/ndb/tools/restore/consumer_printer.hpp storage/ndb/tools/restore/consumer_restore.cpp storage/ndb/tools/restore/consumer_restore.hpp storage/ndb/tools/restore/consumer_restorem.cpp storage/ndb/tools/restore/ndb_nodegroup_map.h storage/ndb/tools/restore/restore_main.cpp storage/ndb/tools/rgrep storage/ndb/tools/select_all.cpp storage/ndb/tools/select_count.cpp storage/ndb/tools/waiter.cpp storage/oqgraph/CMakeLists.txt storage/oqgraph/ha_oqgraph.cc storage/oqgraph/ha_oqgraph.h storage/oqgraph/mysql-test/oqgraph/boundary_conditions.result storage/oqgraph/mysql-test/oqgraph/boundary_conditions.test storage/oqgraph/mysql-test/oqgraph/invalid_operations.result storage/oqgraph/mysql-test/oqgraph/invalid_operations.test storage/oqgraph/mysql-test/oqgraph/isnull.result storage/oqgraph/mysql-test/oqgraph/isnull.test storage/oqgraph/mysql-test/oqgraph/regression_1233113.result storage/oqgraph/mysql-test/oqgraph/regression_1233113.test storage/oqgraph/mysql-test/oqgraph/regression_drop_after.result storage/oqgraph/mysql-test/oqgraph/regression_drop_after.test storage/oqgraph/mysql-test/oqgraph/suite.pm storage/perfschema/CMakeLists.txt storage/perfschema/pfs_check.cc storage/perfschema/pfs_events_waits.cc storage/perfschema/pfs_global.cc storage/perfschema/table_events_waits.cc storage/perfschema/unittest/CMakeLists.txt storage/sequence/mysql-test/sequence/simple.result storage/sequence/mysql-test/sequence/simple.test storage/sequence/sequence.cc storage/sphinx/ha_sphinx.cc storage/sphinx/mysql-test/sphinx/suite.pm storage/spider/ha_spider.cc storage/spider/ha_spider.h storage/spider/mysql-test/spider/bg/suite.opt storage/spider/scripts/install_spider.sql storage/spider/spd_conn.cc storage/spider/spd_conn.h storage/spider/spd_copy_tables.cc storage/spider/spd_copy_tables.h storage/spider/spd_db_conn.cc storage/spider/spd_db_conn.h storage/spider/spd_db_handlersocket.cc storage/spider/spd_db_handlersocket.h storage/spider/spd_db_include.h storage/spider/spd_db_mysql.cc storage/spider/spd_db_mysql.h storage/spider/spd_db_oracle.cc storage/spider/spd_db_oracle.h storage/spider/spd_direct_sql.cc storage/spider/spd_direct_sql.h storage/spider/spd_err.h storage/spider/spd_i_s.cc storage/spider/spd_include.h storage/spider/spd_malloc.cc storage/spider/spd_malloc.h storage/spider/spd_param.cc storage/spider/spd_param.h storage/spider/spd_ping_table.cc storage/spider/spd_ping_table.h storage/spider/spd_sys_table.cc storage/spider/spd_sys_table.h storage/spider/spd_table.cc storage/spider/spd_table.h storage/spider/spd_trx.cc storage/spider/spd_trx.h storage/spider/spd_udf.cc storage/spider/spd_udf.h storage/tokudb/CMakeLists.txt storage/tokudb/README.md storage/tokudb/ft-index/CMakeLists.txt storage/tokudb/ft-index/README.md storage/tokudb/ft-index/buildheader/CMakeLists.txt storage/tokudb/ft-index/buildheader/make_tdb.cc storage/tokudb/ft-index/cmake_modules/TokuSetupCTest.cmake storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake storage/tokudb/ft-index/examples/CMakeLists.txt storage/tokudb/ft-index/ft/CMakeLists.txt storage/tokudb/ft-index/ft/bndata.cc storage/tokudb/ft-index/ft/bndata.h storage/tokudb/ft-index/ft/cachetable-internal.h storage/tokudb/ft-index/ft/cachetable.cc storage/tokudb/ft-index/ft/cachetable.h storage/tokudb/ft-index/ft/checkpoint.cc storage/tokudb/ft-index/ft/compress.cc storage/tokudb/ft-index/ft/fifo.cc storage/tokudb/ft-index/ft/fifo.h storage/tokudb/ft-index/ft/ft-cachetable-wrappers.cc storage/tokudb/ft-index/ft/ft-flusher.cc storage/tokudb/ft-index/ft/ft-flusher.h storage/tokudb/ft-index/ft/ft-hot-flusher.cc storage/tokudb/ft-index/ft/ft-internal.h storage/tokudb/ft-index/ft/ft-ops.cc storage/tokudb/ft-index/ft/ft-ops.h storage/tokudb/ft-index/ft/ft-serialize.cc storage/tokudb/ft-index/ft/ft-test-helpers.cc storage/tokudb/ft-index/ft/ft.cc storage/tokudb/ft-index/ft/ft.h storage/tokudb/ft-index/ft/ft_layout_version.h storage/tokudb/ft-index/ft/ft_node-serialize.cc storage/tokudb/ft-index/ft/ftloader-internal.h storage/tokudb/ft-index/ft/ftloader.cc storage/tokudb/ft-index/ft/fttypes.h storage/tokudb/ft-index/ft/leafentry.h storage/tokudb/ft-index/ft/log-internal.h storage/tokudb/ft-index/ft/logformat.cc storage/tokudb/ft-index/ft/logger.cc storage/tokudb/ft-index/ft/logger.h storage/tokudb/ft-index/ft/roll.cc storage/tokudb/ft-index/ft/rollback-apply.cc storage/tokudb/ft-index/ft/rollback-ct-callbacks.cc storage/tokudb/ft-index/ft/rollback-ct-callbacks.h storage/tokudb/ft-index/ft/rollback.cc storage/tokudb/ft-index/ft/rollback.h storage/tokudb/ft-index/ft/rollback_log_node_cache.cc storage/tokudb/ft-index/ft/rollback_log_node_cache.h storage/tokudb/ft-index/ft/tests/cachetable-5097.cc storage/tokudb/ft-index/ft/tests/cachetable-5978.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction2.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction3.cc storage/tokudb/ft-index/ft/tests/cachetable-clock-eviction4.cc storage/tokudb/ft-index/ft/tests/cachetable-eviction-close-test2.cc storage/tokudb/ft-index/ft/tests/cachetable-eviction-getandpin-test2.cc storage/tokudb/ft-index/ft/tests/cachetable-evictor-class.cc storage/tokudb/ft-index/ft/tests/ft-bfe-query.cc storage/tokudb/ft-index/ft/tests/ft-clock-test.cc storage/tokudb/ft-index/ft/tests/ft-serialize-benchmark.cc storage/tokudb/ft-index/ft/tests/ft-serialize-test.cc storage/tokudb/ft-index/ft/tests/ftloader-test-bad-generate.cc storage/tokudb/ft-index/ft/tests/ftloader-test-extractor-errors.cc storage/tokudb/ft-index/ft/tests/ftloader-test-extractor.cc storage/tokudb/ft-index/ft/tests/ftloader-test-merge-files-dbufio.cc storage/tokudb/ft-index/ft/tests/ftloader-test-open.cc storage/tokudb/ft-index/ft/tests/ftloader-test-writer-errors.cc storage/tokudb/ft-index/ft/tests/ftloader-test-writer.cc storage/tokudb/ft-index/ft/tests/ftloader-test.cc storage/tokudb/ft-index/ft/tests/make-tree.cc storage/tokudb/ft-index/ft/tests/msnfilter.cc storage/tokudb/ft-index/ft/tests/orthopush-flush.cc storage/tokudb/ft-index/ft/tests/test-flushes-on-cleaner.cc storage/tokudb/ft-index/ft/tests/test-hot-with-bounds.cc storage/tokudb/ft-index/ft/tests/test-inc-split.cc storage/tokudb/ft-index/ft/tests/test-leafentry-nested.cc storage/tokudb/ft-index/ft/tests/test-pick-child-to-flush.cc storage/tokudb/ft-index/ft/tests/test.h storage/tokudb/ft-index/ft/tests/upgrade_test_simple.cc storage/tokudb/ft-index/ft/tests/verify-bad-msn.cc storage/tokudb/ft-index/ft/tests/verify-bad-pivots.cc storage/tokudb/ft-index/ft/tests/verify-dup-in-leaf.cc storage/tokudb/ft-index/ft/tests/verify-dup-pivots.cc storage/tokudb/ft-index/ft/tests/verify-misrouted-msgs.cc storage/tokudb/ft-index/ft/tests/verify-unsorted-leaf.cc storage/tokudb/ft-index/ft/tests/verify-unsorted-pivots.cc storage/tokudb/ft-index/ft/txn.cc storage/tokudb/ft-index/ft/txn_manager.cc storage/tokudb/ft-index/ft/txn_manager.h storage/tokudb/ft-index/ft/ule.cc storage/tokudb/ft-index/ft/ule.h storage/tokudb/ft-index/locktree/lock_request.cc storage/tokudb/ft-index/locktree/lock_request.h storage/tokudb/ft-index/locktree/locktree.cc storage/tokudb/ft-index/locktree/locktree.h storage/tokudb/ft-index/locktree/manager.cc storage/tokudb/ft-index/locktree/tests/lock_request_create_set.cc storage/tokudb/ft-index/locktree/tests/lock_request_get_set_keys.cc storage/tokudb/ft-index/locktree/tests/lock_request_start_deadlock.cc storage/tokudb/ft-index/locktree/tests/lock_request_start_pending.cc storage/tokudb/ft-index/locktree/tests/lock_request_unit_test.h storage/tokudb/ft-index/locktree/tests/locktree_conflicts.cc storage/tokudb/ft-index/locktree/tests/locktree_escalation_stalls.cc storage/tokudb/ft-index/locktree/tests/locktree_infinity.cc storage/tokudb/ft-index/locktree/tests/locktree_overlapping_relock.cc storage/tokudb/ft-index/locktree/tests/locktree_simple_lock.cc storage/tokudb/ft-index/locktree/tests/locktree_single_txnid_optimization.cc storage/tokudb/ft-index/locktree/tests/manager_create_destroy.cc storage/tokudb/ft-index/locktree/tests/manager_params.cc storage/tokudb/ft-index/locktree/tests/manager_status.cc storage/tokudb/ft-index/portability/CMakeLists.txt storage/tokudb/ft-index/portability/file.cc storage/tokudb/ft-index/portability/os_malloc.cc storage/tokudb/ft-index/scripts/run.stress-tests.py storage/tokudb/ft-index/src/CMakeLists.txt storage/tokudb/ft-index/src/export.map storage/tokudb/ft-index/src/indexer-undo-do.cc storage/tokudb/ft-index/src/loader.cc storage/tokudb/ft-index/src/tests/CMakeLists.txt storage/tokudb/ft-index/src/tests/blocking-first-empty.cc storage/tokudb/ft-index/src/tests/blocking-first.cc storage/tokudb/ft-index/src/tests/blocking-last.cc storage/tokudb/ft-index/src/tests/blocking-next-prev-deadlock.cc storage/tokudb/ft-index/src/tests/blocking-prelock-range.cc storage/tokudb/ft-index/src/tests/blocking-put-timeout.cc storage/tokudb/ft-index/src/tests/blocking-put-wakeup.cc storage/tokudb/ft-index/src/tests/blocking-put.cc storage/tokudb/ft-index/src/tests/blocking-set-range-0.cc storage/tokudb/ft-index/src/tests/blocking-set-range-n.cc storage/tokudb/ft-index/src/tests/blocking-set-range-reverse-0.cc storage/tokudb/ft-index/src/tests/blocking-set.cc storage/tokudb/ft-index/src/tests/blocking-table-lock.cc storage/tokudb/ft-index/src/tests/db-put-simple-deadlock-threads.cc storage/tokudb/ft-index/src/tests/db-put-simple-lockwait.cc storage/tokudb/ft-index/src/tests/db-put-update-deadlock.cc storage/tokudb/ft-index/src/tests/env_loader_memory.cc storage/tokudb/ft-index/src/tests/filesize.cc storage/tokudb/ft-index/src/tests/hot-optimize-table-tests.cc storage/tokudb/ft-index/src/tests/test_4368.cc storage/tokudb/ft-index/src/tests/test_iterate_pending_lock_requests.cc storage/tokudb/ft-index/src/tests/test_kv_gen.h storage/tokudb/ft-index/src/tests/test_lock_timeout_callback.cc storage/tokudb/ft-index/src/tests/test_stress5.cc storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h storage/tokudb/ft-index/src/tests/update-multiple-with-indexer-array.cc storage/tokudb/ft-index/src/ydb-internal.h storage/tokudb/ft-index/src/ydb.cc storage/tokudb/ft-index/src/ydb_cursor.cc storage/tokudb/ft-index/src/ydb_db.cc storage/tokudb/ft-index/src/ydb_env_func.cc storage/tokudb/ft-index/src/ydb_row_lock.cc storage/tokudb/ft-index/src/ydb_txn.cc storage/tokudb/ft-index/src/ydb_txn.h storage/tokudb/ft-index/toku_include/CMakeLists.txt storage/tokudb/ft-index/util/CMakeLists.txt storage/tokudb/ft-index/util/frwlock.cc storage/tokudb/ft-index/util/frwlock.h storage/tokudb/ft-index/util/kibbutz.cc storage/tokudb/ft-index/util/kibbutz.h storage/tokudb/ft-index/util/mempool.cc storage/tokudb/ft-index/util/mempool.h storage/tokudb/ft-index/util/tests/test-kibbutz.cc storage/tokudb/ft-index/util/tests/test-kibbutz2.cc storage/tokudb/ft-index/util/tests/test-rwlock-cheapness.cc storage/tokudb/ft-index/util/tests/test-rwlock.cc storage/tokudb/ha_tokudb.cc storage/tokudb/ha_tokudb.h storage/tokudb/ha_tokudb_admin.cc storage/tokudb/ha_tokudb_alter_56.cc storage/tokudb/ha_tokudb_alter_common.cc storage/tokudb/ha_tokudb_update.cc storage/tokudb/hatoku_cmp.cc storage/tokudb/hatoku_cmp.h storage/tokudb/hatoku_defines.h storage/tokudb/hatoku_hton.cc storage/tokudb/hatoku_hton.h storage/tokudb/mysql-test/tokudb/locks-blocking-row-locks-testgen.py storage/tokudb/mysql-test/tokudb/r/auto_increment.result storage/tokudb/mysql-test/tokudb/r/auto_increment_boundary.result storage/tokudb/mysql-test/tokudb/r/auto_increment_boundary_traditional.result storage/tokudb/mysql-test/tokudb/r/change_column_char_default.result storage/tokudb/mysql-test/tokudb/r/change_column_int_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varbin_multiple.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_default.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_prefix_a.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_prefix_b.result storage/tokudb/mysql-test/tokudb/r/change_column_varchar_sum_cross256.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-0.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-1.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-2.result storage/tokudb/mysql-test/tokudb/r/cluster_2968-3.result storage/tokudb/mysql-test/tokudb/r/cluster_create_table.result storage/tokudb/mysql-test/tokudb/r/cluster_filter_unpack_varchar_and_int_hidden.result storage/tokudb/mysql-test/tokudb/r/ctype_collate.result storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result storage/tokudb/mysql-test/tokudb/r/hotindex-del-fast.result storage/tokudb/mysql-test/tokudb/r/hotindex-del-slow.result storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result storage/tokudb/mysql-test/tokudb/r/locks-blocking-row-locks-getset.result storage/tokudb/mysql-test/tokudb/r/locks-blocking-row-locks.result storage/tokudb/mysql-test/tokudb/r/mvcc-10.result storage/tokudb/mysql-test/tokudb/r/mvcc-11.result storage/tokudb/mysql-test/tokudb/r/mvcc-12.result storage/tokudb/mysql-test/tokudb/r/mvcc-13.result storage/tokudb/mysql-test/tokudb/r/mvcc-14.result storage/tokudb/mysql-test/tokudb/r/mvcc-15.result storage/tokudb/mysql-test/tokudb/r/mvcc-16.result storage/tokudb/mysql-test/tokudb/r/mvcc-17.result storage/tokudb/mysql-test/tokudb/r/mvcc-18.result storage/tokudb/mysql-test/tokudb/r/mvcc-21.result storage/tokudb/mysql-test/tokudb/r/mvcc-22.result storage/tokudb/mysql-test/tokudb/r/mvcc-23.result storage/tokudb/mysql-test/tokudb/r/mvcc-25.result storage/tokudb/mysql-test/tokudb/r/mvcc-3.result storage/tokudb/mysql-test/tokudb/r/mvcc-33.result storage/tokudb/mysql-test/tokudb/r/mvcc-34.result storage/tokudb/mysql-test/tokudb/r/mvcc-35.result storage/tokudb/mysql-test/tokudb/r/mvcc-36.result storage/tokudb/mysql-test/tokudb/r/mvcc-37.result storage/tokudb/mysql-test/tokudb/r/mvcc-38.result storage/tokudb/mysql-test/tokudb/r/mvcc-39.result storage/tokudb/mysql-test/tokudb/r/mvcc-4.result storage/tokudb/mysql-test/tokudb/r/mvcc-40.result storage/tokudb/mysql-test/tokudb/r/mvcc-5.result storage/tokudb/mysql-test/tokudb/r/mvcc-6.result storage/tokudb/mysql-test/tokudb/r/mvcc-7.result storage/tokudb/mysql-test/tokudb/r/mvcc-8.result storage/tokudb/mysql-test/tokudb/r/mvcc-9.result storage/tokudb/mysql-test/tokudb/r/mvcc-checksum-locks.result storage/tokudb/mysql-test/tokudb/r/type_binary.result storage/tokudb/mysql-test/tokudb/r/type_bit.result storage/tokudb/mysql-test/tokudb/r/type_blob.result storage/tokudb/mysql-test/tokudb/r/type_datetime.result storage/tokudb/mysql-test/tokudb/r/type_decimal.result storage/tokudb/mysql-test/tokudb/r/type_enum.result storage/tokudb/mysql-test/tokudb/r/type_float.result storage/tokudb/mysql-test/tokudb/r/type_nchar.result storage/tokudb/mysql-test/tokudb/r/type_newdecimal.result storage/tokudb/mysql-test/tokudb/r/type_set.result storage/tokudb/mysql-test/tokudb/r/type_timestamp.result storage/tokudb/mysql-test/tokudb/r/type_varchar.result storage/tokudb/mysql-test/tokudb/t/auto_increment.test storage/tokudb/mysql-test/tokudb/t/auto_increment_boundary.test storage/tokudb/mysql-test/tokudb/t/auto_increment_boundary_traditional.test storage/tokudb/mysql-test/tokudb/t/bulk-fetch.test storage/tokudb/mysql-test/tokudb/t/bulk-fetch2.test storage/tokudb/mysql-test/tokudb/t/change_column_all_1000_1.test storage/tokudb/mysql-test/tokudb/t/change_column_all_1000_10.test storage/tokudb/mysql-test/tokudb/t/change_column_auto_inc.test storage/tokudb/mysql-test/tokudb/t/change_column_bin.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_key.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_pad.test storage/tokudb/mysql-test/tokudb/t/change_column_bin_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_blob.test storage/tokudb/mysql-test/tokudb/t/change_column_char.test storage/tokudb/mysql-test/tokudb/t/change_column_char_binary.test storage/tokudb/mysql-test/tokudb/t/change_column_char_charbinary.test storage/tokudb/mysql-test/tokudb/t/change_column_char_charset.test storage/tokudb/mysql-test/tokudb/t/change_column_char_default.test storage/tokudb/mysql-test/tokudb/t/change_column_char_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_char_key.test storage/tokudb/mysql-test/tokudb/t/change_column_char_null.test storage/tokudb/mysql-test/tokudb/t/change_column_char_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_int.test storage/tokudb/mysql-test/tokudb/t/change_column_int_default.test storage/tokudb/mysql-test/tokudb/t/change_column_int_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_int_key.test storage/tokudb/mysql-test/tokudb/t/change_column_int_not_supported.test storage/tokudb/mysql-test/tokudb/t/change_column_int_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_multiple_columns.test storage/tokudb/mysql-test/tokudb/t/change_column_text.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_default.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_key.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_multiple.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_null.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_varbin_varchar.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_charset.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_default.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_descriptor.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_key.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_null.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_prefix_a.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_prefix_b.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_rename.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_sum_cross256.test storage/tokudb/mysql-test/tokudb/t/change_column_varchar_varbin.test storage/tokudb/mysql-test/tokudb/t/cluster_1829.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test storage/tokudb/mysql-test/tokudb/t/cluster_create_table.test storage/tokudb/mysql-test/tokudb/t/cluster_delete.test storage/tokudb/mysql-test/tokudb/t/cluster_delete2.test storage/tokudb/mysql-test/tokudb/t/cluster_filter.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_key.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_and_int_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_unpack_varchar_hidden.test storage/tokudb/mysql-test/tokudb/t/cluster_filter_varchar_prefix.test storage/tokudb/mysql-test/tokudb/t/cluster_key.test storage/tokudb/mysql-test/tokudb/t/cluster_query_plan.test storage/tokudb/mysql-test/tokudb/t/cluster_tokudb_bug_993.test storage/tokudb/mysql-test/tokudb/t/cluster_tokudb_bug_993_2.test storage/tokudb/mysql-test/tokudb/t/cluster_update.test storage/tokudb/mysql-test/tokudb/t/cluster_update2.test storage/tokudb/mysql-test/tokudb/t/ctype_ascii.test storage/tokudb/mysql-test/tokudb/t/ctype_collate.test storage/tokudb/mysql-test/tokudb/t/ctype_cp1250_ch.test storage/tokudb/mysql-test/tokudb/t/ctype_cp1251.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-1.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-fast.test storage/tokudb/mysql-test/tokudb/t/hotindex-del-slow.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-1.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-2.test storage/tokudb/mysql-test/tokudb/t/hotindex-insert-bigchar.test storage/tokudb/mysql-test/tokudb/t/hotindex-update-0.test storage/tokudb/mysql-test/tokudb/t/hotindex-update-1.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_lock_waits_released.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_lock_waits_timeout.test storage/tokudb/mysql-test/tokudb/t/i_s_tokudb_locks_released.test storage/tokudb/mysql-test/tokudb/t/information-schema-global-status.test storage/tokudb/mysql-test/tokudb/t/lockretry-insert.writelocktable.test storage/tokudb/mysql-test/tokudb/t/lockretry-writelocktable.insert.test storage/tokudb/mysql-test/tokudb/t/lockretry-writelocktable.insert2.test storage/tokudb/mysql-test/tokudb/t/locks-blocking-row-locks-getset.test storage/tokudb/mysql-test/tokudb/t/locks-blocking-row-locks.test storage/tokudb/mysql-test/tokudb/t/locks-delete-deadlock-1.test storage/tokudb/mysql-test/tokudb/t/locks-no-read-lock-serializable-autocommit.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-1.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-2.test storage/tokudb/mysql-test/tokudb/t/locks-select-update-3.test storage/tokudb/mysql-test/tokudb/t/locks-update-deadlock-1.test storage/tokudb/mysql-test/tokudb/t/mvcc-1.test storage/tokudb/mysql-test/tokudb/t/mvcc-10.test storage/tokudb/mysql-test/tokudb/t/mvcc-11.test storage/tokudb/mysql-test/tokudb/t/mvcc-12.test storage/tokudb/mysql-test/tokudb/t/mvcc-13.test storage/tokudb/mysql-test/tokudb/t/mvcc-14.test storage/tokudb/mysql-test/tokudb/t/mvcc-15.test storage/tokudb/mysql-test/tokudb/t/mvcc-16.test storage/tokudb/mysql-test/tokudb/t/mvcc-17.test storage/tokudb/mysql-test/tokudb/t/mvcc-18.test storage/tokudb/mysql-test/tokudb/t/mvcc-19.test storage/tokudb/mysql-test/tokudb/t/mvcc-2.test storage/tokudb/mysql-test/tokudb/t/mvcc-20.test storage/tokudb/mysql-test/tokudb/t/mvcc-21.test storage/tokudb/mysql-test/tokudb/t/mvcc-22.test storage/tokudb/mysql-test/tokudb/t/mvcc-23.test storage/tokudb/mysql-test/tokudb/t/mvcc-24.test storage/tokudb/mysql-test/tokudb/t/mvcc-25.test storage/tokudb/mysql-test/tokudb/t/mvcc-26.test storage/tokudb/mysql-test/tokudb/t/mvcc-27.test storage/tokudb/mysql-test/tokudb/t/mvcc-28.test storage/tokudb/mysql-test/tokudb/t/mvcc-2808-read-committed.test storage/tokudb/mysql-test/tokudb/t/mvcc-2808-read-uncommitted.test storage/tokudb/mysql-test/tokudb/t/mvcc-29.test storage/tokudb/mysql-test/tokudb/t/mvcc-3.test storage/tokudb/mysql-test/tokudb/t/mvcc-30.test storage/tokudb/mysql-test/tokudb/t/mvcc-31.test storage/tokudb/mysql-test/tokudb/t/mvcc-33.test storage/tokudb/mysql-test/tokudb/t/mvcc-34.test storage/tokudb/mysql-test/tokudb/t/mvcc-35.test storage/tokudb/mysql-test/tokudb/t/mvcc-36.test storage/tokudb/mysql-test/tokudb/t/mvcc-37.test storage/tokudb/mysql-test/tokudb/t/mvcc-38.test storage/tokudb/mysql-test/tokudb/t/mvcc-39.test storage/tokudb/mysql-test/tokudb/t/mvcc-4.test storage/tokudb/mysql-test/tokudb/t/mvcc-40.test storage/tokudb/mysql-test/tokudb/t/mvcc-5.test storage/tokudb/mysql-test/tokudb/t/mvcc-6.test storage/tokudb/mysql-test/tokudb/t/mvcc-7.test storage/tokudb/mysql-test/tokudb/t/mvcc-8.test storage/tokudb/mysql-test/tokudb/t/mvcc-9.test storage/tokudb/mysql-test/tokudb/t/mvcc-checksum-locks.test storage/tokudb/mysql-test/tokudb/t/nested_txn_autocommit.test storage/tokudb/mysql-test/tokudb/t/nested_txn_begin.test storage/tokudb/mysql-test/tokudb/t/nested_txn_implicit_commit.test storage/tokudb/mysql-test/tokudb/t/prim_key_1.test storage/tokudb/mysql-test/tokudb/t/prim_key_2.test storage/tokudb/mysql-test/tokudb/t/prim_key_3.test storage/tokudb/mysql-test/tokudb/t/prim_key_4.test storage/tokudb/mysql-test/tokudb/t/prim_key_5.test storage/tokudb/mysql-test/tokudb/t/prim_key_6.test storage/tokudb/mysql-test/tokudb/t/replace-ignore.test storage/tokudb/mysql-test/tokudb/t/rows-32m-0.test storage/tokudb/mysql-test/tokudb/t/rows-32m-1.test storage/tokudb/mysql-test/tokudb/t/rows-32m-rand-insert.test storage/tokudb/mysql-test/tokudb/t/rows-32m-seq-insert.test storage/tokudb/mysql-test/tokudb/t/savepoint-3.test storage/tokudb/mysql-test/tokudb/t/simple_delete_all.test storage/tokudb/mysql-test/tokudb/t/simple_join_tokudb_myisam.test storage/tokudb/mysql-test/tokudb/t/simple_truncate.test storage/tokudb/mysql-test/tokudb/t/truncate_row_count.test storage/tokudb/mysql-test/tokudb/t/truncate_txn_commit.test storage/tokudb/mysql-test/tokudb/t/truncate_txn_rollback.test storage/tokudb/mysql-test/tokudb/t/type_varchar.test storage/tokudb/mysql-test/tokudb_add_index/r/hot_create_unique_index.result storage/tokudb/mysql-test/tokudb_add_index/t/1522.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_1.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_10.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_11.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_12.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_13.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_14.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_16.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_17.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_18.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_2.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_3.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_4.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_6.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_7.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_8.test storage/tokudb/mysql-test/tokudb_add_index/t/add_index_9.test storage/tokudb/mysql-test/tokudb_add_index/t/falcon_bug_23691.test storage/tokudb/mysql-test/tokudb_add_index/t/falcon_bug_23692.test storage/tokudb/mysql-test/tokudb_add_index/t/hot_create_unique_index.test storage/tokudb/mysql-test/tokudb_add_index/t/tokudb_bug_1152.test storage/tokudb/mysql-test/tokudb_alter_table/r/ai_part.result storage/tokudb/mysql-test/tokudb_alter_table/r/alter_column_default.result storage/tokudb/mysql-test/tokudb_alter_table/r/auto_inc.result storage/tokudb/mysql-test/tokudb_alter_table/r/fractional_time_alter_table.result storage/tokudb/mysql-test/tokudb_alter_table/r/frm_discover.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_and_rename_table.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcad_part.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcr.result storage/tokudb/mysql-test/tokudb_alter_table/r/hcr3.result storage/tokudb/mysql-test/tokudb_alter_table/r/other_alter.result storage/tokudb/mysql-test/tokudb_alter_table/r/other_alter2.result storage/tokudb/mysql-test/tokudb_alter_table/r/row_format_alter.result storage/tokudb/mysql-test/tokudb_alter_table/r/test_field_same_detection.result storage/tokudb/mysql-test/tokudb_alter_table/t/5260.test storage/tokudb/mysql-test/tokudb_alter_table/t/ai_di.test storage/tokudb/mysql-test/tokudb_alter_table/t/auto_inc.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_add3.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_blob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_blob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_fixed_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_fixed_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_var_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_all_var_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_and_rename_table.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_clustering.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_clustering2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_diff_num_offset_bytes.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedblob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_fixedvar_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_indexing_mix.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_null_bits.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_pk.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_pk2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_template.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_tmp_tables.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_tmp_tables_56.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_add.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_add2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_varblob_drop.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_dels.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_lock_sps.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcad_with_locks.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr2.test storage/tokudb/mysql-test/tokudb_alter_table/t/hcr3.test storage/tokudb/mysql-test/tokudb_alter_table/t/hot_row_format_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/other_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/other_alter2.test storage/tokudb/mysql-test/tokudb_alter_table/t/row_format_alter.test storage/tokudb/mysql-test/tokudb_alter_table/t/test_field_same_detection.test storage/tokudb/mysql-test/tokudb_alter_table/t/virtual_columns.test storage/tokudb/mysql-test/tokudb_bugs/disabled.def storage/tokudb/mysql-test/tokudb_bugs/r/2952.result storage/tokudb/mysql-test/tokudb_bugs/r/2970.result storage/tokudb/mysql-test/tokudb_bugs/r/4676.result storage/tokudb/mysql-test/tokudb_bugs/r/5089.result storage/tokudb/mysql-test/tokudb_bugs/r/checkpoint_lock.result storage/tokudb/mysql-test/tokudb_bugs/r/checkpoint_lock_3.result storage/tokudb/mysql-test/tokudb_bugs/r/dict_leak_3518.result storage/tokudb/mysql-test/tokudb_bugs/r/expand_tinytext_text.result storage/tokudb/mysql-test/tokudb_bugs/r/fractional_time.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store2.result storage/tokudb/mysql-test/tokudb_bugs/r/frm_store3.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_drop_part_table_668.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_drop_simple_table_668.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_mrr.result storage/tokudb/mysql-test/tokudb_bugs/r/tokudb_mrr2.result storage/tokudb/mysql-test/tokudb_bugs/t/1913.test storage/tokudb/mysql-test/tokudb_bugs/t/1938.test storage/tokudb/mysql-test/tokudb_bugs/t/1949.test storage/tokudb/mysql-test/tokudb_bugs/t/2043.test storage/tokudb/mysql-test/tokudb_bugs/t/2219.test storage/tokudb/mysql-test/tokudb_bugs/t/2262.test storage/tokudb/mysql-test/tokudb_bugs/t/2383.test storage/tokudb/mysql-test/tokudb_bugs/t/2458.test storage/tokudb/mysql-test/tokudb_bugs/t/2548.test storage/tokudb/mysql-test/tokudb_bugs/t/2641.test storage/tokudb/mysql-test/tokudb_bugs/t/2952.test storage/tokudb/mysql-test/tokudb_bugs/t/2970.test storage/tokudb/mysql-test/tokudb_bugs/t/3014.test storage/tokudb/mysql-test/tokudb_bugs/t/3015.test storage/tokudb/mysql-test/tokudb_bugs/t/3083.test storage/tokudb/mysql-test/tokudb_bugs/t/4472.test storage/tokudb/mysql-test/tokudb_bugs/t/4656.test storage/tokudb/mysql-test/tokudb_bugs/t/4656_2.test storage/tokudb/mysql-test/tokudb_bugs/t/5089.test storage/tokudb/mysql-test/tokudb_bugs/t/5733_innodb.test storage/tokudb/mysql-test/tokudb_bugs/t/6053.test storage/tokudb/mysql-test/tokudb_bugs/t/6684.test storage/tokudb/mysql-test/tokudb_bugs/t/checkpoint_lock.test storage/tokudb/mysql-test/tokudb_bugs/t/checkpoint_lock_3.test storage/tokudb/mysql-test/tokudb_bugs/t/expand_tinytext_text.test storage/tokudb/mysql-test/tokudb_bugs/t/fileops-4.test storage/tokudb/mysql-test/tokudb_bugs/t/ft-index-40.test storage/tokudb/mysql-test/tokudb_bugs/t/index_read.test storage/tokudb/mysql-test/tokudb_bugs/t/tokudb_drop_part_table_668.test storage/tokudb/mysql-test/tokudb_bugs/t/tokudb_drop_simple_table_668.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-1.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-2.test storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test storage/tokudb/mysql-test/tokudb_mariadb/r/alter.result storage/tokudb/mysql-test/tokudb_mariadb/r/clustering.result storage/tokudb/mysql-test/tokudb_mariadb/r/compression.result storage/tokudb/mysql-test/tokudb_mariadb/t/compression.test storage/tokudb/scripts/common.sh storage/tokudb/scripts/make.mysql.bash storage/tokudb/scripts/make.mysql.debug.env.bash storage/tokudb/scripts/nightly.mysql.build.and.test.bash storage/tokudb/scripts/run.atc.ontime.bash storage/tokudb/scripts/run.mysql.tests.bash storage/tokudb/scripts/run.sql.bench.bash storage/tokudb/scripts/run.tpch.bash storage/tokudb/scripts/setup.mysql.bash storage/tokudb/scripts/tokutek.make.mysql.bash storage/tokudb/tokudb_card.h storage/tokudb/tokudb_update_fun.cc storage/xtradb/CMakeLists.txt storage/xtradb/api/api0api.cc storage/xtradb/btr/btr0btr.cc storage/xtradb/btr/btr0cur.cc storage/xtradb/btr/btr0pcur.cc storage/xtradb/buf/buf0buf.cc storage/xtradb/buf/buf0flu.cc storage/xtradb/dict/dict0crea.cc storage/xtradb/dict/dict0dict.cc storage/xtradb/dict/dict0load.cc storage/xtradb/dict/dict0mem.cc storage/xtradb/dict/dict0stats.cc storage/xtradb/fil/fil0fil.cc storage/xtradb/fts/fts0config.cc storage/xtradb/fts/fts0fts.cc storage/xtradb/fts/fts0opt.cc storage/xtradb/fts/fts0que.cc storage/xtradb/handler/ha_innodb.cc storage/xtradb/handler/handler0alter.cc storage/xtradb/handler/i_s.cc storage/xtradb/handler/xtradb_i_s.cc storage/xtradb/ibuf/ibuf0ibuf.cc storage/xtradb/include/api0api.h storage/xtradb/include/btr0cur.h storage/xtradb/include/btr0pcur.h storage/xtradb/include/btr0pcur.ic storage/xtradb/include/btr0sea.h storage/xtradb/include/buf0flu.h storage/xtradb/include/buf0flu.ic storage/xtradb/include/db0err.h storage/xtradb/include/dict0stats.ic storage/xtradb/include/dict0types.h storage/xtradb/include/fts0fts.h storage/xtradb/include/fts0types.h storage/xtradb/include/ibuf0ibuf.h storage/xtradb/include/log0log.h storage/xtradb/include/mtr0mtr.h storage/xtradb/include/mtr0mtr.ic storage/xtradb/include/os0file.h storage/xtradb/include/row0ftsort.h storage/xtradb/include/srv0conc.h storage/xtradb/include/srv0mon.h storage/xtradb/include/srv0mon.ic storage/xtradb/include/sync0arr.h storage/xtradb/include/sync0arr.ic storage/xtradb/include/sync0rw.h storage/xtradb/include/sync0rw.ic storage/xtradb/include/sync0sync.h storage/xtradb/include/sync0sync.ic storage/xtradb/include/sync0types.h storage/xtradb/include/trx0trx.h storage/xtradb/include/univ.i storage/xtradb/include/ut0bh.h storage/xtradb/include/ut0bh.ic storage/xtradb/log/log0log.cc storage/xtradb/log/log0online.cc storage/xtradb/log/log0recv.cc storage/xtradb/mtr/mtr0mtr.cc storage/xtradb/os/os0file.cc storage/xtradb/os/os0thread.cc storage/xtradb/row/row0ftsort.cc storage/xtradb/row/row0log.cc storage/xtradb/row/row0merge.cc storage/xtradb/row/row0mysql.cc storage/xtradb/row/row0quiesce.cc storage/xtradb/row/row0sel.cc storage/xtradb/srv/srv0mon.cc storage/xtradb/srv/srv0start.cc storage/xtradb/sync/sync0arr.cc storage/xtradb/sync/sync0rw.cc storage/xtradb/sync/sync0sync.cc storage/xtradb/trx/trx0purge.cc storage/xtradb/trx/trx0sys.cc storage/xtradb/trx/trx0trx.cc storage/xtradb/ut/ut0ut.cc strings/CMakeLists.txt strings/ctype-bin.c strings/ctype-mb.c strings/ctype-simple.c strings/ctype-uca.c strings/ctype-ucs2.c strings/ctype-utf8.c strings/ctype-win1250ch.c strings/ctype.c strings/decimal.c strings/dtoa.c strings/t_ctype.h support-files/MySQL-shared-compat.spec.sh support-files/compiler_warnings.supp support-files/mysql.server.sh support-files/rpm/server-postun.sh support-files/rpm/server-prein.sh tests/connect_test.c tests/fork_big.pl tests/fork_big2.pl tests/insert_test.c tests/list_test.c tests/mysql_client_test.c tests/select_test.c tests/showdb_test.c tests/ssl_test.c unittest/mysys/CMakeLists.txt unittest/mysys/bitmap-t.c unittest/mysys/ma_dyncol-t.c vio/CMakeLists.txt vio/vio.c vio/viosocket.c vio/viossl.c vio/viosslfactories.c zlib/CMakeLists.txt libmysql/libmysql_versions.ld.in mysql-test/suite/roles/grant_empty.result mysql-test/suite/roles/grant_empty.test pending merges: Olivier Bertrand 2014-04-22 - FIX a bug causing libxml2 not retrieving expanded multiple co...
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
1) Handling string memory allocation with a new STRING class. This is only the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
11 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
- Add a new CONNECT global variable allowing to tell whether or not a temporary file should be used for UPDATE/DELETE of file tables. Also use the "sorted" argument of index_init to help decide if sorting of positions must be done. modified: storage/connect/checklvl.h storage/connect/connect.cc storage/connect/connect.h storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/part_table.result storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/xindex.cpp - Fix a bug in TDBASE::ColDB that caused some special columns not to be found in the column list and reallocated without their Value causing a crash of some queries. modified: storage/connect/table.cpp - Fix a bug causing RestoreNrec to be called before closing a table causing a wrong value given to Spos modified: storage/connect/tabdos.cpp storage/connect/xindex.cpp - Add a new CONNECT global variable connect_exact_info. Set to ON, it tells CONNECT to return exact record numbers on info queries. If OFF it just gives an estimate. In version 10.0.13 this was unconditionally ON and caused info queries on remote tables to be extremely long and was the subject of MDEV-6612. modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp
11 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL. modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
12 years ago
  1. /* Copyright (C) Olivier Bertrand 2004 - 2014
  2. This program is free software; you can redistribute it and/or modify
  3. it under the terms of the GNU General Public License as published by
  4. the Free Software Foundation; version 2 of the License.
  5. This program is distributed in the hope that it will be useful,
  6. but WITHOUT ANY WARRANTY; without even the implied warranty of
  7. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  8. GNU General Public License for more details.
  9. You should have received a copy of the GNU General Public License
  10. along with this program; if not, write to the Free Software
  11. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
  12. /**
  13. @file ha_connect.cc
  14. @brief
  15. The ha_connect engine is a stubbed storage engine that enables to create tables
  16. based on external data. Principally they are based on plain files of many
  17. different types, but also on collections of such files, collection of tables,
  18. local or remote MySQL/MariaDB tables retrieved via MySQL API,
  19. ODBC tables retrieving data from other DBMS having an ODBC server, and even
  20. virtual tables.
  21. @details
  22. ha_connect will let you create/open/delete tables, the created table can be
  23. done specifying an already existing file, the drop table command will just
  24. suppress the table definition but not the eventual data file.
  25. Indexes are not supported for all table types but data can be inserted,
  26. updated or deleted.
  27. You can enable the CONNECT storage engine in your build by doing the
  28. following during your build process:<br> ./configure
  29. --with-connect-storage-engine
  30. You can install the CONNECT handler as all other storage handlers.
  31. Once this is done, MySQL will let you create tables with:<br>
  32. CREATE TABLE <table name> (...) ENGINE=CONNECT;
  33. The example storage engine does not use table locks. It
  34. implements an example "SHARE" that is inserted into a hash by table
  35. name. This is not used yet.
  36. Please read the object definition in ha_connect.h before reading the rest
  37. of this file.
  38. @note
  39. This MariaDB CONNECT handler is currently an adaptation of the XDB handler
  40. that was written for MySQL version 4.1.2-alpha. Its overall design should
  41. be enhanced in the future to meet MariaDB requirements.
  42. @note
  43. It was written also from the Brian's ha_example handler and contains parts
  44. of it that are there, such as table and system variables.
  45. @note
  46. When you create an CONNECT table, the MySQL Server creates a table .frm
  47. (format) file in the database directory, using the table name as the file
  48. name as is customary with MySQL.
  49. For file based tables, if a file name is not specified, this is an inward
  50. table. An empty file is made in the current data directory that you can
  51. populate later like for other engine tables. This file modified on ALTER
  52. and is deleted when dropping the table.
  53. If a file name is specified, this in an outward table. The specified file
  54. will be used as representing the table data and will not be modified or
  55. deleted on command such as ALTER or DROP.
  56. To get an idea of what occurs, here is an example select that would do
  57. a scan of an entire table:
  58. @code
  59. ha-connect::open
  60. ha_connect::store_lock
  61. ha_connect::external_lock
  62. ha_connect::info
  63. ha_connect::rnd_init
  64. ha_connect::extra
  65. ENUM HA_EXTRA_CACHE Cache record in HA_rrnd()
  66. ha_connect::rnd_next
  67. ha_connect::rnd_next
  68. ha_connect::rnd_next
  69. ha_connect::rnd_next
  70. ha_connect::rnd_next
  71. ha_connect::rnd_next
  72. ha_connect::rnd_next
  73. ha_connect::rnd_next
  74. ha_connect::rnd_next
  75. ha_connect::extra
  76. ENUM HA_EXTRA_NO_CACHE End caching of records (def)
  77. ha_connect::external_lock
  78. ha_connect::extra
  79. ENUM HA_EXTRA_RESET Reset database to after open
  80. @endcode
  81. Here you see that the connect storage engine has 9 rows called before
  82. rnd_next signals that it has reached the end of its data. Calls to
  83. ha_connect::extra() are hints as to what will be occuring to the request.
  84. Happy use!<br>
  85. -Olivier
  86. */
  87. #ifdef USE_PRAGMA_IMPLEMENTATION
  88. #pragma implementation // gcc: Class implementation
  89. #endif
  90. #define MYSQL_SERVER 1
  91. #define DONT_DEFINE_VOID
  92. #include "sql_class.h"
  93. #include "create_options.h"
  94. #include "mysql_com.h"
  95. #include "field.h"
  96. #include "sql_parse.h"
  97. #include "sql_base.h"
  98. #include <sys/stat.h>
  99. #if defined(NEW_WAY)
  100. #include "sql_table.h"
  101. #endif // NEW_WAY
  102. #include "sql_partition.h"
  103. #undef OFFSET
  104. #define NOPARSE
  105. #if defined(UNIX)
  106. #include "osutil.h"
  107. #endif // UNIX
  108. #include "global.h"
  109. #include "plgdbsem.h"
  110. #if defined(ODBC_SUPPORT)
  111. #include "odbccat.h"
  112. #endif // ODBC_SUPPORT
  113. #if defined(MYSQL_SUPPORT)
  114. #include "xtable.h"
  115. #include "tabmysql.h"
  116. #endif // MYSQL_SUPPORT
  117. #include "filamdbf.h"
  118. #include "tabxcl.h"
  119. #include "tabfmt.h"
  120. #include "reldef.h"
  121. #include "tabcol.h"
  122. #include "xindex.h"
  123. #if defined(WIN32)
  124. #include <io.h>
  125. #include "tabwmi.h"
  126. #endif // WIN32
  127. #include "connect.h"
  128. #include "user_connect.h"
  129. #include "ha_connect.h"
  130. #include "mycat.h"
  131. #include "myutil.h"
  132. #include "preparse.h"
  133. #include "inihandl.h"
  134. #if defined(LIBXML2_SUPPORT)
  135. #include "libdoc.h"
  136. #endif // LIBXML2_SUPPORT
  137. #include "taboccur.h"
  138. #include "tabpivot.h"
  139. #define my_strupr(p) my_caseup_str(default_charset_info, (p));
  140. #define my_strlwr(p) my_casedn_str(default_charset_info, (p));
  141. #define my_stricmp(a,b) my_strcasecmp(default_charset_info, (a), (b))
  142. /***********************************************************************/
  143. /* Initialize the ha_connect static members. */
  144. /***********************************************************************/
  145. #define SZCONV 8192
  146. #define SZWORK 67108864 // Default work area size 64M
  147. #define SZWMIN 4194304 // Minimum work area size 4M
  148. extern "C" {
  149. char version[]= "Version 1.03.0004 October 13, 2014";
  150. char compver[]= "Version 1.03.0004 " __DATE__ " " __TIME__;
  151. #if defined(WIN32)
  152. char slash= '\\';
  153. #else // !WIN32
  154. char slash= '/';
  155. #endif // !WIN32
  156. #if defined(XMSG)
  157. char msglang[]; // Default message language
  158. #endif
  159. // int trace= 0; // The general trace value
  160. int xconv= 0; // The type conversion option
  161. int zconv= SZCONV; // The text conversion size
  162. } // extern "C"
  163. #if defined(XMAP)
  164. bool xmap= false;
  165. #endif // XMAP
  166. uint worksize= SZWORK;
  167. ulong ha_connect::num= 0;
  168. //int DTVAL::Shift= 0;
  169. /* CONNECT system variables */
  170. static int conv_size= SZCONV;
  171. static uint work_size= SZWORK;
  172. static ulong type_conv= 0;
  173. #if defined(XMAP)
  174. static my_bool indx_map= 0;
  175. #endif // XMAP
  176. /***********************************************************************/
  177. /* Utility functions. */
  178. /***********************************************************************/
  179. PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info);
  180. PQRYRES VirColumns(PGLOBAL g, char *tab, char *db, bool info);
  181. void PushWarning(PGLOBAL g, THD *thd, int level);
  182. bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, const char *host,
  183. const char *db, char *tab, const char *src, int port);
  184. bool ExactInfo(void);
  185. USETEMP UseTemp(void);
  186. static PCONNECT GetUser(THD *thd, PCONNECT xp);
  187. static PGLOBAL GetPlug(THD *thd, PCONNECT& lxp);
  188. static handler *connect_create_handler(handlerton *hton,
  189. TABLE_SHARE *table,
  190. MEM_ROOT *mem_root);
  191. static int connect_assisted_discovery(handlerton *hton, THD* thd,
  192. TABLE_SHARE *table_s,
  193. HA_CREATE_INFO *info);
  194. /****************************************************************************/
  195. /* Return str as a zero terminated string. */
  196. /****************************************************************************/
  197. static char *strz(PGLOBAL g, LEX_STRING &ls)
  198. {
  199. char *str= (char*)PlugSubAlloc(g, NULL, ls.length + 1);
  200. memcpy(str, ls.str, ls.length);
  201. str[ls.length]= 0;
  202. return str;
  203. } // end of strz
  204. /***********************************************************************/
  205. /* CONNECT session variables definitions. */
  206. /***********************************************************************/
  207. // Tracing: 0 no, 1 yes, >1 more tracing
  208. static MYSQL_THDVAR_INT(xtrace,
  209. PLUGIN_VAR_RQCMDARG, "Console trace value.",
  210. NULL, NULL, 0, 0, INT_MAX, 1);
  211. // Getting exact info values
  212. static MYSQL_THDVAR_BOOL(exact_info, PLUGIN_VAR_RQCMDARG,
  213. "Getting exact info values",
  214. NULL, NULL, 0);
  215. /**
  216. Temporary file usage:
  217. no: Not using temporary file
  218. auto: Using temporary file when needed
  219. yes: Allways using temporary file
  220. force: Force using temporary file (no MAP)
  221. test: Reserved
  222. */
  223. const char *usetemp_names[]=
  224. {
  225. "NO", "AUTO", "YES", "FORCE", "TEST", NullS
  226. };
  227. TYPELIB usetemp_typelib=
  228. {
  229. array_elements(usetemp_names) - 1, "usetemp_typelib",
  230. usetemp_names, NULL
  231. };
  232. static MYSQL_THDVAR_ENUM(
  233. use_tempfile, // name
  234. PLUGIN_VAR_RQCMDARG, // opt
  235. "Temporary file use.", // comment
  236. NULL, // check
  237. NULL, // update function
  238. 1, // def (AUTO)
  239. &usetemp_typelib); // typelib
  240. /***********************************************************************/
  241. /* Function to export session variable values to other source files. */
  242. /***********************************************************************/
  243. extern "C" int GetTraceValue(void) {return THDVAR(current_thd, xtrace);}
  244. bool ExactInfo(void) {return THDVAR(current_thd, exact_info);}
  245. USETEMP UseTemp(void) {return (USETEMP)THDVAR(current_thd, use_tempfile);}
  246. /***********************************************************************/
  247. /* Global variables update functions. */
  248. /***********************************************************************/
  249. static void update_connect_zconv(MYSQL_THD thd,
  250. struct st_mysql_sys_var *var,
  251. void *var_ptr, const void *save)
  252. {
  253. zconv= *(int *)var_ptr= *(int *)save;
  254. } // end of update_connect_zconv
  255. static void update_connect_xconv(MYSQL_THD thd,
  256. struct st_mysql_sys_var *var,
  257. void *var_ptr, const void *save)
  258. {
  259. xconv= (int)(*(ulong *)var_ptr= *(ulong *)save);
  260. } // end of update_connect_xconv
  261. static void update_connect_worksize(MYSQL_THD thd,
  262. struct st_mysql_sys_var *var,
  263. void *var_ptr, const void *save)
  264. {
  265. worksize= (uint)(*(ulong *)var_ptr= *(ulong *)save);
  266. } // end of update_connect_worksize
  267. #if defined(XMAP)
  268. static void update_connect_xmap(MYSQL_THD thd,
  269. struct st_mysql_sys_var *var,
  270. void *var_ptr, const void *save)
  271. {
  272. xmap= (bool)(*(my_bool *)var_ptr= *(my_bool *)save);
  273. } // end of update_connect_xmap
  274. #endif // XMAP
  275. /***********************************************************************/
  276. /* The CONNECT handlerton object. */
  277. /***********************************************************************/
  278. handlerton *connect_hton;
  279. /**
  280. CREATE TABLE option list (table options)
  281. These can be specified in the CREATE TABLE:
  282. CREATE TABLE ( ... ) {...here...}
  283. */
  284. ha_create_table_option connect_table_option_list[]=
  285. {
  286. HA_TOPTION_STRING("TABLE_TYPE", type),
  287. HA_TOPTION_STRING("FILE_NAME", filename),
  288. HA_TOPTION_STRING("XFILE_NAME", optname),
  289. //HA_TOPTION_STRING("CONNECT_STRING", connect),
  290. HA_TOPTION_STRING("TABNAME", tabname),
  291. HA_TOPTION_STRING("TABLE_LIST", tablist),
  292. HA_TOPTION_STRING("DBNAME", dbname),
  293. HA_TOPTION_STRING("SEP_CHAR", separator),
  294. HA_TOPTION_STRING("QCHAR", qchar),
  295. HA_TOPTION_STRING("MODULE", module),
  296. HA_TOPTION_STRING("SUBTYPE", subtype),
  297. HA_TOPTION_STRING("CATFUNC", catfunc),
  298. HA_TOPTION_STRING("SRCDEF", srcdef),
  299. HA_TOPTION_STRING("COLIST", colist),
  300. HA_TOPTION_STRING("OPTION_LIST", oplist),
  301. HA_TOPTION_STRING("DATA_CHARSET", data_charset),
  302. HA_TOPTION_NUMBER("LRECL", lrecl, 0, 0, INT_MAX32, 1),
  303. HA_TOPTION_NUMBER("BLOCK_SIZE", elements, 0, 0, INT_MAX32, 1),
  304. //HA_TOPTION_NUMBER("ESTIMATE", estimate, 0, 0, INT_MAX32, 1),
  305. HA_TOPTION_NUMBER("MULTIPLE", multiple, 0, 0, 2, 1),
  306. HA_TOPTION_NUMBER("HEADER", header, 0, 0, 3, 1),
  307. HA_TOPTION_NUMBER("QUOTED", quoted, (ulonglong) -1, 0, 3, 1),
  308. HA_TOPTION_NUMBER("ENDING", ending, (ulonglong) -1, 0, INT_MAX32, 1),
  309. HA_TOPTION_NUMBER("COMPRESS", compressed, 0, 0, 2, 1),
  310. //HA_TOPTION_BOOL("COMPRESS", compressed, 0),
  311. HA_TOPTION_BOOL("MAPPED", mapped, 0),
  312. HA_TOPTION_BOOL("HUGE", huge, 0),
  313. HA_TOPTION_BOOL("SPLIT", split, 0),
  314. HA_TOPTION_BOOL("READONLY", readonly, 0),
  315. HA_TOPTION_BOOL("SEPINDEX", sepindex, 0),
  316. HA_TOPTION_END
  317. };
  318. /**
  319. CREATE TABLE option list (field options)
  320. These can be specified in the CREATE TABLE per field:
  321. CREATE TABLE ( field ... {...here...}, ... )
  322. */
  323. ha_create_table_option connect_field_option_list[]=
  324. {
  325. HA_FOPTION_NUMBER("FLAG", offset, (ulonglong) -1, 0, INT_MAX32, 1),
  326. HA_FOPTION_NUMBER("MAX_DIST", freq, 0, 0, INT_MAX32, 1), // BLK_INDX
  327. //HA_FOPTION_NUMBER("DISTRIB", opt, 0, 0, 2, 1), // used for BLK_INDX
  328. HA_FOPTION_NUMBER("FIELD_LENGTH", fldlen, 0, 0, INT_MAX32, 1),
  329. HA_FOPTION_STRING("DATE_FORMAT", dateformat),
  330. HA_FOPTION_STRING("FIELD_FORMAT", fieldformat),
  331. HA_FOPTION_STRING("SPECIAL", special),
  332. HA_FOPTION_ENUM("DISTRIB", opt, "scattered,clustered,sorted", 0),
  333. HA_FOPTION_END
  334. };
  335. /*
  336. CREATE TABLE option list (index options)
  337. These can be specified in the CREATE TABLE per index:
  338. CREATE TABLE ( field ..., .., INDEX .... *here*, ... )
  339. */
  340. ha_create_table_option connect_index_option_list[]=
  341. {
  342. HA_IOPTION_BOOL("DYNAM", dynamic, 0),
  343. HA_IOPTION_BOOL("MAPPED", mapped, 0),
  344. HA_IOPTION_END
  345. };
  346. /***********************************************************************/
  347. /* Push G->Message as a MySQL warning. */
  348. /***********************************************************************/
  349. bool PushWarning(PGLOBAL g, PTDBASE tdbp, int level)
  350. {
  351. PHC phc;
  352. THD *thd;
  353. MYCAT *cat= (MYCAT*)tdbp->GetDef()->GetCat();
  354. if (!cat || !(phc= cat->GetHandler()) || !phc->GetTable() ||
  355. !(thd= (phc->GetTable())->in_use))
  356. return true;
  357. PushWarning(g, thd, level);
  358. return false;
  359. } // end of PushWarning
  360. void PushWarning(PGLOBAL g, THD *thd, int level)
  361. {
  362. if (thd) {
  363. Sql_condition::enum_warning_level wlvl;
  364. wlvl= (Sql_condition::enum_warning_level)level;
  365. push_warning(thd, wlvl, 0, g->Message);
  366. } else
  367. htrc("%s\n", g->Message);
  368. } // end of PushWarning
  369. #ifdef HAVE_PSI_INTERFACE
  370. static PSI_mutex_key con_key_mutex_CONNECT_SHARE_mutex;
  371. static PSI_mutex_info all_connect_mutexes[]=
  372. {
  373. { &con_key_mutex_CONNECT_SHARE_mutex, "CONNECT_SHARE::mutex", 0}
  374. };
  375. static void init_connect_psi_keys()
  376. {
  377. const char* category= "connect";
  378. int count;
  379. if (PSI_server == NULL)
  380. return;
  381. count= array_elements(all_connect_mutexes);
  382. PSI_server->register_mutex(category, all_connect_mutexes, count);
  383. }
  384. #else
  385. static void init_connect_psi_keys() {}
  386. #endif
  387. DllExport LPCSTR PlugSetPath(LPSTR to, LPCSTR name, LPCSTR dir)
  388. {
  389. const char *res= PlugSetPath(to, mysql_data_home, name, dir);
  390. return res;
  391. }
  392. /**
  393. @brief
  394. If frm_error() is called then we will use this to determine
  395. the file extensions that exist for the storage engine. This is also
  396. used by the default rename_table and delete_table method in
  397. handler.cc.
  398. For engines that have two file name extentions (separate meta/index file
  399. and data file), the order of elements is relevant. First element of engine
  400. file name extentions array should be meta/index file extention. Second
  401. element - data file extention. This order is assumed by
  402. prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued.
  403. @see
  404. rename_table method in handler.cc and
  405. delete_table method in handler.cc
  406. */
  407. static const char *ha_connect_exts[]= {
  408. ".dos", ".fix", ".csv", ".bin", ".fmt", ".dbf", ".xml", ".ini", ".vec",
  409. ".dnx", ".fnx", ".bnx", ".vnx", ".dbx", ".dop", ".fop", ".bop", ".vop",
  410. NULL};
  411. /**
  412. @brief
  413. Plugin initialization
  414. */
  415. static int connect_init_func(void *p)
  416. {
  417. DBUG_ENTER("connect_init_func");
  418. // added from Sergei mail
  419. #if 0 // (defined(LINUX))
  420. Dl_info dl_info;
  421. if (dladdr(&connect_hton, &dl_info))
  422. {
  423. if (dlopen(dl_info.dli_fname, RTLD_NOLOAD | RTLD_NOW | RTLD_GLOBAL) == 0)
  424. {
  425. sql_print_information("CONNECT: dlopen() failed, OEM table type is not supported");
  426. sql_print_information("CONNECT: %s", dlerror());
  427. }
  428. }
  429. else
  430. {
  431. sql_print_information("CONNECT: dladdr() failed, OEM table type is not supported");
  432. sql_print_information("CONNECT: %s", dlerror());
  433. }
  434. #endif // 0 (LINUX)
  435. sql_print_information("CONNECT: %s", compver);
  436. #ifdef LIBXML2_SUPPORT
  437. XmlInitParserLib();
  438. #endif // LIBXML2_SUPPORT
  439. init_connect_psi_keys();
  440. connect_hton= (handlerton *)p;
  441. connect_hton->state= SHOW_OPTION_YES;
  442. connect_hton->create= connect_create_handler;
  443. //connect_hton->flags= HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION;
  444. connect_hton->flags= HTON_TEMPORARY_NOT_SUPPORTED;
  445. connect_hton->table_options= connect_table_option_list;
  446. connect_hton->field_options= connect_field_option_list;
  447. connect_hton->index_options= connect_index_option_list;
  448. connect_hton->tablefile_extensions= ha_connect_exts;
  449. connect_hton->discover_table_structure= connect_assisted_discovery;
  450. if (trace)
  451. sql_print_information("connect_init: hton=%p", p);
  452. DTVAL::SetTimeShift(); // Initialize time zone shift once for all
  453. DBUG_RETURN(0);
  454. } // end of connect_init_func
  455. /**
  456. @brief
  457. Plugin clean up
  458. */
  459. static int connect_done_func(void *p)
  460. {
  461. int error= 0;
  462. PCONNECT pc, pn;
  463. DBUG_ENTER("connect_done_func");
  464. #ifdef LIBXML2_SUPPORT
  465. XmlCleanupParserLib();
  466. #endif // LIBXML2_SUPPORT
  467. #if !defined(WIN32)
  468. //PROFILE_End(); Causes signal 11
  469. #endif // !WIN32
  470. for (pc= user_connect::to_users; pc; pc= pn) {
  471. if (pc->g)
  472. PlugCleanup(pc->g, true);
  473. pn= pc->next;
  474. delete pc;
  475. } // endfor pc
  476. DBUG_RETURN(error);
  477. } // end of connect_done_func
  478. /**
  479. @brief
  480. Example of simple lock controls. The "share" it creates is a
  481. structure we will pass to each CONNECT handler. Do you have to have
  482. one of these? Well, you have pieces that are used for locking, and
  483. they are needed to function.
  484. */
  485. CONNECT_SHARE *ha_connect::get_share()
  486. {
  487. CONNECT_SHARE *tmp_share;
  488. lock_shared_ha_data();
  489. if (!(tmp_share= static_cast<CONNECT_SHARE*>(get_ha_share_ptr()))) {
  490. tmp_share= new CONNECT_SHARE;
  491. if (!tmp_share)
  492. goto err;
  493. mysql_mutex_init(con_key_mutex_CONNECT_SHARE_mutex,
  494. &tmp_share->mutex, MY_MUTEX_INIT_FAST);
  495. set_ha_share_ptr(static_cast<Handler_share*>(tmp_share));
  496. } // endif tmp_share
  497. err:
  498. unlock_shared_ha_data();
  499. return tmp_share;
  500. } // end of get_share
  501. static handler* connect_create_handler(handlerton *hton,
  502. TABLE_SHARE *table,
  503. MEM_ROOT *mem_root)
  504. {
  505. handler *h= new (mem_root) ha_connect(hton, table);
  506. if (trace)
  507. htrc("New CONNECT %p, table: %.*s\n", h,
  508. table ? table->table_name.length : 6,
  509. table ? table->table_name.str : "<null>");
  510. return h;
  511. } // end of connect_create_handler
  512. /****************************************************************************/
  513. /* ha_connect constructor. */
  514. /****************************************************************************/
  515. ha_connect::ha_connect(handlerton *hton, TABLE_SHARE *table_arg)
  516. :handler(hton, table_arg)
  517. {
  518. hnum= ++num;
  519. xp= (table) ? GetUser(ha_thd(), NULL) : NULL;
  520. if (xp)
  521. xp->SetHandler(this);
  522. #if defined(WIN32)
  523. datapath= ".\\";
  524. #else // !WIN32
  525. datapath= "./";
  526. #endif // !WIN32
  527. tdbp= NULL;
  528. sdvalin= NULL;
  529. sdvalout= NULL;
  530. xmod= MODE_ANY;
  531. istable= false;
  532. *partname= 0;
  533. bzero((char*) &xinfo, sizeof(XINFO));
  534. valid_info= false;
  535. valid_query_id= 0;
  536. creat_query_id= (table && table->in_use) ? table->in_use->query_id : 0;
  537. stop= false;
  538. alter= false;
  539. mrr= false;
  540. nox= true;
  541. abort= false;
  542. indexing= -1;
  543. locked= 0;
  544. part_id= NULL;
  545. data_file_name= NULL;
  546. index_file_name= NULL;
  547. enable_activate_all_index= 0;
  548. int_table_flags= (HA_NO_TRANSACTIONS | HA_NO_PREFIX_CHAR_KEYS);
  549. ref_length= sizeof(int);
  550. share= NULL;
  551. tshp= NULL;
  552. } // end of ha_connect constructor
  553. /****************************************************************************/
  554. /* ha_connect destructor. */
  555. /****************************************************************************/
  556. ha_connect::~ha_connect(void)
  557. {
  558. if (trace)
  559. htrc("Delete CONNECT %p, table: %.*s, xp=%p count=%d\n", this,
  560. table ? table->s->table_name.length : 6,
  561. table ? table->s->table_name.str : "<null>",
  562. xp, xp ? xp->count : 0);
  563. if (xp) {
  564. PCONNECT p;
  565. xp->count--;
  566. for (p= user_connect::to_users; p; p= p->next)
  567. if (p == xp)
  568. break;
  569. if (p && !p->count) {
  570. if (p->next)
  571. p->next->previous= p->previous;
  572. if (p->previous)
  573. p->previous->next= p->next;
  574. else
  575. user_connect::to_users= p->next;
  576. } // endif p
  577. if (!xp->count) {
  578. PlugCleanup(xp->g, true);
  579. delete xp;
  580. } // endif count
  581. } // endif xp
  582. } // end of ha_connect destructor
  583. /****************************************************************************/
  584. /* Get a pointer to the user of this handler. */
  585. /****************************************************************************/
  586. static PCONNECT GetUser(THD *thd, PCONNECT xp)
  587. {
  588. const char *dbn= NULL;
  589. if (!thd)
  590. return NULL;
  591. if (xp && thd == xp->thdp)
  592. return xp;
  593. for (xp= user_connect::to_users; xp; xp= xp->next)
  594. if (thd == xp->thdp)
  595. break;
  596. if (!xp) {
  597. xp= new user_connect(thd, dbn);
  598. if (xp->user_init()) {
  599. delete xp;
  600. xp= NULL;
  601. } // endif user_init
  602. } else
  603. xp->count++;
  604. return xp;
  605. } // end of GetUser
  606. /****************************************************************************/
  607. /* Get the global pointer of the user of this handler. */
  608. /****************************************************************************/
  609. static PGLOBAL GetPlug(THD *thd, PCONNECT& lxp)
  610. {
  611. lxp= GetUser(thd, lxp);
  612. return (lxp) ? lxp->g : NULL;
  613. } // end of GetPlug
  614. /****************************************************************************/
  615. /* Get the implied table type. */
  616. /****************************************************************************/
  617. TABTYPE ha_connect::GetRealType(PTOS pos)
  618. {
  619. TABTYPE type;
  620. if (pos || (pos= GetTableOptionStruct())) {
  621. type= GetTypeID(pos->type);
  622. if (type == TAB_UNDEF)
  623. type= pos->srcdef ? TAB_MYSQL : pos->tabname ? TAB_PRX : TAB_DOS;
  624. } else
  625. type= TAB_UNDEF;
  626. return type;
  627. } // end of GetRealType
  628. /** @brief
  629. The name of the index type that will be used for display.
  630. Don't implement this method unless you really have indexes.
  631. */
  632. const char *ha_connect::index_type(uint inx)
  633. {
  634. switch (GetIndexType(GetRealType())) {
  635. case 1:
  636. if (table_share)
  637. return (GetIndexOption(&table_share->key_info[inx], "Dynamic"))
  638. ? "KINDEX" : "XINDEX";
  639. else
  640. return "XINDEX";
  641. case 2: return "REMOTE";
  642. case 3: return "VIRTUAL";
  643. } // endswitch
  644. return "Unknown";
  645. } // end of index_type
  646. /** @brief
  647. This is a bitmap of flags that indicates how the storage engine
  648. implements indexes. The current index flags are documented in
  649. handler.h. If you do not implement indexes, just return zero here.
  650. @details
  651. part is the key part to check. First key part is 0.
  652. If all_parts is set, MySQL wants to know the flags for the combined
  653. index, up to and including 'part'.
  654. */
  655. ulong ha_connect::index_flags(uint inx, uint part, bool all_parts) const
  656. {
  657. ulong flags= HA_READ_NEXT | HA_READ_RANGE |
  658. HA_KEYREAD_ONLY | HA_KEY_SCAN_NOT_ROR;
  659. ha_connect *hp= (ha_connect*)this;
  660. PTOS pos= hp->GetTableOptionStruct();
  661. if (pos) {
  662. TABTYPE type= hp->GetRealType(pos);
  663. switch (GetIndexType(type)) {
  664. case 1: flags|= (HA_READ_ORDER | HA_READ_PREV); break;
  665. case 2: flags|= HA_READ_AFTER_KEY; break;
  666. } // endswitch
  667. } // endif pos
  668. return flags;
  669. } // end of index_flags
  670. /** @brief
  671. This is a list of flags that indicate what functionality the storage
  672. engine implements. The current table flags are documented in handler.h
  673. */
  674. ulonglong ha_connect::table_flags() const
  675. {
  676. ulonglong flags= HA_CAN_VIRTUAL_COLUMNS | HA_REC_NOT_IN_SEQ |
  677. HA_NO_AUTO_INCREMENT | HA_NO_PREFIX_CHAR_KEYS |
  678. HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
  679. HA_PARTIAL_COLUMN_READ | HA_FILE_BASED |
  680. // HA_NULL_IN_KEY | not implemented yet
  681. // HA_FAST_KEY_READ | causes error when sorting (???)
  682. HA_NO_TRANSACTIONS | HA_DUPLICATE_KEY_NOT_IN_ORDER |
  683. HA_NO_BLOBS | HA_MUST_USE_TABLE_CONDITION_PUSHDOWN;
  684. ha_connect *hp= (ha_connect*)this;
  685. PTOS pos= hp->GetTableOptionStruct();
  686. if (pos) {
  687. TABTYPE type= hp->GetRealType(pos);
  688. if (IsFileType(type))
  689. flags|= HA_FILE_BASED;
  690. if (IsExactType(type))
  691. flags|= (HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT);
  692. // No data change on ALTER for outward tables
  693. if (!IsFileType(type) || hp->FileExists(pos->filename, true))
  694. flags|= HA_NO_COPY_ON_ALTER;
  695. } // endif pos
  696. return flags;
  697. } // end of table_flags
  698. /****************************************************************************/
  699. /* Return the value of an option specified in an option list. */
  700. /****************************************************************************/
  701. char *GetListOption(PGLOBAL g, const char *opname,
  702. const char *oplist, const char *def)
  703. {
  704. char key[16], val[256];
  705. char *pk, *pv, *pn;
  706. char *opval= (char*) def;
  707. int n;
  708. for (pk= (char*)oplist; pk; pk= ++pn) {
  709. pn= strchr(pk, ',');
  710. pv= strchr(pk, '=');
  711. if (pv && (!pn || pv < pn)) {
  712. n= pv - pk;
  713. memcpy(key, pk, n);
  714. key[n]= 0;
  715. pv++;
  716. if (pn) {
  717. n= pn - pv;
  718. memcpy(val, pv, n);
  719. val[n]= 0;
  720. } else
  721. strcpy(val, pv);
  722. } else {
  723. if (pn) {
  724. n= MY_MIN(pn - pk, 15);
  725. memcpy(key, pk, n);
  726. key[n]= 0;
  727. } else
  728. strcpy(key, pk);
  729. val[0]= 0;
  730. } // endif pv
  731. if (!stricmp(opname, key)) {
  732. opval= (char*)PlugSubAlloc(g, NULL, strlen(val) + 1);
  733. strcpy(opval, val);
  734. break;
  735. } else if (!pn)
  736. break;
  737. } // endfor pk
  738. return opval;
  739. } // end of GetListOption
  740. /****************************************************************************/
  741. /* Return the table option structure. */
  742. /****************************************************************************/
  743. PTOS ha_connect::GetTableOptionStruct(TABLE_SHARE *s)
  744. {
  745. TABLE_SHARE *tsp= (tshp) ? tshp : (s) ? s : table_share;
  746. return (tsp) ? tsp->option_struct : NULL;
  747. } // end of GetTableOptionStruct
  748. /****************************************************************************/
  749. /* Return the string eventually formatted with partition name. */
  750. /****************************************************************************/
  751. char *ha_connect::GetRealString(const char *s)
  752. {
  753. char *sv;
  754. if (IsPartitioned() && s) {
  755. sv= (char*)PlugSubAlloc(xp->g, NULL, strlen(s) + strlen(partname));
  756. sprintf(sv, s, partname);
  757. } else
  758. sv= (char*)s;
  759. return sv;
  760. } // end of GetRealString
  761. inline char *ha_connect::Strz(LEX_STRING &ls)
  762. {
  763. if (unlikely(ls.str && ls.str[ls.length]))
  764. return strz(xp->g, ls);
  765. else
  766. return ls.str;
  767. } // end of Strz
  768. /****************************************************************************/
  769. /* Return the value of a string option or NULL if not specified. */
  770. /****************************************************************************/
  771. char *ha_connect::GetStringOption(char *opname, char *sdef)
  772. {
  773. char *opval= NULL;
  774. PTOS options= GetTableOptionStruct();
  775. if (!stricmp(opname, "Connect")) {
  776. LEX_STRING cnc= (tshp) ? tshp->connect_string
  777. : table->s->connect_string;
  778. if (cnc.length)
  779. opval= GetRealString(Strz(cnc));
  780. } else if (!stricmp(opname, "Query_String"))
  781. opval= thd_query_string(table->in_use)->str;
  782. else if (!stricmp(opname, "Partname"))
  783. opval= partname;
  784. else if (!options)
  785. ;
  786. else if (!stricmp(opname, "Type"))
  787. opval= (char*)options->type;
  788. else if (!stricmp(opname, "Filename"))
  789. opval= GetRealString(options->filename);
  790. else if (!stricmp(opname, "Optname"))
  791. opval= (char*)options->optname;
  792. else if (!stricmp(opname, "Tabname"))
  793. opval= GetRealString(options->tabname);
  794. else if (!stricmp(opname, "Tablist"))
  795. opval= (char*)options->tablist;
  796. else if (!stricmp(opname, "Database") ||
  797. !stricmp(opname, "DBname"))
  798. opval= (char*)options->dbname;
  799. else if (!stricmp(opname, "Separator"))
  800. opval= (char*)options->separator;
  801. else if (!stricmp(opname, "Qchar"))
  802. opval= (char*)options->qchar;
  803. else if (!stricmp(opname, "Module"))
  804. opval= (char*)options->module;
  805. else if (!stricmp(opname, "Subtype"))
  806. opval= (char*)options->subtype;
  807. else if (!stricmp(opname, "Catfunc"))
  808. opval= (char*)options->catfunc;
  809. else if (!stricmp(opname, "Srcdef"))
  810. opval= (char*)options->srcdef;
  811. else if (!stricmp(opname, "Colist"))
  812. opval= (char*)options->colist;
  813. else if (!stricmp(opname, "Data_charset"))
  814. opval= (char*)options->data_charset;
  815. if (!opval && options && options->oplist)
  816. opval= GetListOption(xp->g, opname, options->oplist);
  817. if (!opval) {
  818. if (sdef && !strcmp(sdef, "*")) {
  819. // Return the handler default value
  820. if (!stricmp(opname, "Dbname") || !stricmp(opname, "Database"))
  821. opval= (char*)GetDBName(NULL); // Current database
  822. else if (!stricmp(opname, "Type")) // Default type
  823. opval= (!options) ? NULL :
  824. (options->srcdef) ? (char*)"MYSQL" :
  825. (options->tabname) ? (char*)"PROXY" : (char*)"DOS";
  826. else if (!stricmp(opname, "User")) // Connected user
  827. opval= (char *) "root";
  828. else if (!stricmp(opname, "Host")) // Connected user host
  829. opval= (char *) "localhost";
  830. else
  831. opval= sdef; // Caller default
  832. } else
  833. opval= sdef; // Caller default
  834. } // endif !opval
  835. return opval;
  836. } // end of GetStringOption
  837. /****************************************************************************/
  838. /* Return the value of a Boolean option or bdef if not specified. */
  839. /****************************************************************************/
  840. bool ha_connect::GetBooleanOption(char *opname, bool bdef)
  841. {
  842. bool opval= bdef;
  843. char *pv;
  844. PTOS options= GetTableOptionStruct();
  845. if (!stricmp(opname, "View"))
  846. opval= (tshp) ? tshp->is_view : table_share->is_view;
  847. else if (!options)
  848. ;
  849. else if (!stricmp(opname, "Mapped"))
  850. opval= options->mapped;
  851. else if (!stricmp(opname, "Huge"))
  852. opval= options->huge;
  853. //else if (!stricmp(opname, "Compressed"))
  854. // opval= options->compressed;
  855. else if (!stricmp(opname, "Split"))
  856. opval= options->split;
  857. else if (!stricmp(opname, "Readonly"))
  858. opval= options->readonly;
  859. else if (!stricmp(opname, "SepIndex"))
  860. opval= options->sepindex;
  861. else if (!stricmp(opname, "Header"))
  862. opval= (options->header != 0); // Is Boolean for some table types
  863. else if (options->oplist)
  864. if ((pv= GetListOption(xp->g, opname, options->oplist)))
  865. opval= (!*pv || *pv == 'y' || *pv == 'Y' || atoi(pv) != 0);
  866. return opval;
  867. } // end of GetBooleanOption
  868. /****************************************************************************/
  869. /* Set the value of the opname option (does not work for oplist options) */
  870. /* Currently used only to set the Sepindex value. */
  871. /****************************************************************************/
  872. bool ha_connect::SetBooleanOption(char *opname, bool b)
  873. {
  874. PTOS options= GetTableOptionStruct();
  875. if (!options)
  876. return true;
  877. if (!stricmp(opname, "SepIndex"))
  878. options->sepindex= b;
  879. else
  880. return true;
  881. return false;
  882. } // end of SetBooleanOption
  883. /****************************************************************************/
  884. /* Return the value of an integer option or NO_IVAL if not specified. */
  885. /****************************************************************************/
  886. int ha_connect::GetIntegerOption(char *opname)
  887. {
  888. ulonglong opval= NO_IVAL;
  889. char *pv;
  890. PTOS options= GetTableOptionStruct();
  891. TABLE_SHARE *tsp= (tshp) ? tshp : table_share;
  892. if (!stricmp(opname, "Avglen"))
  893. opval= (ulonglong)tsp->avg_row_length;
  894. else if (!stricmp(opname, "Estimate"))
  895. opval= (ulonglong)tsp->max_rows;
  896. else if (!options)
  897. ;
  898. else if (!stricmp(opname, "Lrecl"))
  899. opval= options->lrecl;
  900. else if (!stricmp(opname, "Elements"))
  901. opval= options->elements;
  902. else if (!stricmp(opname, "Multiple"))
  903. opval= options->multiple;
  904. else if (!stricmp(opname, "Header"))
  905. opval= options->header;
  906. else if (!stricmp(opname, "Quoted"))
  907. opval= options->quoted;
  908. else if (!stricmp(opname, "Ending"))
  909. opval= options->ending;
  910. else if (!stricmp(opname, "Compressed"))
  911. opval= (options->compressed);
  912. if (opval == (ulonglong)NO_IVAL && options && options->oplist)
  913. if ((pv= GetListOption(xp->g, opname, options->oplist)))
  914. opval= CharToNumber(pv, strlen(pv), ULONGLONG_MAX, true);
  915. return (int)opval;
  916. } // end of GetIntegerOption
  917. /****************************************************************************/
  918. /* Set the value of the opname option (does not work for oplist options) */
  919. /* Currently used only to set the Lrecl value. */
  920. /****************************************************************************/
  921. bool ha_connect::SetIntegerOption(char *opname, int n)
  922. {
  923. PTOS options= GetTableOptionStruct();
  924. if (!options)
  925. return true;
  926. if (!stricmp(opname, "Lrecl"))
  927. options->lrecl= n;
  928. else if (!stricmp(opname, "Elements"))
  929. options->elements= n;
  930. //else if (!stricmp(opname, "Estimate"))
  931. // options->estimate= n;
  932. else if (!stricmp(opname, "Multiple"))
  933. options->multiple= n;
  934. else if (!stricmp(opname, "Header"))
  935. options->header= n;
  936. else if (!stricmp(opname, "Quoted"))
  937. options->quoted= n;
  938. else if (!stricmp(opname, "Ending"))
  939. options->ending= n;
  940. else if (!stricmp(opname, "Compressed"))
  941. options->compressed= n;
  942. else
  943. return true;
  944. //else if (options->oplist)
  945. // SetListOption(opname, options->oplist, n);
  946. return false;
  947. } // end of SetIntegerOption
  948. /****************************************************************************/
  949. /* Return a field option structure. */
  950. /****************************************************************************/
  951. PFOS ha_connect::GetFieldOptionStruct(Field *fdp)
  952. {
  953. return fdp->option_struct;
  954. } // end of GetFildOptionStruct
  955. /****************************************************************************/
  956. /* Returns the column description structure used to make the column. */
  957. /****************************************************************************/
  958. void *ha_connect::GetColumnOption(PGLOBAL g, void *field, PCOLINFO pcf)
  959. {
  960. const char *cp;
  961. char *chset, v;
  962. ha_field_option_struct *fop;
  963. Field* fp;
  964. Field* *fldp;
  965. // Double test to be on the safe side
  966. if (!table)
  967. return NULL;
  968. // Find the column to describe
  969. if (field) {
  970. fldp= (Field**)field;
  971. fldp++;
  972. } else
  973. fldp= (tshp) ? tshp->field : table->field;
  974. if (!fldp || !(fp= *fldp))
  975. return NULL;
  976. // Get the CONNECT field options structure
  977. fop= GetFieldOptionStruct(fp);
  978. pcf->Flags= 0;
  979. // Now get column information
  980. pcf->Name= (char*)fp->field_name;
  981. if (fop && fop->special) {
  982. pcf->Fieldfmt= (char*)fop->special;
  983. pcf->Flags= U_SPECIAL;
  984. return fldp;
  985. } // endif special
  986. pcf->Scale= 0;
  987. pcf->Opt= (fop) ? (int)fop->opt : 0;
  988. if ((pcf->Length= fp->field_length) < 0)
  989. pcf->Length= 256; // BLOB?
  990. pcf->Precision= pcf->Length;
  991. if (fop) {
  992. pcf->Offset= (int)fop->offset;
  993. pcf->Freq= (int)fop->freq;
  994. pcf->Datefmt= (char*)fop->dateformat;
  995. pcf->Fieldfmt= (char*)fop->fieldformat;
  996. } else {
  997. pcf->Offset= -1;
  998. pcf->Freq= 0;
  999. pcf->Datefmt= NULL;
  1000. pcf->Fieldfmt= NULL;
  1001. } // endif fop
  1002. chset = (char *)fp->charset()->name;
  1003. v = (!strcmp(chset, "binary")) ? 'B' : 0;
  1004. switch (fp->type()) {
  1005. case MYSQL_TYPE_BLOB:
  1006. case MYSQL_TYPE_VARCHAR:
  1007. case MYSQL_TYPE_VAR_STRING:
  1008. pcf->Flags |= U_VAR;
  1009. /* no break */
  1010. default:
  1011. pcf->Type= MYSQLtoPLG(fp->type(), &v);
  1012. break;
  1013. } // endswitch SQL type
  1014. switch (pcf->Type) {
  1015. case TYPE_STRING:
  1016. // Do something for case
  1017. cp= fp->charset()->name;
  1018. // Find if collation name ends by _ci
  1019. if (!strcmp(cp + strlen(cp) - 3, "_ci")) {
  1020. pcf->Scale= 1; // Case insensitive
  1021. pcf->Opt= 0; // Prevent index opt until it is safe
  1022. } // endif ci
  1023. break;
  1024. case TYPE_DOUBLE:
  1025. pcf->Scale= MY_MAX(MY_MIN(fp->decimals(), ((unsigned)pcf->Length - 2)), 0);
  1026. break;
  1027. case TYPE_DECIM:
  1028. pcf->Precision= ((Field_new_decimal*)fp)->precision;
  1029. pcf->Length= pcf->Precision;
  1030. pcf->Scale= fp->decimals();
  1031. break;
  1032. case TYPE_DATE:
  1033. // Field_length is only used for DATE columns
  1034. if (fop && fop->fldlen)
  1035. pcf->Length= (int)fop->fldlen;
  1036. else {
  1037. int len;
  1038. if (pcf->Datefmt) {
  1039. // Find the (max) length produced by the date format
  1040. char buf[256];
  1041. PGLOBAL g= GetPlug(table->in_use, xp);
  1042. PDTP pdtp= MakeDateFormat(g, pcf->Datefmt, false, true, 0);
  1043. struct tm datm;
  1044. bzero(&datm, sizeof(datm));
  1045. datm.tm_mday= 12;
  1046. datm.tm_mon= 11;
  1047. datm.tm_year= 112;
  1048. len= strftime(buf, 256, pdtp->OutFmt, &datm);
  1049. } else
  1050. len= 0;
  1051. // 11 is for signed numeric representation of the date
  1052. pcf->Length= (len) ? len : 11;
  1053. } // endelse
  1054. // For Value setting
  1055. pcf->Precision= MY_MAX(pcf->Precision, pcf->Length);
  1056. break;
  1057. default:
  1058. break;
  1059. } // endswitch type
  1060. if (fp->flags & UNSIGNED_FLAG)
  1061. pcf->Flags |= U_UNSIGNED;
  1062. if (fp->flags & ZEROFILL_FLAG)
  1063. pcf->Flags |= U_ZEROFILL;
  1064. // This is used to skip null bit
  1065. if (fp->real_maybe_null())
  1066. pcf->Flags |= U_NULLS;
  1067. // Mark virtual columns as such
  1068. if (fp->vcol_info && !fp->stored_in_db)
  1069. pcf->Flags |= U_VIRTUAL;
  1070. pcf->Key= 0; // Not used when called from MySQL
  1071. // Get the comment if any
  1072. if (fp->comment.str && fp->comment.length) {
  1073. if ((pcf->Remark= (char*)PlgDBSubAlloc(g, NULL, fp->comment.length + 1))) {
  1074. memcpy(pcf->Remark, fp->comment.str, fp->comment.length);
  1075. pcf->Remark[fp->comment.length]= 0;
  1076. } // endif Remark
  1077. } else
  1078. pcf->Remark= NULL;
  1079. return fldp;
  1080. } // end of GetColumnOption
  1081. /****************************************************************************/
  1082. /* Return an index option structure. */
  1083. /****************************************************************************/
  1084. PXOS ha_connect::GetIndexOptionStruct(KEY *kp)
  1085. {
  1086. return kp->option_struct;
  1087. } // end of GetIndexOptionStruct
  1088. /****************************************************************************/
  1089. /* Return a Boolean index option or false if not specified. */
  1090. /****************************************************************************/
  1091. bool ha_connect::GetIndexOption(KEY *kp, char *opname)
  1092. {
  1093. bool opval= false;
  1094. PXOS options= GetIndexOptionStruct(kp);
  1095. if (options) {
  1096. if (!stricmp(opname, "Dynamic"))
  1097. opval= options->dynamic;
  1098. else if (!stricmp(opname, "Mapped"))
  1099. opval= options->mapped;
  1100. } else if (kp->comment.str && kp->comment.length) {
  1101. char *pv, *oplist= Strz(kp->comment);
  1102. if ((pv= GetListOption(xp->g, opname, oplist)))
  1103. opval= (!*pv || *pv == 'y' || *pv == 'Y' || atoi(pv) != 0);
  1104. } // endif comment
  1105. return opval;
  1106. } // end of GetIndexOption
  1107. /****************************************************************************/
  1108. /* Returns the index description structure used to make the index. */
  1109. /****************************************************************************/
  1110. bool ha_connect::IsUnique(uint n)
  1111. {
  1112. TABLE_SHARE *s= (table) ? table->s : NULL;
  1113. KEY kp= s->key_info[n];
  1114. return (kp.flags & 1) != 0;
  1115. } // end of IsUnique
  1116. /****************************************************************************/
  1117. /* Returns the index description structure used to make the index. */
  1118. /****************************************************************************/
  1119. PIXDEF ha_connect::GetIndexInfo(TABLE_SHARE *s)
  1120. {
  1121. char *name, *pn;
  1122. bool unique;
  1123. PIXDEF xdp, pxd=NULL, toidx= NULL;
  1124. PKPDEF kpp, pkp;
  1125. KEY kp;
  1126. PGLOBAL& g= xp->g;
  1127. if (!s)
  1128. s= table->s;
  1129. for (int n= 0; (unsigned)n < s->keynames.count; n++) {
  1130. if (trace)
  1131. htrc("Getting created index %d info\n", n + 1);
  1132. // Find the index to describe
  1133. kp= s->key_info[n];
  1134. // Now get index information
  1135. pn= (char*)s->keynames.type_names[n];
  1136. name= (char*)PlugSubAlloc(g, NULL, strlen(pn) + 1);
  1137. strcpy(name, pn); // This is probably unuseful
  1138. unique= (kp.flags & 1) != 0;
  1139. pkp= NULL;
  1140. // Allocate the index description block
  1141. xdp= new(g) INDEXDEF(name, unique, n);
  1142. // Get the the key parts info
  1143. for (int k= 0; (unsigned)k < kp.user_defined_key_parts; k++) {
  1144. pn= (char*)kp.key_part[k].field->field_name;
  1145. name= (char*)PlugSubAlloc(g, NULL, strlen(pn) + 1);
  1146. strcpy(name, pn); // This is probably unuseful
  1147. // Allocate the key part description block
  1148. kpp= new(g) KPARTDEF(name, k + 1);
  1149. kpp->SetKlen(kp.key_part[k].length);
  1150. #if 0 // NIY
  1151. // Index on auto increment column can be an XXROW index
  1152. if (kp.key_part[k].field->flags & AUTO_INCREMENT_FLAG &&
  1153. kp.uder_defined_key_parts == 1) {
  1154. char *type= GetStringOption("Type", "DOS");
  1155. TABTYPE typ= GetTypeID(type);
  1156. xdp->SetAuto(IsTypeFixed(typ));
  1157. } // endif AUTO_INCREMENT
  1158. #endif // 0
  1159. if (pkp)
  1160. pkp->SetNext(kpp);
  1161. else
  1162. xdp->SetToKeyParts(kpp);
  1163. pkp= kpp;
  1164. } // endfor k
  1165. xdp->SetNParts(kp.user_defined_key_parts);
  1166. xdp->Dynamic= GetIndexOption(&kp, "Dynamic");
  1167. xdp->Mapped= GetIndexOption(&kp, "Mapped");
  1168. if (pxd)
  1169. pxd->SetNext(xdp);
  1170. else
  1171. toidx= xdp;
  1172. pxd= xdp;
  1173. } // endfor n
  1174. return toidx;
  1175. } // end of GetIndexInfo
  1176. /****************************************************************************/
  1177. /* Returns the index description structure used to make the index. */
  1178. /****************************************************************************/
  1179. bool ha_connect::CheckVirtualIndex(TABLE_SHARE *s)
  1180. {
  1181. char *rid;
  1182. KEY kp;
  1183. Field *fp;
  1184. PGLOBAL& g= xp->g;
  1185. if (!s)
  1186. s= table->s;
  1187. for (int n= 0; (unsigned)n < s->keynames.count; n++) {
  1188. kp= s->key_info[n];
  1189. // Now get index information
  1190. // Get the the key parts info
  1191. for (int k= 0; (unsigned)k < kp.user_defined_key_parts; k++) {
  1192. fp= kp.key_part[k].field;
  1193. rid= (fp->option_struct) ? fp->option_struct->special : NULL;
  1194. if (!rid || (stricmp(rid, "ROWID") && stricmp(rid, "ROWNUM"))) {
  1195. strcpy(g->Message, "Invalid virtual index");
  1196. return true;
  1197. } // endif rowid
  1198. } // endfor k
  1199. } // endfor n
  1200. return false;
  1201. } // end of CheckVirtualIndex
  1202. bool ha_connect::IsPartitioned(void)
  1203. {
  1204. if (tshp)
  1205. return tshp->partition_info_str_len > 0;
  1206. else if (table && table->part_info)
  1207. return true;
  1208. else
  1209. return false;
  1210. } // end of IsPartitioned
  1211. const char *ha_connect::GetDBName(const char* name)
  1212. {
  1213. return (name) ? name : Strz(table->s->db);
  1214. } // end of GetDBName
  1215. const char *ha_connect::GetTableName(void)
  1216. {
  1217. return Strz(tshp ? tshp->table_name : table_share->table_name);
  1218. } // end of GetTableName
  1219. char *ha_connect::GetPartName(void)
  1220. {
  1221. return (IsPartitioned()) ? partname : (char*)GetTableName();
  1222. } // end of GetTableName
  1223. #if 0
  1224. /****************************************************************************/
  1225. /* Returns the column real or special name length of a field. */
  1226. /****************************************************************************/
  1227. int ha_connect::GetColNameLen(Field *fp)
  1228. {
  1229. int n;
  1230. PFOS fop= GetFieldOptionStruct(fp);
  1231. // Now get the column name length
  1232. if (fop && fop->special)
  1233. n= strlen(fop->special) + 1;
  1234. else
  1235. n= strlen(fp->field_name);
  1236. return n;
  1237. } // end of GetColNameLen
  1238. /****************************************************************************/
  1239. /* Returns the column real or special name of a field. */
  1240. /****************************************************************************/
  1241. char *ha_connect::GetColName(Field *fp)
  1242. {
  1243. PFOS fop= GetFieldOptionStruct(fp);
  1244. return (fop && fop->special) ? fop->special : (char*)fp->field_name;
  1245. } // end of GetColName
  1246. /****************************************************************************/
  1247. /* Adds the column real or special name of a field to a string. */
  1248. /****************************************************************************/
  1249. void ha_connect::AddColName(char *cp, Field *fp)
  1250. {
  1251. PFOS fop= GetFieldOptionStruct(fp);
  1252. // Now add the column name
  1253. if (fop && fop->special)
  1254. // The prefix * mark the column as "special"
  1255. strcat(strcpy(cp, "*"), strupr(fop->special));
  1256. else
  1257. strcpy(cp, (char*)fp->field_name);
  1258. } // end of AddColName
  1259. #endif // 0
  1260. /***********************************************************************/
  1261. /* This function sets the current database path. */
  1262. /***********************************************************************/
  1263. void ha_connect::SetDataPath(PGLOBAL g, const char *path)
  1264. {
  1265. datapath= SetPath(g, path);
  1266. } // end of SetDataPath
  1267. /****************************************************************************/
  1268. /* Get the table description block of a CONNECT table. */
  1269. /****************************************************************************/
  1270. PTDB ha_connect::GetTDB(PGLOBAL g)
  1271. {
  1272. const char *table_name;
  1273. PTDB tp;
  1274. // Double test to be on the safe side
  1275. if (!g || !table)
  1276. return NULL;
  1277. table_name= GetTableName();
  1278. if (!xp->CheckQuery(valid_query_id) && tdbp
  1279. && !stricmp(tdbp->GetName(), table_name)
  1280. && (tdbp->GetMode() == xmod
  1281. || (tdbp->GetMode() == MODE_READ && xmod == MODE_READX)
  1282. || tdbp->GetAmType() == TYPE_AM_XML)) {
  1283. tp= tdbp;
  1284. tp->SetMode(xmod);
  1285. } else if ((tp= CntGetTDB(g, table_name, xmod, this))) {
  1286. valid_query_id= xp->last_query_id;
  1287. // tp->SetMode(xmod);
  1288. } else
  1289. htrc("GetTDB: %s\n", g->Message);
  1290. return tp;
  1291. } // end of GetTDB
  1292. /****************************************************************************/
  1293. /* Open a CONNECT table, restricting column list if cols is true. */
  1294. /****************************************************************************/
  1295. int ha_connect::OpenTable(PGLOBAL g, bool del)
  1296. {
  1297. bool rc= false;
  1298. char *c1= NULL, *c2=NULL;
  1299. // Double test to be on the safe side
  1300. if (!g || !table) {
  1301. htrc("OpenTable logical error; g=%p table=%p\n", g, table);
  1302. return HA_ERR_INITIALIZATION;
  1303. } // endif g
  1304. if (!(tdbp= GetTDB(g)))
  1305. return RC_FX;
  1306. else if (tdbp->IsReadOnly())
  1307. switch (xmod) {
  1308. case MODE_WRITE:
  1309. case MODE_INSERT:
  1310. case MODE_UPDATE:
  1311. case MODE_DELETE:
  1312. strcpy(g->Message, MSG(READ_ONLY));
  1313. return HA_ERR_TABLE_READONLY;
  1314. default:
  1315. break;
  1316. } // endswitch xmode
  1317. if (xmod != MODE_INSERT || tdbp->GetAmType() == TYPE_AM_ODBC
  1318. || tdbp->GetAmType() == TYPE_AM_MYSQL) {
  1319. // Get the list of used fields (columns)
  1320. char *p;
  1321. unsigned int k1, k2, n1, n2;
  1322. Field* *field;
  1323. Field* fp;
  1324. MY_BITMAP *map= (xmod == MODE_INSERT) ? table->write_set : table->read_set;
  1325. MY_BITMAP *ump= (xmod == MODE_UPDATE) ? table->write_set : NULL;
  1326. k1= k2= 0;
  1327. n1= n2= 1; // 1 is space for final null character
  1328. for (field= table->field; fp= *field; field++) {
  1329. if (bitmap_is_set(map, fp->field_index)) {
  1330. n1+= (strlen(fp->field_name) + 1);
  1331. k1++;
  1332. } // endif
  1333. if (ump && bitmap_is_set(ump, fp->field_index)) {
  1334. n2+= (strlen(fp->field_name) + 1);
  1335. k2++;
  1336. } // endif
  1337. } // endfor field
  1338. if (k1) {
  1339. p= c1= (char*)PlugSubAlloc(g, NULL, n1);
  1340. for (field= table->field; fp= *field; field++)
  1341. if (bitmap_is_set(map, fp->field_index)) {
  1342. strcpy(p, (char*)fp->field_name);
  1343. p+= (strlen(p) + 1);
  1344. } // endif used field
  1345. *p= '\0'; // mark end of list
  1346. } // endif k1
  1347. if (k2) {
  1348. p= c2= (char*)PlugSubAlloc(g, NULL, n2);
  1349. for (field= table->field; fp= *field; field++)
  1350. if (bitmap_is_set(ump, fp->field_index)) {
  1351. strcpy(p, (char*)fp->field_name);
  1352. if (part_id && bitmap_is_set(part_id, fp->field_index)) {
  1353. // Trying to update a column used for partitioning
  1354. // This cannot be currently done because it may require
  1355. // a row to be moved in another partition.
  1356. sprintf(g->Message,
  1357. "Cannot update column %s because it is used for partitioning",
  1358. p);
  1359. return HA_ERR_INTERNAL_ERROR;
  1360. } // endif part_id
  1361. p+= (strlen(p) + 1);
  1362. } // endif used field
  1363. *p= '\0'; // mark end of list
  1364. } // endif k2
  1365. } // endif xmod
  1366. // Open the table
  1367. if (!(rc= CntOpenTable(g, tdbp, xmod, c1, c2, del, this))) {
  1368. istable= true;
  1369. // strmake(tname, table_name, sizeof(tname)-1);
  1370. // We may be in a create index query
  1371. if (xmod == MODE_ANY && *tdbp->GetName() != '#') {
  1372. // The current indexes
  1373. PIXDEF oldpix= GetIndexInfo();
  1374. } // endif xmod
  1375. } else
  1376. htrc("OpenTable: %s\n", g->Message);
  1377. if (rc) {
  1378. tdbp= NULL;
  1379. valid_info= false;
  1380. } // endif rc
  1381. return (rc) ? HA_ERR_INITIALIZATION : 0;
  1382. } // end of OpenTable
  1383. /****************************************************************************/
  1384. /* CheckColumnList: check that all bitmap columns do exist. */
  1385. /****************************************************************************/
  1386. bool ha_connect::CheckColumnList(PGLOBAL g)
  1387. {
  1388. // Check the list of used fields (columns)
  1389. int rc;
  1390. bool brc= false;
  1391. PCOL colp;
  1392. Field* *field;
  1393. Field* fp;
  1394. MY_BITMAP *map= table->read_set;
  1395. // Save stack and allocation environment and prepare error return
  1396. if (g->jump_level == MAX_JUMP) {
  1397. strcpy(g->Message, MSG(TOO_MANY_JUMPS));
  1398. return true;
  1399. } // endif jump_level
  1400. if ((rc= setjmp(g->jumper[++g->jump_level])) == 0) {
  1401. for (field= table->field; fp= *field; field++)
  1402. if (bitmap_is_set(map, fp->field_index)) {
  1403. if (!(colp= tdbp->ColDB(g, (PSZ)fp->field_name, 0))) {
  1404. sprintf(g->Message, "Column %s not found in %s",
  1405. fp->field_name, tdbp->GetName());
  1406. brc= true;
  1407. goto fin;
  1408. } // endif colp
  1409. if ((brc= colp->InitValue(g)))
  1410. goto fin;
  1411. colp->AddColUse(U_P); // For PLG tables
  1412. } // endif
  1413. } else
  1414. brc= true;
  1415. fin:
  1416. g->jump_level--;
  1417. return brc;
  1418. } // end of CheckColumnList
  1419. /****************************************************************************/
  1420. /* IsOpened: returns true if the table is already opened. */
  1421. /****************************************************************************/
  1422. bool ha_connect::IsOpened(void)
  1423. {
  1424. return (!xp->CheckQuery(valid_query_id) && tdbp
  1425. && tdbp->GetUse() == USE_OPEN);
  1426. } // end of IsOpened
  1427. /****************************************************************************/
  1428. /* Close a CONNECT table. */
  1429. /****************************************************************************/
  1430. int ha_connect::CloseTable(PGLOBAL g)
  1431. {
  1432. int rc= CntCloseTable(g, tdbp, nox, abort);
  1433. tdbp= NULL;
  1434. sdvalin=NULL;
  1435. sdvalout=NULL;
  1436. valid_info= false;
  1437. indexing= -1;
  1438. nox= true;
  1439. abort= false;
  1440. return rc;
  1441. } // end of CloseTable
  1442. /***********************************************************************/
  1443. /* Make a pseudo record from current row values. Specific to MySQL. */
  1444. /***********************************************************************/
  1445. int ha_connect::MakeRecord(char *buf)
  1446. {
  1447. char *p, *fmt, val[32];
  1448. int rc= 0;
  1449. Field* *field;
  1450. Field *fp;
  1451. my_bitmap_map *org_bitmap;
  1452. CHARSET_INFO *charset= tdbp->data_charset();
  1453. //MY_BITMAP readmap;
  1454. MY_BITMAP *map;
  1455. PVAL value;
  1456. PCOL colp= NULL;
  1457. DBUG_ENTER("ha_connect::MakeRecord");
  1458. if (trace > 1)
  1459. htrc("Maps: read=%08X write=%08X vcol=%08X defr=%08X defw=%08X\n",
  1460. *table->read_set->bitmap, *table->write_set->bitmap,
  1461. *table->vcol_set->bitmap,
  1462. *table->def_read_set.bitmap, *table->def_write_set.bitmap);
  1463. // Avoid asserts in field::store() for columns that are not updated
  1464. org_bitmap= dbug_tmp_use_all_columns(table, table->write_set);
  1465. // This is for variable_length rows
  1466. memset(buf, 0, table->s->null_bytes);
  1467. // When sorting read_set selects all columns, so we use def_read_set
  1468. map= (MY_BITMAP *)&table->def_read_set;
  1469. // Make the pseudo record from field values
  1470. for (field= table->field; *field && !rc; field++) {
  1471. fp= *field;
  1472. if (fp->vcol_info && !fp->stored_in_db)
  1473. continue; // This is a virtual column
  1474. if (bitmap_is_set(map, fp->field_index) || alter) {
  1475. // This is a used field, fill the buffer with value
  1476. for (colp= tdbp->GetColumns(); colp; colp= colp->GetNext())
  1477. if ((!mrr || colp->GetKcol()) &&
  1478. !stricmp(colp->GetName(), (char*)fp->field_name))
  1479. break;
  1480. if (!colp) {
  1481. if (mrr)
  1482. continue;
  1483. htrc("Column %s not found\n", fp->field_name);
  1484. dbug_tmp_restore_column_map(table->write_set, org_bitmap);
  1485. DBUG_RETURN(HA_ERR_WRONG_IN_RECORD);
  1486. } // endif colp
  1487. value= colp->GetValue();
  1488. p= NULL;
  1489. // All this was better optimized
  1490. if (!value->IsNull()) {
  1491. switch (value->GetType()) {
  1492. case TYPE_DATE:
  1493. if (!sdvalout)
  1494. sdvalout= AllocateValue(xp->g, TYPE_STRING, 20);
  1495. switch (fp->type()) {
  1496. case MYSQL_TYPE_DATE:
  1497. fmt= "%Y-%m-%d";
  1498. break;
  1499. case MYSQL_TYPE_TIME:
  1500. fmt= "%H:%M:%S";
  1501. break;
  1502. case MYSQL_TYPE_YEAR:
  1503. fmt= "%Y";
  1504. break;
  1505. default:
  1506. fmt= "%Y-%m-%d %H:%M:%S";
  1507. break;
  1508. } // endswitch type
  1509. // Get date in the format required by MySQL fields
  1510. value->FormatValue(sdvalout, fmt);
  1511. p= sdvalout->GetCharValue();
  1512. rc= fp->store(p, strlen(p), charset, CHECK_FIELD_WARN);
  1513. break;
  1514. case TYPE_STRING:
  1515. case TYPE_DECIM:
  1516. p= value->GetCharString(val);
  1517. charset= tdbp->data_charset();
  1518. rc= fp->store(p, strlen(p), charset, CHECK_FIELD_WARN);
  1519. break;
  1520. case TYPE_DOUBLE:
  1521. rc= fp->store(value->GetFloatValue());
  1522. break;
  1523. default:
  1524. rc= fp->store(value->GetBigintValue(), value->IsUnsigned());
  1525. break;
  1526. } // endswitch Type
  1527. // Store functions returns 1 on overflow and -1 on fatal error
  1528. if (rc > 0) {
  1529. char buf[256];
  1530. THD *thd= ha_thd();
  1531. sprintf(buf, "Out of range value %.140s for column '%s' at row %ld",
  1532. value->GetCharString(val),
  1533. fp->field_name,
  1534. thd->get_stmt_da()->current_row_for_warning());
  1535. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, buf);
  1536. DBUG_PRINT("MakeRecord", ("%s", buf));
  1537. rc= 0;
  1538. } else if (rc < 0)
  1539. rc= HA_ERR_WRONG_IN_RECORD;
  1540. fp->set_notnull();
  1541. } else
  1542. fp->set_null();
  1543. } // endif bitmap
  1544. } // endfor field
  1545. // This is sometimes required for partition tables because the buf
  1546. // can be different from the table->record[0] buffer
  1547. if (buf != (char*)table->record[0])
  1548. memcpy(buf, table->record[0], table->s->stored_rec_length);
  1549. // This is copied from ha_tina and is necessary to avoid asserts
  1550. dbug_tmp_restore_column_map(table->write_set, org_bitmap);
  1551. DBUG_RETURN(rc);
  1552. } // end of MakeRecord
  1553. /***********************************************************************/
  1554. /* Set row values from a MySQL pseudo record. Specific to MySQL. */
  1555. /***********************************************************************/
  1556. int ha_connect::ScanRecord(PGLOBAL g, uchar *buf)
  1557. {
  1558. char attr_buffer[1024];
  1559. char data_buffer[1024];
  1560. char *fmt;
  1561. int rc= 0;
  1562. PCOL colp;
  1563. PVAL value;
  1564. Field *fp;
  1565. PTDBASE tp= (PTDBASE)tdbp;
  1566. String attribute(attr_buffer, sizeof(attr_buffer),
  1567. table->s->table_charset);
  1568. my_bitmap_map *bmap= dbug_tmp_use_all_columns(table, table->read_set);
  1569. const CHARSET_INFO *charset= tdbp->data_charset();
  1570. String data_charset_value(data_buffer, sizeof(data_buffer), charset);
  1571. // Scan the pseudo record for field values and set column values
  1572. for (Field **field=table->field ; *field ; field++) {
  1573. fp= *field;
  1574. if ((fp->vcol_info && !fp->stored_in_db) ||
  1575. fp->option_struct->special)
  1576. continue; // Is a virtual column possible here ???
  1577. if ((xmod == MODE_INSERT && tdbp->GetAmType() != TYPE_AM_MYSQL
  1578. && tdbp->GetAmType() != TYPE_AM_ODBC) ||
  1579. bitmap_is_set(table->write_set, fp->field_index)) {
  1580. for (colp= tp->GetSetCols(); colp; colp= colp->GetNext())
  1581. if (!stricmp(colp->GetName(), fp->field_name))
  1582. break;
  1583. if (!colp) {
  1584. htrc("Column %s not found\n", fp->field_name);
  1585. rc= HA_ERR_WRONG_IN_RECORD;
  1586. goto err;
  1587. } else
  1588. value= colp->GetValue();
  1589. // This is a used field, fill the value from the row buffer
  1590. // All this could be better optimized
  1591. if (fp->is_null()) {
  1592. if (colp->IsNullable())
  1593. value->SetNull(true);
  1594. value->Reset();
  1595. } else switch (value->GetType()) {
  1596. case TYPE_DOUBLE:
  1597. value->SetValue(fp->val_real());
  1598. break;
  1599. case TYPE_DATE:
  1600. if (!sdvalin)
  1601. sdvalin= (DTVAL*)AllocateValue(xp->g, TYPE_DATE, 19);
  1602. // Get date in the format produced by MySQL fields
  1603. switch (fp->type()) {
  1604. case MYSQL_TYPE_DATE:
  1605. fmt= "YYYY-MM-DD";
  1606. break;
  1607. case MYSQL_TYPE_TIME:
  1608. fmt= "hh:mm:ss";
  1609. break;
  1610. case MYSQL_TYPE_YEAR:
  1611. fmt= "YYYY";
  1612. break;
  1613. default:
  1614. fmt= "YYYY-MM-DD hh:mm:ss";
  1615. } // endswitch type
  1616. ((DTVAL*)sdvalin)->SetFormat(g, fmt, strlen(fmt));
  1617. sdvalin->SetNullable(colp->IsNullable());
  1618. fp->val_str(&attribute);
  1619. sdvalin->SetValue_psz(attribute.c_ptr_safe());
  1620. value->SetValue_pval(sdvalin);
  1621. break;
  1622. default:
  1623. fp->val_str(&attribute);
  1624. if (charset != &my_charset_bin) {
  1625. // Convert from SQL field charset to DATA_CHARSET
  1626. uint cnv_errors;
  1627. data_charset_value.copy(attribute.ptr(), attribute.length(),
  1628. attribute.charset(), charset, &cnv_errors);
  1629. value->SetValue_psz(data_charset_value.c_ptr_safe());
  1630. } else
  1631. value->SetValue_psz(attribute.c_ptr_safe());
  1632. break;
  1633. } // endswitch Type
  1634. #ifdef NEWCHANGE
  1635. } else if (xmod == MODE_UPDATE) {
  1636. PCOL cp;
  1637. for (cp= tp->GetColumns(); cp; cp= cp->GetNext())
  1638. if (!stricmp(colp->GetName(), cp->GetName()))
  1639. break;
  1640. if (!cp) {
  1641. rc= HA_ERR_WRONG_IN_RECORD;
  1642. goto err;
  1643. } // endif cp
  1644. value->SetValue_pval(cp->GetValue());
  1645. } else // mode Insert
  1646. value->Reset();
  1647. #else
  1648. } // endif bitmap_is_set
  1649. #endif
  1650. } // endfor field
  1651. err:
  1652. dbug_tmp_restore_column_map(table->read_set, bmap);
  1653. return rc;
  1654. } // end of ScanRecord
  1655. /***********************************************************************/
  1656. /* Check change in index column. Specific to MySQL. */
  1657. /* Should be elaborated to check for real changes. */
  1658. /***********************************************************************/
  1659. int ha_connect::CheckRecord(PGLOBAL g, const uchar *oldbuf, uchar *newbuf)
  1660. {
  1661. return ScanRecord(g, newbuf);
  1662. } // end of dummy CheckRecord
  1663. /***********************************************************************/
  1664. /* Return the where clause for remote indexed read. */
  1665. /***********************************************************************/
  1666. bool ha_connect::MakeKeyWhere(PGLOBAL g, char *qry, OPVAL op, char *q,
  1667. const void *key, int klen)
  1668. {
  1669. const uchar *ptr;
  1670. uint rem, len, stlen; //, prtlen;
  1671. bool nq, b= false;
  1672. Field *fp;
  1673. KEY *kfp;
  1674. KEY_PART_INFO *kpart;
  1675. if (active_index == MAX_KEY)
  1676. return false;
  1677. else if (!key) {
  1678. strcpy(g->Message, "MakeKeyWhere: No key");
  1679. return true;
  1680. } // endif key
  1681. strcat(qry, " WHERE (");
  1682. kfp= &table->key_info[active_index];
  1683. rem= kfp->user_defined_key_parts,
  1684. len= klen,
  1685. ptr= (const uchar *)key;
  1686. for (kpart= kfp->key_part; rem; rem--, kpart++) {
  1687. fp= kpart->field;
  1688. stlen= kpart->store_length;
  1689. // prtlen= MY_MIN(stlen, len);
  1690. nq= fp->str_needs_quotes();
  1691. if (b)
  1692. strcat(qry, " AND ");
  1693. else
  1694. b= true;
  1695. strcat(strncat(strcat(qry, q), fp->field_name, strlen(fp->field_name)), q);
  1696. switch (op) {
  1697. case OP_EQ:
  1698. case OP_GT:
  1699. case OP_GE:
  1700. strcat(qry, GetValStr(op, false));
  1701. break;
  1702. default:
  1703. strcat(qry, " ??? ");
  1704. } // endwitch op
  1705. if (nq)
  1706. strcat(qry, "'");
  1707. if (kpart->key_part_flag & HA_VAR_LENGTH_PART) {
  1708. String varchar;
  1709. uint var_length= uint2korr(ptr);
  1710. varchar.set_quick((char*) ptr+HA_KEY_BLOB_LENGTH,
  1711. var_length, &my_charset_bin);
  1712. strncat(qry, varchar.ptr(), varchar.length());
  1713. } else {
  1714. char strbuff[MAX_FIELD_WIDTH];
  1715. String str(strbuff, sizeof(strbuff), kpart->field->charset()), *res;
  1716. res= fp->val_str(&str, ptr);
  1717. strncat(qry, res->ptr(), res->length());
  1718. } // endif flag
  1719. if (nq)
  1720. strcat(qry, "'");
  1721. if (stlen >= len)
  1722. break;
  1723. len-= stlen;
  1724. /* For nullable columns, null-byte is already skipped before, that is
  1725. ptr was incremented by 1. Since store_length still counts null-byte,
  1726. we need to subtract 1 from store_length. */
  1727. ptr+= stlen - MY_TEST(kpart->null_bit);
  1728. } // endfor kpart
  1729. strcat(qry, ")");
  1730. return false;
  1731. } // end of MakeKeyWhere
  1732. /***********************************************************************/
  1733. /* Return the string representing an operator. */
  1734. /***********************************************************************/
  1735. const char *ha_connect::GetValStr(OPVAL vop, bool neg)
  1736. {
  1737. const char *val;
  1738. switch (vop) {
  1739. case OP_EQ:
  1740. val= " = ";
  1741. break;
  1742. case OP_NE:
  1743. val= " <> ";
  1744. break;
  1745. case OP_GT:
  1746. val= " > ";
  1747. break;
  1748. case OP_GE:
  1749. val= " >= ";
  1750. break;
  1751. case OP_LT:
  1752. val= " < ";
  1753. break;
  1754. case OP_LE:
  1755. val= " <= ";
  1756. break;
  1757. case OP_IN:
  1758. val= (neg) ? " NOT IN (" : " IN (";
  1759. break;
  1760. case OP_NULL:
  1761. val= (neg) ? " IS NOT NULL" : " IS NULL";
  1762. break;
  1763. case OP_LIKE:
  1764. val= " LIKE ";
  1765. break;
  1766. case OP_XX:
  1767. val= (neg) ? " NOT BETWEEN " : " BETWEEN ";
  1768. break;
  1769. case OP_EXIST:
  1770. val= (neg) ? " NOT EXISTS " : " EXISTS ";
  1771. break;
  1772. case OP_AND:
  1773. val= " AND ";
  1774. break;
  1775. case OP_OR:
  1776. val= " OR ";
  1777. break;
  1778. case OP_NOT:
  1779. val= " NOT ";
  1780. break;
  1781. case OP_CNC:
  1782. val= " || ";
  1783. break;
  1784. case OP_ADD:
  1785. val= " + ";
  1786. break;
  1787. case OP_SUB:
  1788. val= " - ";
  1789. break;
  1790. case OP_MULT:
  1791. val= " * ";
  1792. break;
  1793. case OP_DIV:
  1794. val= " / ";
  1795. break;
  1796. default:
  1797. val= " ? ";
  1798. break;
  1799. } /* endswitch */
  1800. return val;
  1801. } // end of GetValStr
  1802. #if 0
  1803. /***********************************************************************/
  1804. /* Check the WHERE condition and return a CONNECT filter. */
  1805. /***********************************************************************/
  1806. PFIL ha_connect::CheckFilter(PGLOBAL g)
  1807. {
  1808. return CondFilter(g, (Item *)pushed_cond);
  1809. } // end of CheckFilter
  1810. #endif // 0
  1811. /***********************************************************************/
  1812. /* Check the WHERE condition and return a CONNECT filter. */
  1813. /***********************************************************************/
  1814. PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond)
  1815. {
  1816. unsigned int i;
  1817. bool ismul= false;
  1818. OPVAL vop= OP_XX;
  1819. PFIL filp= NULL;
  1820. if (!cond)
  1821. return NULL;
  1822. if (trace)
  1823. htrc("Cond type=%d\n", cond->type());
  1824. if (cond->type() == COND::COND_ITEM) {
  1825. PFIL fp;
  1826. Item_cond *cond_item= (Item_cond *)cond;
  1827. if (trace)
  1828. htrc("Cond: Ftype=%d name=%s\n", cond_item->functype(),
  1829. cond_item->func_name());
  1830. switch (cond_item->functype()) {
  1831. case Item_func::COND_AND_FUNC: vop= OP_AND; break;
  1832. case Item_func::COND_OR_FUNC: vop= OP_OR; break;
  1833. default: return NULL;
  1834. } // endswitch functype
  1835. List<Item>* arglist= cond_item->argument_list();
  1836. List_iterator<Item> li(*arglist);
  1837. Item *subitem;
  1838. for (i= 0; i < arglist->elements; i++)
  1839. if ((subitem= li++)) {
  1840. if (!(fp= CondFilter(g, subitem))) {
  1841. if (vop == OP_OR)
  1842. return NULL;
  1843. } else
  1844. filp= (filp) ? MakeFilter(g, filp, vop, fp) : fp;
  1845. } else
  1846. return NULL;
  1847. } else if (cond->type() == COND::FUNC_ITEM) {
  1848. unsigned int i;
  1849. bool iscol, neg= FALSE;
  1850. PCOL colp[2]= {NULL,NULL};
  1851. PPARM pfirst= NULL, pprec= NULL;
  1852. POPER pop;
  1853. Item_func *condf= (Item_func *)cond;
  1854. Item* *args= condf->arguments();
  1855. if (trace)
  1856. htrc("Func type=%d argnum=%d\n", condf->functype(),
  1857. condf->argument_count());
  1858. switch (condf->functype()) {
  1859. case Item_func::EQUAL_FUNC:
  1860. case Item_func::EQ_FUNC: vop= OP_EQ; break;
  1861. case Item_func::NE_FUNC: vop= OP_NE; break;
  1862. case Item_func::LT_FUNC: vop= OP_LT; break;
  1863. case Item_func::LE_FUNC: vop= OP_LE; break;
  1864. case Item_func::GE_FUNC: vop= OP_GE; break;
  1865. case Item_func::GT_FUNC: vop= OP_GT; break;
  1866. case Item_func::IN_FUNC: vop= OP_IN;
  1867. case Item_func::BETWEEN:
  1868. ismul= true;
  1869. neg= ((Item_func_opt_neg *)condf)->negated;
  1870. break;
  1871. default: return NULL;
  1872. } // endswitch functype
  1873. pop= (POPER)PlugSubAlloc(g, NULL, sizeof(OPER));
  1874. pop->Name= NULL;
  1875. pop->Val=vop;
  1876. pop->Mod= 0;
  1877. if (condf->argument_count() < 2)
  1878. return NULL;
  1879. for (i= 0; i < condf->argument_count(); i++) {
  1880. if (trace)
  1881. htrc("Argtype(%d)=%d\n", i, args[i]->type());
  1882. if (i >= 2 && !ismul) {
  1883. if (trace)
  1884. htrc("Unexpected arg for vop=%d\n", vop);
  1885. continue;
  1886. } // endif i
  1887. if ((iscol= args[i]->type() == COND::FIELD_ITEM)) {
  1888. Item_field *pField= (Item_field *)args[i];
  1889. // IN and BETWEEN clauses should be col VOP list
  1890. if (i && ismul)
  1891. return NULL;
  1892. if (pField->field->table != table ||
  1893. !(colp[i]= tdbp->ColDB(g, (PSZ)pField->field->field_name, 0)))
  1894. return NULL; // Column does not belong to this table
  1895. if (trace) {
  1896. htrc("Field index=%d\n", pField->field->field_index);
  1897. htrc("Field name=%s\n", pField->field->field_name);
  1898. } // endif trace
  1899. } else {
  1900. char buff[256];
  1901. String *res, tmp(buff, sizeof(buff), &my_charset_bin);
  1902. Item_basic_constant *pval= (Item_basic_constant *)args[i];
  1903. PPARM pp= (PPARM)PlugSubAlloc(g, NULL, sizeof(PARM));
  1904. // IN and BETWEEN clauses should be col VOP list
  1905. if (!i && (ismul))
  1906. return NULL;
  1907. if ((res= pval->val_str(&tmp)) == NULL)
  1908. return NULL; // To be clarified
  1909. switch (args[i]->real_type()) {
  1910. case COND::STRING_ITEM:
  1911. pp->Value= PlugSubAllocStr(g, NULL, res->ptr(), res->length());
  1912. pp->Type= (pp->Value) ? TYPE_STRING : TYPE_ERROR;
  1913. break;
  1914. case COND::INT_ITEM:
  1915. pp->Type= TYPE_INT;
  1916. pp->Value= PlugSubAlloc(g, NULL, sizeof(int));
  1917. *((int*)pp->Value)= (int)pval->val_int();
  1918. break;
  1919. case COND::DATE_ITEM:
  1920. pp->Type= TYPE_DATE;
  1921. pp->Value= PlugSubAlloc(g, NULL, sizeof(int));
  1922. *((int*)pp->Value)= (int)pval->val_int_from_date();
  1923. break;
  1924. case COND::REAL_ITEM:
  1925. pp->Type= TYPE_DOUBLE;
  1926. pp->Value= PlugSubAlloc(g, NULL, sizeof(double));
  1927. *((double*)pp->Value)= pval->val_real();
  1928. break;
  1929. case COND::DECIMAL_ITEM:
  1930. pp->Type= TYPE_DOUBLE;
  1931. pp->Value= PlugSubAlloc(g, NULL, sizeof(double));
  1932. *((double*)pp->Value)= pval->val_real_from_decimal();
  1933. break;
  1934. case COND::CACHE_ITEM: // Possible ???
  1935. case COND::NULL_ITEM: // TODO: handle this
  1936. default:
  1937. return NULL;
  1938. } // endswitch type
  1939. if (trace)
  1940. htrc("Value=%.*s\n", res->length(), res->ptr());
  1941. // Append the value to the argument list
  1942. if (pprec)
  1943. pprec->Next= pp;
  1944. else
  1945. pfirst= pp;
  1946. pp->Domain= i;
  1947. pp->Next= NULL;
  1948. pprec= pp;
  1949. } // endif type
  1950. } // endfor i
  1951. filp= MakeFilter(g, colp, pop, pfirst, neg);
  1952. } else {
  1953. if (trace)
  1954. htrc("Unsupported condition\n");
  1955. return NULL;
  1956. } // endif's type
  1957. return filp;
  1958. } // end of CondFilter
  1959. /***********************************************************************/
  1960. /* Check the WHERE condition and return a MYSQL/ODBC/WQL filter. */
  1961. /***********************************************************************/
  1962. PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, AMT tty, Item *cond)
  1963. {
  1964. char *body= filp->Body;
  1965. unsigned int i;
  1966. bool ismul= false, x= (tty == TYPE_AM_MYX || tty == TYPE_AM_XDBC);
  1967. OPVAL vop= OP_XX;
  1968. if (!cond)
  1969. return NULL;
  1970. if (trace)
  1971. htrc("Cond type=%d\n", cond->type());
  1972. if (cond->type() == COND::COND_ITEM) {
  1973. char *p1, *p2;
  1974. Item_cond *cond_item= (Item_cond *)cond;
  1975. if (x)
  1976. return NULL;
  1977. if (trace)
  1978. htrc("Cond: Ftype=%d name=%s\n", cond_item->functype(),
  1979. cond_item->func_name());
  1980. switch (cond_item->functype()) {
  1981. case Item_func::COND_AND_FUNC: vop= OP_AND; break;
  1982. case Item_func::COND_OR_FUNC: vop= OP_OR; break;
  1983. default: return NULL;
  1984. } // endswitch functype
  1985. List<Item>* arglist= cond_item->argument_list();
  1986. List_iterator<Item> li(*arglist);
  1987. Item *subitem;
  1988. p1= body + strlen(body);
  1989. strcpy(p1, "(");
  1990. p2= p1 + 1;
  1991. for (i= 0; i < arglist->elements; i++)
  1992. if ((subitem= li++)) {
  1993. if (!CheckCond(g, filp, tty, subitem)) {
  1994. if (vop == OP_OR)
  1995. return NULL;
  1996. else
  1997. *p2= 0;
  1998. } else {
  1999. p1= p2 + strlen(p2);
  2000. strcpy(p1, GetValStr(vop, false));
  2001. p2= p1 + strlen(p1);
  2002. } // endif CheckCond
  2003. } else
  2004. return NULL;
  2005. if (*p1 != '(')
  2006. strcpy(p1, ")");
  2007. else
  2008. return NULL;
  2009. } else if (cond->type() == COND::FUNC_ITEM) {
  2010. unsigned int i;
  2011. // int n;
  2012. bool iscol, neg= FALSE;
  2013. Item_func *condf= (Item_func *)cond;
  2014. Item* *args= condf->arguments();
  2015. if (trace)
  2016. htrc("Func type=%d argnum=%d\n", condf->functype(),
  2017. condf->argument_count());
  2018. // neg= condf->
  2019. switch (condf->functype()) {
  2020. case Item_func::EQUAL_FUNC:
  2021. case Item_func::EQ_FUNC: vop= OP_EQ; break;
  2022. case Item_func::NE_FUNC: vop= OP_NE; break;
  2023. case Item_func::LT_FUNC: vop= OP_LT; break;
  2024. case Item_func::LE_FUNC: vop= OP_LE; break;
  2025. case Item_func::GE_FUNC: vop= OP_GE; break;
  2026. case Item_func::GT_FUNC: vop= OP_GT; break;
  2027. case Item_func::IN_FUNC: vop= OP_IN;
  2028. case Item_func::BETWEEN:
  2029. ismul= true;
  2030. neg= ((Item_func_opt_neg *)condf)->negated;
  2031. break;
  2032. default: return NULL;
  2033. } // endswitch functype
  2034. if (condf->argument_count() < 2)
  2035. return NULL;
  2036. else if (ismul && tty == TYPE_AM_WMI)
  2037. return NULL; // Not supported by WQL
  2038. if (x && (neg || !(vop == OP_EQ || vop == OP_IN)))
  2039. return NULL;
  2040. for (i= 0; i < condf->argument_count(); i++) {
  2041. if (trace)
  2042. htrc("Argtype(%d)=%d\n", i, args[i]->type());
  2043. if (i >= 2 && !ismul) {
  2044. if (trace)
  2045. htrc("Unexpected arg for vop=%d\n", vop);
  2046. continue;
  2047. } // endif i
  2048. if ((iscol= args[i]->type() == COND::FIELD_ITEM)) {
  2049. const char *fnm;
  2050. ha_field_option_struct *fop;
  2051. Item_field *pField= (Item_field *)args[i];
  2052. if (x && i)
  2053. return NULL;
  2054. if (pField->field->table != table)
  2055. return NULL; // Field does not belong to this table
  2056. else
  2057. fop= GetFieldOptionStruct(pField->field);
  2058. if (fop && fop->special) {
  2059. if (tty == TYPE_AM_TBL && !stricmp(fop->special, "TABID"))
  2060. fnm= "TABID";
  2061. else if (tty == TYPE_AM_PLG)
  2062. fnm= fop->special;
  2063. else
  2064. return NULL;
  2065. } else if (tty == TYPE_AM_TBL)
  2066. return NULL;
  2067. else
  2068. fnm= pField->field->field_name;
  2069. if (trace) {
  2070. htrc("Field index=%d\n", pField->field->field_index);
  2071. htrc("Field name=%s\n", pField->field->field_name);
  2072. } // endif trace
  2073. // IN and BETWEEN clauses should be col VOP list
  2074. if (i && ismul)
  2075. return NULL;
  2076. strcat(body, fnm);
  2077. } else if (args[i]->type() == COND::FUNC_ITEM) {
  2078. if (tty == TYPE_AM_MYSQL) {
  2079. if (!CheckCond(g, filp, tty, args[i]))
  2080. return NULL;
  2081. } else
  2082. return NULL;
  2083. } else {
  2084. char buff[256];
  2085. String *res, tmp(buff, sizeof(buff), &my_charset_bin);
  2086. Item_basic_constant *pval= (Item_basic_constant *)args[i];
  2087. switch (args[i]->real_type()) {
  2088. case COND::STRING_ITEM:
  2089. case COND::INT_ITEM:
  2090. case COND::REAL_ITEM:
  2091. case COND::NULL_ITEM:
  2092. case COND::DECIMAL_ITEM:
  2093. case COND::DATE_ITEM:
  2094. case COND::CACHE_ITEM:
  2095. break;
  2096. default:
  2097. return NULL;
  2098. } // endswitch type
  2099. if ((res= pval->val_str(&tmp)) == NULL)
  2100. return NULL; // To be clarified
  2101. if (trace)
  2102. htrc("Value=%.*s\n", res->length(), res->ptr());
  2103. // IN and BETWEEN clauses should be col VOP list
  2104. if (!i && (x || ismul))
  2105. return NULL;
  2106. if (!x) {
  2107. // Append the value to the filter
  2108. if (args[i]->field_type() == MYSQL_TYPE_VARCHAR)
  2109. strcat(strncat(strcat(body, "'"), res->ptr(), res->length()), "'");
  2110. else
  2111. strncat(body, res->ptr(), res->length());
  2112. } else {
  2113. if (args[i]->field_type() == MYSQL_TYPE_VARCHAR) {
  2114. // Add the command to the list
  2115. PCMD *ncp, cmdp= new(g) CMD(g, (char*)res->c_ptr());
  2116. for (ncp= &filp->Cmds; *ncp; ncp= &(*ncp)->Next) ;
  2117. *ncp= cmdp;
  2118. } else
  2119. return NULL;
  2120. } // endif x
  2121. } // endif
  2122. if (!x) {
  2123. if (!i)
  2124. strcat(body, GetValStr(vop, neg));
  2125. else if (vop == OP_XX && i == 1)
  2126. strcat(body, " AND ");
  2127. else if (vop == OP_IN)
  2128. strcat(body, (i == condf->argument_count() - 1) ? ")" : ",");
  2129. } // endif x
  2130. } // endfor i
  2131. if (x)
  2132. filp->Op= vop;
  2133. } else {
  2134. if (trace)
  2135. htrc("Unsupported condition\n");
  2136. return NULL;
  2137. } // endif's type
  2138. return filp;
  2139. } // end of CheckCond
  2140. /**
  2141. Push condition down to the table handler.
  2142. @param cond Condition to be pushed. The condition tree must not be
  2143. modified by the caller.
  2144. @return
  2145. The 'remainder' condition that caller must use to filter out records.
  2146. NULL means the handler will not return rows that do not match the
  2147. passed condition.
  2148. @note
  2149. CONNECT handles the filtering only for table types that construct
  2150. an SQL or WQL query, but still leaves it to MySQL because only some
  2151. parts of the filter may be relevant.
  2152. The first suballocate finds the position where the string will be
  2153. constructed in the sarea. The second one does make the suballocation
  2154. with the proper length.
  2155. */
  2156. const COND *ha_connect::cond_push(const COND *cond)
  2157. {
  2158. DBUG_ENTER("ha_connect::cond_push");
  2159. if (tdbp) {
  2160. int rc;
  2161. PGLOBAL& g= xp->g;
  2162. AMT tty= tdbp->GetAmType();
  2163. bool x= (tty == TYPE_AM_MYX || tty == TYPE_AM_XDBC);
  2164. bool b= (tty == TYPE_AM_WMI || tty == TYPE_AM_ODBC ||
  2165. tty == TYPE_AM_TBL || tty == TYPE_AM_MYSQL ||
  2166. tty == TYPE_AM_PLG || x);
  2167. // Save stack and allocation environment and prepare error return
  2168. if (g->jump_level == MAX_JUMP) {
  2169. strcpy(g->Message, MSG(TOO_MANY_JUMPS));
  2170. DBUG_RETURN(cond);
  2171. } // endif jump_level
  2172. // This should never happen but is done to avoid crashing
  2173. if ((rc= setjmp(g->jumper[++g->jump_level])) != 0)
  2174. goto fin;
  2175. if (b) {
  2176. PCFIL filp= (PCFIL)PlugSubAlloc(g, NULL, sizeof(CONDFIL));
  2177. filp->Body= (char*)PlugSubAlloc(g, NULL, (x) ? 128 : 0);
  2178. *filp->Body= 0;
  2179. filp->Op= OP_XX;
  2180. filp->Cmds= NULL;
  2181. if (CheckCond(g, filp, tty, (Item *)cond)) {
  2182. if (trace)
  2183. htrc("cond_push: %s\n", filp->Body);
  2184. if (!x)
  2185. PlugSubAlloc(g, NULL, strlen(filp->Body) + 1);
  2186. else
  2187. cond= NULL; // Does this work?
  2188. tdbp->SetCondFil(filp);
  2189. } else if (x && cond)
  2190. tdbp->SetCondFil(filp); // Wrong filter
  2191. } else
  2192. tdbp->SetFilter(CondFilter(g, (Item *)cond));
  2193. fin:
  2194. g->jump_level--;
  2195. } // endif tdbp
  2196. // Let MySQL do the filtering
  2197. DBUG_RETURN(cond);
  2198. } // end of cond_push
  2199. /**
  2200. Number of rows in table. It will only be called if
  2201. (table_flags() & (HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT)) != 0
  2202. */
  2203. ha_rows ha_connect::records()
  2204. {
  2205. if (!valid_info)
  2206. info(HA_STATUS_VARIABLE);
  2207. if (tdbp)
  2208. return stats.records;
  2209. else
  2210. return HA_POS_ERROR;
  2211. } // end of records
  2212. /**
  2213. Return an error message specific to this handler.
  2214. @param error error code previously returned by handler
  2215. @param buf pointer to String where to add error message
  2216. @return
  2217. Returns true if this is a temporary error
  2218. */
  2219. bool ha_connect::get_error_message(int error, String* buf)
  2220. {
  2221. DBUG_ENTER("ha_connect::get_error_message");
  2222. if (xp && xp->g) {
  2223. PGLOBAL g= xp->g;
  2224. char msg[3072]; // MAX_STR * 3
  2225. uint dummy_errors;
  2226. uint32 len= copy_and_convert(msg, strlen(g->Message) * 3,
  2227. system_charset_info,
  2228. g->Message, strlen(g->Message),
  2229. &my_charset_latin1,
  2230. &dummy_errors);
  2231. if (trace)
  2232. htrc("GEM(%u): %s\n", len, g->Message);
  2233. msg[len]= '\0';
  2234. buf->copy(msg, (uint)strlen(msg), system_charset_info);
  2235. } else
  2236. buf->copy("Cannot retrieve msg", 19, system_charset_info);
  2237. DBUG_RETURN(false);
  2238. } // end of get_error_message
  2239. /**
  2240. Convert a filename partition name to system
  2241. */
  2242. static char *decode(PGLOBAL g, const char *pn)
  2243. {
  2244. char *buf= (char*)PlugSubAlloc(g, NULL, strlen(pn) + 1);
  2245. uint dummy_errors;
  2246. uint32 len= copy_and_convert(buf, strlen(pn) + 1,
  2247. system_charset_info,
  2248. pn, strlen(pn),
  2249. &my_charset_filename,
  2250. &dummy_errors);
  2251. buf[len]= '\0';
  2252. return buf;
  2253. } // end of decode
  2254. /**
  2255. @brief
  2256. Used for opening tables. The name will be the name of the file.
  2257. @details
  2258. A table is opened when it needs to be opened; e.g. when a request comes in
  2259. for a SELECT on the table (tables are not open and closed for each request,
  2260. they are cached).
  2261. Called from handler.cc by handler::ha_open(). The server opens all tables by
  2262. calling ha_open() which then calls the handler specific open().
  2263. @note
  2264. For CONNECT no open can be done here because field information is not yet
  2265. updated. >>>>> TO BE CHECKED <<<<<
  2266. (Thread information could be get by using 'ha_thd')
  2267. @see
  2268. handler::ha_open() in handler.cc
  2269. */
  2270. int ha_connect::open(const char *name, int mode, uint test_if_locked)
  2271. {
  2272. int rc= 0;
  2273. DBUG_ENTER("ha_connect::open");
  2274. if (trace)
  2275. htrc("open: name=%s mode=%d test=%u\n", name, mode, test_if_locked);
  2276. if (!(share= get_share()))
  2277. DBUG_RETURN(1);
  2278. thr_lock_data_init(&share->lock,&lock,NULL);
  2279. // Try to get the user if possible
  2280. xp= GetUser(ha_thd(), xp);
  2281. PGLOBAL g= (xp) ? xp->g : NULL;
  2282. // Try to set the database environment
  2283. if (g) {
  2284. rc= (CntCheckDB(g, this, name)) ? (-2) : 0;
  2285. if (g->Mrr) {
  2286. // This should only happen for the mrr secondary handler
  2287. mrr= true;
  2288. g->Mrr= false;
  2289. } else
  2290. mrr= false;
  2291. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  2292. if (table->part_info) {
  2293. if (GetStringOption("Filename") || GetStringOption("Tabname")
  2294. || GetStringOption("Connect")) {
  2295. strcpy(partname, decode(g, strrchr(name, '#') + 1));
  2296. // strcpy(partname, table->part_info->curr_part_elem->partition_name);
  2297. part_id= &table->part_info->full_part_field_set;
  2298. } else // Inward table
  2299. strcpy(partname, strrchr(name, slash) + 1);
  2300. part_id= &table->part_info->full_part_field_set; // Temporary
  2301. } // endif part_info
  2302. #endif // WITH_PARTITION_STORAGE_ENGINE
  2303. } else
  2304. rc= HA_ERR_INTERNAL_ERROR;
  2305. DBUG_RETURN(rc);
  2306. } // end of open
  2307. /**
  2308. @brief
  2309. Make the indexes for this table
  2310. */
  2311. int ha_connect::optimize(THD* thd, HA_CHECK_OPT* check_opt)
  2312. {
  2313. int rc= 0;
  2314. PGLOBAL& g= xp->g;
  2315. PDBUSER dup= PlgGetUser(g);
  2316. // Ignore error on the opt file
  2317. dup->Check &= ~CHK_OPT;
  2318. tdbp= GetTDB(g);
  2319. dup->Check |= CHK_OPT;
  2320. if (tdbp) {
  2321. bool dop= IsTypeIndexable(GetRealType(NULL));
  2322. bool dox= (((PTDBASE)tdbp)->GetDef()->Indexable() == 1);
  2323. if ((rc= ((PTDBASE)tdbp)->ResetTableOpt(g, dop, dox))) {
  2324. if (rc == RC_INFO) {
  2325. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  2326. rc= 0;
  2327. } else
  2328. rc= HA_ERR_INTERNAL_ERROR;
  2329. } // endif rc
  2330. } else
  2331. rc= HA_ERR_INTERNAL_ERROR;
  2332. return rc;
  2333. } // end of optimize
  2334. /**
  2335. @brief
  2336. Closes a table.
  2337. @details
  2338. Called from sql_base.cc, sql_select.cc, and table.cc. In sql_select.cc it is
  2339. only used to close up temporary tables or during the process where a
  2340. temporary table is converted over to being a myisam table.
  2341. For sql_base.cc look at close_data_tables().
  2342. @see
  2343. sql_base.cc, sql_select.cc and table.cc
  2344. */
  2345. int ha_connect::close(void)
  2346. {
  2347. int rc= 0;
  2348. DBUG_ENTER("ha_connect::close");
  2349. // If this is called by a later query, the table may have
  2350. // been already closed and the tdbp is not valid anymore.
  2351. if (tdbp && xp->last_query_id == valid_query_id)
  2352. rc= CloseTable(xp->g);
  2353. DBUG_RETURN(rc);
  2354. } // end of close
  2355. /**
  2356. @brief
  2357. write_row() inserts a row. No extra() hint is given currently if a bulk load
  2358. is happening. buf() is a byte array of data. You can use the field
  2359. information to extract the data from the native byte array type.
  2360. @details
  2361. Example of this would be:
  2362. @code
  2363. for (Field **field=table->field ; *field ; field++)
  2364. {
  2365. ...
  2366. }
  2367. @endcode
  2368. See ha_tina.cc for an example of extracting all of the data as strings.
  2369. ha_berekly.cc has an example of how to store it intact by "packing" it
  2370. for ha_berkeley's own native storage type.
  2371. See the note for update_row() on auto_increments and timestamps. This
  2372. case also applies to write_row().
  2373. Called from item_sum.cc, item_sum.cc, sql_acl.cc, sql_insert.cc,
  2374. sql_insert.cc, sql_select.cc, sql_table.cc, sql_udf.cc, and sql_update.cc.
  2375. @see
  2376. item_sum.cc, item_sum.cc, sql_acl.cc, sql_insert.cc,
  2377. sql_insert.cc, sql_select.cc, sql_table.cc, sql_udf.cc and sql_update.cc
  2378. */
  2379. int ha_connect::write_row(uchar *buf)
  2380. {
  2381. int rc= 0;
  2382. PGLOBAL& g= xp->g;
  2383. DBUG_ENTER("ha_connect::write_row");
  2384. // This is not tested yet
  2385. if (xmod == MODE_ALTER) {
  2386. if (IsPartitioned() && GetStringOption("Filename", NULL))
  2387. // Why does this happen now that check_if_supported_inplace_alter is called?
  2388. DBUG_RETURN(0); // Alter table on an outward partition table
  2389. xmod= MODE_INSERT;
  2390. } else if (xmod == MODE_ANY)
  2391. DBUG_RETURN(0); // Probably never met
  2392. // Open the table if it was not opened yet (locked)
  2393. if (!IsOpened() || xmod != tdbp->GetMode()) {
  2394. if (IsOpened())
  2395. CloseTable(g);
  2396. if ((rc= OpenTable(g)))
  2397. DBUG_RETURN(rc);
  2398. } // endif isopened
  2399. #if 0 // AUTO_INCREMENT NIY
  2400. if (table->next_number_field && buf == table->record[0]) {
  2401. int error;
  2402. if ((error= update_auto_increment()))
  2403. return error;
  2404. } // endif nex_number_field
  2405. #endif // 0
  2406. // Set column values from the passed pseudo record
  2407. if ((rc= ScanRecord(g, buf)))
  2408. DBUG_RETURN(rc);
  2409. // Return result code from write operation
  2410. if (CntWriteRow(g, tdbp)) {
  2411. DBUG_PRINT("write_row", ("%s", g->Message));
  2412. htrc("write_row: %s\n", g->Message);
  2413. rc= HA_ERR_INTERNAL_ERROR;
  2414. } else // Table is modified
  2415. nox= false; // Indexes to be remade
  2416. DBUG_RETURN(rc);
  2417. } // end of write_row
  2418. /**
  2419. @brief
  2420. Yes, update_row() does what you expect, it updates a row. old_data will have
  2421. the previous row record in it, while new_data will have the newest data in it.
  2422. Keep in mind that the server can do updates based on ordering if an ORDER BY
  2423. clause was used. Consecutive ordering is not guaranteed.
  2424. @details
  2425. Currently new_data will not have an updated auto_increament record, or
  2426. and updated timestamp field. You can do these for example by doing:
  2427. @code
  2428. if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE)
  2429. table->timestamp_field->set_time();
  2430. if (table->next_number_field && record == table->record[0])
  2431. update_auto_increment();
  2432. @endcode
  2433. Called from sql_select.cc, sql_acl.cc, sql_update.cc, and sql_insert.cc.
  2434. @see
  2435. sql_select.cc, sql_acl.cc, sql_update.cc and sql_insert.cc
  2436. */
  2437. int ha_connect::update_row(const uchar *old_data, uchar *new_data)
  2438. {
  2439. int rc= 0;
  2440. PGLOBAL& g= xp->g;
  2441. DBUG_ENTER("ha_connect::update_row");
  2442. if (trace > 1)
  2443. htrc("update_row: old=%s new=%s\n", old_data, new_data);
  2444. // Check values for possible change in indexed column
  2445. if ((rc= CheckRecord(g, old_data, new_data)))
  2446. DBUG_RETURN(rc);
  2447. if (CntUpdateRow(g, tdbp)) {
  2448. DBUG_PRINT("update_row", ("%s", g->Message));
  2449. htrc("update_row CONNECT: %s\n", g->Message);
  2450. rc= HA_ERR_INTERNAL_ERROR;
  2451. } else
  2452. nox= false; // Table is modified
  2453. DBUG_RETURN(rc);
  2454. } // end of update_row
  2455. /**
  2456. @brief
  2457. This will delete a row. buf will contain a copy of the row to be deleted.
  2458. The server will call this right after the current row has been called (from
  2459. either a previous rnd_nexT() or index call).
  2460. @details
  2461. If you keep a pointer to the last row or can access a primary key it will
  2462. make doing the deletion quite a bit easier. Keep in mind that the server does
  2463. not guarantee consecutive deletions. ORDER BY clauses can be used.
  2464. Called in sql_acl.cc and sql_udf.cc to manage internal table
  2465. information. Called in sql_delete.cc, sql_insert.cc, and
  2466. sql_select.cc. In sql_select it is used for removing duplicates
  2467. while in insert it is used for REPLACE calls.
  2468. @see
  2469. sql_acl.cc, sql_udf.cc, sql_delete.cc, sql_insert.cc and sql_select.cc
  2470. */
  2471. int ha_connect::delete_row(const uchar *buf)
  2472. {
  2473. int rc= 0;
  2474. DBUG_ENTER("ha_connect::delete_row");
  2475. if (CntDeleteRow(xp->g, tdbp, false)) {
  2476. rc= HA_ERR_INTERNAL_ERROR;
  2477. htrc("delete_row CONNECT: %s\n", xp->g->Message);
  2478. } else
  2479. nox= false; // To remake indexes
  2480. DBUG_RETURN(rc);
  2481. } // end of delete_row
  2482. /****************************************************************************/
  2483. /* We seem to come here at the begining of an index use. */
  2484. /****************************************************************************/
  2485. int ha_connect::index_init(uint idx, bool sorted)
  2486. {
  2487. int rc;
  2488. PGLOBAL& g= xp->g;
  2489. DBUG_ENTER("index_init");
  2490. if (trace)
  2491. htrc("index_init: this=%p idx=%u sorted=%d\n", this, idx, sorted);
  2492. if (GetIndexType(GetRealType()) == 2) {
  2493. if (xmod == MODE_READ)
  2494. // This is a remote index
  2495. xmod= MODE_READX;
  2496. if (!(rc= rnd_init(0))) {
  2497. // if (xmod == MODE_READX) {
  2498. active_index= idx;
  2499. indexing= IsUnique(idx) ? 1 : 2;
  2500. // } else {
  2501. // active_index= MAX_KEY;
  2502. // indexing= 0;
  2503. // } // endif xmod
  2504. } //endif rc
  2505. DBUG_RETURN(rc);
  2506. } // endif index type
  2507. if ((rc= rnd_init(0)))
  2508. DBUG_RETURN(rc);
  2509. if (locked == 2) {
  2510. // Indexes are not updated in lock write mode
  2511. active_index= MAX_KEY;
  2512. indexing= 0;
  2513. DBUG_RETURN(0);
  2514. } // endif locked
  2515. indexing= CntIndexInit(g, tdbp, (signed)idx, sorted);
  2516. if (indexing <= 0) {
  2517. DBUG_PRINT("index_init", ("%s", g->Message));
  2518. htrc("index_init CONNECT: %s\n", g->Message);
  2519. active_index= MAX_KEY;
  2520. rc= HA_ERR_INTERNAL_ERROR;
  2521. } else if (((PTDBDOX)tdbp)->To_Kindex) {
  2522. if (((PTDBDOX)tdbp)->To_Kindex->GetNum_K()) {
  2523. if (((PTDBASE)tdbp)->GetFtype() != RECFM_NAF)
  2524. ((PTDBDOX)tdbp)->GetTxfp()->ResetBuffer(g);
  2525. active_index= idx;
  2526. // } else { // Void table
  2527. // active_index= MAX_KEY;
  2528. // indexing= 0;
  2529. } // endif Num
  2530. rc= 0;
  2531. } // endif indexing
  2532. if (trace)
  2533. htrc("index_init: rc=%d indexing=%d active_index=%d\n",
  2534. rc, indexing, active_index);
  2535. DBUG_RETURN(rc);
  2536. } // end of index_init
  2537. /****************************************************************************/
  2538. /* We seem to come here at the end of an index use. */
  2539. /****************************************************************************/
  2540. int ha_connect::index_end()
  2541. {
  2542. DBUG_ENTER("index_end");
  2543. active_index= MAX_KEY;
  2544. ds_mrr.dsmrr_close();
  2545. DBUG_RETURN(rnd_end());
  2546. } // end of index_end
  2547. /****************************************************************************/
  2548. /* This is internally called by all indexed reading functions. */
  2549. /****************************************************************************/
  2550. int ha_connect::ReadIndexed(uchar *buf, OPVAL op, const uchar *key, uint key_len)
  2551. {
  2552. int rc;
  2553. //statistic_increment(ha_read_key_count, &LOCK_status);
  2554. switch (CntIndexRead(xp->g, tdbp, op, key, (int)key_len, mrr)) {
  2555. case RC_OK:
  2556. xp->fnd++;
  2557. rc= MakeRecord((char*)buf);
  2558. break;
  2559. case RC_EF: // End of file
  2560. rc= HA_ERR_END_OF_FILE;
  2561. break;
  2562. case RC_NF: // Not found
  2563. xp->nfd++;
  2564. rc= (op == OP_SAME) ? HA_ERR_END_OF_FILE : HA_ERR_KEY_NOT_FOUND;
  2565. break;
  2566. default: // Read error
  2567. DBUG_PRINT("ReadIndexed", ("%s", xp->g->Message));
  2568. htrc("ReadIndexed: %s\n", xp->g->Message);
  2569. rc= HA_ERR_INTERNAL_ERROR;
  2570. break;
  2571. } // endswitch RC
  2572. if (trace > 1)
  2573. htrc("ReadIndexed: op=%d rc=%d\n", op, rc);
  2574. table->status= (rc == RC_OK) ? 0 : STATUS_NOT_FOUND;
  2575. return rc;
  2576. } // end of ReadIndexed
  2577. #ifdef NOT_USED
  2578. /**
  2579. @brief
  2580. Positions an index cursor to the index specified in the handle. Fetches the
  2581. row if available. If the key value is null, begin at the first key of the
  2582. index.
  2583. */
  2584. int ha_connect::index_read_map(uchar *buf, const uchar *key,
  2585. key_part_map keypart_map __attribute__((unused)),
  2586. enum ha_rkey_function find_flag
  2587. __attribute__((unused)))
  2588. {
  2589. DBUG_ENTER("ha_connect::index_read");
  2590. DBUG_RETURN(HA_ERR_WRONG_COMMAND);
  2591. }
  2592. #endif // NOT_USED
  2593. /****************************************************************************/
  2594. /* This is called by handler::index_read_map. */
  2595. /****************************************************************************/
  2596. int ha_connect::index_read(uchar * buf, const uchar * key, uint key_len,
  2597. enum ha_rkey_function find_flag)
  2598. {
  2599. int rc;
  2600. OPVAL op= OP_XX;
  2601. DBUG_ENTER("ha_connect::index_read");
  2602. switch(find_flag) {
  2603. case HA_READ_KEY_EXACT: op= OP_EQ; break;
  2604. case HA_READ_AFTER_KEY: op= OP_GT; break;
  2605. case HA_READ_KEY_OR_NEXT: op= OP_GE; break;
  2606. default: DBUG_RETURN(-1); break;
  2607. } // endswitch find_flag
  2608. if (trace > 1)
  2609. htrc("%p index_read: op=%d\n", this, op);
  2610. if (indexing > 0) {
  2611. rc= ReadIndexed(buf, op, key, key_len);
  2612. if (rc == HA_ERR_INTERNAL_ERROR) {
  2613. nox= true; // To block making indexes
  2614. abort= true; // Don't rename temp file
  2615. } // endif rc
  2616. } else
  2617. rc= HA_ERR_INTERNAL_ERROR; // HA_ERR_KEY_NOT_FOUND ?
  2618. DBUG_RETURN(rc);
  2619. } // end of index_read
  2620. /**
  2621. @brief
  2622. Used to read forward through the index.
  2623. */
  2624. int ha_connect::index_next(uchar *buf)
  2625. {
  2626. int rc;
  2627. DBUG_ENTER("ha_connect::index_next");
  2628. //statistic_increment(ha_read_next_count, &LOCK_status);
  2629. if (indexing > 0)
  2630. rc= ReadIndexed(buf, OP_NEXT);
  2631. else if (!indexing)
  2632. rc= rnd_next(buf);
  2633. else
  2634. rc= HA_ERR_INTERNAL_ERROR;
  2635. DBUG_RETURN(rc);
  2636. } // end of index_next
  2637. /**
  2638. @brief
  2639. Used to read backwards through the index.
  2640. */
  2641. int ha_connect::index_prev(uchar *buf)
  2642. {
  2643. DBUG_ENTER("ha_connect::index_prev");
  2644. int rc;
  2645. if (indexing > 0) {
  2646. rc= ReadIndexed(buf, OP_PREV);
  2647. } else
  2648. rc= HA_ERR_WRONG_COMMAND;
  2649. DBUG_RETURN(rc);
  2650. } // end of index_prev
  2651. /**
  2652. @brief
  2653. index_first() asks for the first key in the index.
  2654. @details
  2655. Called from opt_range.cc, opt_sum.cc, sql_handler.cc, and sql_select.cc.
  2656. @see
  2657. opt_range.cc, opt_sum.cc, sql_handler.cc and sql_select.cc
  2658. */
  2659. int ha_connect::index_first(uchar *buf)
  2660. {
  2661. int rc;
  2662. DBUG_ENTER("ha_connect::index_first");
  2663. if (indexing > 0)
  2664. rc= ReadIndexed(buf, OP_FIRST);
  2665. else if (indexing < 0)
  2666. rc= HA_ERR_INTERNAL_ERROR;
  2667. else if (CntRewindTable(xp->g, tdbp)) {
  2668. table->status= STATUS_NOT_FOUND;
  2669. rc= HA_ERR_INTERNAL_ERROR;
  2670. } else
  2671. rc= rnd_next(buf);
  2672. DBUG_RETURN(rc);
  2673. } // end of index_first
  2674. /**
  2675. @brief
  2676. index_last() asks for the last key in the index.
  2677. @details
  2678. Called from opt_range.cc, opt_sum.cc, sql_handler.cc, and sql_select.cc.
  2679. @see
  2680. opt_range.cc, opt_sum.cc, sql_handler.cc and sql_select.cc
  2681. */
  2682. int ha_connect::index_last(uchar *buf)
  2683. {
  2684. DBUG_ENTER("ha_connect::index_last");
  2685. int rc;
  2686. if (indexing <= 0) {
  2687. rc= HA_ERR_INTERNAL_ERROR;
  2688. } else
  2689. rc= ReadIndexed(buf, OP_LAST);
  2690. DBUG_RETURN(rc);
  2691. }
  2692. /****************************************************************************/
  2693. /* This is called to get more rows having the same index value. */
  2694. /****************************************************************************/
  2695. int ha_connect::index_next_same(uchar *buf, const uchar *key, uint keylen)
  2696. {
  2697. int rc;
  2698. DBUG_ENTER("ha_connect::index_next_same");
  2699. //statistic_increment(ha_read_next_count, &LOCK_status);
  2700. if (!indexing)
  2701. rc= rnd_next(buf);
  2702. else if (indexing > 0)
  2703. rc= ReadIndexed(buf, OP_SAME);
  2704. else
  2705. rc= HA_ERR_INTERNAL_ERROR;
  2706. DBUG_RETURN(rc);
  2707. } // end of index_next_same
  2708. /**
  2709. @brief
  2710. rnd_init() is called when the system wants the storage engine to do a table
  2711. scan. See the example in the introduction at the top of this file to see when
  2712. rnd_init() is called.
  2713. @details
  2714. Called from filesort.cc, records.cc, sql_handler.cc, sql_select.cc, sql_table.cc,
  2715. and sql_update.cc.
  2716. @note
  2717. We always call open and extern_lock/start_stmt before comming here.
  2718. @see
  2719. filesort.cc, records.cc, sql_handler.cc, sql_select.cc, sql_table.cc and sql_update.cc
  2720. */
  2721. int ha_connect::rnd_init(bool scan)
  2722. {
  2723. PGLOBAL g= ((table && table->in_use) ? GetPlug(table->in_use, xp) :
  2724. (xp) ? xp->g : NULL);
  2725. DBUG_ENTER("ha_connect::rnd_init");
  2726. // This is not tested yet
  2727. if (xmod == MODE_ALTER) {
  2728. xmod= MODE_READ;
  2729. alter= 1;
  2730. } // endif xmod
  2731. if (trace)
  2732. htrc("rnd_init: this=%p scan=%d xmod=%d alter=%d\n",
  2733. this, scan, xmod, alter);
  2734. if (!g || !table || xmod == MODE_INSERT)
  2735. DBUG_RETURN(HA_ERR_INITIALIZATION);
  2736. // Do not close the table if it was opened yet (locked?)
  2737. if (IsOpened()) {
  2738. if (IsPartitioned() && xmod != MODE_INSERT)
  2739. if (CheckColumnList(g)) // map can have been changed
  2740. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  2741. if (tdbp->OpenDB(g)) // Rewind table
  2742. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  2743. else
  2744. DBUG_RETURN(0);
  2745. } else if (xp->CheckQuery(valid_query_id))
  2746. tdbp= NULL; // Not valid anymore
  2747. // When updating, to avoid skipped update, force the table
  2748. // handler to retrieve write-only fields to be able to compare
  2749. // records and detect data change.
  2750. if (xmod == MODE_UPDATE)
  2751. bitmap_union(table->read_set, table->write_set);
  2752. if (OpenTable(g, xmod == MODE_DELETE))
  2753. DBUG_RETURN(HA_ERR_INITIALIZATION);
  2754. xp->nrd= xp->fnd= xp->nfd= 0;
  2755. xp->tb1= my_interval_timer();
  2756. DBUG_RETURN(0);
  2757. } // end of rnd_init
  2758. /**
  2759. @brief
  2760. Not described.
  2761. @note
  2762. The previous version said:
  2763. Stop scanning of table. Note that this may be called several times during
  2764. execution of a sub select.
  2765. =====> This has been moved to external lock to avoid closing subselect tables.
  2766. */
  2767. int ha_connect::rnd_end()
  2768. {
  2769. int rc= 0;
  2770. DBUG_ENTER("ha_connect::rnd_end");
  2771. // If this is called by a later query, the table may have
  2772. // been already closed and the tdbp is not valid anymore.
  2773. // if (tdbp && xp->last_query_id == valid_query_id)
  2774. // rc= CloseTable(xp->g);
  2775. ds_mrr.dsmrr_close();
  2776. DBUG_RETURN(rc);
  2777. } // end of rnd_end
  2778. /**
  2779. @brief
  2780. This is called for each row of the table scan. When you run out of records
  2781. you should return HA_ERR_END_OF_FILE. Fill buff up with the row information.
  2782. The Field structure for the table is the key to getting data into buf
  2783. in a manner that will allow the server to understand it.
  2784. @details
  2785. Called from filesort.cc, records.cc, sql_handler.cc, sql_select.cc, sql_table.cc,
  2786. and sql_update.cc.
  2787. @see
  2788. filesort.cc, records.cc, sql_handler.cc, sql_select.cc, sql_table.cc and sql_update.cc
  2789. */
  2790. int ha_connect::rnd_next(uchar *buf)
  2791. {
  2792. int rc;
  2793. DBUG_ENTER("ha_connect::rnd_next");
  2794. //statistic_increment(ha_read_rnd_next_count, &LOCK_status);
  2795. if (tdbp->GetMode() == MODE_ANY) {
  2796. // We will stop on next read
  2797. if (!stop) {
  2798. stop= true;
  2799. DBUG_RETURN(RC_OK);
  2800. } else
  2801. DBUG_RETURN(HA_ERR_END_OF_FILE);
  2802. } // endif Mode
  2803. switch (CntReadNext(xp->g, tdbp)) {
  2804. case RC_OK:
  2805. rc= MakeRecord((char*)buf);
  2806. break;
  2807. case RC_EF: // End of file
  2808. rc= HA_ERR_END_OF_FILE;
  2809. break;
  2810. case RC_NF: // Not found
  2811. rc= HA_ERR_RECORD_DELETED;
  2812. break;
  2813. default: // Read error
  2814. htrc("rnd_next CONNECT: %s\n", xp->g->Message);
  2815. rc= (records()) ? HA_ERR_INTERNAL_ERROR : HA_ERR_END_OF_FILE;
  2816. break;
  2817. } // endswitch RC
  2818. if (trace > 1 && (rc || !(xp->nrd++ % 16384))) {
  2819. ulonglong tb2= my_interval_timer();
  2820. double elapsed= (double) (tb2 - xp->tb1) / 1000000000ULL;
  2821. DBUG_PRINT("rnd_next", ("rc=%d nrd=%u fnd=%u nfd=%u sec=%.3lf\n",
  2822. rc, (uint)xp->nrd, (uint)xp->fnd,
  2823. (uint)xp->nfd, elapsed));
  2824. htrc("rnd_next: rc=%d nrd=%u fnd=%u nfd=%u sec=%.3lf\n",
  2825. rc, (uint)xp->nrd, (uint)xp->fnd,
  2826. (uint)xp->nfd, elapsed);
  2827. xp->tb1= tb2;
  2828. xp->fnd= xp->nfd= 0;
  2829. } // endif nrd
  2830. table->status= (!rc) ? 0 : STATUS_NOT_FOUND;
  2831. DBUG_RETURN(rc);
  2832. } // end of rnd_next
  2833. /**
  2834. @brief
  2835. position() is called after each call to rnd_next() if the data needs
  2836. to be ordered. You can do something like the following to store
  2837. the position:
  2838. @code
  2839. my_store_ptr(ref, ref_length, current_position);
  2840. @endcode
  2841. @details
  2842. The server uses ref to store data. ref_length in the above case is
  2843. the size needed to store current_position. ref is just a byte array
  2844. that the server will maintain. If you are using offsets to mark rows, then
  2845. current_position should be the offset. If it is a primary key like in
  2846. BDB, then it needs to be a primary key.
  2847. Called from filesort.cc, sql_select.cc, sql_delete.cc, and sql_update.cc.
  2848. @see
  2849. filesort.cc, sql_select.cc, sql_delete.cc and sql_update.cc
  2850. */
  2851. void ha_connect::position(const uchar *record)
  2852. {
  2853. DBUG_ENTER("ha_connect::position");
  2854. //if (((PTDBASE)tdbp)->GetDef()->Indexable())
  2855. my_store_ptr(ref, ref_length, (my_off_t)((PTDBASE)tdbp)->GetRecpos());
  2856. if (trace)
  2857. htrc("position: pos=%d\n", ((PTDBASE)tdbp)->GetRecpos());
  2858. DBUG_VOID_RETURN;
  2859. } // end of position
  2860. /**
  2861. @brief
  2862. This is like rnd_next, but you are given a position to use
  2863. to determine the row. The position will be of the type that you stored in
  2864. ref. You can use my_get_ptr(pos,ref_length) to retrieve whatever key
  2865. or position you saved when position() was called.
  2866. @details
  2867. Called from filesort.cc, records.cc, sql_insert.cc, sql_select.cc, and sql_update.cc.
  2868. @note
  2869. Is this really useful? It was never called even when sorting.
  2870. @see
  2871. filesort.cc, records.cc, sql_insert.cc, sql_select.cc and sql_update.cc
  2872. */
  2873. int ha_connect::rnd_pos(uchar *buf, uchar *pos)
  2874. {
  2875. int rc;
  2876. PTDBASE tp= (PTDBASE)tdbp;
  2877. DBUG_ENTER("ha_connect::rnd_pos");
  2878. if (!tp->SetRecpos(xp->g, (int)my_get_ptr(pos, ref_length))) {
  2879. if (trace)
  2880. htrc("rnd_pos: %d\n", tp->GetRecpos());
  2881. tp->SetFilter(NULL);
  2882. rc= rnd_next(buf);
  2883. } else
  2884. rc= HA_ERR_KEY_NOT_FOUND;
  2885. DBUG_RETURN(rc);
  2886. } // end of rnd_pos
  2887. /**
  2888. @brief
  2889. ::info() is used to return information to the optimizer. See my_base.h for
  2890. the complete description.
  2891. @details
  2892. Currently this table handler doesn't implement most of the fields really needed.
  2893. SHOW also makes use of this data.
  2894. You will probably want to have the following in your code:
  2895. @code
  2896. if (records < 2)
  2897. records= 2;
  2898. @endcode
  2899. The reason is that the server will optimize for cases of only a single
  2900. record. If, in a table scan, you don't know the number of records, it
  2901. will probably be better to set records to two so you can return as many
  2902. records as you need. Along with records, a few more variables you may wish
  2903. to set are:
  2904. records
  2905. deleted
  2906. data_file_length
  2907. index_file_length
  2908. delete_length
  2909. check_time
  2910. Take a look at the public variables in handler.h for more information.
  2911. Called in filesort.cc, ha_heap.cc, item_sum.cc, opt_sum.cc, sql_delete.cc,
  2912. sql_delete.cc, sql_derived.cc, sql_select.cc, sql_select.cc, sql_select.cc,
  2913. sql_select.cc, sql_select.cc, sql_show.cc, sql_show.cc, sql_show.cc, sql_show.cc,
  2914. sql_table.cc, sql_union.cc, and sql_update.cc.
  2915. @see
  2916. filesort.cc, ha_heap.cc, item_sum.cc, opt_sum.cc, sql_delete.cc, sql_delete.cc,
  2917. sql_derived.cc, sql_select.cc, sql_select.cc, sql_select.cc, sql_select.cc,
  2918. sql_select.cc, sql_show.cc, sql_show.cc, sql_show.cc, sql_show.cc, sql_table.cc,
  2919. sql_union.cc and sql_update.cc
  2920. */
  2921. int ha_connect::info(uint flag)
  2922. {
  2923. bool pure= false;
  2924. PGLOBAL g= GetPlug((table) ? table->in_use : NULL, xp);
  2925. DBUG_ENTER("ha_connect::info");
  2926. if (trace)
  2927. htrc("%p In info: flag=%u valid_info=%d\n", this, flag, valid_info);
  2928. // tdbp must be available to get updated info
  2929. if (xp->CheckQuery(valid_query_id) || !tdbp) {
  2930. PDBUSER dup= PlgGetUser(g);
  2931. PCATLG cat= (dup) ? dup->Catalog : NULL;
  2932. if (xmod == MODE_ANY || xmod == MODE_ALTER) {
  2933. // Pure info, not a query
  2934. pure= true;
  2935. xp->CheckCleanup();
  2936. } // endif xmod
  2937. // This is necessary for getting file length
  2938. if (table)
  2939. SetDataPath(g, Strz(table->s->db));
  2940. else
  2941. DBUG_RETURN(HA_ERR_INTERNAL_ERROR); // Should never happen
  2942. if (!(tdbp= GetTDB(g)))
  2943. DBUG_RETURN(HA_ERR_INTERNAL_ERROR); // Should never happen
  2944. valid_info = false;
  2945. } // endif tdbp
  2946. if (!valid_info) {
  2947. valid_info= CntInfo(g, tdbp, &xinfo);
  2948. if (((signed)xinfo.records) < 0)
  2949. DBUG_RETURN(HA_ERR_INITIALIZATION); // Error in Cardinality
  2950. } // endif valid_info
  2951. if (flag & HA_STATUS_VARIABLE) {
  2952. stats.records= xinfo.records;
  2953. stats.deleted= 0;
  2954. stats.data_file_length= xinfo.data_file_length;
  2955. stats.index_file_length= 0;
  2956. stats.delete_length= 0;
  2957. stats.check_time= 0;
  2958. stats.mean_rec_length= xinfo.mean_rec_length;
  2959. } // endif HA_STATUS_VARIABLE
  2960. if (flag & HA_STATUS_CONST) {
  2961. // This is imported from the previous handler and must be reconsidered
  2962. stats.max_data_file_length= 4294967295LL;
  2963. stats.max_index_file_length= 4398046510080LL;
  2964. stats.create_time= 0;
  2965. data_file_name= xinfo.data_file_name;
  2966. index_file_name= NULL;
  2967. // sortkey= (uint) - 1; // Table is not sorted
  2968. ref_length= sizeof(int); // Pointer size to row
  2969. table->s->db_options_in_use= 03;
  2970. stats.block_size= 1024;
  2971. table->s->keys_in_use.set_prefix(table->s->keys);
  2972. table->s->keys_for_keyread= table->s->keys_in_use;
  2973. // table->s->keys_for_keyread.subtract(table->s->read_only_keys);
  2974. table->s->db_record_offset= 0;
  2975. } // endif HA_STATUS_CONST
  2976. if (flag & HA_STATUS_ERRKEY) {
  2977. errkey= 0;
  2978. } // endif HA_STATUS_ERRKEY
  2979. if (flag & HA_STATUS_TIME)
  2980. stats.update_time= 0;
  2981. if (flag & HA_STATUS_AUTO)
  2982. stats.auto_increment_value= 1;
  2983. if (tdbp && pure)
  2984. CloseTable(g); // Not used anymore
  2985. DBUG_RETURN(0);
  2986. } // end of info
  2987. /**
  2988. @brief
  2989. extra() is called whenever the server wishes to send a hint to
  2990. the storage engine. The myisam engine implements the most hints.
  2991. ha_innodb.cc has the most exhaustive list of these hints.
  2992. @note
  2993. This is not yet implemented for CONNECT.
  2994. @see
  2995. ha_innodb.cc
  2996. */
  2997. int ha_connect::extra(enum ha_extra_function operation)
  2998. {
  2999. DBUG_ENTER("ha_connect::extra");
  3000. DBUG_RETURN(0);
  3001. } // end of extra
  3002. /**
  3003. @brief
  3004. Used to delete all rows in a table, including cases of truncate and cases where
  3005. the optimizer realizes that all rows will be removed as a result of an SQL statement.
  3006. @details
  3007. Called from item_sum.cc by Item_func_group_concat::clear(),
  3008. Item_sum_count_distinct::clear(), and Item_func_group_concat::clear().
  3009. Called from sql_delete.cc by mysql_delete().
  3010. Called from sql_select.cc by JOIN::reinit().
  3011. Called from sql_union.cc by st_select_lex_unit::exec().
  3012. @see
  3013. Item_func_group_concat::clear(), Item_sum_count_distinct::clear() and
  3014. Item_func_group_concat::clear() in item_sum.cc;
  3015. mysql_delete() in sql_delete.cc;
  3016. JOIN::reinit() in sql_select.cc and
  3017. st_select_lex_unit::exec() in sql_union.cc.
  3018. */
  3019. int ha_connect::delete_all_rows()
  3020. {
  3021. int rc= 0;
  3022. PGLOBAL g= xp->g;
  3023. DBUG_ENTER("ha_connect::delete_all_rows");
  3024. if (tdbp && tdbp->GetUse() == USE_OPEN &&
  3025. tdbp->GetAmType() != TYPE_AM_XML &&
  3026. ((PTDBASE)tdbp)->GetFtype() != RECFM_NAF)
  3027. // Close and reopen the table so it will be deleted
  3028. rc= CloseTable(g);
  3029. if (!(rc= OpenTable(g))) {
  3030. if (CntDeleteRow(g, tdbp, true)) {
  3031. htrc("%s\n", g->Message);
  3032. rc= HA_ERR_INTERNAL_ERROR;
  3033. } else
  3034. nox= false;
  3035. } // endif rc
  3036. DBUG_RETURN(rc);
  3037. } // end of delete_all_rows
  3038. bool ha_connect::check_privileges(THD *thd, PTOS options, char *dbn)
  3039. {
  3040. const char *db= (dbn && *dbn) ? dbn : NULL;
  3041. TABTYPE type=GetRealType(options);
  3042. switch (type) {
  3043. case TAB_UNDEF:
  3044. // case TAB_CATLG:
  3045. case TAB_PLG:
  3046. case TAB_JCT:
  3047. case TAB_DMY:
  3048. case TAB_NIY:
  3049. my_printf_error(ER_UNKNOWN_ERROR,
  3050. "Unsupported table type %s", MYF(0), options->type);
  3051. return true;
  3052. case TAB_DOS:
  3053. case TAB_FIX:
  3054. case TAB_BIN:
  3055. case TAB_CSV:
  3056. case TAB_FMT:
  3057. case TAB_DBF:
  3058. case TAB_XML:
  3059. case TAB_INI:
  3060. case TAB_VEC:
  3061. if (options->filename && *options->filename) {
  3062. char *s, path[FN_REFLEN], dbpath[FN_REFLEN];
  3063. #if defined(WIN32)
  3064. s= "\\";
  3065. #else // !WIN32
  3066. s= "/";
  3067. #endif // !WIN32
  3068. strcpy(dbpath, mysql_real_data_home);
  3069. if (db)
  3070. strcat(strcat(dbpath, db), s);
  3071. (void) fn_format(path, options->filename, dbpath, "",
  3072. MY_RELATIVE_PATH | MY_UNPACK_FILENAME);
  3073. if (!is_secure_file_path(path)) {
  3074. my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--secure-file-priv");
  3075. return true;
  3076. } // endif path
  3077. } else
  3078. return false;
  3079. /* Fall through to check FILE_ACL */
  3080. case TAB_ODBC:
  3081. case TAB_MYSQL:
  3082. case TAB_DIR:
  3083. case TAB_MAC:
  3084. case TAB_WMI:
  3085. case TAB_OEM:
  3086. return check_access(thd, FILE_ACL, db, NULL, NULL, 0, 0);
  3087. // This is temporary until a solution is found
  3088. case TAB_TBL:
  3089. case TAB_XCL:
  3090. case TAB_PRX:
  3091. case TAB_OCCUR:
  3092. case TAB_PIVOT:
  3093. case TAB_VIR:
  3094. return false;
  3095. } // endswitch type
  3096. my_printf_error(ER_UNKNOWN_ERROR, "check_privileges failed", MYF(0));
  3097. return true;
  3098. } // end of check_privileges
  3099. // Check that two indexes are equivalent
  3100. bool ha_connect::IsSameIndex(PIXDEF xp1, PIXDEF xp2)
  3101. {
  3102. bool b= true;
  3103. PKPDEF kp1, kp2;
  3104. if (stricmp(xp1->Name, xp2->Name))
  3105. b= false;
  3106. else if (xp1->Nparts != xp2->Nparts ||
  3107. xp1->MaxSame != xp2->MaxSame ||
  3108. xp1->Unique != xp2->Unique)
  3109. b= false;
  3110. else for (kp1= xp1->ToKeyParts, kp2= xp2->ToKeyParts;
  3111. b && (kp1 || kp2);
  3112. kp1= kp1->Next, kp2= kp2->Next)
  3113. if (!kp1 || !kp2)
  3114. b= false;
  3115. else if (stricmp(kp1->Name, kp2->Name))
  3116. b= false;
  3117. else if (kp1->Klen != kp2->Klen)
  3118. b= false;
  3119. return b;
  3120. } // end of IsSameIndex
  3121. MODE ha_connect::CheckMode(PGLOBAL g, THD *thd,
  3122. MODE newmode, bool *chk, bool *cras)
  3123. {
  3124. if (trace) {
  3125. LEX_STRING *query_string= thd_query_string(thd);
  3126. htrc("%p check_mode: cmdtype=%d\n", this, thd_sql_command(thd));
  3127. htrc("Cmd=%.*s\n", (int) query_string->length, query_string->str);
  3128. } // endif trace
  3129. // Next code is temporarily replaced until sql_command is set
  3130. stop= false;
  3131. if (newmode == MODE_WRITE) {
  3132. switch (thd_sql_command(thd)) {
  3133. case SQLCOM_LOCK_TABLES:
  3134. locked= 2;
  3135. case SQLCOM_CREATE_TABLE:
  3136. case SQLCOM_INSERT:
  3137. case SQLCOM_LOAD:
  3138. case SQLCOM_INSERT_SELECT:
  3139. newmode= MODE_INSERT;
  3140. break;
  3141. // case SQLCOM_REPLACE:
  3142. // case SQLCOM_REPLACE_SELECT:
  3143. // newmode= MODE_UPDATE; // To be checked
  3144. // break;
  3145. case SQLCOM_DELETE:
  3146. case SQLCOM_DELETE_MULTI:
  3147. case SQLCOM_TRUNCATE:
  3148. newmode= MODE_DELETE;
  3149. break;
  3150. case SQLCOM_UPDATE:
  3151. case SQLCOM_UPDATE_MULTI:
  3152. newmode= MODE_UPDATE;
  3153. break;
  3154. case SQLCOM_SELECT:
  3155. case SQLCOM_OPTIMIZE:
  3156. newmode= MODE_READ;
  3157. break;
  3158. case SQLCOM_DROP_TABLE:
  3159. case SQLCOM_RENAME_TABLE:
  3160. newmode= MODE_ANY;
  3161. break;
  3162. case SQLCOM_CREATE_VIEW:
  3163. case SQLCOM_DROP_VIEW:
  3164. newmode= MODE_ANY;
  3165. break;
  3166. case SQLCOM_ALTER_TABLE:
  3167. newmode= MODE_ALTER;
  3168. break;
  3169. case SQLCOM_DROP_INDEX:
  3170. case SQLCOM_CREATE_INDEX:
  3171. // if (!IsPartitioned()) {
  3172. newmode= MODE_ANY;
  3173. break;
  3174. // } // endif partitioned
  3175. default:
  3176. htrc("Unsupported sql_command=%d\n", thd_sql_command(thd));
  3177. strcpy(g->Message, "CONNECT Unsupported command");
  3178. my_message(ER_NOT_ALLOWED_COMMAND, g->Message, MYF(0));
  3179. newmode= MODE_ERROR;
  3180. break;
  3181. } // endswitch newmode
  3182. } else if (newmode == MODE_READ) {
  3183. switch (thd_sql_command(thd)) {
  3184. case SQLCOM_CREATE_TABLE:
  3185. *chk= true;
  3186. *cras= true;
  3187. case SQLCOM_INSERT:
  3188. case SQLCOM_LOAD:
  3189. case SQLCOM_INSERT_SELECT:
  3190. // case SQLCOM_REPLACE:
  3191. // case SQLCOM_REPLACE_SELECT:
  3192. case SQLCOM_DELETE:
  3193. case SQLCOM_DELETE_MULTI:
  3194. case SQLCOM_TRUNCATE:
  3195. case SQLCOM_UPDATE:
  3196. case SQLCOM_UPDATE_MULTI:
  3197. case SQLCOM_SELECT:
  3198. case SQLCOM_OPTIMIZE:
  3199. break;
  3200. case SQLCOM_LOCK_TABLES:
  3201. locked= 1;
  3202. break;
  3203. case SQLCOM_DROP_TABLE:
  3204. case SQLCOM_RENAME_TABLE:
  3205. newmode= MODE_ANY;
  3206. break;
  3207. case SQLCOM_CREATE_VIEW:
  3208. case SQLCOM_DROP_VIEW:
  3209. newmode= MODE_ANY;
  3210. break;
  3211. case SQLCOM_ALTER_TABLE:
  3212. *chk= true;
  3213. newmode= MODE_ALTER;
  3214. break;
  3215. case SQLCOM_DROP_INDEX:
  3216. case SQLCOM_CREATE_INDEX:
  3217. // if (!IsPartitioned()) {
  3218. *chk= true;
  3219. newmode= MODE_ANY;
  3220. break;
  3221. // } // endif partitioned
  3222. default:
  3223. htrc("Unsupported sql_command=%d\n", thd_sql_command(thd));
  3224. strcpy(g->Message, "CONNECT Unsupported command");
  3225. my_message(ER_NOT_ALLOWED_COMMAND, g->Message, MYF(0));
  3226. newmode= MODE_ERROR;
  3227. break;
  3228. } // endswitch newmode
  3229. } // endif's newmode
  3230. if (trace)
  3231. htrc("New mode=%d\n", newmode);
  3232. return newmode;
  3233. } // end of check_mode
  3234. int ha_connect::start_stmt(THD *thd, thr_lock_type lock_type)
  3235. {
  3236. int rc= 0;
  3237. bool chk=false, cras= false;
  3238. MODE newmode;
  3239. PGLOBAL g= GetPlug(thd, xp);
  3240. DBUG_ENTER("ha_connect::start_stmt");
  3241. // Action will depend on lock_type
  3242. switch (lock_type) {
  3243. case TL_WRITE_ALLOW_WRITE:
  3244. case TL_WRITE_CONCURRENT_INSERT:
  3245. case TL_WRITE_DELAYED:
  3246. case TL_WRITE_DEFAULT:
  3247. case TL_WRITE_LOW_PRIORITY:
  3248. case TL_WRITE:
  3249. case TL_WRITE_ONLY:
  3250. newmode= MODE_WRITE;
  3251. break;
  3252. case TL_READ:
  3253. case TL_READ_WITH_SHARED_LOCKS:
  3254. case TL_READ_HIGH_PRIORITY:
  3255. case TL_READ_NO_INSERT:
  3256. case TL_READ_DEFAULT:
  3257. newmode= MODE_READ;
  3258. break;
  3259. case TL_UNLOCK:
  3260. default:
  3261. newmode= MODE_ANY;
  3262. break;
  3263. } // endswitch mode
  3264. xmod= CheckMode(g, thd, newmode, &chk, &cras);
  3265. DBUG_RETURN((xmod == MODE_ERROR) ? HA_ERR_INTERNAL_ERROR : 0);
  3266. } // end of start_stmt
  3267. /**
  3268. @brief
  3269. This create a lock on the table. If you are implementing a storage engine
  3270. that can handle transacations look at ha_berkely.cc to see how you will
  3271. want to go about doing this. Otherwise you should consider calling flock()
  3272. here. Hint: Read the section "locking functions for mysql" in lock.cc to understand
  3273. this.
  3274. @details
  3275. Called from lock.cc by lock_external() and unlock_external(). Also called
  3276. from sql_table.cc by copy_data_between_tables().
  3277. @note
  3278. Following what we did in the MySQL XDB handler, we use this call to actually
  3279. physically open the table. This could be reconsider when finalizing this handler
  3280. design, which means we have a better understanding of what MariaDB does.
  3281. @see
  3282. lock.cc by lock_external() and unlock_external() in lock.cc;
  3283. the section "locking functions for mysql" in lock.cc;
  3284. copy_data_between_tables() in sql_table.cc.
  3285. */
  3286. int ha_connect::external_lock(THD *thd, int lock_type)
  3287. {
  3288. int rc= 0;
  3289. bool xcheck=false, cras= false;
  3290. MODE newmode;
  3291. PTOS options= GetTableOptionStruct();
  3292. PGLOBAL g= GetPlug(thd, xp);
  3293. DBUG_ENTER("ha_connect::external_lock");
  3294. DBUG_ASSERT(thd == current_thd);
  3295. if (trace)
  3296. htrc("external_lock: this=%p thd=%p xp=%p g=%p lock_type=%d\n",
  3297. this, thd, xp, g, lock_type);
  3298. if (!g)
  3299. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  3300. // Action will depend on lock_type
  3301. switch (lock_type) {
  3302. case F_WRLCK:
  3303. newmode= MODE_WRITE;
  3304. break;
  3305. case F_RDLCK:
  3306. newmode= MODE_READ;
  3307. break;
  3308. case F_UNLCK:
  3309. default:
  3310. newmode= MODE_ANY;
  3311. break;
  3312. } // endswitch mode
  3313. if (newmode == MODE_ANY) {
  3314. int sqlcom= thd_sql_command(thd);
  3315. // This is unlocking, do it by closing the table
  3316. if (xp->CheckQueryID() && sqlcom != SQLCOM_UNLOCK_TABLES
  3317. && sqlcom != SQLCOM_LOCK_TABLES
  3318. && sqlcom != SQLCOM_DROP_TABLE) {
  3319. sprintf(g->Message, "external_lock: unexpected command %d", sqlcom);
  3320. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  3321. DBUG_RETURN(0);
  3322. } else if (g->Xchk) {
  3323. if (!tdbp) {
  3324. if (!(tdbp= GetTDB(g)))
  3325. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  3326. else if (!((PTDBASE)tdbp)->GetDef()->Indexable()) {
  3327. sprintf(g->Message, "external_lock: Table %s is not indexable", tdbp->GetName());
  3328. // DBUG_RETURN(HA_ERR_INTERNAL_ERROR); causes assert error
  3329. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  3330. DBUG_RETURN(0);
  3331. } else if (((PTDBASE)tdbp)->GetDef()->Indexable() == 1) {
  3332. bool oldsep= ((PCHK)g->Xchk)->oldsep;
  3333. bool newsep= ((PCHK)g->Xchk)->newsep;
  3334. PTDBDOS tdp= (PTDBDOS)tdbp;
  3335. PDOSDEF ddp= (PDOSDEF)tdp->GetDef();
  3336. PIXDEF xp, xp1, xp2, drp=NULL, adp= NULL;
  3337. PIXDEF oldpix= ((PCHK)g->Xchk)->oldpix;
  3338. PIXDEF newpix= ((PCHK)g->Xchk)->newpix;
  3339. PIXDEF *xlst, *xprc;
  3340. ddp->SetIndx(oldpix);
  3341. if (oldsep != newsep) {
  3342. // All indexes have to be remade
  3343. ddp->DeleteIndexFile(g, NULL);
  3344. oldpix= NULL;
  3345. ddp->SetIndx(NULL);
  3346. SetBooleanOption("Sepindex", newsep);
  3347. } else if (newsep) {
  3348. // Make the list of dropped indexes
  3349. xlst= &drp; xprc= &oldpix;
  3350. for (xp2= oldpix; xp2; xp2= xp) {
  3351. for (xp1= newpix; xp1; xp1= xp1->Next)
  3352. if (IsSameIndex(xp1, xp2))
  3353. break; // Index not to drop
  3354. xp= xp2->GetNext();
  3355. if (!xp1) {
  3356. *xlst= xp2;
  3357. *xprc= xp;
  3358. *(xlst= &xp2->Next)= NULL;
  3359. } else
  3360. xprc= &xp2->Next;
  3361. } // endfor xp2
  3362. if (drp) {
  3363. // Here we erase the index files
  3364. ddp->DeleteIndexFile(g, drp);
  3365. } // endif xp1
  3366. } else if (oldpix) {
  3367. // TODO: optimize the case of just adding new indexes
  3368. if (!newpix)
  3369. ddp->DeleteIndexFile(g, NULL);
  3370. oldpix= NULL; // To remake all indexes
  3371. ddp->SetIndx(NULL);
  3372. } // endif sepindex
  3373. // Make the list of new created indexes
  3374. xlst= &adp; xprc= &newpix;
  3375. for (xp1= newpix; xp1; xp1= xp) {
  3376. for (xp2= oldpix; xp2; xp2= xp2->Next)
  3377. if (IsSameIndex(xp1, xp2))
  3378. break; // Index already made
  3379. xp= xp1->Next;
  3380. if (!xp2) {
  3381. *xlst= xp1;
  3382. *xprc= xp;
  3383. *(xlst= &xp1->Next)= NULL;
  3384. } else
  3385. xprc= &xp1->Next;
  3386. } // endfor xp1
  3387. if (adp)
  3388. // Here we do make the new indexes
  3389. if (tdp->MakeIndex(g, adp, true) == RC_FX) {
  3390. // Make it a warning to avoid crash
  3391. push_warning(thd, Sql_condition::WARN_LEVEL_WARN,
  3392. 0, g->Message);
  3393. rc= 0;
  3394. } // endif MakeIndex
  3395. } else if (((PTDBASE)tdbp)->GetDef()->Indexable() == 3) {
  3396. if (CheckVirtualIndex(NULL)) {
  3397. // Make it a warning to avoid crash
  3398. push_warning(thd, Sql_condition::WARN_LEVEL_WARN,
  3399. 0, g->Message);
  3400. rc= 0;
  3401. } // endif Check
  3402. } // endif indexable
  3403. } // endif Tdbp
  3404. } // endelse Xchk
  3405. if (CloseTable(g)) {
  3406. // This is an error while builing index
  3407. // Make it a warning to avoid crash
  3408. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  3409. rc= 0;
  3410. } // endif Close
  3411. locked= 0;
  3412. xmod= MODE_ANY; // For info commands
  3413. DBUG_RETURN(rc);
  3414. } // endif MODE_ANY
  3415. DBUG_ASSERT(table && table->s);
  3416. if (check_privileges(thd, options, Strz(table->s->db))) {
  3417. strcpy(g->Message, "This operation requires the FILE privilege");
  3418. htrc("%s\n", g->Message);
  3419. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  3420. } // endif check_privileges
  3421. // Table mode depends on the query type
  3422. newmode= CheckMode(g, thd, newmode, &xcheck, &cras);
  3423. if (newmode == MODE_ERROR)
  3424. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  3425. // If this is the start of a new query, cleanup the previous one
  3426. if (xp->CheckCleanup()) {
  3427. tdbp= NULL;
  3428. valid_info= false;
  3429. } // endif CheckCleanup
  3430. #if 0
  3431. if (xcheck) {
  3432. // This must occur after CheckCleanup
  3433. if (!g->Xchk) {
  3434. g->Xchk= new(g) XCHK;
  3435. ((PCHK)g->Xchk)->oldsep= GetBooleanOption("Sepindex", false);
  3436. ((PCHK)g->Xchk)->oldpix= GetIndexInfo();
  3437. } // endif Xchk
  3438. } else
  3439. g->Xchk= NULL;
  3440. #endif // 0
  3441. if (cras)
  3442. g->Createas= 1; // To tell created table to ignore FLAG
  3443. if (trace) {
  3444. #if 0
  3445. htrc("xcheck=%d cras=%d\n", xcheck, cras);
  3446. if (xcheck)
  3447. htrc("oldsep=%d oldpix=%p\n",
  3448. ((PCHK)g->Xchk)->oldsep, ((PCHK)g->Xchk)->oldpix);
  3449. #endif // 0
  3450. htrc("Calling CntCheckDB db=%s cras=%d\n", GetDBName(NULL), cras);
  3451. } // endif trace
  3452. // Set or reset the good database environment
  3453. if (CntCheckDB(g, this, GetDBName(NULL))) {
  3454. htrc("%p external_lock: %s\n", this, g->Message);
  3455. rc= HA_ERR_INTERNAL_ERROR;
  3456. // This can NOT be called without open called first, but
  3457. // the table can have been closed since then
  3458. } else if (!tdbp || xp->CheckQuery(valid_query_id) || xmod != newmode) {
  3459. if (tdbp) {
  3460. // If this is called by a later query, the table may have
  3461. // been already closed and the tdbp is not valid anymore.
  3462. if (xp->last_query_id == valid_query_id)
  3463. rc= CloseTable(g);
  3464. else
  3465. tdbp= NULL;
  3466. } // endif tdbp
  3467. xmod= newmode;
  3468. // Delay open until used fields are known
  3469. } // endif tdbp
  3470. if (trace)
  3471. htrc("external_lock: rc=%d\n", rc);
  3472. DBUG_RETURN(rc);
  3473. } // end of external_lock
  3474. /**
  3475. @brief
  3476. The idea with handler::store_lock() is: The statement decides which locks
  3477. should be needed for the table. For updates/deletes/inserts we get WRITE
  3478. locks, for SELECT... we get read locks.
  3479. @details
  3480. Before adding the lock into the table lock handler (see thr_lock.c),
  3481. mysqld calls store lock with the requested locks. Store lock can now
  3482. modify a write lock to a read lock (or some other lock), ignore the
  3483. lock (if we don't want to use MySQL table locks at all), or add locks
  3484. for many tables (like we do when we are using a MERGE handler).
  3485. Berkeley DB, for example, changes all WRITE locks to TL_WRITE_ALLOW_WRITE
  3486. (which signals that we are doing WRITES, but are still allowing other
  3487. readers and writers).
  3488. When releasing locks, store_lock() is also called. In this case one
  3489. usually doesn't have to do anything.
  3490. In some exceptional cases MySQL may send a request for a TL_IGNORE;
  3491. This means that we are requesting the same lock as last time and this
  3492. should also be ignored. (This may happen when someone does a flush
  3493. table when we have opened a part of the tables, in which case mysqld
  3494. closes and reopens the tables and tries to get the same locks at last
  3495. time). In the future we will probably try to remove this.
  3496. Called from lock.cc by get_lock_data().
  3497. @note
  3498. In this method one should NEVER rely on table->in_use, it may, in fact,
  3499. refer to a different thread! (this happens if get_lock_data() is called
  3500. from mysql_lock_abort_for_thread() function)
  3501. @see
  3502. get_lock_data() in lock.cc
  3503. */
  3504. THR_LOCK_DATA **ha_connect::store_lock(THD *thd,
  3505. THR_LOCK_DATA **to,
  3506. enum thr_lock_type lock_type)
  3507. {
  3508. if (lock_type != TL_IGNORE && lock.type == TL_UNLOCK)
  3509. lock.type=lock_type;
  3510. *to++ = &lock;
  3511. return to;
  3512. }
  3513. /**
  3514. Searches for a pointer to the last occurrence of the
  3515. character c in the string src.
  3516. Returns true on failure, false on success.
  3517. */
  3518. static bool
  3519. strnrchr(LEX_CSTRING *ls, const char *src, size_t length, int c)
  3520. {
  3521. const char *srcend, *s;
  3522. for (s= srcend= src + length; s > src; s--)
  3523. {
  3524. if (s[-1] == c)
  3525. {
  3526. ls->str= s;
  3527. ls->length= srcend - s;
  3528. return false;
  3529. }
  3530. }
  3531. return true;
  3532. }
  3533. /**
  3534. Split filename into database and table name.
  3535. */
  3536. static bool
  3537. filename_to_dbname_and_tablename(const char *filename,
  3538. char *database, size_t database_size,
  3539. char *table, size_t table_size)
  3540. {
  3541. LEX_CSTRING d, t;
  3542. size_t length= strlen(filename);
  3543. /* Find filename - the rightmost directory part */
  3544. if (strnrchr(&t, filename, length, slash) || t.length + 1 > table_size)
  3545. return true;
  3546. memcpy(table, t.str, t.length);
  3547. table[t.length]= '\0';
  3548. if (!(length-= t.length))
  3549. return true;
  3550. length--; /* Skip slash */
  3551. /* Find database name - the second rightmost directory part */
  3552. if (strnrchr(&d, filename, length, slash) || d.length + 1 > database_size)
  3553. return true;
  3554. memcpy(database, d.str, d.length);
  3555. database[d.length]= '\0';
  3556. return false;
  3557. } // end of filename_to_dbname_and_tablename
  3558. /**
  3559. @brief
  3560. Used to delete or rename a table. By the time delete_table() has been
  3561. called all opened references to this table will have been closed
  3562. (and your globally shared references released) ===> too bad!!!
  3563. The variable name will just be the name of the table.
  3564. You will need to remove or rename any files you have created at
  3565. this point.
  3566. @details
  3567. If you do not implement this, the default delete_table() is called from
  3568. handler.cc and it will delete all files with the file extensions returned
  3569. by bas_ext().
  3570. Called from handler.cc by delete_table and ha_create_table(). Only used
  3571. during create if the table_flag HA_DROP_BEFORE_CREATE was specified for
  3572. the storage engine.
  3573. @see
  3574. delete_table and ha_create_table() in handler.cc
  3575. */
  3576. int ha_connect::delete_or_rename_table(const char *name, const char *to)
  3577. {
  3578. DBUG_ENTER("ha_connect::delete_or_rename_table");
  3579. char db[128], tabname[128];
  3580. int rc= 0;
  3581. bool ok= false;
  3582. THD *thd= current_thd;
  3583. int sqlcom= thd_sql_command(thd);
  3584. if (trace) {
  3585. if (to)
  3586. htrc("rename_table: this=%p thd=%p sqlcom=%d from=%s to=%s\n",
  3587. this, thd, sqlcom, name, to);
  3588. else
  3589. htrc("delete_table: this=%p thd=%p sqlcom=%d name=%s\n",
  3590. this, thd, sqlcom, name);
  3591. } // endif trace
  3592. if (to && (filename_to_dbname_and_tablename(to, db, sizeof(db),
  3593. tabname, sizeof(tabname))
  3594. || (*tabname == '#' && sqlcom == SQLCOM_CREATE_INDEX)))
  3595. DBUG_RETURN(0);
  3596. if (filename_to_dbname_and_tablename(name, db, sizeof(db),
  3597. tabname, sizeof(tabname))
  3598. || (*tabname == '#' && sqlcom == SQLCOM_CREATE_INDEX))
  3599. DBUG_RETURN(0);
  3600. // If a temporary file exists, all the tests below were passed
  3601. // successfully when making it, so they are not needed anymore
  3602. // in particular because they sometimes cause DBUG_ASSERT crash.
  3603. // Also, for partitioned tables, no test can be done because when
  3604. // this function is called, the .par file is already deleted and
  3605. // this causes the open_table_def function to fail.
  3606. // Not having any other clues (table and table_share are NULL)
  3607. // the only mean we have to test for partitioning is this:
  3608. if (*tabname != '#' && !strstr(tabname, "#P#")) {
  3609. // We have to retrieve the information about this table options.
  3610. ha_table_option_struct *pos;
  3611. char key[MAX_DBKEY_LENGTH];
  3612. uint key_length;
  3613. TABLE_SHARE *share;
  3614. // if ((p= strstr(tabname, "#P#"))) won't work, see above
  3615. // *p= 0; // Get the main the table name
  3616. key_length= tdc_create_key(key, db, tabname);
  3617. // share contains the option struct that we need
  3618. if (!(share= alloc_table_share(db, tabname, key, key_length)))
  3619. DBUG_RETURN(rc);
  3620. // Get the share info from the .frm file
  3621. if (!open_table_def(thd, share)) {
  3622. // Now we can work
  3623. if ((pos= share->option_struct)) {
  3624. if (check_privileges(thd, pos, db))
  3625. rc= HA_ERR_INTERNAL_ERROR; // ???
  3626. else
  3627. if (IsFileType(GetRealType(pos)) && !pos->filename)
  3628. ok= true;
  3629. } // endif pos
  3630. } else // Avoid infamous DBUG_ASSERT
  3631. thd->get_stmt_da()->reset_diagnostics_area();
  3632. free_table_share(share);
  3633. } else // Temporary file
  3634. ok= true;
  3635. if (ok) {
  3636. // Let the base handler do the job
  3637. if (to)
  3638. rc= handler::rename_table(name, to);
  3639. else if ((rc= handler::delete_table(name)) == ENOENT)
  3640. rc= 0; // No files is not an error for CONNECT
  3641. } // endif ok
  3642. DBUG_RETURN(rc);
  3643. } // end of delete_or_rename_table
  3644. int ha_connect::delete_table(const char *name)
  3645. {
  3646. return delete_or_rename_table(name, NULL);
  3647. } // end of delete_table
  3648. int ha_connect::rename_table(const char *from, const char *to)
  3649. {
  3650. return delete_or_rename_table(from, to);
  3651. } // end of rename_table
  3652. /**
  3653. @brief
  3654. Given a starting key and an ending key, estimate the number of rows that
  3655. will exist between the two keys.
  3656. @details
  3657. end_key may be empty, in which case determine if start_key matches any rows.
  3658. Called from opt_range.cc by check_quick_keys().
  3659. @see
  3660. check_quick_keys() in opt_range.cc
  3661. */
  3662. ha_rows ha_connect::records_in_range(uint inx, key_range *min_key,
  3663. key_range *max_key)
  3664. {
  3665. ha_rows rows;
  3666. DBUG_ENTER("ha_connect::records_in_range");
  3667. if (indexing < 0 || inx != active_index)
  3668. if (index_init(inx, false))
  3669. DBUG_RETURN(HA_POS_ERROR);
  3670. if (trace)
  3671. htrc("records_in_range: inx=%d indexing=%d\n", inx, indexing);
  3672. if (indexing > 0) {
  3673. int nval;
  3674. uint len[2];
  3675. const uchar *key[2];
  3676. bool incl[2];
  3677. key_part_map kmap[2];
  3678. key[0]= (min_key) ? min_key->key : NULL;
  3679. key[1]= (max_key) ? max_key->key : NULL;
  3680. len[0]= (min_key) ? min_key->length : 0;
  3681. len[1]= (max_key) ? max_key->length : 0;
  3682. incl[0]= (min_key) ? (min_key->flag == HA_READ_KEY_EXACT) : false;
  3683. incl[1]= (max_key) ? (max_key->flag == HA_READ_AFTER_KEY) : false;
  3684. kmap[0]= (min_key) ? min_key->keypart_map : 0;
  3685. kmap[1]= (max_key) ? max_key->keypart_map : 0;
  3686. if ((nval= CntIndexRange(xp->g, tdbp, key, len, incl, kmap)) < 0)
  3687. rows= HA_POS_ERROR;
  3688. else
  3689. rows= (ha_rows)nval;
  3690. } else if (indexing == 0)
  3691. rows= 100000000; // Don't use missing index
  3692. else
  3693. rows= HA_POS_ERROR;
  3694. DBUG_RETURN(rows);
  3695. } // end of records_in_range
  3696. /**
  3697. Convert an ISO-8859-1 column name to UTF-8
  3698. */
  3699. static char *encode(PGLOBAL g, const char *cnm)
  3700. {
  3701. char *buf= (char*)PlugSubAlloc(g, NULL, strlen(cnm) * 3);
  3702. uint dummy_errors;
  3703. uint32 len= copy_and_convert(buf, strlen(cnm) * 3,
  3704. &my_charset_utf8_general_ci,
  3705. cnm, strlen(cnm),
  3706. &my_charset_latin1,
  3707. &dummy_errors);
  3708. buf[len]= '\0';
  3709. return buf;
  3710. } // end of encode
  3711. /**
  3712. Store field definition for create.
  3713. @return
  3714. Return 0 if ok
  3715. */
  3716. static bool add_field(String *sql, const char *field_name, int typ,
  3717. int len, int dec, char *key, uint tm, const char *rem,
  3718. char *dft, char *xtra, int flag, bool dbf, char v)
  3719. {
  3720. char var = (len > 255) ? 'V' : v;
  3721. bool error= false;
  3722. const char *type= PLGtoMYSQLtype(typ, dbf, var);
  3723. error|= sql->append('`');
  3724. error|= sql->append(field_name);
  3725. error|= sql->append("` ");
  3726. error|= sql->append(type);
  3727. if (len && typ != TYPE_DATE) {
  3728. error|= sql->append('(');
  3729. error|= sql->append_ulonglong(len);
  3730. if (!strcmp(type, "DOUBLE")) {
  3731. error|= sql->append(',');
  3732. // dec must be < len and < 31
  3733. error|= sql->append_ulonglong(MY_MIN(dec, (MY_MIN(len, 31) - 1)));
  3734. } else if (dec > 0 && !strcmp(type, "DECIMAL")) {
  3735. error|= sql->append(',');
  3736. // dec must be < len
  3737. error|= sql->append_ulonglong(MY_MIN(dec, len - 1));
  3738. } // endif dec
  3739. error|= sql->append(')');
  3740. } // endif len
  3741. if (v == 'U')
  3742. error|= sql->append(" UNSIGNED");
  3743. else if (v == 'Z')
  3744. error|= sql->append(" ZEROFILL");
  3745. if (key && *key) {
  3746. error|= sql->append(" ");
  3747. error|= sql->append(key);
  3748. } // endif key
  3749. if (tm)
  3750. error|= sql->append(STRING_WITH_LEN(" NOT NULL"), system_charset_info);
  3751. if (dft && *dft) {
  3752. error|= sql->append(" DEFAULT ");
  3753. if (!IsTypeNum(typ)) {
  3754. error|= sql->append("'");
  3755. error|= sql->append_for_single_quote(dft, strlen(dft));
  3756. error|= sql->append("'");
  3757. } else
  3758. error|= sql->append(dft);
  3759. } // endif dft
  3760. if (xtra && *xtra) {
  3761. error|= sql->append(" ");
  3762. error|= sql->append(xtra);
  3763. } // endif rem
  3764. if (rem && *rem) {
  3765. error|= sql->append(" COMMENT '");
  3766. error|= sql->append_for_single_quote(rem, strlen(rem));
  3767. error|= sql->append("'");
  3768. } // endif rem
  3769. if (flag) {
  3770. error|= sql->append(" FLAG=");
  3771. error|= sql->append_ulonglong(flag);
  3772. } // endif flag
  3773. error|= sql->append(',');
  3774. return error;
  3775. } // end of add_field
  3776. /**
  3777. Initialise the table share with the new columns.
  3778. @return
  3779. Return 0 if ok
  3780. */
  3781. static int init_table_share(THD* thd,
  3782. TABLE_SHARE *table_s,
  3783. HA_CREATE_INFO *create_info,
  3784. String *sql)
  3785. {
  3786. bool oom= false;
  3787. PTOS topt= table_s->option_struct;
  3788. sql->length(sql->length()-1); // remove the trailing comma
  3789. sql->append(')');
  3790. for (ha_create_table_option *opt= connect_table_option_list;
  3791. opt->name; opt++) {
  3792. ulonglong vull;
  3793. const char *vstr;
  3794. switch (opt->type) {
  3795. case HA_OPTION_TYPE_ULL:
  3796. vull= *(ulonglong*)(((char*)topt) + opt->offset);
  3797. if (vull != opt->def_value) {
  3798. oom|= sql->append(' ');
  3799. oom|= sql->append(opt->name);
  3800. oom|= sql->append('=');
  3801. oom|= sql->append_ulonglong(vull);
  3802. } // endif vull
  3803. break;
  3804. case HA_OPTION_TYPE_STRING:
  3805. vstr= *(char**)(((char*)topt) + opt->offset);
  3806. if (vstr) {
  3807. oom|= sql->append(' ');
  3808. oom|= sql->append(opt->name);
  3809. oom|= sql->append("='");
  3810. oom|= sql->append_for_single_quote(vstr, strlen(vstr));
  3811. oom|= sql->append('\'');
  3812. } // endif vstr
  3813. break;
  3814. case HA_OPTION_TYPE_BOOL:
  3815. vull= *(bool*)(((char*)topt) + opt->offset);
  3816. if (vull != opt->def_value) {
  3817. oom|= sql->append(' ');
  3818. oom|= sql->append(opt->name);
  3819. oom|= sql->append('=');
  3820. oom|= sql->append(vull ? "ON" : "OFF");
  3821. } // endif vull
  3822. break;
  3823. default: // no enums here, good :)
  3824. break;
  3825. } // endswitch type
  3826. if (oom)
  3827. return HA_ERR_OUT_OF_MEM;
  3828. } // endfor opt
  3829. if (create_info->connect_string.length) {
  3830. oom|= sql->append(' ');
  3831. oom|= sql->append("CONNECTION='");
  3832. oom|= sql->append_for_single_quote(create_info->connect_string.str,
  3833. create_info->connect_string.length);
  3834. oom|= sql->append('\'');
  3835. if (oom)
  3836. return HA_ERR_OUT_OF_MEM;
  3837. } // endif string
  3838. if (create_info->default_table_charset) {
  3839. oom|= sql->append(' ');
  3840. oom|= sql->append("CHARSET=");
  3841. oom|= sql->append(create_info->default_table_charset->csname);
  3842. if (oom)
  3843. return HA_ERR_OUT_OF_MEM;
  3844. } // endif charset
  3845. if (trace)
  3846. htrc("s_init: %.*s\n", sql->length(), sql->ptr());
  3847. return table_s->init_from_sql_statement_string(thd, true,
  3848. sql->ptr(), sql->length());
  3849. } // end of init_table_share
  3850. static inline char *Strz(PGLOBAL g, LEX_STRING &ls)
  3851. {
  3852. if (unlikely(ls.str && ls.str[ls.length]))
  3853. return strz(g, ls);
  3854. else
  3855. return ls.str;
  3856. } // end of Strz
  3857. // Used to check whether a MYSQL table is created on itself
  3858. bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, const char *host,
  3859. const char *db, char *tab, const char *src, int port)
  3860. {
  3861. if (src)
  3862. return false;
  3863. else if (host && stricmp(host, "localhost") && strcmp(host, "127.0.0.1"))
  3864. return false;
  3865. else if (db && stricmp(db, Strz(g, s->db)))
  3866. return false;
  3867. else if (tab && stricmp(tab, Strz(g, s->table_name)))
  3868. return false;
  3869. else if (port && port != (signed)GetDefaultPort())
  3870. return false;
  3871. strcpy(g->Message, "This MySQL table is defined on itself");
  3872. return true;
  3873. } // end of CheckSelf
  3874. /**
  3875. @brief
  3876. connect_assisted_discovery() is called when creating a table with no columns.
  3877. @details
  3878. When assisted discovery is used the .frm file have not already been
  3879. created. You can overwrite some definitions at this point but the
  3880. main purpose of it is to define the columns for some table types.
  3881. @note
  3882. this function is no more called in case of CREATE .. SELECT
  3883. */
  3884. static int connect_assisted_discovery(handlerton *hton, THD* thd,
  3885. TABLE_SHARE *table_s,
  3886. HA_CREATE_INFO *create_info)
  3887. {
  3888. char v=0, spc= ',', qch= 0;
  3889. const char *fncn= "?";
  3890. const char *user, *fn, *db, *host, *pwd, *sep, *tbl, *src;
  3891. const char *col, *ocl, *rnk, *pic, *fcl, *skc;
  3892. char *tab, *dsn, *shm, *dpath;
  3893. #if defined(WIN32)
  3894. char *nsp= NULL, *cls= NULL;
  3895. #endif // WIN32
  3896. int port= 0, hdr= 0, mxr __attribute__((unused))= 0, mxe= 0, rc= 0;
  3897. int cop __attribute__((unused)) = 0;
  3898. uint tm, fnc= FNC_NO, supfnc= (FNC_NO | FNC_COL);
  3899. bool bif, ok= false, dbf= false;
  3900. TABTYPE ttp= TAB_UNDEF;
  3901. PQRYRES qrp= NULL;
  3902. PCOLRES crp;
  3903. PCONNECT xp= NULL;
  3904. PGLOBAL g= GetPlug(thd, xp);
  3905. PDBUSER dup= PlgGetUser(g);
  3906. PCATLG cat= (dup) ? dup->Catalog : NULL;
  3907. PTOS topt= table_s->option_struct;
  3908. #if defined(NEW_WAY)
  3909. //CHARSET_INFO *cs;
  3910. Alter_info alter_info;
  3911. #else // !NEW_WAY
  3912. char buf[1024];
  3913. String sql(buf, sizeof(buf), system_charset_info);
  3914. sql.copy(STRING_WITH_LEN("CREATE TABLE whatever ("), system_charset_info);
  3915. #endif // !NEW_WAY
  3916. if (!g)
  3917. return HA_ERR_INTERNAL_ERROR;
  3918. user= host= pwd= tbl= src= col= ocl= pic= fcl= skc= rnk= dsn= NULL;
  3919. // Get the useful create options
  3920. ttp= GetTypeID(topt->type);
  3921. fn= topt->filename;
  3922. tab= (char*)topt->tabname;
  3923. src= topt->srcdef;
  3924. db= topt->dbname;
  3925. fncn= topt->catfunc;
  3926. fnc= GetFuncID(fncn);
  3927. sep= topt->separator;
  3928. spc= (!sep || !strcmp(sep, "\\t")) ? '\t' : *sep;
  3929. qch= topt->qchar ? *topt->qchar : (signed)topt->quoted >= 0 ? '"' : 0;
  3930. hdr= (int)topt->header;
  3931. tbl= topt->tablist;
  3932. col= topt->colist;
  3933. if (topt->oplist) {
  3934. host= GetListOption(g, "host", topt->oplist, "localhost");
  3935. user= GetListOption(g, "user", topt->oplist, "root");
  3936. // Default value db can come from the DBNAME=xxx option.
  3937. db= GetListOption(g, "database", topt->oplist, db);
  3938. col= GetListOption(g, "colist", topt->oplist, col);
  3939. ocl= GetListOption(g, "occurcol", topt->oplist, NULL);
  3940. pic= GetListOption(g, "pivotcol", topt->oplist, NULL);
  3941. fcl= GetListOption(g, "fnccol", topt->oplist, NULL);
  3942. skc= GetListOption(g, "skipcol", topt->oplist, NULL);
  3943. rnk= GetListOption(g, "rankcol", topt->oplist, NULL);
  3944. pwd= GetListOption(g, "password", topt->oplist);
  3945. #if defined(WIN32)
  3946. nsp= GetListOption(g, "namespace", topt->oplist);
  3947. cls= GetListOption(g, "class", topt->oplist);
  3948. #endif // WIN32
  3949. port= atoi(GetListOption(g, "port", topt->oplist, "0"));
  3950. #if defined(ODBC_SUPPORT)
  3951. mxr= atoi(GetListOption(g,"maxres", topt->oplist, "0"));
  3952. #endif
  3953. mxe= atoi(GetListOption(g,"maxerr", topt->oplist, "0"));
  3954. #if defined(PROMPT_OK)
  3955. cop= atoi(GetListOption(g, "checkdsn", topt->oplist, "0"));
  3956. #endif // PROMPT_OK
  3957. } else {
  3958. host= "localhost";
  3959. user= "root";
  3960. } // endif option_list
  3961. if (!(shm= (char*)db))
  3962. db= Strz(g, table_s->db); // Default value
  3963. // Check table type
  3964. if (ttp == TAB_UNDEF) {
  3965. topt->type= (src) ? "MYSQL" : (tab) ? "PROXY" : "DOS";
  3966. ttp= GetTypeID(topt->type);
  3967. sprintf(g->Message, "No table_type. Was set to %s", topt->type);
  3968. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  3969. } else if (ttp == TAB_NIY) {
  3970. sprintf(g->Message, "Unsupported table type %s", topt->type);
  3971. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  3972. return HA_ERR_INTERNAL_ERROR;
  3973. } // endif ttp
  3974. // Save stack and allocation environment and prepare error return
  3975. if (g->jump_level == MAX_JUMP) {
  3976. strcpy(g->Message, MSG(TOO_MANY_JUMPS));
  3977. return HA_ERR_INTERNAL_ERROR;
  3978. } // endif jump_level
  3979. if ((rc= setjmp(g->jumper[++g->jump_level])) != 0) {
  3980. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  3981. goto err;
  3982. } // endif rc
  3983. if (!tab) {
  3984. if (ttp == TAB_TBL) {
  3985. // Make tab the first table of the list
  3986. char *p;
  3987. if (!tbl) {
  3988. strcpy(g->Message, "Missing table list");
  3989. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  3990. goto err;
  3991. } // endif tbl
  3992. tab= (char*)PlugSubAlloc(g, NULL, strlen(tbl) + 1);
  3993. strcpy(tab, tbl);
  3994. if ((p= strchr(tab, ',')))
  3995. *p= 0;
  3996. if ((p=strchr(tab, '.'))) {
  3997. *p= 0;
  3998. db= tab;
  3999. tab= p + 1;
  4000. } // endif p
  4001. } else if (ttp != TAB_ODBC || !(fnc & (FNC_TABLE | FNC_COL)))
  4002. tab= Strz(g, table_s->table_name); // Default value
  4003. #if defined(NEW_WAY)
  4004. // add_option(thd, create_info, "tabname", tab);
  4005. #endif // NEW_WAY
  4006. } // endif tab
  4007. switch (ttp) {
  4008. #if defined(ODBC_SUPPORT)
  4009. case TAB_ODBC:
  4010. dsn= Strz(g, create_info->connect_string);
  4011. if (fnc & (FNC_DSN | FNC_DRIVER)) {
  4012. ok= true;
  4013. #if defined(PROMPT_OK)
  4014. } else if (!stricmp(thd->main_security_ctx.host, "localhost")
  4015. && cop == 1) {
  4016. if ((dsn = ODBCCheckConnection(g, dsn, cop)) != NULL) {
  4017. thd->make_lex_string(&create_info->connect_string, dsn, strlen(dsn));
  4018. ok= true;
  4019. } // endif dsn
  4020. #endif // PROMPT_OK
  4021. } else if (!dsn)
  4022. sprintf(g->Message, "Missing %s connection string", topt->type);
  4023. else
  4024. ok= true;
  4025. supfnc |= (FNC_TABLE | FNC_DSN | FNC_DRIVER);
  4026. break;
  4027. #endif // ODBC_SUPPORT
  4028. case TAB_DBF:
  4029. dbf= true;
  4030. // Passthru
  4031. case TAB_CSV:
  4032. if (!fn && fnc != FNC_NO)
  4033. sprintf(g->Message, "Missing %s file name", topt->type);
  4034. else
  4035. ok= true;
  4036. break;
  4037. #if defined(MYSQL_SUPPORT)
  4038. case TAB_MYSQL:
  4039. ok= true;
  4040. if (create_info->connect_string.str) {
  4041. int len= create_info->connect_string.length;
  4042. PMYDEF mydef= new(g) MYSQLDEF();
  4043. dsn= (char*)PlugSubAlloc(g, NULL, len + 1);
  4044. strncpy(dsn, create_info->connect_string.str, len);
  4045. dsn[len]= 0;
  4046. mydef->SetName(create_info->alias);
  4047. if (!mydef->ParseURL(g, dsn, false)) {
  4048. if (mydef->GetHostname())
  4049. host= mydef->GetHostname();
  4050. if (mydef->GetUsername())
  4051. user= mydef->GetUsername();
  4052. if (mydef->GetPassword())
  4053. pwd= mydef->GetPassword();
  4054. if (mydef->GetDatabase())
  4055. db= mydef->GetDatabase();
  4056. if (mydef->GetTabname())
  4057. tab= mydef->GetTabname();
  4058. if (mydef->GetPortnumber())
  4059. port= mydef->GetPortnumber();
  4060. } else
  4061. ok= false;
  4062. } else if (!user)
  4063. user= "root";
  4064. if (ok && CheckSelf(g, table_s, host, db, tab, src, port))
  4065. ok= false;
  4066. break;
  4067. #endif // MYSQL_SUPPORT
  4068. #if defined(WIN32)
  4069. case TAB_WMI:
  4070. ok= true;
  4071. break;
  4072. #endif // WIN32
  4073. case TAB_PIVOT:
  4074. supfnc= FNC_NO;
  4075. case TAB_PRX:
  4076. case TAB_TBL:
  4077. case TAB_XCL:
  4078. case TAB_OCCUR:
  4079. if (!src && !stricmp(tab, create_info->alias) &&
  4080. (!db || !stricmp(db, Strz(g, table_s->db))))
  4081. sprintf(g->Message, "A %s table cannot refer to itself", topt->type);
  4082. else
  4083. ok= true;
  4084. break;
  4085. case TAB_OEM:
  4086. if (topt->module && topt->subtype)
  4087. ok= true;
  4088. else
  4089. strcpy(g->Message, "Missing OEM module or subtype");
  4090. break;
  4091. case TAB_VIR:
  4092. ok= true;
  4093. break;
  4094. default:
  4095. sprintf(g->Message, "Cannot get column info for table type %s", topt->type);
  4096. break;
  4097. } // endif ttp
  4098. // Check for supported catalog function
  4099. if (ok && !(supfnc & fnc)) {
  4100. sprintf(g->Message, "Unsupported catalog function %s for table type %s",
  4101. fncn, topt->type);
  4102. ok= false;
  4103. } // endif supfnc
  4104. if (src && fnc != FNC_NO) {
  4105. strcpy(g->Message, "Cannot make catalog table from srcdef");
  4106. ok= false;
  4107. } // endif src
  4108. if (ok) {
  4109. char *cnm, *rem, *dft, *xtra, *key;
  4110. int i, len, prec, dec, typ, flg;
  4111. // if (cat)
  4112. // cat->SetDataPath(g, Strz(g, table_s->db));
  4113. // else
  4114. // return HA_ERR_INTERNAL_ERROR; // Should never happen
  4115. dpath= SetPath(g, Strz(g, table_s->db));
  4116. if (src && ttp != TAB_PIVOT && ttp != TAB_ODBC) {
  4117. qrp= SrcColumns(g, host, db, user, pwd, src, port);
  4118. if (qrp && ttp == TAB_OCCUR)
  4119. if (OcrSrcCols(g, qrp, col, ocl, rnk)) {
  4120. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4121. goto err;
  4122. } // endif OcrSrcCols
  4123. } else switch (ttp) {
  4124. case TAB_DBF:
  4125. qrp= DBFColumns(g, dpath, fn, fnc == FNC_COL);
  4126. break;
  4127. #if defined(ODBC_SUPPORT)
  4128. case TAB_ODBC:
  4129. switch (fnc) {
  4130. case FNC_NO:
  4131. case FNC_COL:
  4132. if (src) {
  4133. qrp= ODBCSrcCols(g, dsn, (char*)src);
  4134. src= NULL; // for next tests
  4135. } else
  4136. qrp= ODBCColumns(g, dsn, shm, tab, NULL, mxr, fnc == FNC_COL);
  4137. break;
  4138. case FNC_TABLE:
  4139. qrp= ODBCTables(g, dsn, shm, tab, mxr, true);
  4140. break;
  4141. case FNC_DSN:
  4142. qrp= ODBCDataSources(g, mxr, true);
  4143. break;
  4144. case FNC_DRIVER:
  4145. qrp= ODBCDrivers(g, mxr, true);
  4146. break;
  4147. default:
  4148. sprintf(g->Message, "invalid catfunc %s", fncn);
  4149. break;
  4150. } // endswitch info
  4151. break;
  4152. #endif // ODBC_SUPPORT
  4153. #if defined(MYSQL_SUPPORT)
  4154. case TAB_MYSQL:
  4155. qrp= MyColumns(g, thd, host, db, user, pwd, tab,
  4156. NULL, port, fnc == FNC_COL);
  4157. break;
  4158. #endif // MYSQL_SUPPORT
  4159. case TAB_CSV:
  4160. qrp= CSVColumns(g, dpath, fn, spc, qch, hdr, mxe, fnc == FNC_COL);
  4161. break;
  4162. #if defined(WIN32)
  4163. case TAB_WMI:
  4164. qrp= WMIColumns(g, nsp, cls, fnc == FNC_COL);
  4165. break;
  4166. #endif // WIN32
  4167. case TAB_PRX:
  4168. case TAB_TBL:
  4169. case TAB_XCL:
  4170. case TAB_OCCUR:
  4171. bif= fnc == FNC_COL;
  4172. qrp= TabColumns(g, thd, db, tab, bif);
  4173. if (!qrp && bif && fnc != FNC_COL) // tab is a view
  4174. qrp= MyColumns(g, thd, host, db, user, pwd, tab, NULL, port, false);
  4175. if (qrp && ttp == TAB_OCCUR && fnc != FNC_COL)
  4176. if (OcrColumns(g, qrp, col, ocl, rnk)) {
  4177. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4178. goto err;
  4179. } // endif OcrColumns
  4180. break;
  4181. case TAB_PIVOT:
  4182. qrp= PivotColumns(g, tab, src, pic, fcl, skc, host, db, user, pwd, port);
  4183. break;
  4184. case TAB_VIR:
  4185. qrp= VirColumns(g, tab, (char*)db, fnc == FNC_COL);
  4186. break;
  4187. case TAB_OEM:
  4188. qrp= OEMColumns(g, topt, tab, (char*)db, fnc == FNC_COL);
  4189. break;
  4190. default:
  4191. strcpy(g->Message, "System error during assisted discovery");
  4192. break;
  4193. } // endswitch ttp
  4194. if (!qrp) {
  4195. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4196. goto err;
  4197. } // endif !qrp
  4198. if (fnc != FNC_NO || src || ttp == TAB_PIVOT) {
  4199. // Catalog like table
  4200. for (crp= qrp->Colresp; !rc && crp; crp= crp->Next) {
  4201. cnm= encode(g, crp->Name);
  4202. typ= crp->Type;
  4203. len= crp->Length;
  4204. dec= crp->Prec;
  4205. flg= crp->Flag;
  4206. v= crp->Var;
  4207. if (!len && typ == TYPE_STRING)
  4208. len= 256; // STRBLK's have 0 length
  4209. // Now add the field
  4210. #if defined(NEW_WAY)
  4211. rc= add_fields(g, thd, &alter_info, cnm, typ, len, dec,
  4212. NOT_NULL_FLAG, "", flg, dbf, v);
  4213. #else // !NEW_WAY
  4214. if (add_field(&sql, cnm, typ, len, dec, NULL, NOT_NULL_FLAG,
  4215. NULL, NULL, NULL, flg, dbf, v))
  4216. rc= HA_ERR_OUT_OF_MEM;
  4217. #endif // !NEW_WAY
  4218. } // endfor crp
  4219. } else {
  4220. // Not a catalog table
  4221. if (!qrp->Nblin) {
  4222. if (tab)
  4223. sprintf(g->Message, "Cannot get columns from %s", tab);
  4224. else
  4225. strcpy(g->Message, "Fail to retrieve columns");
  4226. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4227. goto err;
  4228. } // endif !nblin
  4229. for (i= 0; !rc && i < qrp->Nblin; i++) {
  4230. typ= len= prec= dec= 0;
  4231. tm= NOT_NULL_FLAG;
  4232. cnm= (char*)"noname";
  4233. dft= xtra= key= NULL;
  4234. #if defined(NEW_WAY)
  4235. rem= "";
  4236. // cs= NULL;
  4237. #else // !NEW_WAY
  4238. rem= NULL;
  4239. #endif // !NEW_WAY
  4240. for (crp= qrp->Colresp; crp; crp= crp->Next)
  4241. switch (crp->Fld) {
  4242. case FLD_NAME:
  4243. cnm= encode(g, crp->Kdata->GetCharValue(i));
  4244. break;
  4245. case FLD_TYPE:
  4246. typ= crp->Kdata->GetIntValue(i);
  4247. v = (crp->Nulls) ? crp->Nulls[i] : 0;
  4248. break;
  4249. case FLD_PREC:
  4250. // PREC must be always before LENGTH
  4251. len= prec= crp->Kdata->GetIntValue(i);
  4252. break;
  4253. case FLD_LENGTH:
  4254. len= crp->Kdata->GetIntValue(i);
  4255. break;
  4256. case FLD_SCALE:
  4257. dec= crp->Kdata->GetIntValue(i);
  4258. break;
  4259. case FLD_NULL:
  4260. if (crp->Kdata->GetIntValue(i))
  4261. tm= 0; // Nullable
  4262. break;
  4263. case FLD_REM:
  4264. rem= crp->Kdata->GetCharValue(i);
  4265. break;
  4266. // case FLD_CHARSET:
  4267. // No good because remote table is already translated
  4268. // if (*(csn= crp->Kdata->GetCharValue(i)))
  4269. // cs= get_charset_by_name(csn, 0);
  4270. // break;
  4271. case FLD_DEFAULT:
  4272. dft= crp->Kdata->GetCharValue(i);
  4273. break;
  4274. case FLD_EXTRA:
  4275. xtra= crp->Kdata->GetCharValue(i);
  4276. // Auto_increment is not supported yet
  4277. if (!stricmp(xtra, "AUTO_INCREMENT"))
  4278. xtra= NULL;
  4279. break;
  4280. case FLD_KEY:
  4281. if (ttp == TAB_VIR)
  4282. key= crp->Kdata->GetCharValue(i);
  4283. break;
  4284. default:
  4285. break; // Ignore
  4286. } // endswitch Fld
  4287. #if defined(ODBC_SUPPORT)
  4288. if (ttp == TAB_ODBC) {
  4289. int plgtyp;
  4290. // typ must be PLG type, not SQL type
  4291. if (!(plgtyp= TranslateSQLType(typ, dec, prec, v))) {
  4292. sprintf(g->Message, "Unsupported SQL type %d", typ);
  4293. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4294. goto err;
  4295. } else
  4296. typ= plgtyp;
  4297. switch (typ) {
  4298. case TYPE_DOUBLE:
  4299. // Some data sources do not count dec in length (prec)
  4300. prec += (dec + 2); // To be safe
  4301. case TYPE_DECIM:
  4302. break;
  4303. default:
  4304. dec= 0;
  4305. } // endswitch typ
  4306. } // endif ttp
  4307. #endif // ODBC_SUPPORT
  4308. // Make the arguments as required by add_fields
  4309. if (typ == TYPE_DATE)
  4310. prec= 0;
  4311. else if (typ == TYPE_DOUBLE)
  4312. prec= len;
  4313. // Now add the field
  4314. #if defined(NEW_WAY)
  4315. rc= add_fields(g, thd, &alter_info, cnm, typ, prec, dec,
  4316. tm, rem, 0, dbf, v);
  4317. #else // !NEW_WAY
  4318. if (add_field(&sql, cnm, typ, prec, dec, key, tm, rem, dft, xtra,
  4319. 0, dbf, v))
  4320. rc= HA_ERR_OUT_OF_MEM;
  4321. #endif // !NEW_WAY
  4322. } // endfor i
  4323. } // endif fnc
  4324. #if defined(NEW_WAY)
  4325. rc= init_table_share(thd, table_s, create_info, &alter_info);
  4326. #else // !NEW_WAY
  4327. if (!rc)
  4328. rc= init_table_share(thd, table_s, create_info, &sql);
  4329. // rc= init_table_share(thd, table_s, create_info, dsn, &sql);
  4330. #endif // !NEW_WAY
  4331. g->jump_level--;
  4332. return rc;
  4333. } // endif ok
  4334. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4335. err:
  4336. g->jump_level--;
  4337. return HA_ERR_INTERNAL_ERROR;
  4338. } // end of connect_assisted_discovery
  4339. /**
  4340. Get the database name from a qualified table name.
  4341. */
  4342. char *ha_connect::GetDBfromName(const char *name)
  4343. {
  4344. char *db, dbname[128], tbname[128];
  4345. if (filename_to_dbname_and_tablename(name, dbname, sizeof(dbname),
  4346. tbname, sizeof(tbname)))
  4347. *dbname= 0;
  4348. if (*dbname) {
  4349. assert(xp && xp->g);
  4350. db= (char*)PlugSubAlloc(xp->g, NULL, strlen(dbname + 1));
  4351. strcpy(db, dbname);
  4352. } else
  4353. db= NULL;
  4354. return db;
  4355. } // end of GetDBfromName
  4356. /**
  4357. @brief
  4358. create() is called to create a database. The variable name will have the name
  4359. of the table.
  4360. @details
  4361. When create() is called you do not need to worry about
  4362. opening the table. Also, the .frm file will have already been
  4363. created so adjusting create_info is not necessary. You can overwrite
  4364. the .frm file at this point if you wish to change the table
  4365. definition, but there are no methods currently provided for doing
  4366. so.
  4367. Called from handle.cc by ha_create_table().
  4368. @note
  4369. Currently we do some checking on the create definitions and stop
  4370. creating if an error is found. We wish we could change the table
  4371. definition such as providing a default table type. However, as said
  4372. above, there are no method to do so.
  4373. @see
  4374. ha_create_table() in handle.cc
  4375. */
  4376. int ha_connect::create(const char *name, TABLE *table_arg,
  4377. HA_CREATE_INFO *create_info)
  4378. {
  4379. int rc= RC_OK;
  4380. bool dbf, inward;
  4381. Field* *field;
  4382. Field *fp;
  4383. TABTYPE type;
  4384. TABLE *st= table; // Probably unuseful
  4385. THD *thd= ha_thd();
  4386. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  4387. partition_info *part_info= table_arg->part_info;
  4388. #endif // WITH_PARTITION_STORAGE_ENGINE
  4389. xp= GetUser(thd, xp);
  4390. PGLOBAL g= xp->g;
  4391. DBUG_ENTER("ha_connect::create");
  4392. int sqlcom= thd_sql_command(table_arg->in_use);
  4393. PTOS options= GetTableOptionStruct(table_arg->s);
  4394. table= table_arg; // Used by called functions
  4395. if (trace)
  4396. htrc("create: this=%p thd=%p xp=%p g=%p sqlcom=%d name=%s\n",
  4397. this, thd, xp, g, sqlcom, GetTableName());
  4398. // CONNECT engine specific table options:
  4399. DBUG_ASSERT(options);
  4400. type= GetTypeID(options->type);
  4401. // Check table type
  4402. if (type == TAB_UNDEF) {
  4403. options->type= (options->srcdef) ? "MYSQL" :
  4404. (options->tabname) ? "PROXY" : "DOS";
  4405. type= GetTypeID(options->type);
  4406. sprintf(g->Message, "No table_type. Will be set to %s", options->type);
  4407. if (sqlcom == SQLCOM_CREATE_TABLE)
  4408. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  4409. } else if (type == TAB_NIY) {
  4410. sprintf(g->Message, "Unsupported table type %s", options->type);
  4411. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4412. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4413. } // endif ttp
  4414. if (check_privileges(thd, options, GetDBfromName(name)))
  4415. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4416. inward= IsFileType(type) && !options->filename;
  4417. if (options->data_charset) {
  4418. const CHARSET_INFO *data_charset;
  4419. if (!(data_charset= get_charset_by_csname(options->data_charset,
  4420. MY_CS_PRIMARY, MYF(0)))) {
  4421. my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), options->data_charset);
  4422. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4423. } // endif charset
  4424. if (type == TAB_XML && data_charset != &my_charset_utf8_general_ci) {
  4425. my_printf_error(ER_UNKNOWN_ERROR,
  4426. "DATA_CHARSET='%s' is not supported for TABLE_TYPE=XML",
  4427. MYF(0), options->data_charset);
  4428. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4429. } // endif utf8
  4430. } // endif charset
  4431. if (!g) {
  4432. rc= HA_ERR_INTERNAL_ERROR;
  4433. DBUG_RETURN(rc);
  4434. } else
  4435. dbf= (GetTypeID(options->type) == TAB_DBF && !options->catfunc);
  4436. // Can be null in ALTER TABLE
  4437. if (create_info->alias)
  4438. // Check whether a table is defined on itself
  4439. switch (type) {
  4440. case TAB_PRX:
  4441. case TAB_XCL:
  4442. case TAB_PIVOT:
  4443. case TAB_OCCUR:
  4444. if (options->srcdef) {
  4445. strcpy(g->Message, "Cannot check looping reference");
  4446. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  4447. } else if (options->tabname) {
  4448. if (!stricmp(options->tabname, create_info->alias) &&
  4449. (!options->dbname ||
  4450. !stricmp(options->dbname, Strz(table_arg->s->db)))) {
  4451. sprintf(g->Message, "A %s table cannot refer to itself",
  4452. options->type);
  4453. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4454. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4455. } // endif tab
  4456. } else {
  4457. strcpy(g->Message, "Missing object table name or definition");
  4458. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4459. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4460. } // endif tabname
  4461. case TAB_MYSQL:
  4462. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  4463. if (!part_info)
  4464. #endif // WITH_PARTITION_STORAGE_ENGINE
  4465. {const char *src= options->srcdef;
  4466. char *host, *db, *tab= (char*)options->tabname;
  4467. int port;
  4468. host= GetListOption(g, "host", options->oplist, NULL);
  4469. db= GetStringOption("database", NULL);
  4470. port= atoi(GetListOption(g, "port", options->oplist, "0"));
  4471. if (create_info->connect_string.str) {
  4472. char *dsn;
  4473. int len= create_info->connect_string.length;
  4474. PMYDEF mydef= new(g) MYSQLDEF();
  4475. dsn= (char*)PlugSubAlloc(g, NULL, len + 1);
  4476. strncpy(dsn, create_info->connect_string.str, len);
  4477. dsn[len]= 0;
  4478. mydef->SetName(create_info->alias);
  4479. if (!mydef->ParseURL(g, dsn, false)) {
  4480. if (mydef->GetHostname())
  4481. host= mydef->GetHostname();
  4482. if (mydef->GetDatabase())
  4483. db= mydef->GetDatabase();
  4484. if (mydef->GetTabname())
  4485. tab= mydef->GetTabname();
  4486. if (mydef->GetPortnumber())
  4487. port= mydef->GetPortnumber();
  4488. } else {
  4489. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4490. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4491. } // endif ParseURL
  4492. } // endif connect_string
  4493. if (CheckSelf(g, table_arg->s, host, db, tab, src, port)) {
  4494. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4495. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4496. } // endif CheckSelf
  4497. }break;
  4498. default: /* do nothing */;
  4499. break;
  4500. } // endswitch ttp
  4501. if (type == TAB_XML) {
  4502. bool dom; // True: MS-DOM, False libxml2
  4503. char *xsup= GetListOption(g, "Xmlsup", options->oplist, "*");
  4504. // Note that if no support is specified, the default is MS-DOM
  4505. // on Windows and libxml2 otherwise
  4506. switch (*xsup) {
  4507. case '*':
  4508. #if defined(WIN32)
  4509. dom= true;
  4510. #else // !WIN32
  4511. dom= false;
  4512. #endif // !WIN32
  4513. break;
  4514. case 'M':
  4515. case 'D':
  4516. dom= true;
  4517. break;
  4518. default:
  4519. dom= false;
  4520. break;
  4521. } // endswitch xsup
  4522. #if !defined(DOMDOC_SUPPORT)
  4523. if (dom) {
  4524. strcpy(g->Message, "MS-DOM not supported by this version");
  4525. xsup= NULL;
  4526. } // endif DomDoc
  4527. #endif // !DOMDOC_SUPPORT
  4528. #if !defined(LIBXML2_SUPPORT)
  4529. if (!dom) {
  4530. strcpy(g->Message, "libxml2 not supported by this version");
  4531. xsup= NULL;
  4532. } // endif Libxml2
  4533. #endif // !LIBXML2_SUPPORT
  4534. if (!xsup) {
  4535. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4536. rc= HA_ERR_INTERNAL_ERROR;
  4537. DBUG_RETURN(rc);
  4538. } // endif xsup
  4539. } // endif type
  4540. // Check column types
  4541. for (field= table_arg->field; *field; field++) {
  4542. fp= *field;
  4543. if (fp->vcol_info && !fp->stored_in_db)
  4544. continue; // This is a virtual column
  4545. if (fp->flags & AUTO_INCREMENT_FLAG) {
  4546. strcpy(g->Message, "Auto_increment is not supported yet");
  4547. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4548. rc= HA_ERR_INTERNAL_ERROR;
  4549. DBUG_RETURN(rc);
  4550. } // endif flags
  4551. if (fp->flags & (BLOB_FLAG | ENUM_FLAG | SET_FLAG)) {
  4552. sprintf(g->Message, "Unsupported type for column %s",
  4553. fp->field_name);
  4554. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4555. rc= HA_ERR_INTERNAL_ERROR;
  4556. DBUG_RETURN(rc);
  4557. } // endif flags
  4558. switch (fp->type()) {
  4559. case MYSQL_TYPE_SHORT:
  4560. case MYSQL_TYPE_LONG:
  4561. case MYSQL_TYPE_FLOAT:
  4562. case MYSQL_TYPE_DOUBLE:
  4563. case MYSQL_TYPE_TIMESTAMP:
  4564. case MYSQL_TYPE_DATE:
  4565. case MYSQL_TYPE_TIME:
  4566. case MYSQL_TYPE_DATETIME:
  4567. case MYSQL_TYPE_YEAR:
  4568. case MYSQL_TYPE_NEWDATE:
  4569. case MYSQL_TYPE_LONGLONG:
  4570. case MYSQL_TYPE_TINY:
  4571. case MYSQL_TYPE_DECIMAL:
  4572. case MYSQL_TYPE_NEWDECIMAL:
  4573. case MYSQL_TYPE_INT24:
  4574. break; // Ok
  4575. case MYSQL_TYPE_VARCHAR:
  4576. case MYSQL_TYPE_VAR_STRING:
  4577. case MYSQL_TYPE_STRING:
  4578. if (!fp->field_length) {
  4579. sprintf(g->Message, "Unsupported 0 length for column %s",
  4580. fp->field_name);
  4581. rc= HA_ERR_INTERNAL_ERROR;
  4582. my_printf_error(ER_UNKNOWN_ERROR,
  4583. "Unsupported 0 length for column %s",
  4584. MYF(0), fp->field_name);
  4585. DBUG_RETURN(rc);
  4586. } // endif fp
  4587. break; // To be checked
  4588. case MYSQL_TYPE_BIT:
  4589. case MYSQL_TYPE_NULL:
  4590. case MYSQL_TYPE_ENUM:
  4591. case MYSQL_TYPE_SET:
  4592. case MYSQL_TYPE_TINY_BLOB:
  4593. case MYSQL_TYPE_MEDIUM_BLOB:
  4594. case MYSQL_TYPE_LONG_BLOB:
  4595. case MYSQL_TYPE_BLOB:
  4596. case MYSQL_TYPE_GEOMETRY:
  4597. default:
  4598. // fprintf(stderr, "Unsupported type column %s\n", fp->field_name);
  4599. sprintf(g->Message, "Unsupported type for column %s",
  4600. fp->field_name);
  4601. rc= HA_ERR_INTERNAL_ERROR;
  4602. my_printf_error(ER_UNKNOWN_ERROR, "Unsupported type for column %s",
  4603. MYF(0), fp->field_name);
  4604. DBUG_RETURN(rc);
  4605. break;
  4606. } // endswitch type
  4607. if ((fp)->real_maybe_null() && !IsTypeNullable(type)) {
  4608. my_printf_error(ER_UNKNOWN_ERROR,
  4609. "Table type %s does not support nullable columns",
  4610. MYF(0), options->type);
  4611. DBUG_RETURN(HA_ERR_UNSUPPORTED);
  4612. } // endif !nullable
  4613. if (dbf) {
  4614. bool b= false;
  4615. if ((b= strlen(fp->field_name) > 10))
  4616. sprintf(g->Message, "DBF: Column name '%s' is too long (max=10)",
  4617. fp->field_name);
  4618. else if ((b= fp->field_length > 255))
  4619. sprintf(g->Message, "DBF: Column length too big for '%s' (max=255)",
  4620. fp->field_name);
  4621. if (b) {
  4622. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4623. rc= HA_ERR_INTERNAL_ERROR;
  4624. DBUG_RETURN(rc);
  4625. } // endif b
  4626. } // endif dbf
  4627. } // endfor field
  4628. if ((sqlcom == SQLCOM_CREATE_TABLE || *GetTableName() == '#') && inward) {
  4629. // The file name is not specified, create a default file in
  4630. // the database directory named table_name.table_type.
  4631. // (temporarily not done for XML because a void file causes
  4632. // the XML parsers to report an error on the first Insert)
  4633. char buf[_MAX_PATH], fn[_MAX_PATH], dbpath[_MAX_PATH], lwt[12];
  4634. int h;
  4635. // Check for incompatible options
  4636. if (options->sepindex) {
  4637. my_message(ER_UNKNOWN_ERROR,
  4638. "SEPINDEX is incompatible with unspecified file name",
  4639. MYF(0));
  4640. DBUG_RETURN(HA_ERR_UNSUPPORTED);
  4641. } else if (GetTypeID(options->type) == TAB_VEC)
  4642. if (!table->s->max_rows || options->split) {
  4643. my_printf_error(ER_UNKNOWN_ERROR,
  4644. "%s tables whose file name is unspecified cannot be split",
  4645. MYF(0), options->type);
  4646. DBUG_RETURN(HA_ERR_UNSUPPORTED);
  4647. } else if (options->header == 2) {
  4648. my_printf_error(ER_UNKNOWN_ERROR,
  4649. "header=2 is not allowed for %s tables whose file name is unspecified",
  4650. MYF(0), options->type);
  4651. DBUG_RETURN(HA_ERR_UNSUPPORTED);
  4652. } // endif's
  4653. // Fold type to lower case
  4654. for (int i= 0; i < 12; i++)
  4655. if (!options->type[i]) {
  4656. lwt[i]= 0;
  4657. break;
  4658. } else
  4659. lwt[i]= tolower(options->type[i]);
  4660. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  4661. if (part_info) {
  4662. char *p;
  4663. strcpy(dbpath, name);
  4664. p= strrchr(dbpath, slash);
  4665. strcpy(partname, ++p);
  4666. strcat(strcat(strcpy(buf, p), "."), lwt);
  4667. *p= 0;
  4668. } else {
  4669. #endif // WITH_PARTITION_STORAGE_ENGINE
  4670. strcat(strcat(strcpy(buf, GetTableName()), "."), lwt);
  4671. sprintf(g->Message, "No file name. Table will use %s", buf);
  4672. if (sqlcom == SQLCOM_CREATE_TABLE)
  4673. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  4674. strcat(strcat(strcpy(dbpath, "./"), Strz(table->s->db)), "/");
  4675. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  4676. } // endif part_info
  4677. #endif // WITH_PARTITION_STORAGE_ENGINE
  4678. PlugSetPath(fn, buf, dbpath);
  4679. if ((h= ::open(fn, O_CREAT | O_EXCL, 0666)) == -1) {
  4680. if (errno == EEXIST)
  4681. sprintf(g->Message, "Default file %s already exists", fn);
  4682. else
  4683. sprintf(g->Message, "Error %d creating file %s", errno, fn);
  4684. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  4685. } else
  4686. ::close(h);
  4687. if ((type == TAB_FMT || options->readonly) && sqlcom == SQLCOM_CREATE_TABLE)
  4688. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0,
  4689. "Congratulation, you just created a read-only void table!");
  4690. } // endif sqlcom
  4691. if (trace)
  4692. htrc("xchk=%p createas=%d\n", g->Xchk, g->Createas);
  4693. // To check whether indexes have to be made or remade
  4694. if (!g->Xchk) {
  4695. PIXDEF xdp;
  4696. // We should be in CREATE TABLE, ALTER_TABLE or CREATE INDEX
  4697. if (!(sqlcom == SQLCOM_CREATE_TABLE || sqlcom == SQLCOM_ALTER_TABLE ||
  4698. sqlcom == SQLCOM_CREATE_INDEX || sqlcom == SQLCOM_DROP_INDEX))
  4699. // (sqlcom == SQLCOM_CREATE_INDEX && part_info) ||
  4700. // (sqlcom == SQLCOM_DROP_INDEX && part_info)))
  4701. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0,
  4702. "Unexpected command in create, please contact CONNECT team");
  4703. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  4704. if (part_info && !inward)
  4705. strcpy(partname, decode(g, strrchr(name, '#') + 1));
  4706. // strcpy(partname, part_info->curr_part_elem->partition_name);
  4707. #endif // WITH_PARTITION_STORAGE_ENGINE
  4708. if (g->Alchecked == 0 &&
  4709. (!IsFileType(type) || FileExists(options->filename, false))) {
  4710. if (part_info) {
  4711. sprintf(g->Message, "Data repartition in %s is unchecked", partname);
  4712. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
  4713. } else if (sqlcom == SQLCOM_ALTER_TABLE) {
  4714. // This is an ALTER to CONNECT from another engine.
  4715. // It cannot be accepted because the table data would be modified
  4716. // except when the target file does not exist.
  4717. strcpy(g->Message, "Operation denied. Table data would be modified.");
  4718. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4719. DBUG_RETURN(HA_ERR_INTERNAL_ERROR);
  4720. } // endif part_info
  4721. } // endif outward
  4722. // Get the index definitions
  4723. if ((xdp= GetIndexInfo()) || sqlcom == SQLCOM_DROP_INDEX) {
  4724. if (options->multiple) {
  4725. strcpy(g->Message, "Multiple tables are not indexable");
  4726. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4727. rc= HA_ERR_UNSUPPORTED;
  4728. } else if (options->compressed) {
  4729. strcpy(g->Message, "Compressed tables are not indexable");
  4730. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4731. rc= HA_ERR_UNSUPPORTED;
  4732. } else if (GetIndexType(type) == 1) {
  4733. PDBUSER dup= PlgGetUser(g);
  4734. PCATLG cat= (dup) ? dup->Catalog : NULL;
  4735. SetDataPath(g, Strz(table_arg->s->db));
  4736. if (cat) {
  4737. // cat->SetDataPath(g, Strz(table_arg->s->db));
  4738. #if defined(WITH_PARTITION_STORAGE_ENGINE)
  4739. if (part_info)
  4740. strcpy(partname,
  4741. decode(g, strrchr(name, (inward ? slash : '#')) + 1));
  4742. #endif // WITH_PARTITION_STORAGE_ENGINE
  4743. if ((rc= optimize(table->in_use, NULL))) {
  4744. htrc("Create rc=%d %s\n", rc, g->Message);
  4745. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4746. rc= HA_ERR_INTERNAL_ERROR;
  4747. } else
  4748. CloseTable(g);
  4749. } // endif cat
  4750. } else if (GetIndexType(type) == 3) {
  4751. if (CheckVirtualIndex(table_arg->s)) {
  4752. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4753. rc= HA_ERR_UNSUPPORTED;
  4754. } // endif Check
  4755. } else if (!GetIndexType(type)) {
  4756. sprintf(g->Message, "Table type %s is not indexable", options->type);
  4757. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4758. rc= HA_ERR_UNSUPPORTED;
  4759. } // endif index type
  4760. } // endif xdp
  4761. } else {
  4762. // This should not happen anymore with indexing new way
  4763. my_message(ER_UNKNOWN_ERROR,
  4764. "CONNECT index modification should be in-place", MYF(0));
  4765. DBUG_RETURN(HA_ERR_UNSUPPORTED);
  4766. } // endif Xchk
  4767. table= st;
  4768. DBUG_RETURN(rc);
  4769. } // end of create
  4770. /**
  4771. Used to check whether a file based outward table can be populated by
  4772. an ALTER TABLE command. The conditions are:
  4773. - file does not exist or is void
  4774. - user has file privilege
  4775. */
  4776. bool ha_connect::FileExists(const char *fn, bool bf)
  4777. {
  4778. if (!fn || !*fn)
  4779. return false;
  4780. else if (IsPartitioned() && bf)
  4781. return true;
  4782. if (table) {
  4783. char *s, tfn[_MAX_PATH], filename[_MAX_PATH], path[_MAX_PATH];
  4784. bool b= false;
  4785. int n;
  4786. struct stat info;
  4787. if (check_access(ha_thd(), FILE_ACL, table->s->db.str,
  4788. NULL, NULL, 0, 0))
  4789. return true;
  4790. #if defined(WIN32)
  4791. s= "\\";
  4792. #else // !WIN32
  4793. s= "/";
  4794. #endif // !WIN32
  4795. if (IsPartitioned()) {
  4796. sprintf(tfn, fn, GetPartName());
  4797. // This is to avoid an initialization error raised by the
  4798. // test on check_table_flags made in ha_partition::open
  4799. // that can fail if some partition files are empty.
  4800. b= true;
  4801. } else
  4802. strcpy(tfn, fn);
  4803. strcat(strcat(strcat(strcpy(path, "."), s), Strz(table->s->db)), s);
  4804. PlugSetPath(filename, tfn, path);
  4805. n= stat(filename, &info);
  4806. if (n < 0) {
  4807. if (errno != ENOENT) {
  4808. char buf[_MAX_PATH + 20];
  4809. sprintf(buf, "Error %d for file %s", errno, filename);
  4810. push_warning(table->in_use, Sql_condition::WARN_LEVEL_WARN, 0, buf);
  4811. return true;
  4812. } else
  4813. return false;
  4814. } else
  4815. return (info.st_size || b) ? true : false;
  4816. } // endif table
  4817. return true;
  4818. } // end of FileExists
  4819. // Called by SameString and NoFieldOptionChange
  4820. bool ha_connect::CheckString(const char *str1, const char *str2)
  4821. {
  4822. bool b1= (!str1 || !*str1), b2= (!str2 || !*str2);
  4823. if (b1 && b2)
  4824. return true;
  4825. else if ((b1 && !b2) || (!b1 && b2) || stricmp(str1, str2))
  4826. return false;
  4827. return true;
  4828. } // end of CheckString
  4829. /**
  4830. check whether a string option have changed
  4831. */
  4832. bool ha_connect::SameString(TABLE *tab, char *opn)
  4833. {
  4834. char *str1, *str2;
  4835. tshp= tab->s; // The altered table
  4836. str1= GetStringOption(opn);
  4837. tshp= NULL;
  4838. str2= GetStringOption(opn);
  4839. return CheckString(str1, str2);
  4840. } // end of SameString
  4841. /**
  4842. check whether a Boolean option have changed
  4843. */
  4844. bool ha_connect::SameBool(TABLE *tab, char *opn)
  4845. {
  4846. bool b1, b2;
  4847. tshp= tab->s; // The altered table
  4848. b1= GetBooleanOption(opn, false);
  4849. tshp= NULL;
  4850. b2= GetBooleanOption(opn, false);
  4851. return (b1 == b2);
  4852. } // end of SameBool
  4853. /**
  4854. check whether an integer option have changed
  4855. */
  4856. bool ha_connect::SameInt(TABLE *tab, char *opn)
  4857. {
  4858. int i1, i2;
  4859. tshp= tab->s; // The altered table
  4860. i1= GetIntegerOption(opn);
  4861. tshp= NULL;
  4862. i2= GetIntegerOption(opn);
  4863. if (!stricmp(opn, "lrecl"))
  4864. return (i1 == i2 || !i1 || !i2);
  4865. else if (!stricmp(opn, "ending"))
  4866. return (i1 == i2 || i1 <= 0 || i2 <= 0);
  4867. else
  4868. return (i1 == i2);
  4869. } // end of SameInt
  4870. /**
  4871. check whether a field option have changed
  4872. */
  4873. bool ha_connect::NoFieldOptionChange(TABLE *tab)
  4874. {
  4875. bool rc= true;
  4876. ha_field_option_struct *fop1, *fop2;
  4877. Field* *fld1= table->s->field;
  4878. Field* *fld2= tab->s->field;
  4879. for (; rc && *fld1 && *fld2; fld1++, fld2++) {
  4880. fop1= (*fld1)->option_struct;
  4881. fop2= (*fld2)->option_struct;
  4882. rc= (fop1->offset == fop2->offset &&
  4883. fop1->fldlen == fop2->fldlen &&
  4884. CheckString(fop1->dateformat, fop2->dateformat) &&
  4885. CheckString(fop1->fieldformat, fop2->fieldformat) &&
  4886. CheckString(fop1->special, fop2->special));
  4887. } // endfor fld
  4888. return rc;
  4889. } // end of NoFieldOptionChange
  4890. /**
  4891. Check if a storage engine supports a particular alter table in-place
  4892. @param altered_table TABLE object for new version of table.
  4893. @param ha_alter_info Structure describing changes to be done
  4894. by ALTER TABLE and holding data used
  4895. during in-place alter.
  4896. @retval HA_ALTER_ERROR Unexpected error.
  4897. @retval HA_ALTER_INPLACE_NOT_SUPPORTED Not supported, must use copy.
  4898. @retval HA_ALTER_INPLACE_EXCLUSIVE_LOCK Supported, but requires X lock.
  4899. @retval HA_ALTER_INPLACE_SHARED_LOCK_AFTER_PREPARE
  4900. Supported, but requires SNW lock
  4901. during main phase. Prepare phase
  4902. requires X lock.
  4903. @retval HA_ALTER_INPLACE_SHARED_LOCK Supported, but requires SNW lock.
  4904. @retval HA_ALTER_INPLACE_NO_LOCK_AFTER_PREPARE
  4905. Supported, concurrent reads/writes
  4906. allowed. However, prepare phase
  4907. requires X lock.
  4908. @retval HA_ALTER_INPLACE_NO_LOCK Supported, concurrent
  4909. reads/writes allowed.
  4910. @note The default implementation uses the old in-place ALTER API
  4911. to determine if the storage engine supports in-place ALTER or not.
  4912. @note Called without holding thr_lock.c lock.
  4913. */
  4914. enum_alter_inplace_result
  4915. ha_connect::check_if_supported_inplace_alter(TABLE *altered_table,
  4916. Alter_inplace_info *ha_alter_info)
  4917. {
  4918. DBUG_ENTER("check_if_supported_alter");
  4919. bool idx= false, outward= false;
  4920. THD *thd= ha_thd();
  4921. int sqlcom= thd_sql_command(thd);
  4922. TABTYPE newtyp, type= TAB_UNDEF;
  4923. HA_CREATE_INFO *create_info= ha_alter_info->create_info;
  4924. PTOS newopt, oldopt;
  4925. xp= GetUser(thd, xp);
  4926. PGLOBAL g= xp->g;
  4927. if (!g || !table) {
  4928. my_message(ER_UNKNOWN_ERROR, "Cannot check ALTER operations", MYF(0));
  4929. DBUG_RETURN(HA_ALTER_ERROR);
  4930. } // endif Xchk
  4931. newopt= altered_table->s->option_struct;
  4932. oldopt= table->s->option_struct;
  4933. // If this is the start of a new query, cleanup the previous one
  4934. if (xp->CheckCleanup()) {
  4935. tdbp= NULL;
  4936. valid_info= false;
  4937. } // endif CheckCleanup
  4938. g->Alchecked= 1; // Tested in create
  4939. g->Xchk= NULL;
  4940. type= GetRealType(oldopt);
  4941. newtyp= GetRealType(newopt);
  4942. // No copy algorithm for outward tables
  4943. outward= (!IsFileType(type) || (oldopt->filename && *oldopt->filename));
  4944. // Index operations
  4945. Alter_inplace_info::HA_ALTER_FLAGS index_operations=
  4946. Alter_inplace_info::ADD_INDEX |
  4947. Alter_inplace_info::DROP_INDEX |
  4948. Alter_inplace_info::ADD_UNIQUE_INDEX |
  4949. Alter_inplace_info::DROP_UNIQUE_INDEX |
  4950. Alter_inplace_info::ADD_PK_INDEX |
  4951. Alter_inplace_info::DROP_PK_INDEX;
  4952. Alter_inplace_info::HA_ALTER_FLAGS inplace_offline_operations=
  4953. Alter_inplace_info::ALTER_COLUMN_EQUAL_PACK_LENGTH |
  4954. Alter_inplace_info::ALTER_COLUMN_NAME |
  4955. Alter_inplace_info::ALTER_COLUMN_DEFAULT |
  4956. Alter_inplace_info::CHANGE_CREATE_OPTION |
  4957. Alter_inplace_info::ALTER_RENAME |
  4958. Alter_inplace_info::ALTER_PARTITIONED | index_operations;
  4959. if (ha_alter_info->handler_flags & index_operations ||
  4960. !SameString(altered_table, "optname") ||
  4961. !SameBool(altered_table, "sepindex")) {
  4962. if (newopt->multiple) {
  4963. strcpy(g->Message, "Multiple tables are not indexable");
  4964. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4965. DBUG_RETURN(HA_ALTER_ERROR);
  4966. } else if (newopt->compressed) {
  4967. strcpy(g->Message, "Compressed tables are not indexable");
  4968. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4969. DBUG_RETURN(HA_ALTER_ERROR);
  4970. } else if (GetIndexType(type) == 1) {
  4971. g->Xchk= new(g) XCHK;
  4972. PCHK xcp= (PCHK)g->Xchk;
  4973. xcp->oldpix= GetIndexInfo(table->s);
  4974. xcp->newpix= GetIndexInfo(altered_table->s);
  4975. xcp->oldsep= GetBooleanOption("sepindex", false);
  4976. xcp->oldsep= xcp->SetName(g, GetStringOption("optname"));
  4977. tshp= altered_table->s;
  4978. xcp->newsep= GetBooleanOption("sepindex", false);
  4979. xcp->newsep= xcp->SetName(g, GetStringOption("optname"));
  4980. tshp= NULL;
  4981. if (trace && g->Xchk)
  4982. htrc(
  4983. "oldsep=%d newsep=%d oldopn=%s newopn=%s oldpix=%p newpix=%p\n",
  4984. xcp->oldsep, xcp->newsep,
  4985. SVP(xcp->oldopn), SVP(xcp->newopn),
  4986. xcp->oldpix, xcp->newpix);
  4987. if (sqlcom == SQLCOM_ALTER_TABLE)
  4988. idx= true;
  4989. else
  4990. DBUG_RETURN(HA_ALTER_INPLACE_EXCLUSIVE_LOCK);
  4991. } else if (GetIndexType(type) == 3) {
  4992. if (CheckVirtualIndex(altered_table->s)) {
  4993. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4994. DBUG_RETURN(HA_ALTER_ERROR);
  4995. } // endif Check
  4996. } else if (!GetIndexType(type)) {
  4997. sprintf(g->Message, "Table type %s is not indexable", oldopt->type);
  4998. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  4999. DBUG_RETURN(HA_ALTER_ERROR);
  5000. } // endif index type
  5001. } // endif index operation
  5002. if (!SameString(altered_table, "filename")) {
  5003. if (!outward) {
  5004. // Conversion to outward table is only allowed for file based
  5005. // tables whose file does not exist.
  5006. tshp= altered_table->s;
  5007. char *fn= GetStringOption("filename");
  5008. tshp= NULL;
  5009. if (FileExists(fn, false)) {
  5010. strcpy(g->Message, "Operation denied. Table data would be lost.");
  5011. my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
  5012. DBUG_RETURN(HA_ALTER_ERROR);
  5013. } else
  5014. goto fin;
  5015. } else
  5016. goto fin;
  5017. } // endif filename
  5018. /* Is there at least one operation that requires copy algorithm? */
  5019. if (ha_alter_info->handler_flags & ~inplace_offline_operations)
  5020. goto fin;
  5021. /*
  5022. ALTER TABLE tbl_name CONVERT TO CHARACTER SET .. and
  5023. ALTER TABLE table_name DEFAULT CHARSET = .. most likely
  5024. change column charsets and so not supported in-place through
  5025. old API.
  5026. Changing of PACK_KEYS, MAX_ROWS and ROW_FORMAT options were
  5027. not supported as in-place operations in old API either.
  5028. */
  5029. if (create_info->used_fields & (HA_CREATE_USED_CHARSET |
  5030. HA_CREATE_USED_DEFAULT_CHARSET |
  5031. HA_CREATE_USED_PACK_KEYS |
  5032. HA_CREATE_USED_MAX_ROWS) ||
  5033. (table->s->row_type != create_info->row_type))
  5034. goto fin;
  5035. #if 0
  5036. uint table_changes= (ha_alter_info->handler_flags &
  5037. Alter_inplace_info::ALTER_COLUMN_EQUAL_PACK_LENGTH) ?
  5038. IS_EQUAL_PACK_LENGTH : IS_EQUAL_YES;
  5039. if (table->file->check_if_incompatible_data(create_info, table_changes)
  5040. == COMPATIBLE_DATA_YES)
  5041. DBUG_RETURN(HA_ALTER_INPLACE_EXCLUSIVE_LOCK);
  5042. #endif // 0
  5043. // This was in check_if_incompatible_data
  5044. if (NoFieldOptionChange(altered_table) &&
  5045. type == newtyp &&
  5046. SameInt(altered_table, "lrecl") &&
  5047. SameInt(altered_table, "elements") &&
  5048. SameInt(altered_table, "header") &&
  5049. SameInt(altered_table, "quoted") &&
  5050. SameInt(altered_table, "ending") &&
  5051. SameInt(altered_table, "compressed"))
  5052. DBUG_RETURN(HA_ALTER_INPLACE_EXCLUSIVE_LOCK);
  5053. fin:
  5054. if (idx) {
  5055. // Indexing is only supported inplace
  5056. my_message(ER_ALTER_OPERATION_NOT_SUPPORTED,
  5057. "Alter operations not supported together by CONNECT", MYF(0));
  5058. DBUG_RETURN(HA_ALTER_ERROR);
  5059. } else if (outward) {
  5060. if (IsFileType(type))
  5061. push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0,
  5062. "This is an outward table, table data were not modified.");
  5063. DBUG_RETURN(HA_ALTER_INPLACE_EXCLUSIVE_LOCK);
  5064. } else
  5065. DBUG_RETURN(HA_ALTER_INPLACE_NOT_SUPPORTED);
  5066. } // end of check_if_supported_inplace_alter
  5067. /**
  5068. check_if_incompatible_data() called if ALTER TABLE can't detect otherwise
  5069. if new and old definition are compatible
  5070. @details If there are no other explicit signs like changed number of
  5071. fields this function will be called by compare_tables()
  5072. (sql/sql_tables.cc) to decide should we rewrite whole table or only .frm
  5073. file.
  5074. @note: This function is no more called by check_if_supported_inplace_alter
  5075. */
  5076. bool ha_connect::check_if_incompatible_data(HA_CREATE_INFO *info,
  5077. uint table_changes)
  5078. {
  5079. DBUG_ENTER("ha_connect::check_if_incompatible_data");
  5080. // TO DO: really implement and check it.
  5081. push_warning(ha_thd(), Sql_condition::WARN_LEVEL_WARN, 0,
  5082. "Unexpected call to check_if_incompatible_data.");
  5083. DBUG_RETURN(COMPATIBLE_DATA_NO);
  5084. } // end of check_if_incompatible_data
  5085. /****************************************************************************
  5086. * CONNECT MRR implementation: use DS-MRR
  5087. This is just copied from myisam
  5088. ***************************************************************************/
  5089. int ha_connect::multi_range_read_init(RANGE_SEQ_IF *seq, void *seq_init_param,
  5090. uint n_ranges, uint mode,
  5091. HANDLER_BUFFER *buf)
  5092. {
  5093. return ds_mrr.dsmrr_init(this, seq, seq_init_param, n_ranges, mode, buf);
  5094. } // end of multi_range_read_init
  5095. int ha_connect::multi_range_read_next(range_id_t *range_info)
  5096. {
  5097. return ds_mrr.dsmrr_next(range_info);
  5098. } // end of multi_range_read_next
  5099. ha_rows ha_connect::multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
  5100. void *seq_init_param,
  5101. uint n_ranges, uint *bufsz,
  5102. uint *flags, Cost_estimate *cost)
  5103. {
  5104. /*
  5105. This call is here because there is no location where this->table would
  5106. already be known.
  5107. TODO: consider moving it into some per-query initialization call.
  5108. */
  5109. ds_mrr.init(this, table);
  5110. // MMR is implemented for "local" file based tables only
  5111. if (!IsFileType(GetRealType(GetTableOptionStruct())))
  5112. *flags|= HA_MRR_USE_DEFAULT_IMPL;
  5113. ha_rows rows= ds_mrr.dsmrr_info_const(keyno, seq, seq_init_param, n_ranges,
  5114. bufsz, flags, cost);
  5115. xp->g->Mrr= !(*flags & HA_MRR_USE_DEFAULT_IMPL);
  5116. return rows;
  5117. } // end of multi_range_read_info_const
  5118. ha_rows ha_connect::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
  5119. uint key_parts, uint *bufsz,
  5120. uint *flags, Cost_estimate *cost)
  5121. {
  5122. ds_mrr.init(this, table);
  5123. // MMR is implemented for "local" file based tables only
  5124. if (!IsFileType(GetRealType(GetTableOptionStruct())))
  5125. *flags|= HA_MRR_USE_DEFAULT_IMPL;
  5126. ha_rows rows= ds_mrr.dsmrr_info(keyno, n_ranges, keys, key_parts, bufsz,
  5127. flags, cost);
  5128. xp->g->Mrr= !(*flags & HA_MRR_USE_DEFAULT_IMPL);
  5129. return rows;
  5130. } // end of multi_range_read_info
  5131. int ha_connect::multi_range_read_explain_info(uint mrr_mode, char *str,
  5132. size_t size)
  5133. {
  5134. return ds_mrr.dsmrr_explain_info(mrr_mode, str, size);
  5135. } // end of multi_range_read_explain_info
  5136. /* CONNECT MRR implementation ends */
  5137. #if 0
  5138. // Does this make sens for CONNECT?
  5139. Item *ha_connect::idx_cond_push(uint keyno_arg, Item* idx_cond_arg)
  5140. {
  5141. pushed_idx_cond_keyno= keyno_arg;
  5142. pushed_idx_cond= idx_cond_arg;
  5143. in_range_check_pushed_down= TRUE;
  5144. if (active_index == pushed_idx_cond_keyno)
  5145. mi_set_index_cond_func(file, handler_index_cond_check, this);
  5146. return NULL;
  5147. }
  5148. #endif // 0
  5149. struct st_mysql_storage_engine connect_storage_engine=
  5150. { MYSQL_HANDLERTON_INTERFACE_VERSION };
  5151. /***********************************************************************/
  5152. /* CONNECT global variables definitions. */
  5153. /***********************************************************************/
  5154. // Size used when converting TEXT columns to VARCHAR
  5155. #if defined(_DEBUG)
  5156. static MYSQL_SYSVAR_INT(conv_size, conv_size,
  5157. PLUGIN_VAR_RQCMDARG, // opt
  5158. "Size used when converting TEXT columns.",
  5159. NULL, update_connect_zconv, SZCONV, 0, 65500, 1);
  5160. #else
  5161. static MYSQL_SYSVAR_INT(conv_size, conv_size,
  5162. PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, // opt
  5163. "Size used when converting TEXT columns.",
  5164. NULL, update_connect_zconv, SZCONV, 0, 65500, 1);
  5165. #endif
  5166. /**
  5167. Type conversion:
  5168. no: Unsupported types -> TYPE_ERROR
  5169. yes: TEXT -> VARCHAR
  5170. skip: skip unsupported type columns in Discovery
  5171. */
  5172. const char *xconv_names[]=
  5173. {
  5174. "NO", "YES", "SKIP", NullS
  5175. };
  5176. TYPELIB xconv_typelib=
  5177. {
  5178. array_elements(xconv_names) - 1, "xconv_typelib",
  5179. xconv_names, NULL
  5180. };
  5181. #if defined(_DEBUG)
  5182. static MYSQL_SYSVAR_ENUM(
  5183. type_conv, // name
  5184. type_conv, // varname
  5185. PLUGIN_VAR_RQCMDARG, // opt
  5186. "Unsupported types conversion.", // comment
  5187. NULL, // check
  5188. update_connect_xconv, // update function
  5189. 0, // def (no)
  5190. &xconv_typelib); // typelib
  5191. #else
  5192. static MYSQL_SYSVAR_ENUM(
  5193. type_conv, // name
  5194. type_conv, // varname
  5195. PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
  5196. "Unsupported types conversion.", // comment
  5197. NULL, // check
  5198. update_connect_xconv, // update function
  5199. 0, // def (no)
  5200. &xconv_typelib); // typelib
  5201. #endif
  5202. #if defined(XMAP)
  5203. // Using file mapping for indexes if true
  5204. static MYSQL_SYSVAR_BOOL(indx_map, indx_map, PLUGIN_VAR_RQCMDARG,
  5205. "Using file mapping for indexes",
  5206. NULL, update_connect_xmap, 0);
  5207. #endif // XMAP
  5208. // Size used for g->Sarea_Size
  5209. static MYSQL_SYSVAR_UINT(work_size, work_size,
  5210. PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
  5211. "Size of the CONNECT work area.",
  5212. NULL, update_connect_worksize, SZWORK, SZWMIN, UINT_MAX, 1);
  5213. static struct st_mysql_sys_var* connect_system_variables[]= {
  5214. MYSQL_SYSVAR(xtrace),
  5215. MYSQL_SYSVAR(conv_size),
  5216. MYSQL_SYSVAR(type_conv),
  5217. #if defined(XMAP)
  5218. MYSQL_SYSVAR(indx_map),
  5219. #endif // XMAP
  5220. MYSQL_SYSVAR(work_size),
  5221. MYSQL_SYSVAR(use_tempfile),
  5222. MYSQL_SYSVAR(exact_info),
  5223. NULL
  5224. };
  5225. maria_declare_plugin(connect)
  5226. {
  5227. MYSQL_STORAGE_ENGINE_PLUGIN,
  5228. &connect_storage_engine,
  5229. "CONNECT",
  5230. "Olivier Bertrand",
  5231. "Management of External Data (SQL/MED), including many file formats",
  5232. PLUGIN_LICENSE_GPL,
  5233. connect_init_func, /* Plugin Init */
  5234. connect_done_func, /* Plugin Deinit */
  5235. 0x0103, /* version number (1.03) */
  5236. NULL, /* status variables */
  5237. connect_system_variables, /* system variables */
  5238. "1.03", /* string version */
  5239. MariaDB_PLUGIN_MATURITY_BETA /* maturity */
  5240. }
  5241. maria_declare_plugin_end;