Commit graph

704 commits

Author SHA1 Message Date
Olivier Bertrand
2bb42803df This commit includes changes done in a previous (deleted) branch plus new ones.
From the previous branch:
commit eda4928ff122a0845baf5ade83b4aa29244a3a89
Author: Olivier Bertrand <bertrandop@gmail.com>
Date:   Mon Mar 9 22:34:56 2015 +0100

- Add discovery to JSON tables
  When columns are not defined, CONNECT analyses the json file to find column definitions.
  This wors only on table that are an array of objects. Pair keys are used to generate the
  column names and pair values are used for its definition. When the LEVEL option is defined
  as a not null integer, the eventual JPATH is scanned up to the LEVEL value.

From the current one:
- Fix MDEV-7521 when column names are utf8 encoded (not a general multi-charset fix)

- Adds more to JSON discovery processing and UDF's

- Use PlugDup everywhere it replaces PlugSubAlloc + strcpy.
2015-03-18 13:30:14 +01:00
Sergei Golubchik
2db62f686e Merge branch '10.0' into 10.1 2015-03-07 13:21:02 +01:00
Sergei Golubchik
d61573d3e5 fix connect.json_udf test for static builds 2015-03-06 20:49:48 +01:00
Sergei Golubchik
c06c465a96 10.0-connect merge 2015-03-02 16:45:44 +01:00
Olivier Bertrand
b9a9b82f9e - Make json_udf test work on Windows
modified:
  storage/connect/mysql-test/connect/t/json_udf.inc
2015-03-02 00:35:56 +01:00
Olivier Bertrand
5f4909b31d - Making json_udf test working on linux
added:
  storage/connect/mysql-test/connect/t/json_udf.inc
modified:
  storage/connect/mysql-test/connect/r/json_udf.result
  storage/connect/mysql-test/connect/t/json_udf.test
2015-03-01 23:55:09 +01:00
Olivier Bertrand
34c89597ef - Remove a signed/unsigned warning.
modified:
  storage/connect/jsonudf.cpp
2015-03-01 19:29:56 +01:00
Olivier Bertrand
5c8862ee19 - Fix crash when Json_Value was called without arguments.
Correct memory calculation in Serialize.
  Correct some UDF's messages.
  Add and modify the json tests
removed:
  storage/connect/mysql-test/connect/std_data/biblio.jsn
  storage/connect/mysql-test/connect/std_data/expense.jsn
  storage/connect/mysql-test/connect/std_data/mulexp3.jsn
  storage/connect/mysql-test/connect/std_data/mulexp4.jsn
  storage/connect/mysql-test/connect/std_data/mulexp5.jsn
added:
  storage/connect/mysql-test/connect/r/json_udf.result
  storage/connect/mysql-test/connect/std_data/biblio.json
  storage/connect/mysql-test/connect/std_data/expense.json
  storage/connect/mysql-test/connect/std_data/mulexp3.json
  storage/connect/mysql-test/connect/std_data/mulexp4.json
  storage/connect/mysql-test/connect/std_data/mulexp5.json
  storage/connect/mysql-test/connect/t/json_udf.test
modified:
  storage/connect/json.cpp
  storage/connect/jsonudf.cpp
  storage/connect/mysql-test/connect/r/json.result
  storage/connect/mysql-test/connect/t/json.test
2015-03-01 19:20:40 +01:00
Olivier Bertrand
d862d7c049 - Implement random access to ODBC tables
modified:
  storage/connect/odbconn.cpp
  storage/connect/odbconn.h

- Fix get proper length of ODBC DECIMAL column in discovery
modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/odbc_oracle.result

- Implement random access to JSON tables
modified:
  storage/connect/tabjson.cpp
  storage/connect/tabjson.h

- Fix MDEV-7636
modified:
  storage/connect/tabutil.cpp
2015-02-28 23:01:55 +01:00
Olivier Bertrand
aa107ef3ab - FIX assert failure when sorting JSON tables
modified:
  storage/connect/tabjson.cpp
  storage/connect/tabjson.h
2015-02-25 11:59:00 +01:00
Olivier Bertrand
e027f5e8d5 - Fix MDEV-7616 by adding SQLCOM_SET_OPTION to the accepted command list.
modified:
  storage/connect/ha_connect.cc

