Commit Graph

41 Commits

Author SHA1 Message Date
1f241a5ed1 Rearrange libraries and build files.
This is the first change in an attempt to arrange the linking so that
more errors are detected at link-time.

- All files in server/core but for gateway.c are linked to one shared
  library called maxscale-common.
- The files log_manager/log_manager.cc and utils/skygw_utils.cc are
  built into maxscale-common as well.
- MaxScale itself consists now only of gateway.c and is linked with
  maxscale-common.
- All plugins link with maxscale-common.
- All executables link in addition with {EMBEDDED_LIB}.

After this change, the change (MXS-517) where query_classifier is the
only component that uses ${EMBEDDED_LIB} and the rest mysqlclient can
be made much cleaner.

After a few additional steps, all shared libraries can be linked with
the linker flags "-Wl,-z,defs", which directs the linker to resolve
all symbols. That will require that all shared libraries list all the
libraries they need, but will at the same time ensure that any
missing symbols are detected at link-time and not at run-time.
2016-01-22 23:26:17 +02:00
54ca1ab2de Canonicalized queries remove non-executable comments
The comments which do not alter the functionality of a query are now removed
from canonicalized queries.

Also fixed missing semicolon in the comment removal regex and added tests
for comment removal.
2016-01-11 17:14:57 +02:00
8ee110efa8 Fixed canonicalization and added more tests
Fixed mistakes in the canonicalization regular expressions and altered the
functions to use a source and destination buffers. This reduces the amount
of memory allocations that take place.

Added more canonical query tests to the internal test suite.
2016-01-11 17:14:44 +02:00
c067bbe34a Formatted the canonical query test.
The file is now formatted according to the style guide.
2016-01-11 17:13:01 +02:00
9c9e30fa08 Fixed value replacement and added more tests for canonicalization of queries
The value replacement was not taking session or system variables into notice.
2016-01-11 17:09:40 +02:00
995ed8c9d2 Improved query canonicalization
The query does not need to be parsed for it to be canonicalized and the parsing
uses the PCRE2 library. The regular expressions were changed so that only one
call to the function which replaces literal unquoted values is made.
2016-01-11 17:08:03 +02:00
4d155f70b0 Remove call to parse_query.
Not needed anymore.
2016-01-11 15:14:27 +02:00
20bc6a4ab7 Reindent canonizer.c
- Untabify
- Remove trailing whitespace.
- Allman braces.
2016-01-11 15:08:27 +02:00
2f42246880 Rename query classifier functions consistently.
All public query classifier functions now have the prefix qc_.
2016-01-11 12:04:52 +02:00
080a9ebc9d PCRE2 is now statically linked
Since the PCRE2 library was always going to be a part of MaxScale, there was
no real reason to have it as a shared library apart from smaller binaries.
2015-12-29 10:09:38 +02:00
c1194a5ee8 Fixed test build failures. 2015-09-10 18:07:24 +03:00
15262f3fbf Added new Make target for testing MaxScale's core parts.
This target doesn't need a running MaxScale and only executes core, log_manager and query_classifier unit tests.
2015-03-19 11:56:40 +02:00
06c2d201e0 remove makefiles and other garbage 2015-01-14 19:08:24 +02:00
fb9d792859 Fix to Coverity defect 76134 2014-11-13 09:02:56 +02:00
9cb2be9605 Fixes to Coverity erros 75748 and 76132. 2014-11-11 13:42:12 +02:00
a4caac55c8 Fixes to Coverity errors:
72662
72702
72724
73397
73410
73414
73422
75424
75748
75789
75938
75939

