1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-06-04 21:02:13 +03:00
Andrew Hutchings 401e257df3 MCOL-879 Fix QueryStats linking issues
With 1.1 we have removed libdrizzle and used MariaDB's client library
instead for both CrossEngine and QueryStats. Unfortunately MariaDB 10.2
has two client libraries which have different structs with the same
name. When QueryStats was running inside the ColumnStore plugin this
symbol conflict was causing a crash.

The server's built-in client API has several different and several
missing functions so some additions to sm.cpp were made to fill the
gaps.

This patch does the following:

* Make sure that libmariadb is only linked to executables, not the
ColumnStore Plugin (to avoid symbol conflicts). Note that all
executables that link to CrossEngine and/or QueryStats need to link to
libmariadb to avoid missing symbol issues.
* Use the server's built-in client API for QueryStats when run in the
plugin
* Replace missing server built-in client API calls in sm.cpp (this is
for QueryStats and CrossEngine to keep the dynamic linker happy)
* Fixes issue where using 'localhost' as the MariaDB Server hostname
would fail in QueryStats.
2017-08-18 10:16:52 +01:00

44 lines
1.0 KiB
CMake

include_directories( ${ENGINE_COMMON_INCLUDES} )
########### next target ###############
set(we_bulk_STAT_SRCS
we_brmreporter.cpp
we_bulkload.cpp
we_bulkloadbuffer.cpp
we_bulkstatus.cpp
we_colopbulk.cpp
we_colbuf.cpp
we_colbufcompressed.cpp
we_colbufmgr.cpp
we_colbufmgrdctnry.cpp
we_colbufsec.cpp
we_colextinf.cpp
we_columninfo.cpp
we_columninfocompressed.cpp
we_columnautoinc.cpp
we_extentstripealloc.cpp
we_tableinfo.cpp
we_tempxmlgendata.cpp
we_workers.cpp)
ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
add_library(we_bulk STATIC ${we_bulk_STAT_SRCS})
target_link_libraries(we_bulk ${NETSNMP_LIBRARIES})
REMOVE_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
########### next target ###############
set(cpimport.bin_SRCS cpimport.cpp)
add_executable(cpimport.bin ${cpimport.bin_SRCS})
target_link_libraries(cpimport.bin ${ENGINE_LDFLAGS} ${NETSNMP_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_WRITE_LIBS} we_bulk we_xml)
install(TARGETS cpimport.bin DESTINATION ${ENGINE_BINDIR} COMPONENT platform)