Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-772

LP:986739 - sql-bench/test-table-elimination fails with SQL syntax error on OPTIMIZE if executed with --fast

    XMLWordPrintable

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

        Attachments

          Activity

            People

            Assignee:
            psergey Sergei Petrunia
            Reporter:
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: