{"record":{"id":"90676e025fcfcbf8","repo":"prestodb/presto","slug":"not-supported-90676e","errorCode":"NOT_SUPPORTED","errorMessage":"This connector does not support schema properties","messagePattern":"This connector does not support schema properties","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"warning","filePath":"presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java","lineNumber":100,"sourceCode":"     * Checks if a schema exists. The connector may have schemas that exist\n     * but are not enumerable via {@link #listSchemaNames}.\n     */\n    default boolean schemaExists(ConnectorSession session, String schemaName)\n    {\n        return listSchemaNames(session).contains(schemaName);\n    }\n\n    /**\n     * Returns the schemas provided by this connector.\n     */\n    List<String> listSchemaNames(ConnectorSession session);\n\n    /**\n     * Gets the schema properties for the specified schema.\n     */\n    default Map<String, Object> getSchemaProperties(ConnectorSession session, CatalogSchemaName schemaName)\n    {\n        throw new PrestoException(NOT_SUPPORTED, \"This connector does not support schema properties\");\n    }\n\n    /**\n     * Returns a table handle for the specified table name, or null if the connector does not contain the table.\n     */\n    ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName);\n\n    /**\n     * Returns an error for connectors which do not support table version AS OF/BEFORE expression.\n     */\n    default ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName, Optional<ConnectorTableVersion> tableVersion)\n    {\n        throw new PrestoException(NOT_SUPPORTED, \"This connector does not support table version AS OF/BEFORE expression\");\n    }\n\n    /**\n     * Returns a table handle for the specified table name, or null if the connector does not contain the table.\n     * The returned table handle can contain information in analyzeProperties.","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java#L82-L118","documentation":"ConnectorMetadata.getSchemaProperties() has a default implementation that throws NOT_SUPPORTED. Presto calls it to fetch metadata properties (e.g. from SHOW CREATE SCHEMA or CREATE SCHEMA ... WITH) for a schema, and any connector that does not override the method signals it cannot describe schema properties this way.","triggerScenarios":"A query or engine code path calls getSchemaProperties(session, schemaName) on a connector whose ConnectorMetadata class does not override the default getSchemaProperties method — e.g. SHOW CREATE SCHEMA, or accessing schema properties metadata for a catalog backed by a connector without schema-property support.","commonSituations":"Using a connector (simple file-based, legacy, or custom in-house connectors) that never implemented schema properties; issuing metadata commands against catalogs whose connectors only support table-level properties.","solutions":["Implement getSchemaProperties(ConnectorSession, CatalogSchemaName) in the connector's ConnectorMetadata subclass and return the schema properties map","If the connector genuinely has no schema properties, return Collections.emptyMap() instead of relying on the throwing default","Route the query to a catalog whose connector supports schema properties"],"exampleFix":"// before (default in ConnectorMetadata)\nthrow new PrestoException(NOT_SUPPORTED, \"This connector does not support schema properties\");\n// after (in your connector's Metadata)\n@Override\npublic Map<String, Object> getSchemaProperties(ConnectorSession session, CatalogSchemaName schemaName) {\n    return myCatalog.getSchemaProperties(schemaName.getSchemaName());\n}","handlingStrategy":"validation","validationCode":"// Presto can't introspect this directly; prefer SHOW CREATE SCHEMA <catalog>.<schema> first\n// or in tooling: only call schema-property APIs for known schema-property-capable connectors\nSet<String> schemaPropertyCapable = Set.of(\"hive\", \"iceberg\", \"delta_lake\");\nif (!schemaPropertyCapable.contains(catalogConnectorName)) { skipSchemaProperties(); }","typeGuard":null,"tryCatchPattern":"try {\n    Map<String, Object> props = metadata.getSchemaProperties(session, schemaName);\n} catch (PrestoException e) {\n    if (e.getErrorCode() == StandardErrorCode.NOT_SUPPORTED.toErrorCodeCode()) {\n        props = Collections.emptyMap(); // treat as \"no schema properties\"\n    } else throw e;\n}","preventionTips":["Check connector documentation for schema-property support before using SHOW CREATE SCHEMA / schema properties APIs","Override getSchemaProperties in custom connectors rather than relying on defaults","Treat NOT_SUPPORTED on metadata reads as \"feature absent\", not a fatal failure"],"tags":["presto","connector","not-supported","metadata"],"backgroundTag":"connector-not-supported","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}