138 Commits

Author SHA1 Message Date
Markus Makela
f2cec6e51e Merge branch 'release-1.0GA' into firewall
Conflicts:
	query_classifier/query_classifier.cc
2014-12-09 14:23:07 +02:00
VilhoRaatikka
bc104c0ef1 Merge branch 'release-1.0GA' into MAX-324 2014-12-08 22:37:15 +02:00
VilhoRaatikka
68fc849c6e query_classifier.cc:cleaned up some intendentions and brackets.
dbshard.h:removed unnecessary code
dbshard.c:removed unnecessary code, cleaned up a bit and made some required changes
readwritesplit.c:removed two unnecessary variable assignments.
2014-12-07 00:34:23 +02:00
Markus Makela
06578c95a5 Updates to dbshard router:
Added a parsing function to query classifier that returns an array of database names the query uses.
Added a check if the query targets a sharded database. If so, a hint is added that routes the query to the named server.
2014-12-06 11:30:07 +02:00
VilhoRaatikka
01b1b0a304 Fixes to Coverity issues 84388, 84386, 84385
mysql_mon.c: Added back server state logging to Debug build.
query_classifier.cc: removed some extra debug code, cleaned up a bit function documentation.
mysql_client_server_protocol.h, mysql_backend.c, mysql_common.c: changed some variables to signed ones to enable checking of calculations in the code.
skygw_utils.cc: removed erroneous debug assertion.
2014-12-05 23:39:14 +02:00
Markus Makela
12d6d81fa8 Merge branch 'release-1.0GA' into firewall
Conflicts:
	log_manager/log_manager.cc
2014-12-04 17:13:41 +02:00
VilhoRaatikka
b106560317 Fix to bug # 634, http://bugs.skysql.com/show_bug.cgi?id=634
COM_SHOW_SLAVE_STAT wasn't classified but it was treated as 'unknown' and thus routed to master.
2014-12-03 13:27:31 +02:00
Markus Makela
0900b5dbce Merge branch 'develop' into firewall
Conflicts:
	server/modules/filter/test/harness_common.c
2014-11-25 17:56:26 +02:00
VilhoRaatikka
fd11e6a7f5 Session-specific logging. Added functions
void session_enable_log(SESSION* ses, logfile_id_t id)
and
void session_disable_log(SESSION* ses, logfile_id_t id)

Which switch specific log type on/off if the log type in question is not generally enabled.

Each thread carries a thread-specific struct log_info_t which includes members for current session id and bitfield for enabled log types for the current session. That information is checked before actual log write functions are called.

Each file where session-specific logging is used, must include the following exports:

/** Defined in log_manager.cc */
extern int            lm_enabled_logfiles_bitmask;
extern size_t         log_ses_count[];
extern __thread log_info_t tls_log_info;
2014-11-19 00:08:59 +02:00
Markus Makela
a5ece62327 Merge branch 'develop' into firewall
Conflicts:
	server/modules/filter/test/harness.h
	server/modules/filter/test/harness_common.c
