tursodatabase/turso · error · SQLFeatureNotSupportedException

Not yet implemented by SQLite JDBC driver

Error message

Not yet implemented by SQLite JDBC driver

What it means

JDBC4DatabaseMetaData.getFunctionColumns(...) throws SQLFeatureNotSupportedException('Not yet implemented by SQLite JDBC driver') at JDBC4DatabaseMetaData.java:1186 - the driver has not implemented the JDBC function-metadata catalog (the sibling getFunctions and getPseudoColumns are also unimplemented). It is a metadata-surface gap, not a statement about your schema: the engine functions exist but are not enumerated through this API.

Solutions

  1. Skip/avoid the function-columns metadata view in your tool for turso databases.
  2. Catch SQLFeatureNotSupportedException around DatabaseMetaData introspection and degrade gracefully to table/column metadata.
  3. Query sqlite's own catalogs instead (pragma table_info, pragma function_list) when you need engine-level function info.
  4. Watch driver updates - the message says 'not yet implemented', so a later release may add it.

Example fix

// before
ResultSet cols = meta.getFunctionColumns(null, null, "%, "%"); // throws

// after
try {
    ResultSet cols = meta.getFunctionColumns(null, null, "%", "%");
} catch (SQLFeatureNotSupportedException e) {
    // function metadata not implemented; degrade gracefully
}
Defensive patterns

Strategy: try-catch

Validate before calling

// probe metadata capability safely before building UI/reports
DatabaseMetaData md = conn.getMetaData();
// wrap function-metadata calls; turso has not implemented getFunctionColumns

Try / catch

try {
    ResultSet rs = md.getFunctionColumns(catalog, schema, fnPat, colPat);
} catch (SQLFeatureNotSupportedException e) {
    // function metadata unavailable: skip that view / use pragma function_list
}

Prevention

When it happens

Trigger: DatabaseMetaData.getFunctionColumns(catalog, schema, functionPattern, columnPattern) called by SQL clients (DBeaver function-columns tab, DataGrip, SQuirreL), schema-documentation tools, or ORM introspection during startup.

Common situations: Browsing a turso database in a JDBC-capable IDE/tool that enumerates functions; tools generating ER diagrams or schema reports; migration tooling that inventories all DatabaseMetaData methods; JDBC conformance checkers.

Related errors


AI-assisted analysis of tursodatabase/turso@244cde92a7 (2026-08-20). Data as JSON: /api/errors/3bca779c916bae30. Report an issue: GitHub.

Appendix: source

Thrown at bindings/java/src/main/java/tech/turso/jdbc4/JDBC4DatabaseMetaData.java:1186

  @Override
  public ResultSet getClientInfoProperties() throws SQLException {
    throw new SQLFeatureNotSupportedException();
  }

  @Override
  @SkipNullableCheck
  public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern)
      throws SQLException {
    throw new SQLFeatureNotSupportedException();
  }

  @Override
  @SkipNullableCheck
  public ResultSet getFunctionColumns(
      String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern)
      throws SQLException {
    throw new SQLFeatureNotSupportedException("Not yet implemented by SQLite JDBC driver");
  }

  @Override
  @SkipNullableCheck
  public ResultSet getPseudoColumns(
      String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)
      throws SQLException {
    throw new SQLFeatureNotSupportedException();
  }

  @Override
  public boolean generatedKeyAlwaysReturned() throws SQLException {
    throw new SQLFeatureNotSupportedException();
  }

  @Override
  @SkipNullableCheck
  public <T> T unwrap(Class<T> iface) throws SQLException {

View on GitHub (pinned to 244cde92a7)