{"record":{"id":"ebab0419a6034d2e","repo":"apache/beam","slug":"unrecognized-dialect-dialect-name","errorCode":null,"errorMessage":"Unrecognized dialect: + dialect.name()","messagePattern":"Unrecognized dialect: \\+ dialect\\.name\\(\\)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchema.java","lineNumber":172,"sourceCode":"                + \"    c.table_name\"\n                + \"  , c.column_name\"\n                + \"  , c.spanner_type\"\n                + \"  , (1 + COALESCE(t.indices, 0)) AS cells_mutated\"\n                + \"  FROM (\"\n                + \"    SELECT c.table_name, c.column_name, c.spanner_type, c.ordinal_position\"\n                + \"      FROM information_schema.columns as c\"\n                + \"      WHERE c.table_schema='public') AS c\"\n                + \"  LEFT OUTER JOIN (\"\n                + \"    SELECT t.table_name, t.column_name, COUNT(*) AS indices\"\n                + \"      FROM information_schema.index_columns AS t \"\n                + \"      WHERE t.index_name != 'PRIMARY_KEY'\"\n                + \"      AND t.table_schema='public'\"\n                + \"      GROUP BY t.table_name, t.column_name) AS t\"\n                + \"  USING (table_name, column_name)\"\n                + \"  ORDER BY c.table_name, c.ordinal_position\";\n        break;\n      default:\n        throw new IllegalArgumentException(\"Unrecognized dialect: \" + dialect.name());\n    }\n    return tx.executeQuery(Statement.of(statement));\n  }\n\n  private ResultSet readPrimaryKeyInfo(ReadOnlyTransaction tx, Dialect dialect) {\n    String statement = \"\";\n    switch (dialect) {\n      case GOOGLE_STANDARD_SQL:\n        statement =\n            \"SELECT t.table_name, t.column_name, t.column_ordering\"\n                + \" FROM information_schema.index_columns AS t \"\n                + \" WHERE t.index_name = 'PRIMARY_KEY' AND t.table_catalog = ''\"\n                + \" AND t.table_schema = ''\"\n                + \" ORDER BY t.table_name, t.ordinal_position\";\n        break;\n      case POSTGRESQL:\n        statement =\n            \"SELECT t.table_name, t.column_name, t.column_ordering\"","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/ReadSpannerSchema.java#L154-L190","documentation":"ReadSpannerSchema builds information-schema SQL per Spanner dialect (GOOGLE_STANDARD_SQL or POSTGRESQL). readTableInfo() throws IllegalArgumentException when the configured Dialect enum value has no corresponding SQL template, meaning the connector does not support the dialect passed in. It indicates an unsupported-dialect configuration rather than a data problem.","triggerScenarios":"Running SpannerIO read pipelines against a database whose Dialect resolves to an enum value not covered by the switch in readTableInfo (e.g. a newly added dialect enum the connector version does not handle).","commonSituations":"Pointing the connector at a newer Spanner database dialect with an older Beam release; a null/odd Dialect returned from spannerConfig; copying code that hardcodes a Dialect constant unsupported by this code path.","solutions":["Upgrade the Beam google-cloud-platform SDK to a version that supports your database dialect","Verify the Spanner database was created with a supported dialect (standard SQL or PostgreSQL)","Check how Dialect is resolved for your SpannerConfig/database and ensure it matches a supported value","If on a custom build, add a case for the dialect in readTableInfo with the appropriate information-schema query"],"exampleFix":"// before\n.withDialect(Dialect.GOOGLE_STANDARD_SQL_UNSUPPORTED_NEW)\n// after\n.withDialect(Dialect.GOOGLE_STANDARD_SQL)","handlingStrategy":"validation","validationCode":"if (dialect != Dialect.GOOGLE_STANDARD_SQL && dialect != Dialect.POSTGRESQL) { throw new IllegalArgumentException(\"Unsupported dialect: \" + dialect); }","typeGuard":null,"tryCatchPattern":"try { schema.read(tx, dialect); } catch (IllegalArgumentException e) { LOG.error(\"Unsupported Spanner dialect: {}\", e.getMessage()); }","preventionTips":["Pin Beam SDK versions known to support your database dialect","Confirm dialect before building SpannerIO reads","Avoid hardcoding new Dialect enum values on older SDKs"],"tags":["java","spanner","dialect","configuration"],"backgroundTag":"unsupported-enum-value","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T21:17:11.552Z"}