2014-11-17 18:45:01 +02:00
VilhoRaatikka
6bda88f252 Addition to fix to bug #597, http://bugs.skysql.com/show_bug.cgi?id=597 2014-11-17 15:15:34 +02:00
VilhoRaatikka
1c4ffd2599 Fix to bug #597, http://bugs.skysql.com/show_bug.cgi?id=597
Changed the order of include directives in query_classifier.cc
2014-11-17 14:55:13 +02:00
Markus Makela
ca13e18f53 Added query operation type requirements on where clauses and fixed a bug with regex rules. 2014-11-14 16:28:20 +02:00
Markus Makela
9accebdc37 Merge branch 'develop' into firewall 2014-11-10 09:08:39 +02:00
Markus Makela
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
VilhoRaatikka
e7b6ec644c Fix to Coverity issue 72741 2014-11-05 16:05:35 +02:00
Markus Makela
4f5bda7a8b Merge branch 'develop' into firewall 2014-11-05 15:28:22 +02:00
Markus Makela
36c6a61330 Fixes to coverity bugs:
72670: query_classifier/query_classifier.cc
72682: server/modules/filter/qlafilter.c
72679: server/modules/filter/tee.c
72716: server/modules/protocol/maxscaled.c
72694: server/modules/protocol/telnetd.c
71743: server/modules/routing/readwritesplit/readwritesplit.c
2014-11-05 14:18:38 +02:00
Markus Makela
b7f9819407 Merge branch 'develop' into firewall 2014-11-03 09:26:31 +02:00
VilhoRaatikka
5a2d492fe8 Fixed use of uninitialized memory. 2014-10-31 23:47:33 +02:00
Markus Makela
effe8f3297 Switched over to hashtables for users and columns. 2014-10-15 15:23:14 +03:00
Markus Makela
9abe270da8 added checking for where clause on queries 2014-10-13 13:48:07 +03:00
Markus Makela
e02bed1f14 Initial implementation of the firewall filter. 2014-10-09 13:22:38 +03:00
Markus Makela
52c0d0c768 Merge remote-tracking branch 'origin/develop' into header_rename 2014-10-01 05:24:02 +03:00
VilhoRaatikka
c055a3c0d2 Addition to fix of #557, Removal of confusing and erroneous log message. 2014-09-30 17:04:43 +03:00
VilhoRaatikka
ca7ae0bb64 Fix to bug #557, http://bugs.mariadb.com/show_bug.cgi?id=557
query_classifier.cc: added function for printing combined query type from a bit field.
query_classifier.h: identify query types SHOW DATABASE, and SHOW TABLES to make log entries more understandable.
mysql_common.c: moved some trace log commands to debug log.
readwritesplit.c: moved some trace logs to debug log, added trace log commands to gather routing, query type and session information to one log entry.
skygw_debug.h: added string macros for several query and hint types.
2014-09-30 16:31:30 +03:00
Markus Makela
f4e591e382 Changed 'SkySQL Gateway' to 'MariaDB Corporation MaxScale' 2014-09-30 13:15:03 +03:00
Markus Makela
c344231f80 Renamed all occurences of SkySQL to MariaDB Corporation 2014-09-30 13:02:10 +03:00
VilhoRaatikka
2b147a9ea4 Monitors waited monitor check interval time before checking backend servers for the first time. Removed wait for the first check.
Added extra debugging to query_classifier to assist in issue resolution regarding to optimized MaxScale builds and pthread_mutex_lock in sql/sql_class.h
2014-09-24 12:03:04 +03:00
VilhoRaatikka
a41a8d6060 Fix to bug #543, http://bugs.skysql.com/show_bug.cgi?id=543
All counters are now updated in routeQuery
Fix to bug #545, http://bugs.skysql.com/show_bug.cgi?id=545
All sql variable and session modification statements, such as autocommit-, and set <db> commands are routed to all nodes.
2014-09-15 19:01:04 +03:00
VilhoRaatikka
d799331c50 Added support for fine-grained query classification which is needed for configurable support for user- and system variable execution. This is partial implementation to task MAX-242. Tests passed with make -C server/modules/routing/readwritesplit/test but this is intermediate commit. 2014-09-05 22:50:35 +03:00
Markus Makela
c00e51fd00 Merge branch 'Z3' into Z3_rabbit_partial
Conflicts:
	server/modules/routing/readwritesplit/readwritesplit.c
2014-09-04 13:52:12 +03:00
Markus Makela
4e11ea9b06 Merged some of the rabbitmq branch changes
query_classifier.cc: updated skygw_get_table_names to allow for partial or full table names
readwritesplit.c: transferred temporary table detection to separate functions
2014-09-04 13:31:20 +03:00
VilhoRaatikka
7fcf950f8f Merge branch 'Z3' of https://github.com/skysql/MaxScale into Z3
Conflicts:
	server/modules/routing/readwritesplit/readwritesplit.c
