[CONJ-921] DatabaseMetadata#getTables with null value for tableNamePattern throws Syntax error Created: 2022-01-31  Updated: 2022-03-02  Resolved: 2022-02-10

Status: Closed
Project: MariaDB Connector/J
Component/s: metadata
Affects Version/s: 3.0.3
Fix Version/s: 3.0.4

Type: Bug Priority: Major
Reporter: Francesco Chicchiriccò Assignee: Diego Dupin
Resolution: Fixed Votes: 1
Labels: None
Environment:

MariaDB 10.6 from Docker Hub



 Description   

The following works with JDBC client 2.7.5:

Connection conn = ...;
DatabaseMetaData meta = conn.getMetaData();
meta.getTables(null, null, null, new String[] { "TABLE" });

The same exact code throws syntax error with 3.0.3:

java.sql.SQLSyntaxErrorException: (conn=3) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AND TABLE_TYPE IN ('BASE TABLE','SYSTEM VERSIONED') ORDER BY TABLE_TYPE, TABL...' at line 1
        at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:270) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:358) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.message.ClientMessage.readPacket(ClientMessage.java:133) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.client.impl.StandardClient.readPacket(StandardClient.java:807) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.client.impl.StandardClient.readResults(StandardClient.java:746) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.client.impl.StandardClient.readResponse(StandardClient.java:665) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.client.impl.StandardClient.execute(StandardClient.java:608) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.Statement.executeInternal(Statement.java:906) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.Statement.executeQuery(Statement.java:114) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.DatabaseMetaData.executeQuery(DatabaseMetaData.java:470) ~[mariadb-java-client-3.0.3.jar:?]
        at org.mariadb.jdbc.DatabaseMetaData.getTables(DatabaseMetaData.java:657) ~[mariadb-java-client-3.0.3.jar:?]



 Comments   
Comment by Diego Dupin [ 2022-02-10 ]

corrected in 3.0.4.
available through snapshot :

<repositories>
    <repository>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
</repositories>
 
<dependencies>
    <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>3.0.4-SNAPSHOT</version>
    </dependency>
</dependencies>

Comment by Markus Ueberall [ 2022-03-02 ]

What's the ETA for v3.0.4 GA for those who cannot access the above snapshot? At the moment, SQuirrel SQL cannot be used in conjunction with the latest official Connector/J (this might depend on the MariaDB version, though; see this thread)

Generated at Thu Feb 08 03:19:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.