Skip to content

Vertica: JDBC Driver does not support FETCH NEXT, only LIMIT #2802

@Deklin

Description

@Deklin

Describe the bug
When connecting a RDBMS datasource that is based on Vertica, Drill attempts to use the FETCH NEXT approach for query optimization, however vertica JDBC doesn't support FETCH NEXT but only supports limit.
https://docs.vertica.com/12.0.x/en/sql-reference/statements/select/limit-clause/

To Reproduce
Steps to reproduce the behavior:

  1. Connect a Vertica based RDBMS Datasource
  2. Once successful, validate with SHOW SCHEMAS;
  3. Attempt to run a query against one of the vertica tables
  4. Observe the error

Expected behavior
Results should appear properly and not use fetch next

Error detail, log output or screenshots
org.apache.drill.common.exceptions.UserRemoteException: DATA_READ ERROR: The JDBC storage plugin failed while trying setup the SQL query.

Sql: SELECT *
FROM "VerticaDB"."xxxxxxxxx"."yyyyyyyyy"
FETCH NEXT 1000 ROWS ONLY
Fragment: 0:0

[Error Id: d142a3d5-f5b3-4f9c-b850-a39e72604953 on a68ba75bf84a:31010]

SQL LOG:

Caused by: java.sql.SQLSyntaxErrorException: [Vertica]VJDBC ERROR: Syntax error at or near "NEXT" at character 59
at com.vertica.util.ServerErrorData.buildException()
at com.vertica.io.ProtocolStream.readExpectedMessage()
at com.vertica.dataengine.VDataEngine.prepareImpl()
at com.vertica.dataengine.VDataEngine.prepare()

Drill version
1.21.1

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions