Details
Description
Got error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0x1a19340)' at line 1 when executing 'OPTIMIZE TABLE'
Offending query as it's written into the general log:
OPTIMIZE TABLE ARRAY(0x1a19340)
If sql-bench/test-table-elimination is executed with --fast option (and assuming that bug #986731 is fixed), it calls 'vacuum' subroutine which, in turn, attempts to run OPTIMIZE TABLE. The 'vacuum' subroutine expects that the tables for OPTIMIZE are provided as an array, but test-table-elimination calls it with a reference to an array. The following change seems to fix the problem:
@@ -199,12 +199,12 @@
if ($opt_fast && defined($server->
{vacuum}))
{ - $server->vacuum(0,\$dbh,["elim_facts", "elim_attr1", "elim_attr2"]); + $server->vacuum(0,\$dbh,("elim_facts", "elim_attr1", "elim_attr2")); }Reproducible on maria-5.1
bzr version-info
revision-id: <email address hidden>
date: 2012-04-06 13:31:33 +0500
build-date: 2012-04-22 05:08:00 +0400
revno: 3146
Same code in other versions.
To reproduce,
- start MariaDB server;
- run test-table-elimination --socket=<socket> --fast
(if it fails with a syntax error in LOCK TABLES, fix bug #986731 first).