777 Commits

Author SHA1 Message Date
Johan Wikman
f5c118d27b Merge branch '2.3' into 2.4 2020-05-13 11:04:18 +03:00
Johan Wikman
b212117fd3 MXS-2990 Fix the problem, treat ! as not
If '!' is followed by '=' then it is NOT-EQUAL, otherwise it is
just NOT.
2020-05-13 10:38:07 +03:00
Johan Wikman
9999650bbe MXS-2990 Add test that reveals problem
Had to fix qc_mysqlembedded as well to work with 10.2.
2020-05-13 10:32:39 +03:00
Markus Mäkelä
d3d7054639
Merge branch '2.3' into 2.4 2020-04-24 16:09:20 +03:00
Johan Wikman
f527a8f2e6 2.3.19 Update Change Date 2020-04-23 14:23:57 +03:00
Johan Wikman
d0ab797938 Merge branch '2.3' into 2.4 2020-03-12 10:33:57 +02:00
Johan Wikman
e0cd6adb26 Update change date for 2.3.18 2020-03-10 10:45:47 +02:00
Johan Wikman
163a7b3b84 MXS-2917 Add missing destructors to sqlite rules (2.4) 2020-03-09 16:01:49 +02:00
Johan Wikman
55425b22ce Merge branch '2.3' into 2.4 2020-03-09 15:45:37 +02:00
Johan Wikman
8dd9a4ca27 MXS-2917 Add missing destructors to sqlite rules
Lemon (the sqlite parser generator) destructors are needed for
all rules that return dynamically allocated structures. Otherwise
there may be leaks if a statement is not completely parsed.
2020-03-09 15:24:20 +02:00
Johan Wikman
0aae500577 MXS-2898 Classify @@last_insert_id() and last_insert_id() identically
With this change, both 'SET @my_id = (SELECT LAST_INSERT_ID())' and
'SET @my_id = (SELECT @@LAST_INSERT_ID)' are classified as

QUERY_TYPE_MASTER_READ|QUERY_TYPE_SESSION_WRITE|QUERY_TYPE_USERVAR_WRITE

Earlier @@last_insert_id had the QUERY_TYPE_READ bit set as well, which
indirectly caused the problems of MXS-2898.
2020-03-04 13:18:09 +02:00
Johan Wikman
4c2909e86c MXS-2227 Fix problem, parse OPTIMIZE statements
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
    tbl_name [, tbl_name] ...
    [WAIT n | NOWAIT]
2020-03-04 13:10:46 +02:00
Johan Wikman
3df8429db3 MXS-2227 Add test that reveals problem 2020-03-04 13:10:46 +02:00
Johan Wikman
ee8e43f26b MXS-2508 Fix problem
DIV and MOD are now also accepted instead of / and % respectively.
MOD is a keyword but (in principle incorrectly) decays into an id
when used in some other context. That is so that it will be
parser by the general function rule ("id ( ... )"). If used
incorrectly, the server will later reject.
2020-03-03 11:30:58 +02:00
Johan Wikman
be3be3bf99 MXS-2508 Add test that reveals problem 2020-03-03 11:30:58 +02:00
Johan Wikman
f66d7ca838 MXS-2508 Fix qc_mysqlembedded
It appears that the function db_my_assert may be used but not
built into the library.

With 10.4.12 there seem to occasionally be superfluous empty
table names.
2020-03-03 11:30:58 +02:00
Johan Wikman
8b763fb88b Merge branch '2.3' into 2.4 2020-02-12 08:27:48 +02:00
Johan Wikman
cfb3f79b54 Update 2.3.17 Change Date 2020-02-10 15:28:38 +02:00
Johan Wikman
08e572b139 Merge branch '2.3' into 2.4 2020-01-28 12:28:19 +02:00
Johan Wikman
ea2665214f MXS-2851 Fix bug 2020-01-28 12:10:24 +02:00
Johan Wikman
399f312911 MXS-2850 Fix bug 2020-01-28 11:08:27 +02:00
Johan Wikman
a7e0142224 Merge branch '2.3' into 2.4 2020-01-15 11:29:37 +02:00
Johan Wikman
790d90f229 Update 2.3.16 Change Date 2020-01-15 11:08:51 +02:00
Johan Wikman
a9a2b753c0 Update 2.4.5 change date 2019-12-18 13:25:03 +02:00
Johan Wikman
f6731a898d Update change date 2019-11-13 08:37:17 +02:00
Johan Wikman
fdfbf3e133 Update 2.4.3 change date 2019-11-05 12:21:00 +02:00
Johan Wikman
dcd3e60630 Merge branch '2.3' into 2.4 2019-11-01 14:21:48 +02:00
Johan Wikman
6cba7e8201 MXS-2732 Recognize character set names
In the tokenizer we will now recognize the character set names
of MariaDB and return a specific token for those. However, where
a character set name is not expected, it will automatically be
treated as an identifier.