- Add new JSON UDF functions and JSON functionalities.
modified:
  storage/connect/json.cpp
  storage/connect/json.h
  storage/connect/jsonudf.cpp
  storage/connect/tabjson.cpp
2015-02-24 23:18:04 +01:00
Sergei Golubchik
723be51678 Merge 2015-02-24 14:17:00 +01:00
Olivier Bertrand
a736e63f7c - Add new Json UDF's Json_Array_Add, Json_Array_Grp and Json_Object_Grp.
Handle longjmp's raised during json processing.
modified:
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/json.cpp
  storage/connect/jsonudf.cpp

- Fix wrong references to the suppressed g->Trace variables.
modified:
  storage/connect/global.h
  storage/connect/plugutil.c
  storage/connect/tabjson.cpp
  storage/connect/tabodbc.cpp
2015-02-22 17:53:02 +01:00
Sergei Golubchik
56114a416f merge 10.0-connect 2015-02-19 09:37:11 +01:00
Olivier Bertrand
d9175f3822 - Remove GCC warnings
modified:
  storage/connect/jsonudf.cpp
  storage/connect/tabutil.h
2015-02-19 01:25:31 +01:00
Olivier Bertrand
564d41faf4 - Work on JSON and JSON UDF's
modified:
  storage/connect/json.cpp
  storage/connect/jsonudf.cpp
  storage/connect/tabjson.cpp

- CntReadNext: Enable EvalColumns for longjmp
modified:
  storage/connect/connect.cc
2015-02-19 00:59:02 +01:00
Olivier Bertrand
2201aa66cf - Typo on the jsonudf.cpp name
modified:
  storage/connect/CMakeLists.txt
2015-02-12 17:23:28 +01:00
Olivier Bertrand
dcfe068d59 - Adding json udf's. Making the second version of json tables.
added:
  storage/connect/jsonudf.cpp
modified:
  storage/connect/CMakeLists.txt
  storage/connect/json.cpp
  storage/connect/json.h
  storage/connect/tabjson.cpp
  storage/connect/tabjson.h

- Fix utf8 issues with PROXY tables
modified:
  storage/connect/ha_connect.cc
  storage/connect/tabutil.cpp
  storage/connect/tabutil.h
2015-02-11 21:39:41 +01:00
Sergei Golubchik
d72dea1959 Revert "Fixing ConnectSE compilation warnings"
This reverts commit aa61e4c76e
that broke the compilation on few platforms (e.g. centos5).

These warnings are already fixed properly in 10.0-connect.
2015-02-10 21:08:57 +01:00
Alexander Barkov
aa61e4c76e Fixing ConnectSE compilation warnings (and failires in maintainer mode). 2015-02-10 16:47:42 +04:00
Alexander Barkov
a2578018bf Fixing compilation failure in storage/connect when -DMYSQL_MAINTAINER_MODE=ON:
disabling some CXX errors in storage/connect/CMakeLists.txt.
2015-02-10 16:01:03 +04:00
Olivier Bertrand
3c097fd689 - Remove some GCC warnings
modified:
  storage/connect/ha_connect.cc
2015-02-08 19:47:26 +01:00
Olivier Bertrand
96ba1f1473 - Handle the use of date/time values when making queries for MYSQL or
ODBC. Was raised by 7549.
modified:
  storage/connect/ha_connect.cc
  storage/connect/odbconn.cpp
  storage/connect/tabodbc.cpp
2015-02-08 18:17:29 +01:00
Olivier Bertrand
35548d577c - Modify the connect_type_conv and connect_conv_size variables.
They were global (read-only) now they are session (not read-only)
modified:
  storage/connect/checklvl.h
  storage/connect/ha_connect.cc
  storage/connect/myconn.cpp
  storage/connect/myutil.cpp
  storage/connect/tabutil.cpp

- Suppress the compver variable on Linux compile. Was not
  debian reproductible because using __DATE__ and __TIME__ macros.
modified:
  storage/connect/ha_connect.cc

- ODBC LONGVARVAR type conversion now uses connect_conv_size.
modified:
  storage/connect/odbconn.cpp
2015-02-07 11:33:52 +01:00
Olivier Bertrand
22367ba71f - Add or correct some tracing code
modified:
  storage/connect/odbconn.cpp
  storage/connect/tabodbc.cpp
