Commit graph

416 commits

Author SHA1 Message Date
Olivier Bertrand
4fd74200dd - Adding 3 new table types:
PROXY table base on another table. Used by several other types.
  XCOL  proxy on a table having a colummn containing a list of values
  OCCUR proxy on a table having several columns containing the same type
        of values that can be put in a unique column and several rows.
  TBL   Not new but now internally using the PROXY table class.
- Fix 2 bugs in add_field:
        Change '=' to ' ' after the COMMENT keyword.
        Quote column names between '`' in the SQL string.
- Update xml test result to the CONNECT version

added:
  storage/connect/taboccur.cpp
  storage/connect/taboccur.h
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
  storage/connect/tabxcl.cpp
  storage/connect/tabxcl.h
modified:
  storage/connect/CMakeLists.txt
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mycat.cc
  storage/connect/myconn.cpp
  storage/connect/mysql-test/connect/r/xml.result
  storage/connect/plgdbsem.h
  storage/connect/tabmysql.cpp
  storage/connect/tabtbl.cpp
  storage/connect/tabtbl.h
  storage/connect/valblk.cpp
  storage/connect/valblk.h
2013-04-29 13:50:20 +02:00
Alexander Barkov
2d33547475 Fixing that ODBC detection always failed on Linux because
set(CMAKE_REQUIRED_INCLUDES ${ODBC_INCLUDE_DIR})

was missing before the recently added CHECK_CXX_SOURCE_COMPILES()

modified:
  storage/connect/CMakeLists.txt
2013-04-28 10:18:31 +04:00
Alexander Barkov
1de77ee1ad Packaging clean-ups for the cassandra and connect engines.
modified:
  @ storage/cassandra/CMakeLists.txt
    Renaming the package "CassandraSE" to "cassandra-engine",
    as agreed during Lisbon meeting.

  @ storage/connect/CMakeLists.txt
    Removing an unused line