2014-09-03 22:54:32 +03:00
VilhoRaatikka
cda39a62fb Fixes to
Includes imprvements to hints processing. If hint can't be followed query is routed possibly to slave, and eventually to master if other attempts fail.
2014-09-03 22:09:50 +03:00
VilhoRaatikka
5e5c59d322 Merge branch 'MAX-237' into Z3 2014-09-03 17:50:56 +03:00
Markus Makela
cc5922b218 Merge branch 'MAX-237' into Z3 2014-09-02 16:58:20 +03:00
Markus Makela
52f3adbf20 fixed temporary tables looking for database drops instead of table drops 2014-09-01 19:50:25 +03:00
VilhoRaatikka
0fed5c2c5b Fix to bug #510, http://bugs.skysql.com/show_bug.cgi?id=510, made every MaxScale thread to call mysql_thread_init() before entering poll_waitevents. Also main thread does this before starting services. Removed all calls to mysql_thread_init() and to mysql_thread_end() from elsewhere than from poll.c:poll_waitevents and from gateway.c:main
skygw_utils.cc: replace_literal: fixed memory leak
2014-09-01 19:37:31 +03:00
VilhoRaatikka
3c1abf4b64 Cleanup 2014-09-01 13:57:31 +03:00
Markus Makela
0e53633a37 Merge remote-tracking branch 'origin/Z3' into MAX-237 2014-09-01 13:44:24 +03:00
VilhoRaatikka
20abbbdf57 query_classifier.cc:skygw_get_canonical: Fixed bug in how strings were passed to replace_literal function. Changed to use item->str_ptr which stores all strings in the same way unlike item->name in which some string values have double quotation.
skygw_utils.cc:Fixed regexp so that it detects literals at the end of line too.
2014-09-01 13:23:04 +03:00
Markus Makela
a17e584adb Merge remote-tracking branch 'origin/Z3' into MAX-237
Conflicts:
	query_classifier/query_classifier.cc
	query_classifier/query_classifier.h
	server/modules/routing/readwritesplit/readwritesplit.c
2014-09-01 11:05:10 +03:00
Markus Makela
067ce3c886 removed unneeded QUERY_TYPE_DROP_TABLE type from query_classifier.h 2014-09-01 10:35:48 +03:00
VilhoRaatikka
40f85f9cad Fix to bug http://bugs.skysql.com/show_bug.cgi?id=488. SHOW VARIABLES was treated as if it was session write command. Instead it is a read-only query. Changed to route that to master. 2014-08-31 22:56:30 +03:00
Markus Makela
58e8c05c8a added detection of drop table targeting a temporary table 2014-08-31 20:19:47 +03:00
Markus Makela
7629c455a6 partial implementation 2014-08-30 08:27:05 +03:00
Markus Makela
7ea53f0141 Merge remote-tracking branch 'origin/MAX-160' into MAX-237
Conflicts:
	query_classifier/query_classifier.cc
	query_classifier/query_classifier.h
2014-08-29 11:02:03 +03:00
VilhoRaatikka
531d8d7b47 query_classifier.cc: added detection for CREATE TEMPORARY TABLE and setting a new query type QUERY_TYPE_CREATE_TMP_TABLE for it.
query_classifier.h: added QUERY_TYPE_CREATE_TMP_TABLE and QUERY_TYPE_READ_TMP_TABLE for use of temporary table support.
hashtable.c:Added variant of hashtable which is 'flat', that is, stored to existing memory instead of allocating memory as a part of the call. Existing function declarations don't change but added hashtable_alloc_flat for the purpose. Both hashtable_alloc and hashtable_alloc_flat now call the real allocation function, hashtable_alloc_real. hashtable_free only frees memory which is allocated in hashtable_alloc_real.
hashtable.h: added a flag to HASHTABLE struct to indicate whether hashtable owns its memory or not.
readwritesplit.h: Added RSES_PROP_TYPE_TMPTABLES property type to be used for keeping the hashtable for tablenames.
readwritesplit.c: Added comments about temporary table support implementation.
2014-08-29 10:08:48 +03:00
VilhoRaatikka
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