Also includes a fix to a bug caused by a previous Coverity error change in canonizer.c
2014-11-07 11:52:40 +02:00
474f018cee Fixes to minor Coverity errors:
75424
73422
72724
72702
72662
2014-11-07 11:12:26 +02:00
17f87e29af Fixes to some Coverity issues. 2014-11-05 11:57:42 +02:00
e7feba6964 Fixed canonical query tests 2014-11-03 13:00:46 +02:00
ca816743e8 Returned #include <my_config.h> and updated server name. 2014-11-03 11:33:41 +02:00
b15ac9c019 Revert to 54d389e329a860add1f609508c676761521a8ad0 due to erroneous fix. 2014-11-03 08:57:02 +02:00
fb02e44e7e Fix to #605, http://bugs.mariadb.com/show_bug.cgi?id=605
Main assumed multi-byte characters in memory allocation but not outside of it so I removed that code and made it consistently assume single-byte characters.
Terminating character was added always to the last byte of string buffer regardless of the length of the string. Removed it and replaced malloc with calloc.
Moved variable introductions from the middle of the function to the beginning of it.
2014-11-02 22:33:12 +02:00
aaa727bcc2 Fix to bug #605, http://bugs.mariadb.com/show_bug.cgi?id=605
String buffer allocation didn't allocate space for terminating char. It also assumed that character size may vary but the rest of the code didn't support multi-byte characters so I changed it consistently assume single-byte characters.
2014-11-02 22:11:28 +02:00
ebb3b52fdb Included the my_config.h header before any system headers if mysql headers were used. 2014-10-10 12:30:21 +03:00
3cd8e29c4c Changed the way some CMake functions are used to support older versions of CMake. 2014-10-07 14:09:22 +03:00
f4e591e382 Changed 'SkySQL Gateway' to 'MariaDB Corporation MaxScale' 2014-09-30 13:15:03 +03:00
fc848665e5 Added variables for RabbitMQ headers and libraries, added more error checks.
modified:   CMakeLists.txt
	modified:   README
	modified:   macros.cmake
	modified:   query_classifier/test/canonical_tests/CMakeLists.txt
	modified:   rabbitmq_consumer/CMakeLists.txt
	modified:   server/modules/filter/CMakeLists.txt
2014-09-22 13:14:53 +03:00
8b1afbfe26 fixed tests not working with the normal 'make testall' 2014-09-16 20:02:28 +03:00
0f5cfdbd1a Added dependency checks, Debian packaging and fixes to various parts of the CMake build files. 2014-09-16 15:02:43 +03:00
0f07c9f08c Added hint tests
Fixed readwritesplit tests looking for test input in the wrong directory
Updated the canonical query test expected output
2014-09-15 09:27:47 +03:00
32b72ce474 more configuration options, README update and tests 2014-09-12 16:48:21 +03:00
d8c34aabad added log manager and query classifier tests 2014-09-12 06:06:11 +03:00
aafc891c9a Fixed canonical query test and mqfilter.c bugs 2014-09-05 10:58:54 +03:00
2c470d7bf4 Fixed canonizer.c passing NULL to various functions. 2014-09-04 18:19:15 +03:00
36bf676a83 Fixed canonical test's makefile.
Added option for compiling MaxScale with RabbitMQ filter
2014-09-04 16:43:52 +03:00
dfe2806e37 server/core/makefile: added -lmysqld to LDFLAGS so that the tests compile
query_classifier/test/canonical_tests/Makefile: Added hint.o to link flags
2014-09-04 15:44:00 +03:00
cf5821d4ef Added expected results for missing queries. 2014-08-26 11:14:51 +03:00
69104d7dee skygw_utils.cc:replace_literal: Fixed regular expression which, for example, accepted "200" with needle "2"
query_classifier.cc: fixed invalid argument list in logging command.
input.sql: added a few previously failed cases for canonical query test
2014-08-26 11:08:05 +03:00
4ab7112db7 more test cases for canonical queries and makefile typo fixes 2014-08-25 15:24:23 +03:00
662b4b00ee the errmsg.sys file is now copied during test building 2014-08-22 20:50:54 +03:00
73707cc9da canonical query tests for query classifier 2014-08-22 20:44:26 +03:00