2015-02-02 19:34:35 +01:00
Olivier Bertrand
82f2be67ae - Fix a bug causing Insert into ODBC to fail when the column name is
UTF8 encoded.
modified:
  storage/connect/tabodbc.cpp
2015-02-02 15:35:58 +01:00
Olivier Bertrand
6a78371991 - Fix a bug causing UseCnc not being initialized for ODBC catalog tables.
This made errors by calling SQLConnect or SQLDriverConnect randomly
  with incorrect parameters.
modified:
  storage/connect/tabodbc.cpp
  
- Removing GCC warnings  
modified:
  storage/connect/ha_connect.cc

- Typo
modified:
  storage/connect/odbconn.cpp
2015-02-01 12:16:30 +01:00
Sergei Golubchik
4b21cd21fe Merge branch '10.0' into merge-wip 2015-01-31 21:48:47 +01:00
Olivier Bertrand
180b2be63c - Add the possibility to establish an ODBC connection via SQLConnect (the
default being still to use SQLDriverConnect)
modified:
  storage/connect/ha_connect.cc
  storage/connect/odbccat.h
  storage/connect/odbconn.cpp
  storage/connect/odbconn.h
  storage/connect/tabodbc.cpp
  storage/connect/tabodbc.h

- Cardinality testing not possible for TBL tables
modified:
  storage/connect/tabtbl.cpp

- Make all line ending LF instead of CRLF
modified:
  storage/connect/tabjson.cpp
2015-01-31 15:05:43 +01:00
Olivier Bertrand
fd1ca70bb3 - Enhance JSON tables handling.
modified:
  storage/connect/json.cpp
  storage/connect/json.h
  storage/connect/mysql-test/connect/r/json.result
  storage/connect/mysql-test/connect/t/json.test
  storage/connect/tabjson.cpp
  storage/connect/tabjson.h

- Avoid crash when a partition table name pattern is ill formed
  (such as using place holder %i instead of %s)
modified:
  storage/connect/ha_connect.cc
2015-01-30 10:57:00 +01:00
Olivier Bertrand
9a2dc7dfed - Repair the errors due to the PRXCOL Init function that must be called
with 2 parameters. (previously the second one was optional)
modified:
  storage/connect/tabpivot.cpp
  storage/connect/tabpivot.h
  storage/connect/tabtbl.cpp
  storage/connect/tabxcl.cpp
2015-01-28 00:19:39 +01:00
Olivier Bertrand
ee5a4c8b33 - Begin eliminating on Linux OverloadedVirtual warnings.
However some tests failed. Going to windows to try tracing them.
modified:
  storage/connect/CMakeLists.txt
  storage/connect/array.h
  storage/connect/json.h
  storage/connect/tabdos.h
  storage/connect/tabjson.h
  storage/connect/taboccur.cpp
  storage/connect/tabpivot.h
  storage/connect/tabutil.h
  storage/connect/tabxcl.h
  storage/connect/valblk.h
  storage/connect/xindex.h
2015-01-27 19:18:51 +01:00
Olivier Bertrand
e7802bff0e - Fix a bug causing the connection string of a partition table not being
edited with the partition name when it was specified in the OPTION_LIST.
modified:
  storage/connect/ha_connect.cc
2015-01-27 12:50:50 +01:00
Olivier Bertrand
5b460c6403 - Protect AllocateValue against a null sp.
modified:
  storage/connect/value.cpp
2015-01-24 12:17:03 +01:00
Olivier Bertrand
7ebd3f6fed - Commit merged files (just changing some ending CRLF to LF)
modified:
  storage/connect/json.cpp
  storage/connect/xobject.cpp
2015-01-24 11:54:12 +01:00
Olivier Bertrand
dbf690b5d1 - Fix correctly MDEV-7498. The problem was not in AllocateValue but in
the constructor of TYPVAL<PSZ> The new strg was widely uninitialised
  just by setting a terminated null char. Now the whole string is zero'ed.
  In Tabjson JSONCOL::ParseJpath, the original code was restored. 
modified:
  storage/connect/tabjson.cpp
  storage/connect/value.cpp
