Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-5295

Unable to query INFORMATION_SCHEMA.`TABLES` if MySql storage plugin enabled

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • 1.9.0
    • 1.16.0
    • None
    • None
    • Drill 1.9. Error can be reproduced running Drill locally on Windows and on Linux within zookeeper. I can reproduce it with 2 mysql servers.

    • Important

    Description

      Impact: Unable to connect from Qlik Sense to Drill because of MySql Storage Plugin enabled.

      Steps to repro:
      1. Create a new storage plugin to MySql Community Edition 5.5.43. Enable it.
      2. Run query: "select * from INFORMATION_SCHEMA.`TABLES`"
      3. Error:

      Error: SYSTEM ERROR: NullPointerException: Error. Type information for table bistoremysql.information_schema.CHARACTER_SETS provided is null.
      Fragment 0:0
      [Error Id: 2717cfe1-413d-4330-ab3f-720ae92ebc50 on mycomputer.domain.lan:31010]
      
        (java.lang.NullPointerException) Error. Type information for table bistoremysql.information_schema.CHARACTER_SETS provided is null.
          com.google.common.base.Preconditions.checkNotNull():250
          org.apache.drill.exec.store.ischema.InfoSchemaRecordGenerator$Tables.visitTableWithType():314
          org.apache.drill.exec.store.ischema.InfoSchemaRecordGenerator$Tables.visitTables():308
          org.apache.drill.exec.store.ischema.InfoSchemaRecordGenerator.scanSchema():215
          org.apache.drill.exec.store.ischema.InfoSchemaRecordGenerator.scanSchema():208
          org.apache.drill.exec.store.ischema.InfoSchemaRecordGenerator.scanSchema():208
          org.apache.drill.exec.store.ischema.InfoSchemaRecordGenerator.scanSchema():195
          org.apache.drill.exec.store.ischema.InfoSchemaTableType.getRecordReader():58
          org.apache.drill.exec.store.ischema.InfoSchemaBatchCreator.getBatch():36
          org.apache.drill.exec.store.ischema.InfoSchemaBatchCreator.getBatch():30
          org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch():148
          org.apache.drill.exec.physical.impl.ImplCreator.getChildren():171
          org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch():128
          org.apache.drill.exec.physical.impl.ImplCreator.getChildren():171
          org.apache.drill.exec.physical.impl.ImplCreator.getRootExec():101
          org.apache.drill.exec.physical.impl.ImplCreator.getExec():79
          org.apache.drill.exec.work.fragment.FragmentExecutor.run():206
          org.apache.drill.common.SelfCleaningRunnable.run():38
          java.util.concurrent.ThreadPoolExecutor.runWorker():1145
          java.util.concurrent.ThreadPoolExecutor$Worker.run():615
          java.lang.Thread.run():745 (state=,code=0)
      

      The full query Qlik Sense runs:

      select TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE from INFORMATION_SCHEMA.`TABLES` WHERE TABLE_CATALOG LIKE 'DRILL' ESCAPE '\' AND TABLE_SCHEMA <> 'sys' AND TABLE_SCHEMA <> 'INFORMATION_SCHEMA'ORDER BY TABLE_TYPE, TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME
      

      If I disable the mysql storage plugin, I can run the query and connect from Qlik (not a workaround).

      This issue cannot be reproduced using Drill 1.5.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mponca Martina Ponca
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: