Commit graph

7208 commits

Author SHA1 Message Date
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
Sergey Petrunya
fb2501e2d4 MDEV-4277: Crash inside mi_killed_in_mariadb() with myisammrg
- Set MI_INFO::external_ref for MyISAM tables that are parts of myisamMRG table.
2013-03-21 11:06:27 +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
Sergei Golubchik
e73f13a707 extend check_global_access() to avoid my_error when it's not needed
(in INFORMATION_SCHEMA).
2013-03-19 15:25:58 +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
Sergei Golubchik
d24c8d9af1 fix innodb failures on solaris 2013-03-11 21:00:08 +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
Sergei Golubchik
9d8ee74b38 MDEV-4186 Test case main.myisampack fails on ppc32 (only)
fix the declaration to use the correct type for st_handler_check_param::sort_buffer_length.
remove redundant casts.
2013-03-08 19:09:45 +01:00
Sergei Golubchik
0d9a6d52d7 merge with XtraDB as of Percona-Server-5.5.30-rel30.1 2013-03-08 19:08:45 +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
Michael Widenius
4cace76d4d Automatic merge 2013-03-01 18:09:06 +02: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
Sergei Golubchik
9d72bbf84c merge with XtraDB as of Percona-Server-5.5.29-rel30.0 2013-02-28 23:56:17 +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
Sergei Golubchik
213f1c76a0 5.3->5.5 merge 2013-02-28 22:47:29 +01:00
Sergei Golubchik
c4341d5095 5.2 -> 5.3 2013-02-28 21:48:47 +01:00
Sergei Golubchik
5dec570d7c 5.1 -> 5.2 merge 2013-02-28 19:00:58 +01:00
Sergei Golubchik
8161c6772d merge with mysql-5.5.30 minus few incorrect or not applicable changesets 2013-02-28 18:42:49 +01:00
Michael Widenius
6a2d730a7f Fixed BUG#51763 Can't delete rows from MEMORY table with HASH key 2013-02-28 10:00:07 +01:00
Sergei Golubchik
08ba257846 mysql-5.1 merge
mysys/errors.c:
  revert upstream's fix. use a much simpler one
mysys/my_write.c:
  revert upstream's fix. use a simpler one
sql/item_xmlfunc.cc:
  useless, but ok
sql/mysqld.cc:
  simplify upstream's fix
storage/heap/hp_delete.c:
  remove upstream's fix.
  we'll use a much less expensive approach.
2013-02-28 09:58:39 +01:00
Michael Widenius
2d78ef1d3b Added support for --crash-script in mysqld_safe.
Trivial cleanup

scripts/mysqld_safe.sh:
  Added support for --crash-script.
  Don't remove socket file (not needed as server will re-create it if needed)
  Patch by Eric Bergen
storage/maria/ha_maria.h:
  Removed not existing variable.
2013-02-28 08:42:05 +02: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
Vladislav Vaintroub
65831bca6f MDEV-4203 : fix maria SE repair functions (wrong operator precedence) 2013-02-26 21:20:15 +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
Vladislav Vaintroub
2c97d5a305 Compilation : fix oqgraph's system check, in case where boost header aren't in standard include directory. 2013-02-24 20:05:26 +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
Michael Widenius
7042dd38c6 Fixed BUG#51763 Can't delete rows from MEMORY table with HASH key
mysql-test/suite/heap/heap.result:
  Added test case
mysql-test/suite/heap/heap.test:
  Added test case
storage/heap/hp_delete.c:
  Fixed that we don't change order of keys for the current key when we delete them from the hash table.
  Fixed that 'current_hash_ptr' is correct after heap_delete_key().
  Don't "reset current_hash_ptr" on delete; This will improve time a lot for delete of rows when not all rows matches the search criteria.
2013-02-15 20:25:27 +02: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
Sergey Petrunya
6ae14e6cd2 MDEV-3997: Querying a Cassandra table on a server with query cache enabled is likely to cause problems
- Disable query cache for Cassandra tables.
2013-02-04 10:14:20 +04:00
Olivier Bertrand
e89cb7f27a Translate column names to UTF-8 in ha_connect::pre_create. 2013-02-03 01:13:13 +01:00
Elena Stepanova
7f444caa0a MDEV-4028 - Converted rdiff files to uniform
MDEV-11 - Modifed tests and result files to use explicit column lists
          in INSERT and SELECT statements
2013-02-03 02:53:57 +04: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