Commit graph

250 commits

Author SHA1 Message Date
Olivier Bertrand
bb597a765d - Add test on MYSQL table self reference during CREATE TABLE
Fix option other ignored when parsing URL

modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/t/mysql.test
  storage/connect/mysql-test/connect/t/mysql_grant.test
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
2013-10-27 10:37:12 +01:00
Olivier Bertrand
0f6bcf73de - Implement the "exec source" feature for table type MYSQL.
modified:
  storage/connect/ha_connect.cc
  storage/connect/myconn.h
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
2013-10-26 17:14:58 +02:00
Olivier Bertrand
ba3f4a2cc9 - Add new features to ODBC table type
Srcdef definition
  Execute command tables
  uncomplete connect string

modified:
  storage/connect/ha_connect.cc
  storage/connect/odbccat.h
  storage/connect/odbconn.cpp
  storage/connect/odbconn.h
  storage/connect/plgdbsem.h
  storage/connect/plgdbutl.cpp
  storage/connect/tabodbc.cpp
2013-10-26 00:43:03 +02:00
Olivier Bertrand
ca4c54aaee - Fix bug when closing some table types
modified:
  storage/connect/tabmul.cpp
  storage/connect/tabmysql.cpp
  storage/connect/tabodbc.cpp

- Add Insert support for ODBC table
  Add the send command feature to ODBC tables
  (not documented yet)

modified:
  storage/connect/ha_connect.cc
  storage/connect/myconn.cpp
  storage/connect/odbccat.h
  storage/connect/odbconn.cpp
  storage/connect/odbconn.h
  storage/connect/tabodbc.cpp
  storage/connect/tabodbc.h
2013-10-11 13:57:56 +02:00
Olivier Bertrand
65b0e5455b - Fix several bugs causing memory leak or invalid access detected
by Valgrind. This concerns the XML libxml2 support.

modified:
  storage/connect/domdoc.cpp
  storage/connect/domdoc.h
  storage/connect/ha_connect.cc
  storage/connect/libdoc.cpp
  storage/connect/plgdbsem.h
  storage/connect/plgxml.h
  storage/connect/tabxml.cpp
  storage/connect/tabxml.h
2013-09-22 13:40:31 +02:00
Olivier Bertrand
670f482f47 - Fix a bug causing wrong charset used when inserting an attibute in
an XML table with DOMDOC.

modified:
  storage/connect/domdoc.cpp

- Add the flag HA_MUST_USE_TABLE_CONDITION_PUSHDOWN.

modified:
  storage/connect/ha_connect.cc

- Update version number

modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/xml.result
2013-08-19 23:42:08 +02:00
Alexander Barkov
18fc51f5a4 Merge with 10.0-connect 2013-08-15 13:31:49 +04:00
Sergey Vojtovich
b7f9c89423 MDEV-4702 - Reduce usage of LOCK_open
Following variables do not require LOCK_open protection anymore:
- table_def_cache (renamed to tdc_hash) is protected by rw-lock
  LOCK_tdc_hash;
- table_def_shutdown_in_progress doesn't need LOCK_open protection;
- last_table_id use atomics;
- TABLE_SHARE::ref_count (renamed to TABLE_SHARE::tdc.ref_count)
  is protected by TABLE_SHARE::tdc.LOCK_table_share;
- TABLE_SHARE::next, ::prev (renamed to tdc.next and tdc.prev),
  oldest_unused_share, end_of_unused_share are protected by
  LOCK_unused_shares;
- TABLE_SHARE::m_flush_tickets (renamed to tdc.m_flush_tickets)
  is protected by TABLE_SHARE::tdc.LOCK_table_share;
- refresh_version (renamed to tdc_version) use atomics.
2013-08-14 12:48:50 +04:00
Olivier Bertrand
bce59293fb -Fix MDEV-4878. Table locking is now supported.
modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/plgdbsem.h

- Fiw a bug making records_in_range sometimes return a negative
  value.

modified:
  storage/connect/xindex.cpp
2013-08-12 21:51:56 +02:00
Olivier Bertrand
af9e618289 - Fix MDEV-4881. SQL_TYPE_DECIMAL was not recognized in ha_connect::GetColumnOption.
Crash on second SELECT was because tshp was not reset to NULL in case of error.

modified:
  storage/connect/ha_connect.cc
  storage/connect/tabutil.cpp
2013-08-11 14:21:38 +02:00
Olivier Bertrand
8bd158c10d - Better message for CONNECT unspported commands
modified:
  storage/connect/ha_connect.cc
2013-08-09 18:53:40 +02:00
Olivier Bertrand
5d75457fc9 - Implement the SERVID special columns. This imply modifying the way
special columns are processed. This will be documented.
  Also some code cleanup and some changes to prepare the indexing of
  nullable columns (not achieve yet)

modified:
  storage/connect/colblk.cpp
  storage/connect/colblk.h
  storage/connect/connect.cc
  storage/connect/connect.h
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/macutil.cpp
  storage/connect/mycat.cc
  storage/connect/plgdbsem.h
  storage/connect/reldef.cpp
  storage/connect/reldef.h
  storage/connect/table.cpp
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
  storage/connect/tabodbc.h
  storage/connect/tabtbl.cpp
  storage/connect/tabutil.h
  storage/connect/value.h
  storage/connect/xindex.cpp
  storage/connect/xindex.h
  storage/connect/xtable.h
2013-08-09 18:02:47 +02:00
Olivier Bertrand
98f3fd6466 - Issue a warning instead of an error when inserting in release built a value
concerning a nullable column wrongly created as indexed (MDEV-4494)

modified:
  storage/connect/ha_connect.cc
2013-08-06 12:17:11 +02:00
Olivier Bertrand
4667125057 - Just update the version number and date
modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/xml.result
2013-07-29 12:26:08 +02:00
Olivier Bertrand
319414398f - Modify discovery to test a new way of adding columns. Currently the
old way is still used if NEW_WAY is not defined.

modified:
  storage/connect/ha_connect.cc
2013-07-25 19:05:57 +02:00
Sergey Vojtovich
b2aea91fcb MDEV-4786 - merge 10.0-monty → 10.0
Fixed connect compilation failure.

storage/connect/csort.cpp:
  min/max are not defined by my_global.h anymore, include osutil.h instead.
storage/connect/filamfix.cpp:
  min/max are not defined by my_global.h anymore, include osutil.h instead.
storage/connect/ha_connect.cc:
  Renamed MYSQL_ERROR -> Sql_condition.
  Renamed KEY::key_parts -> KEY::user_defined_key_parts.
  Adjusted connect according to:
  WL#4305 - storage-engine private data area per physical table.
storage/connect/ha_connect.h:
  Adjusted connect according to:
  WL#4305 - storage-engine private data area per physical table.
storage/connect/inihandl.c:
  min/max are not defined by my_global.h anymore, include osutil.h instead.
storage/connect/osutil.h:
  min/max are not defined by my_global.h anymore, define them for C as well.
storage/connect/taboccur.cpp:
  Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/tabpivot.cpp:
  Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/tabtbl.cpp:
  Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/tabxcl.cpp:
  Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/value.cpp:
  min/max are not defined by my_global.h anymore, include osutil.h instead.
  Include server headers before osutil.h to avoid min/max redefinition.
2013-07-23 18:29:16 +04:00
Olivier Bertrand
b7f435f2ff - Fix bug causing connect_assisted_discovery to fail
on some table types (WMI). In add_field a decimal value
  could be specified for columns not being DOUBLE.

modified:
  storage/connect/ha_connect.cc
2013-07-20 19:22:12 +02:00
Olivier Bertrand
9492c7f15c - Applying temporary restrictions to test files.
This is to suppress some valgrind warnings and consist principally in:
  1 - Not supporting connect_assisted_discovery to all PROXY based table types
  2 - Not supporting the PIVOT table type
  This temporarily until the valgrind errors/warnings are fixed

modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/mysql.result
  storage/connect/mysql-test/connect/r/pivot.result
  storage/connect/mysql-test/connect/r/xcol.result
  storage/connect/mysql-test/connect/t/mysql.test
  storage/connect/mysql-test/connect/t/pivot.test
  storage/connect/mysql-test/connect/t/xcol.test
2013-07-11 17:45:31 +02:00
Olivier Bertrand
b3ad9a97e9 - Suppress some ubuntu compiler warnings
modified:
  storage/connect/connect.cc
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/odbconn.cpp
  storage/connect/osutil.c
  storage/connect/tabutil.cpp
2013-07-08 19:03:15 +02:00
Alexander Barkov
a3c4f8729d Fixing warnings:
- no previous declaration for ‘bool OcrSrcCol'
- no previous declaration for ‘bool OcrColumns'
- no previous declaration for ‘_qryres* PivotColumns'

modified:
  storage/connect/ha_connect.cc
  storage/connect/taboccur.h
  storage/connect/tabpivot.h
2013-07-08 11:22:32 +04:00
Alexander Barkov
e46f8f3d0a Fixing warnings:
- no previous declaration for ‘void XmlCleanupParserLib()’
- no previous declaration for ‘void CloseXML2File’
- no previous declaration for ‘void XmlInitParserLib()’

modified:
  storage/connect/ha_connect.cc
  storage/connect/libdoc.cpp
  storage/connect/libdoc.h
  storage/connect/plgdbutl.cpp
2013-07-08 11:05:59 +04:00
Olivier Bertrand
ce1b9cb4ba - Try to fix a uninitialised valgrind warning
modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mycat.cc

- Fix a regression error on XML libdoc wrong Nlist freing

modified:
  storage/connect/domdoc.h
  storage/connect/libdoc.cpp
  storage/connect/libdoc.h
  storage/connect/plgxml.h
  storage/connect/tabxml.cpp
2013-07-05 13:13:45 +02:00
Olivier Bertrand
923eddcfe1 - Make sure Remark is initialised
modified:
  storage/connect/ha_connect.cc
2013-07-04 23:13:07 +02:00
Olivier Bertrand
29ec49b067 - Make sure Remark is initialised in ha_connect::GetColumnOption
modified:
  storage/connect/ha_connect.cc