2013-04-21 22:15:33 +04:00
Sergei Golubchik
88b89aaa82 fixes for buildbot.
increase the version.
2013-04-21 09:38:54 -07:00
Alexander Barkov
b44f11c994 Fixing compilation failure in Solaris/OpenSolaris
error: too many initializers for `tm'

modified:
  storage/connect/ha_connect.cc
2013-04-21 18:38:08 +04:00
Alexander Barkov
7329f85379 Removing -Wfatal-errors, as it does not present in the older gcc versions.
(e.g. sol10-64 in build bot).

modified:
  storage/connect/CMakeLists.txt
2013-04-21 09:17:24 +04:00
Alexander Barkov
30651fd2f6 Recoding new results
(the format changed during Sergei's merge of the connect engine and discovery)

modified:
  storage/connect/mysql-test/connect/r/odbc_xls.result
2013-04-20 21:10:58 +04:00
Alexander Barkov
a6a4fa1d6f Fixing a few problems found by Build Bot after merging the CONNECT engine.
modified:
  @ mysql-test/r/mysqld--help.result
  @ mysql-test/t/mysqld--help.test
  Supressing information about "--connect" in "mysqld --help" output,
  as it depends on the build parameters.
  As a side effect information about --connect-timeout is now also suppressed :(

  @ storage/connect/CMakeLists.txt
  Removing gcc warning switches that do not exists in some older gcc versions.

  @ storage/connect/ha_connect.cc
  Adding a quick fix: cast from "const char *" to "char *".
  Olivier should do a better fix eventually.
2013-04-20 19:23:33 +04:00
Alexander Barkov
548399f6d0 After-fix for Sergei's merge of the connect engine.
odbc_sqlite3 failed. Fixed.

modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/odbc_sqlite3.result
  storage/connect/mysql-test/connect/t/odbc_sqlite3.test
2013-04-20 00:24:05 +04:00
Sergei Golubchik
f7e95c8efa merge with maria-10.0-connect 2013-04-19 20:43:35 +02:00
Sergei Golubchik
6bd49441b5 CONNECT engine fixes after 10.0 merge.
Adaptation to new API, small simplifications and bug fixes
2013-04-19 20:35:43 +02:00
Vladislav Vaintroub
0b034c1b2c Fix to handle CMake component names with dash in the name, when producing MSI package.
Rename connect_engine component back to connect-engine.
2013-04-19 18:45:54 +02:00
Olivier Bertrand
32669e4c15 - Committing merged changes
added:
  storage/connect/connect.cnf
modified:
  mysql-test/suite/connect/r/dir.result
  mysql-test/suite/connect/t/dir.test
  sql/sql_parse.cc
  sql/sql_parse.h
  storage/connect/CMakeLists.txt
  win/packaging/CPackWixConfig.cmake
2013-04-19 15:18:42 +02:00
Sergei Golubchik
53375573e3 small mtr cleanup
and move the connect suite into storage/connect/
2013-04-19 07:07:06 +02:00
Alexander Barkov
89bafdf452 Dashed name did not work on Windows.
Renaming dashed name to underscored name:

connect-engine -> connect_engine
2013-04-17 19:36:57 +04:00
Vladislav Vaintroub
4a3e22c430 Fix MSI package creation for connect engine.
Also, do not use /MP option when compiling CONNECT (incompatible with COM #import directive)
Also, fix ODBC_LIBRARY to be a list on Windows, not string with spaces inside.
2013-04-17 07:44:49 -07:00
Alexander Barkov
2a20ab7889 Adding RPM related definitions to create a separate RPM package
(e.g. MariaDB-10.0.1-fc18-x86_64-connect-engine.rpm) with
automatic installation of libxml2 and unixODBC as dependencies.

added:
  storage/connect/connect.cnf
modified:
  storage/connect/CMakeLists.txt
2013-04-16 16:54:44 +04:00
Olivier Bertrand
ebc6fc7f72 - Bug: When trace is ON the variable c was used uninitialized in CSORT::Istc
modified:
  storage/connect/csort.cpp
2013-04-15 15:59:47 +02:00
Olivier Bertrand
96f55d4684 - Fix use of s->db_plugin in GetSubTable for release versions
modified:
  storage/connect/tabtbl.cpp
2013-04-13 00:37:24 +02:00
Olivier Bertrand
8cf33505f1 - Extend the TBL type to support sub-tables of any engines. Not CONNECT
sub-tables are accessed via the MySQL API like the MYSQL CONNECT tables.

modified:
  mysql-test/suite/connect/r/tbl.result
  mysql-test/suite/connect/t/tbl.test
  storage/connect/catalog.h
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/mycat.h
  storage/connect/tabmysql.h
  storage/connect/tabtbl.cpp
2013-04-12 18:30:15 +02:00
Olivier Bertrand
1357bffbf3 - Add support of NULLs for file table columns.
Update CONNECT version number and date.

modified:
  mysql-test/suite/connect/r/null.result
  mysql-test/suite/connect/r/xml.result
  mysql-test/suite/connect/t/null.test
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/tabdos.cpp
  storage/connect/tabfix.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabtbl.cpp
  storage/connect/tabvct.cpp
2013-04-10 23:38:27 +02:00
Olivier Bertrand
9b790248c5 - Add routine to test index equality
modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/xindex.h
2013-04-10 14:24:28 +02:00
Olivier Bertrand
6be6b4ab76 - All the processing of creating, dropping, modifying indexes was redesigned.
The code was a legacy from the first versions of the XDB engine dating 2004
  and was not working anymore with recent versions of MySQL/MariaDB. A patch
  in create had been added but is was unsatisfying, recreating all indexes on
  any alter statement and sometimes doing nothing when it should have.
  This is a major update to be tested for stability. It was in most important
  cases et all current tests pass with this new version

modified:
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mycat.cc
  storage/connect/plugutil.c
  storage/connect/tabdos.cpp
  storage/connect/user_connect.cc
  storage/connect/user_connect.h
  storage/connect/xindex.h
2013-04-09 23:14:45 +02:00
Olivier Bertrand
b3b0210467 - Prepar using indexes in MAP mode (not used yet)
modified:
  storage/connect/tabdos.cpp
  storage/connect/xindex.cpp
  storage/connect/xindex.h
2013-04-07 11:43:35 +02:00
Olivier Bertrand
f60b56723d - Bug fix: Variable rc could used uninitialized when tracing is on.
modified:
  storage/connect/filamvct.cpp
2013-04-06 12:51:45 +02:00
Olivier Bertrand
806ca8ddb5 - Do not check columns name length of dbf catalog tables. They return info
on a dbf table but are not dbf tables.

modified:
  storage/connect/ha_connect.cc
2013-04-05 23:57:30 +02:00
Olivier Bertrand
4adb4256cc - Update some DBUG_PRINT to avois warning on Linux
modified:
  storage/connect/connect.cc
  storage/connect/ha_connect.cc
2013-04-04 23:27:54 +02:00
Olivier Bertrand
7e0f591f6a - Do not accept creating XML2 tables when libxml2 is not available
modified:
  storage/connect/ha_connect.cc
2013-04-04 15:36:42 +02:00
Alexander Barkov
d12e1c92a1 Adding security tests for "ALTER TABLE t1 FILE_NAME='xxx'"
modified:
  mysql-test/suite/connect/r/bin.result
  mysql-test/suite/connect/r/csv.result
  mysql-test/suite/connect/r/dbf.result
  mysql-test/suite/connect/r/fix.result
  mysql-test/suite/connect/r/vec.result
  mysql-test/suite/connect/r/xml.result
  mysql-test/suite/connect/t/grant.inc
  storage/connect/ha_connect.cc
2013-04-04 11:31:20 +04:00
Olivier Bertrand
b0e07ff5b7 - Commit added test on TBL tables
+ update dbf.result

added:
  mysql-test/suite/connect/r/tbl.result
  mysql-test/suite/connect/t/tbl.test
modified:
  mysql-test/suite/connect/r/dbf.result

- Fix bug on generating default file name for TBL sub-tables

modified:
  storage/connect/ha_connect.cc
2013-04-04 01:14:26 +02:00
Olivier Bertrand
7e7d3ce558 - Block creating tables with auto_incremented colummns (not supported)
+ allow nullable columns for TBL tables

modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mycat.cc
  storage/connect/mycat.h
2013-04-03 21:54:02 +02:00
Alexander Barkov
115a373b88 Fixed a problem in index.test failures when run in a non-Paris time zone.
This fix also revealed wrong result recorded in fix.result.
            
modified:
  mysql-test/suite/connect/r/fix.result
  storage/connect/value.cpp

modified:
  mysql-test/suite/connect/r/bin.result
  mysql-test/suite/connect/r/fix.result
  mysql-test/suite/connect/t/bin.test
  storage/connect/value.cpp
2013-04-03 04:54:02 -07:00
Olivier Bertrand
84ab3e896c - Fix making default file name with lower case type
modified:
  storage/connect/mycat.cc
2013-04-02 13:58:44 +02:00
Olivier Bertrand
b1031b2359 - Fold type name to lowercase when used for default file type
modified:
  storage/connect/ha_connect.cc
2013-04-02 12:54:57 +02:00
Olivier Bertrand
3389e81dd1 - Commit pulled changes
added:
  mysql-test/suite/connect/r/secure_file_priv.result
  mysql-test/suite/connect/t/secure_file_priv-master.opt
  mysql-test/suite/connect/t/secure_file_priv.test
modified:
  storage/connect/ha_connect.cc
2013-04-02 11:35:38 +02:00
Olivier Bertrand
0f5c5a29f9 - Comment out the last commited change
modified:
  storage/connect/ha_connect.cc
2013-04-02 11:31:46 +02:00
Alexander Barkov
4bba25543d Respect the --secure-file-priv server option when working with
tables having the FILE_NAME='xxx' table option.

added:
  mysql-test/suite/connect/r/secure_file_priv.result
  mysql-test/suite/connect/t/secure_file_priv-master.opt
  mysql-test/suite/connect/t/secure_file_priv.test
modified:
  storage/connect/ha_connect.cc
2013-04-02 13:10:42 +04:00
Olivier Bertrand
42e5bfacc8 - Commit merged changes
modified:
  mysql-test/suite/connect/r/ini.result
  mysql-test/suite/connect/r/vec.result
  mysql-test/suite/connect/t/ini.test
  mysql-test/suite/connect/t/vec.test
  storage/connect/ha_connect.cc
2013-04-02 11:06:19 +02:00
Olivier Bertrand
af08a68fbe - Commit change pulled from Linux virtual machine (fixing typo in Win32 part)
modified:
  storage/connect/filamvct.cpp*
2013-04-02 10:57:27 +02:00
Olivier Bertrand
ca012682b6 - Fix huge vec tables bug. This was not yet completely implemented for Unix.
modified:
  storage/connect/filamvct.cpp
2013-04-02 10:41:16 +02:00
Olivier Bertrand
d805690564 - Fix bugs with VEC tables header and empty file making for HUGE tables.
Adding tests of MAPPED and HUGE tables in upd.test

modified:
  mysql-test/suite/connect/r/upd.result
  mysql-test/suite/connect/t/upd.test
  storage/connect/filamvct.cpp
  storage/connect/tabvct.cpp
2013-04-01 11:45:27 +02:00
Alexander Barkov
86eeb04a93 Fixing a crash in the latest push from Olivier.
modified:
  storage/connect/ha_connect.cc
2013-04-01 09:34:39 +04:00
Olivier Bertrand
879be566e0 - Add some warnings to Create Table process
modified:
  storage/connect/filamvct.cpp
  storage/connect/ha_connect.cc
2013-03-30 22:06:35 +01:00
Olivier Bertrand
dd8c89b2f4 - Fix problems related to table file names when not specified:
Split unspecified VEC tables are no more allowed.
  Empty XML files are now accepted.
  Separate index files are now depending upon the SEPINDEX option
  and not allowed when file name is not specified.
  DROP now can erase table and index file.

modified:
  storage/connect/ha_connect.cc
  storage/connect/tabdos.cpp
  storage/connect/tabxml.cpp
2013-03-29 01:28:48 +01:00
Olivier Bertrand
0de0a46f02 - Commit revision pushed from Linux
modified:
  storage/connect/xindex.cpp*
2013-03-28 22:21:17 +01:00
unknown
a804f28c49 - Fixing Linux index compile errors
modified:
  storage/connect/xindex.cpp
2013-03-28 22:15:02 +01:00
Olivier Bertrand
0dc6f5aa15 - Miscelleanous fix for compiling on Linux
modified:
  storage/connect/xindex.cpp
2013-03-28 18:42:45 +01:00
Olivier Bertrand
35ee485b65 - Implemented: not split indexes (all indexes in one file)
modified:
  storage/connect/tabdos.cpp
  storage/connect/xindex.cpp
  storage/connect/xindex.h
2013-03-28 18:31:10 +01:00
Olivier Bertrand
039630806f - PROFILE_Close cannot be static
modified:
  storage/connect/inihandl.c
2013-03-26 16:25:19 +01:00
Olivier Bertrand
1e55712f5e - On Linux, closing an INI table removes it from the inihandl cache
modified:
  storage/connect/inihandl.c
  storage/connect/osutil.h
  storage/connect/tabsys.cpp

- Clean. Remove some unused functions

modified:
  storage/connect/plgdbsem.h
  storage/connect/plgdbutl.cpp
2013-03-26 15:20:22 +01:00
Olivier Bertrand
cd9e1938ef - Add a new table option SEPINDEX (not used yet) and remove an unused
parameter to all catalog info functions.

modified:
  storage/connect/catalog.h
  storage/connect/filamvct.cpp
  storage/connect/filamzip.cpp
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/mycat.h
  storage/connect/reldef.cpp
  storage/connect/reldef.h
  storage/connect/tabdos.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabmul.cpp
  storage/connect/tabmysql.cpp
  storage/connect/tabodbc.cpp
  storage/connect/tabsys.cpp
  storage/connect/tabtbl.cpp
  storage/connect/tabvct.cpp
  storage/connect/tabwmi.cpp
  storage/connect/tabxml.cpp
  storage/connect/xindex.cpp
2013-03-25 11:07:45 +01:00
Olivier Bertrand
8f0ae6322c - Upated columns must be allocated before opening the table
modified:
  storage/connect/connect.cc
2013-03-23 23:48:10 +01:00
Olivier Bertrand
6a15b5f870 - Wrong FLAG values transmitted to created table by the AS SELECT table:
It is not enough to ignore the flags while populating the table. They have
  to be removed from the definition in pre_create. The issue is to pass the
  info from the selected table handler to the created table handler.
  It is done via the only common item between them: the GLOBAL structure.

modified:
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/plugutil.c
2013-03-23 19:47:51 +01:00
Olivier Bertrand
aa881ad593 - Fix a typo error: in AllocateValue(2) Tiny values were given the TYPE_SHORT type.
modified:
  storage/connect/value.cpp
2013-03-23 16:03:56 +01:00
Olivier Bertrand
6c6d6fbf41 - Fix bug: When a table is created ... AS SELECT ... the offsets (FLAG value)
of the source table columns must be ignored by the created table.

modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2013-03-23 16:00:09 +01:00
Olivier Bertrand
322a99b097 - Fix check_if_incompatible_data to correctly get thd.
modified:
  storage/connect/ha_connect.cc
2013-03-22 12:57:24 +01:00
Olivier Bertrand
2ad6e653eb - Fix bug to allow creating views.
modified:
  storage/connect/ha_connect.cc
2013-03-22 12:49:41 +01:00
Alexander Barkov
70622eaac8 Fixing compilation failure in Windows: unknown symbol "any_db".
modified:
  storage/connect/ha_connect.cc
2013-03-22 14:05:15 +04:00
Alexander Barkov
8087daaeb3 Require FILE privilege to DROP a table with FILE_NAME.
modified:
  mysql-test/suite/connect/r/bin.result
  mysql-test/suite/connect/t/grant.inc
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2013-03-22 13:44:21 +04:00
Alexander Barkov
79f84fdc77 - Require FILE privilege for the file based TABLE_TYPEs
when FILE_NAME is specified

- Require FILE privileges for the TABLE_TYPEs that
  access to the underlying operating system:
  ODBC, MYSQL, DIR, MAC, WMI, OEM.

added:
  mysql-test/suite/connect/t/grant.inc
modified:
  mysql-test/suite/connect/r/bin.result
  mysql-test/suite/connect/t/bin.test
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2013-03-22 11:28:58 +04:00
Olivier Bertrand
50af1a52f6 - Commit merged items
modified:
  mysql-test/suite/connect/t/xml.test
  storage/connect/ha_connect.cc*
2013-03-21 12:22:41 +01:00
Olivier Bertrand
fe6d5f497c - Fix GetTypeID (to take care of supported features)
and IsFileType functions (INI was missing)

modified:
  storage/connect/mycat.cc

- Update test result

modified:
  mysql-test/suite/connect/r/null.result
2013-03-21 12:16:56 +01:00
Alexander Barkov
356402356a Removing executable flag.
modified:
  storage/connect/ha_connect.cc*
2013-03-21 11:34:58 +04:00
Olivier Bertrand
fff28085d8 - A specified table type not supported is now flagged as an error
instead of being replaced by the default type DOS.

modified:
  mysql-test/suite/connect/r/general.result
  mysql-test/suite/connect/t/general.test
  storage/connect/ha_connect.cc
2013-03-20 23:42:23 +01:00
Olivier Bertrand
964a423d2c - Fix a bug causing the index file not being made or erased on statements
such as CREATE INDEX, DROP INDEX, ALTER TABLE... ADD INDEX etc.

modified:
  storage/connect/ha_connect.cc
2013-03-20 00:52:32 +01:00
Olivier Bertrand
5746fcc9e1 - Make INI and XML tables not writing null column values
modified:
  mysql-test/suite/connect/r/dbf.result
  storage/connect/tabsys.cpp
  storage/connect/tabxml.cpp
  storage/connect/tabxml.h
2013-03-19 19:41:50 +01:00
Olivier Bertrand
19e9fa45ea - Use all columns in case of INSERT so default values are generated for
columns not specified in the statemant.

modified:
  storage/connect/ha_connect.cc
2013-03-19 18:45:05 +01:00
Olivier Bertrand
5008a3e897 - Add in create a check for nullable columns not supported by some table types.
modified:
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/mycat.h
2013-03-17 11:31:11 +01:00
Olivier Bertrand
d2b6d80bc8 - A quick and dirty fix for erased or not erased files when executing an
Alter table on an auto-generated CONNECT table.

modified:
  storage/connect/ha_connect.cc
2013-03-15 00:11:46 +01:00
Olivier Bertrand
1c4a3eb9a6 - Fix bug on ALTER TABLE t1 MODIFY a VARCHAR(10) NOT NULL;
modified:
  storage/connect/ha_connect.cc
2013-03-13 16:06:02 +01:00
Olivier Bertrand
fe39ea1b03 - Make Tiny compatible with DBF tables.
modified:
  storage/connect/filamdbf.cpp
2013-03-13 14:37:34 +01:00
Olivier Bertrand
74115f5fa3 - Commit changes from ubuntu
modified:
  storage/connect/ha_connect.cc*
2013-03-13 02:02:44 +01:00
unknown
14f3d5a6c3 - Fix a GCC compile error (crosses initialization of pos) an change
_O_CREAT to O_CREAT

modified:
  storage/connect/ha_connect.cc
  
- Change mode to -x

modified:
  mysql-test/suite/connect/t/index.test*
  storage/connect/filamap.cpp*
2013-03-13 01:56:01 +01:00
Olivier Bertrand
b210168752 - Handle delete_table and rename_table for CONNECT tables whose files are
auto generated and must be erased or renamed on Drop or Rename Table.
  TODO: Take care of eventual index files.

modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2013-03-13 01:10:20 +01:00
Olivier Bertrand
7572315ecd - New handling of default file name:
Not added as an option but handled when the table is used.
  An empty file is created in the database directory if not exists.

modified:
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/tabdos.cpp
  storage/connect/tabmul.cpp
  storage/connect/tabsys.cpp
  storage/connect/tabxml.cpp
2013-03-12 01:20:52 +01:00
Olivier Bertrand
a2ca685661 - somethin about property
modified:
  storage/connect/filamap.cpp*
2013-03-11 18:40:55 +01:00
unknown
ad020e2c45 - Resetting chmod to non executable
modified:
  storage/connect/maputil.cpp*
2013-03-11 18:35:51 +01:00
Olivier Bertrand
dd72f03f95 - Fix a bug on DBF file name such as 'x/y.dbf' leading to a crash on Insert.
modified:
  storage/connect/filamdbf.cpp
2013-03-11 17:47:27 +01:00
Olivier Bertrand
17fb343a5c - Add tiny integer as a supported type by CONNECT
modified:
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/myutil.cpp
  storage/connect/plgdbutl.cpp
  storage/connect/tabdos.cpp
  storage/connect/tabwmi.cpp
  storage/connect/valblk.cpp
  storage/connect/valblk.h
  storage/connect/value.cpp
  storage/connect/value.h
  storage/connect/xobject.cpp
2013-03-11 16:52:59 +01:00
Olivier Bertrand
ffc29ac310 - Enable type conversion on Insert and Update
modified:
  storage/connect/connect.cc
2013-03-11 16:51:40 +01:00
Olivier Bertrand
cb1847df32 - Make indexes to be rebuilt on Update only when an indexed column was updated.
modified:
  mysql-test/suite/connect/r/index.result
  mysql-test/suite/connect/t/index.test
  storage/connect/ha_connect.cc
  storage/connect/tabdos.cpp
  storage/connect/xindex.cpp
2013-03-10 19:48:45 +01:00
Olivier Bertrand
7a30ec7231 - XML and INI tables now return NULL when a node does not exist in a row (XML)
or if the key is missing in a section (INI)

modified:
  mysql-test/suite/connect/r/ini.result
  mysql-test/suite/connect/r/xml.result
  storage/connect/tabsys.cpp
  storage/connect/tabxml.cpp

- Do a sub-storage cleanup on info commands and fix a limit of column number
  in ODBCColumns. This was doing a crash for unexpected longjmp when many info
  commands were executed in a row.

modified:
  storage/connect/ha_connect.cc
  storage/connect/odbconn.cpp
2013-03-10 15:10:00 +01:00
Olivier Bertrand
c7b95cb9df - Delete ALL or truncate must not be done using file mapping.
modified:
  storage/connect/tabdos.cpp
  storage/connect/tabfix.cpp
  storage/connect/tabvct.cpp
2013-03-08 22:48:27 +01:00
Olivier Bertrand
3342df63ef - Commit changes on memory mapping that hopefully should now work on Linux.
modified:
  storage/connect/maputil.cpp
  storage/connect/tabdos.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabvct.cpp
2013-03-08 18:29:05 +01:00
Olivier Bertrand
69154073d9 - Until the problem is fixed, temporarily not use mapping on Linux for Update.
modified:
  storage/connect/tabdos.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabvct.cpp
2013-03-08 01:09:53 +01:00
Olivier Bertrand
07beddc421 - Working on the problem of writing to mapped files on Linux
modified:
  storage/connect/maputil.cpp*
2013-03-08 00:41:24 +01:00
Olivier Bertrand
274b2f8c4a - Fix a bug causing the server to crash when writing on a memory mapped
file on Linux.

modified:
  storage/connect/maputil.cpp
2013-03-07 23:05:54 +01:00
Olivier Bertrand
079f053c66 - Fix bug causing a crash when writing to a memory mapped file on Linux.
modified:
  storage/connect/maputil.cpp
2013-03-07 22:56:52 +01:00
Olivier Bertrand
eab8fcfa3f - Set file name when unspecified as tablename.tabletype.
modified:
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/mycat.h
2013-03-07 21:38:00 +01:00
Olivier Bertrand
bc9c872483 - Calculate default date field length from the specified format.
modified:
  storage/connect/ha_connect.cc
2013-03-07 18:53:41 +01:00
Olivier Bertrand
5d7d579c8f - In index.test t1 was back to T1! fixed
modified:
  mysql-test/suite/connect/t/index.test*

- Line endings restored to LF only

modified:
  storage/connect/CMakeLists.txt
2013-03-06 11:27:47 +01:00
unknown
1e114f73ad - Changing mode to -x
modified:
  mysql-test/suite/connect/t/index.test
  storage/connect/connect.cc*
  storage/connect/myconn.cpp*
  storage/connect/value.cpp*
2013-03-06 11:16:29 +01:00
Olivier Bertrand
6452fd3065 - Fix wrong format used in ScanRecord for MYSQL_TYPE_TIME
- Change field option BUF_LENGTH to FIELD_LENGTH. It now used to specify
  the field length of DATE columns (MySQL doesn't allow to give a length)

modified:
  storage/connect/ha_connect.cc
2013-03-05 19:30:40 +01:00
Olivier on SAMSUNG 64-bits
25fc1b0308 - Add domdoc.h in source list
modified:
  storage/connect/CMakeLists.txt
2013-03-04 17:49:20 +01:00
Olivier Bertrand
50beff5cbf - FIX a bug causing a crash when deleting a mapped table
modified:
  storage/connect/filamap.cpp
2013-03-04 00:42:39 +01:00
Olivier Bertrand
6a09944072 - FIX a BUG: error (wrong value set) in:
update xempl set ddentree = adddate(ddentree, interval 16 year);
  The same value sdval was used to convert MySQL dates to CONNECT date
  value and CONNECT dates to MySQL date. This was wrong in update because
  the second time the wrong value was used converting to incoherent values.
  There are now 2 separate values used: sdvalin and sdvalout.

modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2013-03-03 15:37:27 +01:00
Olivier Bertrand
8103dd5e88 - Some end of lines changed from CRLF to LF
modified:
  storage/connect/reldef.h
  storage/connect/tabxml.h
  storage/connect/value.h
2013-03-02 22:30:40 +01:00
Olivier Bertrand
5972b56a6d - Fix conversion bug for MS-DOM XML tables. The node content was written
and read as if the table DATA_CHARSET was ANSI instead of UTF-8. Warning
  are now provided when the read content of a node is truncated.

modified:
  storage/connect/domdoc.cpp
  storage/connect/domdoc.h
  storage/connect/libdoc.cpp
  storage/connect/libdoc.h
  storage/connect/plgxml.h
  storage/connect/tabxml.cpp

- Conditional compilation of pre_create depending on the MARIADB setting.

modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2013-03-02 17:58:18 +01:00
Olivier Bertrand
3734dfb3b6 - MySQL connection was not close if mysql_real_connect failed.
modified:
  storage/connect/myconn.cpp
2013-03-02 01:02:59 +01:00
unknown
073b0e7731 - MySQL connection was not closed in case of error
modified:
  storage/connect/myconn.cpp
2013-03-02 00:09:15 +01:00
Olivier Bertrand
63798ef4a5 - Rewrite some VALBLK classes as templates
- Correct typo initializing datm in DTVAL::MakeDate as {0,0,0,2,0,70,0,0,0}
  instead of {0,0,0,1,0,70,0,0,0}

modified:
  storage/connect/valblk.cpp
  storage/connect/valblk.h
  storage/connect/value.cpp
  storage/connect/value.h
2013-03-01 22:23:40 +01:00
Olivier Bertrand
cdf3606b38 - Begin fixing memory leaks
modified:
  storage/connect/connect.cc
  storage/connect/plugutil.c
2013-03-01 22:21:48 +01:00
Olivier Bertrand
612b8c5500 - Fix warning on missing initial values on Linux
modified:
  storage/connect/connect.cc*
  storage/connect/value.cpp*
2013-03-01 00:41:04 +01:00
unknown
0a05caf29f - Fix memory leak
modified:
  storage/connect/connect.cc
  
- GCC requires template<> headers

modified:
  storage/connect/value.cpp
2013-03-01 00:29:48 +01:00
Olivier Bertrand
bf6c3f5133 - Second version of template value classes
The first one did not compile with GCC on Linux

modified:
  storage/connect/value.cpp
  storage/connect/value.h
2013-02-28 22:50:26 +01:00
Olivier Bertrand
812c1a7f6b - Modify the way value.h and valblk.h are included to try fixing
the gcc error: invalid use of incomplete type

modified:
  storage/connect/myconn.cpp
  storage/connect/xobject.h
2013-02-27 23:32:34 +01:00
Olivier Bertrand
7879632cea - Change Subclass name from TYPE to T
modified:
  storage/connect/value.h
2013-02-27 22:54:42 +01:00
Olivier Bertrand
7132c590ca - Fix a miscalculation of column length in ODBCTables
- Clean code in Value.h

modified:
  storage/connect/odbconn.cpp
  storage/connect/value.h
2013-02-27 22:42:50 +01:00
Olivier Bertrand
fa4aa616a1 - Rewriting the VALUE classes as template classes
modified:
  storage/connect/tabdos.cpp
  storage/connect/tabdos.h
  storage/connect/tabmysql.cpp
  storage/connect/tabodbc.cpp
  storage/connect/tabsys.cpp
  storage/connect/tabxml.cpp
  storage/connect/value.cpp
  storage/connect/value.h
  storage/connect/xobject.h
2013-02-27 16:42:59 +01:00
Olivier Bertrand
edd161587e - Catalog table: Use XFLD as Flag value instead of column index.
- Use the COLDEF flag to initialize column nullable value.
- Fix a bug on inserting null values in MYSQL tables.

modified:
  storage/connect/colblk.cpp
  storage/connect/connect.cc
  storage/connect/ha_connect.cc
  storage/connect/odbconn.cpp
  storage/connect/plgdbsem.h
  storage/connect/table.cpp
  storage/connect/tabmysql.cpp
2013-02-25 22:44:42 +01:00
Olivier Bertrand
2b60525d57 - Add support to NULL values. This concern the MYSQL
and ODBC table types. Not supported yet for indexes.

modified:
  storage/connect/colblk.cpp
  storage/connect/colblk.h
  storage/connect/connect.cc
  storage/connect/ha_connect.cc
  storage/connect/tabmysql.cpp
  storage/connect/tabodbc.cpp
  storage/connect/valblk.cpp
  storage/connect/valblk.h
  storage/connect/value.cpp
  storage/connect/value.h
  storage/connect/xindex.cpp
2013-02-24 01:23:18 +01:00
Olivier Bertrand
a769cb2fc5 - Add header files to source files
modified:
  storage/connect/CMakeLists.txt
2013-02-22 22:46:52 +01:00
Olivier Bertrand
0a280eb8bd - Commiting merges
Simplify update in pre_create

modified:
  mysql-test/suite/connect/r/mysql.result
  mysql-test/suite/connect/t/mysql.test
  mysql-test/suite/connect/t/xml.test
  storage/connect/CMakeLists.txt
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
2013-02-22 22:04:47 +01:00
Olivier Bertrand
553964dc70 - Suppress warning on non virtual descriptor
modified:
  storage/connect/CMakeLists.txt
2013-02-22 19:21:34 +01:00
Olivier Bertrand
ebc8a6ef0c - Fix connect string wrongly used when zero length
modified:
  storage/connect/tabmysql.cpp
2013-02-22 18:32:47 +01:00
Olivier Bertrand
b535cb9874 - Add the support of URL connection string fo MYSQL tables
Federated servers are not yet supported.

modified:
  storage/connect/ha_connect.cc
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
2013-02-22 17:26:08 +01:00
Alexander Barkov
aa92de5a70 Adding a reminder.
modified:
  storage/connect/CMakeLists.txt
2013-02-22 16:53:42 +04:00
Alexander Barkov
d899840afb - Adding tests for DBNAME=<unknown database name>.
- Fixing a bug that DBNAME value was forgotten when followed by OPTION_LIST.

modified:
  mysql-test/suite/connect/r/mysql.result
  mysql-test/suite/connect/t/mysql.test
  storage/connect/ha_connect.cc
2013-02-22 13:12:09 +04:00
Alexander Barkov
38210b1145 Skip test XML if no XML support is compiled.
modified:
  mysql-test/suite/connect/t/xml.test
  storage/connect/mycat.cc
2013-02-22 12:52:56 +04:00
Olivier Bertrand
24672d2db8 - Oops! db was no more initialized in pre-create. Fixed
modified:
  storage/connect/ha_connect.cc
  mysql-test/suite/connect/r/mysql.result  (merged)
  mysql-test/suite/connect/t/mysql.test    (merged)
2013-02-21 17:59:58 +01:00
Olivier Bertrand
183698b779 - Change DB_NAME option name to DBNAME. Temporarily, "database" is still
accepted in OPTION_LIST for compatibity but DB_NAME is no more recognized.

modified:
  storage/connect/ha_connect.cc
2013-02-21 17:48:35 +01:00
Olivier Bertrand
9d7f134186 - Fix bad conversion from "bigint" to TYPE_FLOAT.
modified:
  storage/connect/myutil.cpp
2013-02-21 12:30:40 +01:00
Olivier Bertrand
9716acfcc3 - Re-install blank trimming to have the xml test pass.
Note that the problem if far more complex. To be revisited.

modified:
  storage/connect/libdoc.cpp
  storage/connect/tabxml.h
2013-02-20 23:23:35 +01:00
Olivier Bertrand
b63eb1d8b4 - Fix the elimination of control characters from node content
- Take care of XML special chars (<>& etc.)
- Remove Encode, Decode

modified:
  storage/connect/libdoc.cpp
  storage/connect/libdoc.h

- Neither libmysql.lib nor mysqlclient.lib needed for MYSQL table type

modified:
  storage/connect/CMakeLists.txt
2013-02-20 18:49:18 +01:00
Olivier Bertrand
26bf803c04 - Update the MYSQL table handling to use only client API functions.
It is no more necessary to be liked to libmysql.lib nor mysqlclient.lib.

modified:
  storage/connect/libdoc.cpp
  storage/connect/myconn.cpp
  storage/connect/myconn.h
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
2013-02-20 16:57:38 +01:00
Olivier Bertrand
818d0a5622 Suppress a warning on unused variable.
modified:
  storage/connect/reldef.cpp
2013-02-20 16:54:57 +01:00
Alexander Barkov
d99d3da1d1 Removing the MODULE_ONLY option, to be able to run with valgrind.
(with MODULE_ONLY valgrind does not display file name and line number
if a problem happens inside a dlopen-ed plugin)

modified:
  storage/connect/CMakeLists.txt
2013-02-20 16:43:38 +04:00
Alexander Barkov
ea0e250669 Fixing valgrind warning: uninitialized memory read.
modified:
  storage/connect/ha_connect.cc
2013-02-20 16:05:53 +04:00
Olivier Bertrand
c448839c4f - Fix crash on making an XML table with encoding=XXX
- Set parameters so libxml2 does not anymore add extra characters
  when retrieving several subnodes of a node.
- Make a CONNECT file header (was PlugDB)

modified:
  storage/connect/domdoc.cpp
  storage/connect/libdoc.cpp
  storage/connect/tabxml.cpp

- Change the version number

modified:
  storage/connect/ha_connect.cc

- Begin eliminate use of libmysql functions in MYSQL table type
  Not finished yet

modified:
  storage/connect/myconn.cpp
  storage/connect/myconn.h
2013-02-20 01:30:37 +01:00
Olivier Bertrand
2f48842a0f Commit merged changes. 2013-02-19 12:07:11 +01:00
Alexander Barkov
29cd5363b9 Removing unused code.
modified:
  storage/connect/ha_connect.cc
2013-02-19 14:29:55 +04:00
Alexander Barkov
59e95fe6bb Cmake clean-ups:
- Removing -DMYSQL_DYNAMIC_PLUGIN. Its automatically
  added by MYSQL_ADD_PLUGIN
- Replacing "IF(!XXX)" to "IF(NOT XXX)". The former is a wrong cmake syntax.

modified:
  storage/connect/CMakeLists.txt
2013-02-19 13:53:24 +04:00
Olivier Bertrand
c1f244610b Don't why bazaar asked me to commit what was merged 2013-02-18 18:46:50 +01:00
Alexander Barkov
f41aadfaed Adding DATA_CHARSET table option. 2013-02-18 19:21:52 +04:00
Olivier Bertrand
739632cbe0 Moved PushWarning out of HAVE_PSI_INTERFACE brackets
Modified:
ha_connect.cc
2013-02-18 12:23:50 +01:00
Olivier Bertrand
8e1c194904 Modification of the ODBConn class to change m_henv member from
static to dynamic. Apparently this caused errors with a obscure
message saying "Invalid handle vale" (probably m_henv).

Modified:
odbconn.h
odbconn.cpp
2013-02-18 00:18:32 +01:00
Olivier Bertrand
618ce65aff Modification of the DBX class to have more information
in case of error while processing ODBC type tables.

Modified:
odbconn.h
odbconn.cpp
2013-02-17 11:34:40 +01:00
Olivier Bertrand
df1dfcff6c Put trace in ODBC source files
modified:
  storage/connect/odbconn.cpp
  storage/connect/tabodbc.cpp
2013-02-15 22:31:13 +01:00
Olivier Bertrand
a2cf90d9ce Suppress multiple blanks and control characters from the
node text retrieved by libxml2.

Modified:
libdoc.cpp
2013-02-15 15:53:27 +01:00
Olivier Bertrand
33b2c6fe7b Fixed a bug in ha_connect::GetListOption causing a crash
when passed a NULL oplist argument.

Modified:
ha_connect.cc
2013-02-15 02:15:48 +01:00
Olivier Bertrand
f83588a0f9 Implementing pre_create option test and setting of default values.
Currently, only TABLE_TYPE is tested, and if wrong or unspecified,
is replaced by the default value DOS.

- Test on type was moved from create to pre_create
- pre_create is now called unconditionally and must return true
  on error and false otherwise.
- Warnings are produced if the table type was changed.
- The errors have specific error messages (instead of being warnings
  with an error message telling that a table must have columns)

Modified:
ha_connect.cc
ha_connect.h
handler.h
sql_table.cc
2013-02-15 01:33:23 +01:00
Alexander Barkov
3a91f1a998 Code reorganization in the initialization and clean-up code.
- Getting rid of some duplicate code in the Windows and Linux sections
- Moving the initializationa and clean-up code to connect_init_func()
  and connect_done_func(). This allows to use services provided by
  mysqld, for example my_snprintf(), which do not work in
  "__attribute__((constructor))init()".
- Removing the "__attribute__((constructor)) init()" and
  "__attribute__((destructor)) fini()" functions
- Using MariaDB's my_getpw() instead of different calls for Windows
  and Linux.
- Fixing a potentially wrong memory write in strcat() when creating
  the full connect.ini file name.
  strcat() can go outside of the buffer size when directory name is
  long enough. Using safe my_snprintf() instead.

modified:
  storage/connect/ha_connect.cc
2013-02-14 17:41:10 +04:00
Olivier Bertrand
3f2d762aa8 2013-02-14 01:51:05 +01:00
Olivier Bertrand
15470f5d12 Warning message changed in ha_connect::check_if_incompatible_data.
Modified:
ha_connect.cc
2013-02-14 01:37:17 +01:00
Olivier Bertrand
481916ffda Update ha_connect::pre_create to restore the code translating
of SQL types previously done in the removed function MyODBCCols.

Modified:
ha_connect.cc
2013-02-14 00:32:29 +01:00
Olivier Bertrand
fb1ff4e9f5 Fix a typo that caused CONNECT to crash on ODBC catalog tables
in ODBCDEF::DefineAM line 106

Modified:
tabodbc.cpp
2013-02-14 00:26:03 +01:00
Olivier Bertrand
c523370389 Fix bug on readonly table option not recognized
in TABDEF::Define line 104

Modified:
reldef.cpp

Add a warning on alter in check_if_incompatible_data.

Modified:
ha_connect.cc
2013-02-13 00:51:41 +01:00
Olivier Bertrand
5fc2a7dadd Add a test on table types in ha_connect::create
- The plan was to provide a default type (DOS) when the table type
was unspecified, wring, or not supported.
- However, this is not possible here because create is called after
the FRM file was generated.
- Currently, this is flagged as an error and the create aborts.

Modified:
ha_connect.cc
2013-02-12 22:37:38 +01:00
Olivier Bertrand
83b7fb0f47 Fix a bug causing all tests to fail.
In mycat.cc line 308
+ correc typo in plgdbsem

Modified:
mycat.cc
plgdbsem.h
2013-02-12 18:39:29 +01:00
Olivier Bertrand
88c76f3b70 All use of a character to represent table types or
catalog functions have been changed:

Table_types are now internally represented be enum TABTYPE.
Catalog function names are internally translated to a uint.

The function GetTypeID was modified accordingly and a new
function GetFuncID was implemented in mycat.cc.

Modified:
ha_connect.cc
odbccat.h
odbconn.cpp
tabodbc.cpp
tabfmt.cpp
tabmysql.h
tabmysql.cpp
tabwmi.cpp
mycat.h
mycat.cc
plgdbsem.h
reldef.h
tabdos.cpp
rcmsg.h
2013-02-12 12:34:14 +01:00
Alexander Barkov
b91386c2f6 Changing maximum possible column length for DBF tables from 11 to 10.
There is actually one extra byte for the 11th character, however it seems
to be meant for the '\0' terminating byte in the DBF specifications.
Also, the third party software (e.g. OpenOffice) do not correctly open
tables with column length=11.

modified:
  mysql-test/suite/connect/r/dbf.result
  mysql-test/suite/connect/t/dbf.test
  storage/connect/ha_connect.cc
2013-02-12 14:58:58 +04:00
Alexander Barkov
2adf52b85e Fixing ini.test failure on Linux:
No need to print "\n" before the very first section.

modified:
  storage/connect/inihandl.c
2013-02-11 18:32:40 +04:00
Alexander Barkov
4902861155 Adding test for ENGINE=VEC
added:
  mysql-test/suite/connect/r/vec.result
  mysql-test/suite/connect/t/vec.test
modified:
  storage/connect/plgdbutl.cpp
2013-02-11 17:50:01 +04:00
Alexander Barkov
ebf2da0045 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
2013-02-11 10:16:52 +04:00
Olivier Bertrand
f6ca3b05f2 Bug fixed: Column charset were not handled on read.
Modified: ha_connect.cc (MakeRecord)

Moved PlgAllocResult to plgdbutl.cpp
Modified:
mycat.cpp
plgdbutl.cpp

Continuing implementing the "catalog" tables (ex "info").
Already existing were the ODBC data source table and the
WMI column info table.

The common way to handle them was modified to enable each
table types to send personalized data.

Now takes care of all existing catalog functions for table
types that can retrieve and use such information.

Modified:
ha_connect.cc
odbconn.cpp
tabodbc.h
tabodbc.cpp
tabfmt.h
tabfmt.cpp
tabmysql.h
tabmysql.cpp
tabwmi.h
tabwmi.cpp
myconn.h
myconn.cpp
filamdbf.cpp
plgdbsem.h
reldef.h
reldef.cpp
tabdos.h
tabdos.cpp
tabfix.h
xtable.h
table.cpp
2013-02-11 00:31:03 +01:00
Olivier Bertrand
82e746ea1b Put almost all function prototypes in header files that are
included by the program using them.

Continuing implementing the "catalog" tables (ex "info").
Already existing were the ODBC data source table and the
WMI column info table.

A common way to handle them will permit to develop many
other such tables. Implemented:

The ODBC column catalog table.
The ODBC tables catalog table.
The ODBC drivers catalog table.

The INFO table option is replaced by the CATFUNC string option
whode first letter specifies the information to retrieve:
C: Columns (of a table)
T: Tables  (of a database)
S: Data sources
D: Drivers

Modified:
ha_connect.cc
odbconn.cpp
odbconn.h
tabodbc.h
tabodbc.cpp
rcmsg.c
tabfmt.h
tabmysql.cpp
tabwmi.cpp
tabwmi.h
resource.h
myconn.h
filamdbf.h
connect.cc
connect.h

Added:
myutil.h
2013-02-09 01:08:15 +01:00
Olivier Bertrand
ec2112f32d 1) Fix bug on strange sprintf
2) Fix bug on bad sprintf
3) Fix bug on cast from pointer to int

4) Begin implementing the "info" tables.
Already existing were the ODBC sata source table and the
WMI column info table.

A common way to handle them will permit to develop many
other such tables. Implemented:

The ODBC column info table.

Modified:
ha_connect.cc  (4)
odbconn.cpp    (4)
tabodbc.h      (4)
tabodbc.cpp    (4)
tabsys.h       (3)
rcmsg.c        (4)
tabfmt.cpp     (2)
tabtbl.cpp     (1)
resource.h     (4)
mycat.h        (4)
2013-02-08 03:48:47 +01:00
Olivier Bertrand
2809803ee2 1) Fix bug on strange sprintf
2) Fix bug on bad sprintf
3) Fix bug on cast from pointer to int

4) Begin implementing the "info" tables.
Already existing were the ODBC sata source table and the
WMI column info table.

A common way to handle them will permit to develop many
other such tables. Implemented:

The ODBC column info table.

Modified:
ha_connect.cc  (4)
odbconn.cpp    (4)
tabodbc.h      (4)
tabodbc.cpp    (4)
tabsys.h       (3)
rcmsg.c        (4)
tabfmt.cpp     (2)
tabtbl.cpp     (1)
resource.h     (4)
mycat.h        (4)
2013-02-08 03:27:12 +01:00
Olivier Bertrand
38edf74a3c 1) Fix bug on strange sprintf
2) Fix bug on bad sprintf
3) Fix bug on cast from pointer to int

4) Begin implementing the "info" tables.
Already existing were the ODBC sata source table and the
WMI column info table.

A common way to handle them will permit to develop many
other such tables. Implemented:

The ODBC column info table.

Modified:
ha_connect.cc  (4)
odbconn.cpp    (4)
tabodbc.h      (4)
tabodbc.cpp    (4)
tabsys.h       (3)
rcmsg.c        (4)
tabfmt.cpp     (2)
tabtbl.cpp     (1)
resource.h     (4)
mycat.h        (4)
2013-02-08 00:46:10 +01:00
Alexander Barkov
7f08277b8d Fixing "unused label" warning.
modified:
  storage/connect/CMakeLists.txt
  storage/connect/tabmul.cpp
2013-02-08 01:40:55 +04:00
Alexander Barkov
2787dcb05e Fixing a warning:
> deleting object of polymorphic class type ‘CATALOG’ which
> has non-virtual destructor might cause undefined behaviour
> [-Wdelete-non-virtual-dtor]

Classes whose instances are destroyed using "delete"
should have virtual destructors.

modified:
  storage/connect/catalog.h
2013-02-08 01:31:46 +04:00
Alexander Barkov
03259f8540 Fixing a warning:
Changing result type for the method from "char*" instead of "const char*".

modified:
  storage/connect/odbconn.h
2013-02-07 19:19:20 +04:00
Alexander Barkov
587a40c17e Fixing a warning:
KXYCOL::Kof’ will be initialized after ‘void*& KXYCOL::To_Bkeys’ [-Wreorder]

modified:
  storage/connect/xindex.cpp
2013-02-07 19:10:35 +04:00
Alexander Barkov
2cc5fd06b1 Commenting switches that are specific to C or C++ only.
modified:
  storage/connect/CMakeLists.txt
2013-02-07 18:35:32 +04:00
Alexander Barkov
494ef9d073 Fixing compilation problems on Windows (due to the previous commit).
modified:
  storage/connect/ha_connect.cc
2013-02-07 18:27:48 +04:00
Alexander Barkov
850220d1c4 Disable only *some* warning types instead of *all* types.
We need to fix and enable all warnings gradually.

modified:
  storage/connect/CMakeLists.txt
2013-02-07 18:20:05 +04:00
Alexander Barkov
f8f79d9334 Fixing wrong sprintf() calls.
modified:
  storage/connect/filamap.cpp
  storage/connect/filamdbf.cpp
  storage/connect/filamfix.cpp
  storage/connect/filamtxt.cpp
  storage/connect/filamvct.cpp
  storage/connect/ha_connect.cc
  storage/connect/osutil.c
  storage/connect/plgdbutl.cpp
  storage/connect/plugutil.c
  storage/connect/tabfix.cpp
  storage/connect/tabxml.cpp
  storage/connect/user_connect.cc
  storage/connect/value.cpp
  storage/connect/xindex.cpp
2013-02-07 17:56:48 +04:00
Alexander Barkov
40398f3660 Fixing some of the compilation warnings. 2013-02-07 16:37:44 +04:00
Alexander Barkov
8cfa84ca87 Fixing compilation warnings:
Using "bool" in pure C code is not a good idea.
- Defining BOOL as "long" on Unix (this is how MS defines it)
- Replacing bool to BOOL in pure C code.

modified:
  storage/connect/global.h
  storage/connect/inihandl.c
  storage/connect/os.h
  storage/connect/osutil.c
  storage/connect/osutil.h
2013-02-07 15:21:56 +04:00
Alexander Barkov
48ca5c6b44 Fixing redundant declaration.
modified:
  storage/connect/os.h
  storage/connect/osutil.h
2013-02-07 14:47:08 +04:00
Alexander Barkov
f3302230bd Removing reduntant ODBC constants.
Use "#include <sql.h>" when needed.

modified:
  storage/connect/catalog.h
2013-02-07 14:26:44 +04:00
Alexander Barkov
30c4b0ebc2 - Fixing TAB to 2 spaces
- Fixing line endings from "\r\n" to "\n"
2013-02-07 13:34:27 +04:00
Alexander Barkov
22a8fb03db Introducing functions global_open() and global_fopen() for these purposes:
- Removing duplicate code to generate error message text
- In the future they will most likely check secure_file_priv directory.


modified:
  storage/connect/filamdbf.cpp
  storage/connect/filamfix.cpp
  storage/connect/filamtxt.cpp
  storage/connect/filamvct.cpp
  storage/connect/libdoc.cpp
  storage/connect/maputil.cpp
  storage/connect/plgdbsem.h
  storage/connect/plgdbutl.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabmul.cpp
  storage/connect/tabxml.cpp
  storage/connect/xindex.cpp
2013-02-06 15:17:34 +04:00
Olivier Bertrand
1830e732fb Make possible to get ODBC DataSources name and description by:
create table datasrc (
`anyname` varchar(256) flag=1,
`anyother name` varchar(256) flag=2)
engine=CONNECT table_type=ODBC option_list='info=yes';

or simply by:

create table datasrc engine=CONNECT table_type=ODBC option_list='info=yes';

then:

select * from datasrc;

Modified:
ha_connect.cc
odbconn.h
odbconn.cpp
tabodbc.h
tabodbc.cpp
2013-02-05 01:56:22 +01:00
Alexander Barkov
a38ae86951 Removing iconv dependency.
Using MariaDB in-house character set conversion routines.

modified:
  storage/connect/CMakeLists.txt
  storage/connect/tabodbc.cpp
  storage/connect/tabodbc.h
2013-02-04 13:28:34 +04:00
Alexander Barkov
dc6e20bda4 Fixing my_charset_utf8_bin to my_charset_utf8_general_ci.
The formed required strings.lib in Windows.
The latter is an exported symbol from mysqld and does not need strings.lib.

modified:
  storage/connect/ha_connect.cc
  storage/connect/libdoc.cpp
2013-02-04 11:37:35 +04:00
Olivier Bertrand
e89cb7f27a Translate column names to UTF-8 in ha_connect::pre_create. 2013-02-03 01:13:13 +01:00
Olivier Bertrand
9ca150aa2c 2>libdoc.cpp
2>D:\CommonSource\mariadb-10.0\include\my_pthread.h(120) : warning C4005: '_REENTRANT' : redéfinition de macro
2>        D:\Libxml\include\libxml/xmlexports.h(77) : voir la définition précédente de '_REENTRANT'
2>.\libdoc.cpp(378) : error C2664: 'strlen' : impossible de convertir le paramètre 1 de 'xmlChar *' en 'const char *'
2>        Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
2>.\libdoc.cpp(379) : error C2664: 'copy_and_convert' : impossible de convertir le paramètre 4 de 'xmlChar *' en 'const char *'
2>        Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
2>

Fix for that.
2013-02-02 00:18:32 +01:00
Alexander Barkov
f1b87189c6 Fixing a typo:
#ifdef defined(XXX) ->
#ifdef XXX
2013-02-01 21:42:36 +04:00
Alexander Barkov
7a8402c98d Replacing iconv converstion routines in libdoc.cc to MariaDB routines.
TODO: Access to Field->charset() instead of hardcoded latin1 conversion.

modified:
  storage/connect/libdoc.cpp
  storage/connect/libdoc.h
2013-02-01 17:28:13 +04:00
Alexander Barkov
dde8622c20 More XML related definitions are now more friendly:
- LIBXML2_SUPPORT is defined if LibXml2 is found
- DOMDOC_SUPPORT  is defined if msxml is found
- XML_SUPPORT is defined if either of them are found

NOXML2 was removed

modified:
  storage/connect/CMakeLists.txt
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/plgdbutl.cpp
  storage/connect/plgxml.cpp
2013-02-01 14:55:11 +04:00
Alexander Barkov
733ab86c25 Adding an option to switch off ICONV support:
cmake -DCONNECT_WITH_ICONV=0

modified:
  storage/connect/CMakeLists.txt
  storage/connect/tabodbc.cpp
  storage/connect/tabodbc.h
2013-02-01 13:36:56 +04:00
Alexander Barkov
f09ae60d30 Fixing to use my_interval_timer() instead of ftime().
The later is not portable (e.g. it does not exist on FreeBSD)

modified:
  storage/connect/ha_connect.cc
  storage/connect/user_connect.cc
  storage/connect/user_connect.h
2013-02-01 12:49:04 +04:00
Alexander Barkov
3d8ef8bf2f ftime does not exist on FreeBSD.
Hiding calls for ftime() as a temporary fix.

This code should be modified to use my_time_microseconds() instead.
2013-02-01 16:11:55 +04:00
Alexander Barkov
d10116292b Adding separate flags to disable MSXML and LIBXML2 libraries on Windows:
-DCONNECT_WITH_LIBXML2=0
-DCONNECT_WITH_MSXML=0

modified:
  storage/connect/CMakeLists.txt
2013-02-01 10:06:32 +04:00
Olivier Bertrand
627d046df5 DBF type N is now BIGINT when length is > 10.
Fix ha_connect::external_lock to use F_RDLCK, F_WRLCK, F_UNLCK.
2013-01-31 22:55:56 +01:00
Olivier Bertrand
ad41e7ee40 Fix incorrect DBF type setting for SORT and BIGINT. 2013-01-31 00:58:22 +01:00
Olivier Bertrand
29df840a11 Fix problems with ODBC raised by Adding the type TYPE_BIGINT (longlong). 2013-01-30 00:15:54 +01:00
Olivier Bertrand
74b51d9525 Fix problems with ODBC raised by Adding the type TYPE_BIGINT (longlong). 2013-01-30 00:00:10 +01:00
Olivier Bertrand
26b00be332 Fix problems with ODBC raised by Adding the type TYPE_BIGINT (longlong). 2013-01-29 23:40:34 +01:00
Alexander Barkov
c87004d817 Removing os2def.h
removed:
  storage/connect/os2def.h
modified:
  storage/connect/fmdlex.c
  storage/connect/maputil.cpp
  storage/connect/tabcol.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabmul.cpp
  storage/connect/tabmysql.cpp
2013-01-29 23:23:03 +04:00
Alexander Barkov
a9d06e1066 Adding a comment why TranslateSQLType is exported.
modified:
  storage/connect/value.h
2013-01-29 21:37:39 +04:00
Alexander Barkov
258c6d479e Removing redundant declaration of ulonglong.
It's defined in my_global.h which is included through handler.h

modified:
  storage/connect/connect.cc
2013-01-29 20:00:01 +04:00
Alexander Barkov
18e02f0608 Fixing compilation failure caused by wrong definition of DWORD
in unixODBC headers on 64-bit platforms.
Moving function definitions from value.cpp to odbconn.cpp.
Changing scope of GetSQLType and GetSQLCType from public to static.


modified:
  storage/connect/odbconn.cpp
  storage/connect/value.cpp
  storage/connect/value.h
2013-01-29 19:35:17 +04:00
Alexander Barkov
ab76cdb236 Compilation failed on Debian 32-bit.
Fixing DWORD definition once again as "unsigned long",
which is the way how MS defines it.

modified:
  @ storage/connect/os.h
    Changing DWORD defitition

  @ storage/connect/tabodbc.cpp
    Moving "#define NODW" to proper place.
2013-01-29 19:15:22 +04:00
Alexander Barkov
d78d3d4fc9 Removing more duplicate declarations.
Fixing DWORD declaration to "unsigned int".
Fixing BIGINT declatation from uint64_t to longlong.
2013-01-29 17:30:02 +04:00
Alexander Barkov
eb1633776a Adding os.h forgotten in the previous changeset.
added:
  storage/connect/os.h
2013-01-29 21:16:56 +04:00
Alexander Barkov
7d0887e0d8 Moving duplicate data type declatations into os.h.
modified:
  storage/connect/global.h
  storage/connect/inihandl.c
  storage/connect/osutil.h
2013-01-29 21:14:59 +04:00
Alexander Barkov
780463cc25 Adding detection of msxml library version:
msxml2, msxml3, msxml4, msxml6

modified:
  storage/connect/CMakeLists.txt
  storage/connect/domdoc.cpp
2013-01-28 19:49:46 +04:00
Alexander Barkov
501fc7642f Defining __STDC__, otherwise it does not compile on Windows
modified:
  storage/connect/fmdlex.c
2013-01-28 18:11:51 +04:00
Alexander Barkov
4f9e09efb4 Fixing ODBC related compilation failures:
- without ODBC: adding a few "#ifdef CONNECT_SUPPORT"
- with ODBC on Linux: conflicting definitions for DWORD
  in sql.h (unixODBC) vs global.h.
  Using "typedef unsigned int DWORD", as this is how MS SQK defines it
  and matches unixODBC definition.

Removing sqlutil.h. value.cpp now uses sql.h and sqlext.h instead.


removed:
  storage/connect/sqlutil.h
modified:
  storage/connect/global.h
  storage/connect/value.cpp
  storage/connect/value.h
2013-01-28 13:42:14 +04:00
Alexander Barkov
6690bafca9 Adding a possibility to disable ODBC, XML and MySQL support in CONNECT:
cmake . -DCONNECT_WITH_ODBC=0 -DCONNECT_WITH_XML=0 -DCONNECT_WITH_MYSQL=0

modified:
  storage/connect/CMakeLists.txt
2013-01-28 13:37:50 +04:00
Olivier Bertrand
ba82edd41e Fix problems with ODBC raised by Adding the type TYPE_BIGINT (longlong). 2013-01-24 19:18:54 +01:00
Alexander Barkov
1d67d9bf2f Adding automatic LibXml2 detection for Windows
with searching in a number of typical places.
2013-01-24 15:31:56 +04:00
Alexander Barkov
0ffc852355 Making the OS specific part more readable (indentation).
modified:
  storage/connect/CMakeLists.txt
2013-01-24 14:16:13 +04:00
Olivier Bertrand
9ff78c618c 2013-01-23 22:58:13 +01:00
Alexander Barkov
6242f1bffa Additional change for iphlpapi.lib.
Forgot to add this chunk in the previous commit.
2013-01-24 01:48:00 +04:00
Olivier Bertrand
6ec8f00ae3 Added to CONNECT the missing type TYPE_BIGINT (longlong). 2013-01-23 22:45:25 +01:00
Alexander Barkov
19d98a331d Adding iphlpapi.lib library on Windows.
Needed for Mac utils.
2013-01-24 01:43:37 +04:00
Alexander Barkov
939bfb039f Adding /EHsc flags when compiling on windows.
Required for mycat.cc

modified:
  storage/connect/CMakeLists.txt
2013-01-24 00:08:02 +04:00
Olivier Bertrand
5c8c4f4f8e Test for CSV file imported from Windows. 2013-01-23 00:36:00 +01:00
Alexander Barkov
a8f0f93a2a A Changeset from Olivier:
Added some #if define(... for WIN32, ODBC and MYSQL in case they not defined.

modified:
  storage/connect/ha_connect.cc
2013-01-22 20:08:22 +04:00
Alexander Barkov
bb6b87fdcf Fixing CMakeLists.txt:
- Olivier's changes for Linux/Windows
- Splitting cmake code by feature
2013-01-22 19:36:47 +04:00
Alexander Barkov
37465ea2fe Adding an Olivier's changeset:
pre_create function and one is now able to create table
without giving the column specifications for tables of types:
DBF, ODBC, MYSQL, CSV, and WMI (on Windows)

modified:
  sql/handler.h
  sql/sql_table.cc
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mycat.cc
  storage/connect/odbconn.cpp
  storage/connect/plgcnx.h
  storage/connect/tabfmt.cpp
  storage/connect/tabmysql.cpp
  storage/connect/tabwmi.cpp
2013-01-22 18:14:34 +04:00
Alexander Barkov
2e175a4652 Automatic detection for LIBXML2 and ODBC includes/libraries. 2013-01-22 17:26:12 +04:00
Alexander Barkov
d7143a4160 Adding the CONNECT storage engine sources. 2013-01-18 19:21:44 +04:00