2015-01-24 11:46:18 +01:00
Olivier Bertrand
a87bb05a7e - Change some line endings from CRLF to LF
modified:
  storage/connect/json.cpp
  storage/connect/xobject.cpp
2015-01-23 23:14:34 +01:00
Olivier Bertrand
2cd36ad7d0 - This to fix MDEV-7498. All changes made to AllocateValue to be sure that
the sp and p variable be initialised failed. Not understanding what causes
  this valgrind warning, I finally changed the way Mulval is allocated just
  to avoid it. This is a BAD solution as it does not really fix the problem
  but just hide it. This will have to be re-considered.
modified:
  storage/connect/tabjson.cpp
  storage/connect/value.cpp
2015-01-23 21:54:29 +01:00
Olivier Bertrand
dc091a2935 - Fix MDEV-7489 (in add_field)
modified:
  storage/connect/ha_connect.cc

- Fix MDEV-7494 (adding Insert_quoted in the STRING class)
modified:
  storage/connect/tabmysql.cpp
  storage/connect/xobject.cpp
  storage/connect/xobject.h

- Fix MDEV-7498 in value.cpp (AllocateValue)
modified:
  storage/connect/value.cpp

- Handle backslash in Json serialize + uchar + typo.
modified:
  storage/connect/json.cpp
  storage/connect/tabjson.cpp
2015-01-23 17:54:53 +01:00
Olivier Bertrand
e576772383 - Last revision was to add the JSON table type. This one adds a sort
on the multiple table result to obtain the same result on Windows
  and Linux (because files can be retrieved in a different order)
modified:
  storage/connect/mysql-test/connect/r/json.result
  storage/connect/mysql-test/connect/t/json.test
2015-01-20 11:26:03 +01:00
Olivier Bertrand
8fc6956430 - Fix compile errors and warnings of LINUX G++
added:
  storage/connect/json.cpp
  storage/connect/json.h
  storage/connect/mysql-test/connect/r/json.result
  storage/connect/mysql-test/connect/std_data/biblio.jsn
  storage/connect/mysql-test/connect/std_data/expense.jsn
  storage/connect/mysql-test/connect/std_data/mulexp3.jsn
  storage/connect/mysql-test/connect/std_data/mulexp4.jsn
  storage/connect/mysql-test/connect/std_data/mulexp5.jsn
  storage/connect/mysql-test/connect/t/json.test
  storage/connect/tabjson.cpp
  storage/connect/tabjson.h
modified:
  storage/connect/CMakeLists.txt
  storage/connect/engmsg.h
  storage/connect/filamtxt.h
  storage/connect/ha_connect.cc
  storage/connect/msgid.h
  storage/connect/mycat.cc
  storage/connect/plgdbsem.h
  storage/connect/tabdos.cpp
  storage/connect/value.cpp
  storage/connect/value.h
2015-01-20 01:21:56 +01:00
Olivier Bertrand
2d2e110bce - Adding the JSON table type
added:
  storage/connect/json.cpp
  storage/connect/json.h
  storage/connect/mysql-test/connect/r/json.result
  storage/connect/mysql-test/connect/std_data/biblio.jsn
  storage/connect/mysql-test/connect/std_data/expense.jsn
  storage/connect/mysql-test/connect/std_data/mulexp3.jsn
  storage/connect/mysql-test/connect/std_data/mulexp4.jsn
  storage/connect/mysql-test/connect/std_data/mulexp5.jsn
  storage/connect/mysql-test/connect/t/json.test
  storage/connect/tabjson.cpp
  storage/connect/tabjson.h
modified:
  storage/connect/CMakeLists.txt
  storage/connect/engmsg.h
  storage/connect/filamtxt.h
  storage/connect/ha_connect.cc
  storage/connect/msgid.h
  storage/connect/mycat.cc
  storage/connect/plgdbsem.h
  storage/connect/tabdos.cpp
  storage/connect/value.cpp
  storage/connect/value.h
2015-01-19 18:55:25 +01:00
Olivier Bertrand
fb3f46967c - Fix two bugs concerning Discovery of CSV tables:
Sep_char default is now ',' like when discovery is not used
  If data_charset is UTF8, column names retrieved from the header
  are no longer converted to UTF8 considering they already are (MDEV-7421)
