[MDEV-772] LP:986739 - sql-bench/test-table-elimination fails with SQL syntax error on OPTIMIZE if executed with --fast Created: 2012-04-22  Updated: 2012-10-31  Resolved: 2012-10-31

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.3.9
Fix Version/s: 5.5.28a, 5.3.10, 5.2.13, 5.1.66

Type: Bug Priority: Trivial
Reporter: Elena Stepanova Assignee: Sergei Petrunia
Resolution: Fixed Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug986739.xml    

 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).


 Comments   
Comment by Rasmus Johansson (Inactive) [ 2012-04-22 ]

Launchpad bug id: 986739

Comment by Sergei Petrunia [ 2012-10-31 ]

Fixed in 5.3

Generated at Thu Feb 08 06:31:14 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.