This was working but the cause probably comes from freeing Xop object to
handle memory leaks reported by Valgrind.
Also add a test case on XML multiple tables.
added:
storage/connect/mysql-test/connect/r/xml_mult.result
storage/connect/mysql-test/connect/std_data/bookstore.xml
storage/connect/mysql-test/connect/t/xml_mult.test
modified:
storage/connect/domdoc.cpp
storage/connect/tabxml.cpp
storage/connect/tabxml.h
- Enhance the index types and flages returning functions.
modified:
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
- Suppress irrelevant warning message (MDEV-6117)
modified:
storage/connect/ha_connect.cc
catalog data path had not been set. This was added into ha_connect::info.
modified:
storage/connect/ha_connect.cc
- All the functions querying table options could return information from the wrong
table when several CONNECT tables were used in the same query (for instance joined
together) This was because they belonged to the catalog class that is shared between
all tables in the same query. They have been moved from the catalog class to the
TABDEF/RELDEF class that is attached to each table. This was a major potential bug.
modified:
storage/connect/catalog.h
storage/connect/filamvct.cpp
storage/connect/filamzip.cpp
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/taboccur.cpp
storage/connect/tabodbc.cpp
storage/connect/tabpivot.cpp
storage/connect/tabsys.cpp
storage/connect/tabtbl.cpp
storage/connect/tabutil.cpp
storage/connect/tabvct.cpp
storage/connect/tabwmi.cpp
storage/connect/tabxcl.cpp
storage/connect/tabxml.cpp
storage/connect/xindex.cpp
- Prepare indexing of MYSQL/ODBC tables (as does FEDERATED) (Not implemented yet)
modified:
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/mycat.cc
storage/connect/mycat.h
- Typo
modified:
storage/connect/plgdbutl.cpp
archive table which is using an auto increment column, the
server hangs. In order to recover the mysqld process, it
has to be terminated abnormally using SIGKILL. The problem
is observed in mysql-5.5.
Bug #18065452 "PREPARING" STATE HOGS CPU WITH ARCHIVE
+ SUBQUERY
Analysis: This happens because the server is trapped inside
an infinite loop in the function,
"subselect_indexsubquery_engine::exec()". This function
resolves the correlated suquery by doing an index lookup
for the appropriate engine. In case of archive engine,
after reaching the end of records, "table->status" is not
set to STATUS_NOT_FOUND. As a result the loop is not
terminated.
Fix: The "table->status" is set to STATUS_NOT_FOUND when
the end of records is reached.
modified:
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/xindex.cpp
- Optimize retrieving numeric values in scan_record. Was previously
translating numeric values to character representation back and forth.
modified:
storage/connect/ha_connect.cc
storage/connect/mysql-test/connect/r/xml.result
- Modify Pivot table creation to avoid reading the entire source table
when making columns from Discovery. MDEV-6024
modified:
storage/connect/tabpivot.cpp
normally when too big to be suballocated) to handle big results.
modified:
storage/connect/valblk.cpp
storage/connect/valblk.h
- Add system variable connect_work_size giving the size of the CONNECT
work area used for memory allocation.
modified:
storage/connect/ha_connect.cc
storage/connect/plugutil.c
storage/connect/user_connect.cc
By implementing index_last
modified:
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/xindex.cpp
- Adding the TYPE_BIN Connect internal type
(not tested and not used yet)
modified:
storage/connect/global.h
storage/connect/value.cpp
storage/connect/value.h
THE PERFORMANCE UNDER HEAVY INSERT
Problem:
There are three memset call to allocate memory for system fields
in each insert.
Solution:
Instead of calling it in 3 times, we can combine it into
one memset call. It will reduce the CPU usage under heavy insert.
Approved by Marko rb-4916
conversion from TEXT to VARCHAR in PROXY and MYSQL tables.
modified:
storage/connect/ha_connect.cc
storage/connect/myconn.cpp
storage/connect/myconn.h
storage/connect/myutil.cpp
storage/connect/tabmysql.cpp
storage/connect/tabutil.cpp
- Add the xmap system variable addressing whether file mapping should be used
to handle indexing.
modified:
storage/connect/CMakeLists.txt
storage/connect/ha_connect.cc
storage/connect/xindex.cpp
storage/connect/xindex.h
- Do take care of ~ in Linux version of _fullpath (not tested yet)
modified:
storage/connect/osutil.c
to use named pipe on Windows by specifying the host as '.'
This addresses MDEV-5952.
modified:
storage/connect/myconn.cpp
- Clean some unused code
modified:
storage/connect/connect.cc
storage/connect/connect.h
storage/connect/ha_connect.cc
storage/connect/ha_connect.h