modified:
  storage/connect/ha_connect.cc
2015-01-17 12:19:06 +01:00
Olivier Bertrand
f5beda4866 - Fix two bugs concerning Discovery of CSV tables:
Sep_char default is now ',' like when discovery is not used
  If data_charset is UTF8, column names retrieved from the header
  are no longer converted to UTF8 considering they already are.
modified:
  storage/connect/ha_connect.cc
2015-01-17 11:54:41 +01:00
Olivier Bertrand
70b4e6d368 - Add ConnectTimout and QueryTimout options for ODBC tables. Should
fix MDEV-7415. (To be specified in option_list)
modified:
  storage/connect/ha_connect.cc
  storage/connect/odbccat.h
  storage/connect/odbconn.cpp
  storage/connect/odbconn.h
  storage/connect/tabodbc.cpp
  storage/connect/tabodbc.h
2015-01-13 17:24:31 +01:00
Olivier Bertrand
85c65f4e1c - Fix MDEV-7427 by not reallocating the date format in ScanRecord on each inserted row.
modified:
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
2015-01-09 23:36:50 +01:00
Olivier Bertrand
d4bf64556e - Typo to eliminate some GCC warnings
modified:
  storage/connect/odbconn.cpp
  storage/connect/plgdbsem.h
2015-01-06 11:32:40 +01:00
Olivier Bertrand
afd373c119 - Set connection charset before calling mysql_real_connect for MYSQL
tables. This should fix bug MDEV-7343.
modified:
  storage/connect/ha_connect.cc
  storage/connect/myconn.cpp
  storage/connect/myconn.h
  storage/connect/reldef.cpp
  storage/connect/reldef.h
  storage/connect/table.cpp
  storage/connect/tabmysql.cpp
  storage/connect/xtable.h

- Prevent double column evaluation when CONNECT does filtering
modified:
  storage/connect/connect.cc

- Export CreateFileMap and CloseMemMap (for OEM tables)
modified:
  storage/connect/maputil.h

- Add the compute function to be used on VALUE types.
  Preserve precision for DOUBLE values.
modified:
  storage/connect/value.cpp
  storage/connect/value.h

- Typo (in preparation to the future JSON table type)
modified:
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/plgdbsem.h
2015-01-06 10:18:04 +01:00
Olivier Bertrand
8761f22a11 - Temporary fix for MDEV-7304.
modified:
  storage/connect/rcmsg.c

- Avoid Memory copying when reading an ODBC table when the entire table
  is already in the result set.
modified:
  storage/connect/odbconn.cpp
  storage/connect/odbconn.h
  storage/connect/tabodbc.cpp
  storage/connect/tabodbc.h
2014-12-14 22:47:12 +01:00
Sergei Golubchik
853077ad7e Merge branch '10.0' into bb-10.1-merge
Conflicts:
	.bzrignore
	VERSION
	cmake/plugin.cmake
	debian/dist/Debian/control
	debian/dist/Ubuntu/control
	mysql-test/r/join_outer.result
	mysql-test/r/join_outer_jcl6.result
	mysql-test/r/null.result
	mysql-test/r/old-mode.result
	mysql-test/r/union.result
	mysql-test/t/join_outer.test
	mysql-test/t/null.test
	mysql-test/t/old-mode.test
	mysql-test/t/union.test
	packaging/rpm-oel/mysql.spec.in
	scripts/mysql_config.sh
	sql/ha_ndbcluster.cc
	sql/ha_ndbcluster_binlog.cc
	sql/ha_ndbcluster_cond.cc
	sql/item_cmpfunc.h
	sql/lock.cc
	sql/sql_select.cc
	sql/sql_show.cc
	sql/sql_update.cc
	sql/sql_yacc.yy
	storage/innobase/buf/buf0flu.cc
	storage/innobase/fil/fil0fil.cc
	storage/innobase/include/srv0srv.h
	storage/innobase/lock/lock0lock.cc
	storage/tokudb/CMakeLists.txt
	storage/xtradb/buf/buf0flu.cc
	storage/xtradb/fil/fil0fil.cc
	storage/xtradb/include/srv0srv.h
	storage/xtradb/lock/lock0lock.cc
	support-files/mysql.spec.sh
2014-12-02 22:25:16 +01:00