Note that when the character set name is explicitly specified
for a literal string, the name must be prefixed with an underscore.
That is, if the character set name is "latin1", when used when
specifying a literal string, it's used as "_latin1 'a'".

Note that this does not fix the sqlite3 bug causing a leak, but
since the statement will now correctly be parsed, the leak will
not manifest itself.
2019-10-31 16:09:52 +02:00
Johan Wikman
177d95c3bc MXS-2732 Add test that reveals problem 2019-10-31 15:49:28 +02:00
Johan Wikman
ef184deb1f Merge branch '2.3' into 2.4 2019-10-31 10:06:27 +02:00
Johan Wikman
88e0c3dc37 MXS-2732 Remove old sqlite-src-3110100 directory 2019-10-30 12:05:53 +02:00
Johan Wikman
4af67e95ff MXS-2732 Take newly installed sqlite3 into use
No code differences, but the used sqlite has now been installed
in one single commit.
2019-10-30 11:36:04 +02:00
Johan Wikman
c2a601bcf5 MXS-2732 Add MaxScale sqlite3 changes
This commit contains all MaxScale changes that have been made
to sqlite3 version 3110100.
2019-10-30 11:28:39 +02:00
Johan Wikman
d2db25073b MXS-2732 Update sqlite3 tool mkopcodeh.tcl from 3200000
The mkopcodeh.tcl of sqlite3 version 3110100 has a bug that
manifests itself so that it generates broken code depending on
what keywords there are and in what order. The mkopcodeh.tcl
from 3200000 does not have that problem.
2019-10-30 11:22:31 +02:00
Johan Wikman
6df8fb2497 MXS-2732 Add sqlite3 version 3110100 2019-10-30 10:58:24 +02:00
Johan Wikman
81e78726eb MXS-2732 Rename sqlite-src-3110100 to sqlite-src-3110100.old
Originally, the sqlite installation was imported into the MaxScale
repository in the one gigantic MaxScale 1.4 -> 2.0 commit.

Consequently, there is no import commit to compare to if you want
to extract all MaxScale specific changes. To make it simpler in the
future, sqlite will now be imported in a commit of its own.
2019-10-30 10:58:24 +02:00
Johan Wikman
861e27eb00 Merge branch '2.3' into 2.4 2019-10-29 14:04:31 +02:00
Johan Wikman
df6c56e7ca Update 2.3.13 Change Date 2019-10-29 12:51:31 +02:00
Johan Wikman
82826f2de5 MXS-2733 Add fix that fixes the problem
UTC_TIMESTAMP() was missing from the list of builtin functions.
2019-10-29 09:26:41 +02:00
Johan Wikman
d3407471b3 MXS-2733 Add test that reveals problem 2019-10-29 09:26:41 +02:00
Johan Wikman
840b771283 Merge branch '2.3' into 2.4 2019-10-28 09:16:53 +02:00
Johan Wikman
d2996e1ba6 MXS-2733 Add fix that fixes the problem
UTC_TIMESTAMP() was missing from the list of builtin functions.
2019-10-28 08:34:39 +02:00
Johan Wikman
9210ef5328 MXS-2733 Add test that reveals problem 2019-10-28 08:30:04 +02:00
Johan Wikman
312469dca2 Merge branch '2.3' into 2.4 2019-10-07 16:17:53 +03:00
Johan Wikman
e7e40b0179 MXS-2713 Classify SET PASSWORD as QUERY_TYPE_WRITE
A change of the password is replicated to the slaves, so it
must only be sent to the master.
2019-10-07 14:33:53 +03:00
Johan Wikman
2a7f320cf4 MXS-2713 Add test that reveals problem 2019-10-07 14:24:06 +03:00
Johan Wikman
0dce20e5e7 Merge branch '2.3' into 2.4 2019-09-27 12:30:58 +03:00
Johan Wikman
a9f07844b3 MXS-2699 Accept '_[character_set] hex' as string
The purpose is to recognize e.g. /_utf8mb4 0xD091D092D093/ as
a valid string. The rule actually accepts /id integer/, but in
case the statement is something else but an '_' immediately
followed by a character set, followed by a hex number, it will
be rejected by the server so no harm done.
2019-09-27 12:23:04 +03:00
Johan Wikman
c01ecfed05 MXS-2699 Add test that reveals other bug 2019-09-27 12:23:04 +03:00
Johan Wikman
5bbb2e239d MXS-2699 Add rule for (expr [, expr]*)
Sofar at most (expr, expr) was accepted.
2019-09-27 12:23:04 +03:00