2013-07-04 20:09:50 +02:00
Olivier Bertrand
b8d6f97380 - Add the PROFILE_End function in inihandl. Called by connect_done_func
to release the cache memory allocated by the PROFILE perocessing.
  (also add some break at the end of switch's to avoid warnings)

modified:
  storage/connect/filamvct.cpp
  storage/connect/ha_connect.cc
  storage/connect/inihandl.c
  storage/connect/inihandl.h
2013-06-29 01:10:31 +02:00
Olivier Bertrand
9508e913e7 - Release memory allocated by inihandl in connect_done_func.
modified:
  storage/connect/ha_connect.cc

- Remove unuseful last change

modified:
  storage/connect/block.h
2013-06-28 14:22:32 +02:00
Olivier Bertrand
d662c48a68 - In connect_assisted_discovery the test on topt->quoted must
be done on its signed value

modified:
  storage/connect/ha_connect.cc
2013-06-26 19:52:38 +02:00
Olivier Bertrand
b5130b5bd2 - Implemented: The use of Federated servers.
modified:
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/plugutil.c
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
  storage/connect/tabtbl.cpp
2013-06-16 19:07:27 +02:00
Olivier Bertrand
d861b6170a - Fix regression error for multiple 2 tables.
modified:
  storage/connect/tabmul.cpp

- Fix regression error on field types. Cannot eliminate BINARY_FLAG that
  is on for DATE columns. Update result from dbf.test case.

modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/dbf.result
2013-06-14 20:52:46 +02:00
Olivier Bertrand
a8428e3ac8 - To avoid crashing in debug mode, the error message concerning the
making of the index is changed to a warning.

modified:
  storage/connect/ha_connect.cc
  storage/connect/tabmul.cpp*
2013-06-12 20:48:55 +02:00
Olivier Bertrand
13ced819d7 - Fix MDEV-4638
modified:
  storage/connect/ha_connect.cc
  storage/connect/valblk.cpp

- Add trace in tabmul

modified:
  storage/connect/tabmul.cpp
2013-06-12 01:02:04 +02:00
Alexander Barkov
ffa2eb4356 Fixing a few compiler warnings
modified:
  storage/connect/ha_connect.cc
  storage/connect/value.cpp
2013-06-08 00:24:27 +04:00
Sergei Golubchik
0a01953c1a compiler warnings 2013-06-03 14:43:47 +02:00
Olivier Bertrand
0aa4fb73a4 - Fix crash when a null qrp is returned for OCCUR tables
in connect_assisted_discovery

modified:
  storage/connect/ha_connect.cc

- Change CRLF line endings to LF

modified:
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h
2013-05-28 21:06:15 +02:00
Olivier Bertrand
9f7c3fedfa - Extending connect_assisted_discovery column automatic definition
to OCCUR and PIVOT table types.

modified:
  storage/connect/ha_connect.cc
  storage/connect/myconn.cpp
  storage/connect/myconn.h
  storage/connect/plgdbsem.h
  storage/connect/plgdbutl.cpp
  storage/connect/taboccur.cpp
  storage/connect/taboccur.h
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h

- Fix wrong definition of GetVlen for TYPE template

modified:
  storage/connect/valblk.h
2013-05-28 17:22:38 +02:00
Alexander Barkov
5b0e3a5332 Removing more cases of direct use of thd.
Also, TABLE_TYPE=MySQL now uses "root@localhost" by default,
instead of current user and current host name.

modified:
  storage/connect/ha_connect.cc
2013-05-24 11:31:43 +04:00
Alexander Barkov
f2e1473653 Removing direct access to thd, using functions:
- thd_query_string() insted of thd->query_string
- thd_sql_command() instead ot thd->lex->sql_command
- table_share->s.db.str instead of thd->db

modified:
  storage/connect/connect.cc
  storage/connect/ha_connect.cc
2013-05-24 09:56:04 +04:00
Olivier Bertrand
33b9531568 - Fix setting default type to MYSQL->PROXY->DOS in some places where it
was not done correctly.
- Fix a bug causing add_field to generate a syntax error on DOUBLE columns
  with a 0 decimal value.
- Column can be undefined when Srcdef is specified.

modified:
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/tabmysql.cpp
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
2013-05-24 00:19:26 +02:00
Olivier Bertrand
aebcd56ca9 - Changing CONNECT version number and date
modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/xml.result

- Testing default pivot columns for srcdef
  Fixing order by MariaDB bug for pivot tables
modified:
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h
2013-05-22 13:35:21 +02:00
Alexander Barkov
41bda068a5 "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
2013-05-21 18:29:10 +04:00
Olivier Bertrand
ca024d1c21 - Correct misplaced parenthesis in last change
modified:
  storage/connect/ha_connect.cc

- Tdbp must be assigned before calling PRX column init

modified:
  storage/connect/tabtbl.cpp
2013-05-20 18:17:09 +02:00
Olivier Bertrand
38a5bb2c1b - Save and restore srcdef when getting a sub-table (could stay in cache)
modified:
  storage/connect/tabutil.cpp

- Change order of tests when looking for valid tdbp. In rare cases an invalid
  tdbp was still existing causing a crash of the server.

modified:
  storage/connect/ha_connect.cc
2013-05-20 13:12:34 +02:00
Olivier Bertrand
cc38c51191 - Commit merged and resolve
added:
  storage/connect/inihandl.h
  storage/connect/rcmsg.h
modified:
  storage/connect/CMakeLists.txt
  storage/connect/connect.h
  storage/connect/ha_connect.cc
  storage/connect/inihandl.c
  storage/connect/maputil.h
  storage/connect/odbconn.cpp
  storage/connect/osutil.c
  storage/connect/osutil.h
  storage/connect/plgdbutl.cpp
  storage/connect/plugutil.c
  storage/connect/rcmsg.c
  storage/connect/tabmysql.cpp
  storage/connect/tabodbc.cpp
  storage/connect/tabpivot.cpp
  storage/connect/tabsys.cpp
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
  storage/connect/user_connect.cc
  storage/connect/value.cpp
2013-05-19 19:53:38 +02:00
Olivier Bertrand
c035bde34c - Allowing views and queries as parameters for PROXY base tables
NOTE: Checking for looping references cannot be done when using views
  as parameters. This should not be allowed on production servers and
  should be dependant on a system variable and/or on speciel grant.

modified:
  storage/connect/CMakeLists.txt
  storage/connect/connect.cc
  storage/connect/ha_connect.cc
  storage/connect/myconn.cpp
  storage/connect/myconn.h
  storage/connect/mysql-test/connect/r/fmt.result
  storage/connect/mysql-test/connect/r/pivot.result
  storage/connect/mysql-test/connect/t/fmt.test
  storage/connect/mysql-test/connect/t/pivot.test
  storage/connect/plgdbsem.h
  storage/connect/plugutil.c
  storage/connect/tabcol.cpp
  storage/connect/tabcol.h
  storage/connect/tabfmt.cpp
  storage/connect/tabmysql.cpp
  storage/connect/tabmysql.h
  storage/connect/taboccur.cpp
  storage/connect/taboccur.h
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h
  storage/connect/tabtbl.cpp
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
  storage/connect/xtable.h
2013-05-19 19:25:06 +02:00
Alexander Barkov
54f3292831 Fixing warnings (mostly "no previous declaration")
modified:
  storage/connect/ha_connect.cc
  storage/connect/maputil.h
  storage/connect/odbconn.cpp
  storage/connect/osutil.c
  storage/connect/osutil.h
  storage/connect/tabmysql.cpp
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
2013-05-13 16:48:03 +04:00
Alexander Barkov
35a879d06d Fixing a few "no previous declaration" warnings
modified:
  storage/connect/ha_connect.cc
  storage/connect/odbconn.cpp
  storage/connect/plgdbutl.cpp
  storage/connect/plugutil.c
  storage/connect/value.cpp
2013-05-13 15:23:24 +04:00
Alexander Barkov
d22b1a0b35 Fixing a few compilation warnings ("no previous declaration for XXX")
added:
  storage/connect/inihandl.h
modified:
  storage/connect/CMakeLists.txt
  storage/connect/connect.h
  storage/connect/ha_connect.cc
  storage/connect/inihandl.c
  storage/connect/osutil.h
  storage/connect/tabsys.cpp
  storage/connect/user_connect.cc
2013-05-13 14:59:59 +04:00
Olivier Bertrand
35f813143b - Set tdbp to NULL when ignored
modified:
  storage/connect/ha_connect.cc
2013-05-13 10:37:35 +02:00
Olivier Bertrand
8c9ce17359 - Code cleaning.
modified:
  storage/connect/connect.cc
  storage/connect/tabutil.h

- Fix closing invalid tdbp in External_lock.
modified:
  storage/connect/ha_connect.cc

- Fix closing null Tdbp
modified:
  storage/connect/tabpivot.cpp*

- Fix regression error in table type TBL no more accepting missing
  columns in sub-tables even when Accept was set to TRUE.
modified:
  storage/connect/tabtbl.cpp
2013-05-12 18:14:03 +02:00
Olivier Bertrand
99d95c8a2f - Added table type PIVOT
modified:
  storage/connect/filamdbf.cpp
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mycat.cc
  storage/connect/myconn.cpp
  storage/connect/odbconn.cpp
  storage/connect/plgcnx.h
  storage/connect/plgdbsem.h
  storage/connect/plgdbutl.cpp
  storage/connect/tabfmt.cpp
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h
  storage/connect/tabutil.cpp
  storage/connect/tabwmi.cpp
  storage/connect/tabxcl.cpp
  storage/connect/value.cpp
  storage/connect/value.h
2013-05-10 20:22:21 +02:00