{"record":{"id":"aa2a8bb75e0c8a94","repo":"prestodb/presto","slug":"invalid-table-property-aa2a8b","errorCode":"INVALID_TABLE_PROPERTY","errorMessage":"Encrypted columns property cannot have null value","messagePattern":"Encrypted columns property cannot have null value","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java","lineNumber":122,"sourceCode":"            return new ColumnEncryptionInformation(ImmutableMap.of());\n        }\n\n        List<String> keyReferenceWithColumns = Splitter.on(HIVE_PROPERTY_ENTRY_DELIMITER).trimResults().splitToList(value);\n        return fromTableProperty(keyReferenceWithColumns);\n    }\n\n    public static ColumnEncryptionInformation fromTableProperty(Object value)\n    {\n        if (value == null) {\n            return new ColumnEncryptionInformation(ImmutableMap.of());\n        }\n\n        List<?> data = (List<?>) value;\n\n        Map<ColumnWithStructSubfield, String> columnToKeyReference = new HashMap<>();\n        for (Object entry : data) {\n            if (entry == null) {\n                throw new PrestoException(INVALID_TABLE_PROPERTY, \"Encrypted columns property cannot have null value\");\n            }\n\n            String keyEntry = (String) entry;\n\n            List<String> keyEntries = Splitter.on(HIVE_PROPERTY_KEY_JOINER).splitToList(keyEntry);\n\n            if (keyEntries.size() != 2) {\n                throw new PrestoException(INVALID_TABLE_PROPERTY, format(\"Encrypted column entry needs to be in the format 'key1:col1,col2'. Received: %s\", keyEntry));\n            }\n\n            String keyReference = keyEntries.get(0);\n            String columns = keyEntries.get(1);\n\n            List<String> columnList = Splitter.on(HIVE_PROPERTY_COLUMN_DELIMITER).trimResults().splitToList(columns);\n\n            columnList.forEach(column -> {\n                String previousReferenceKey = columnToKeyReference.put(ColumnWithStructSubfield.valueOf(column), keyReference);\n                if (previousReferenceKey != null) {","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java#L104-L140","documentation":"A guard in ColumnEncryptionInformation parsing: the encrypted-columns table property, after splitting into entries, contained a null element (e.g. from an entry like the empty segment of a trailing delimiter), so no column-to-key-reference mapping can be built. It reports malformed Hive table property input rather than a runtime state problem.","triggerScenarios":"Thrown at presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java:122 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the encrypted columns table property so every entry is of the form column=keyReference with no empty or null entries","Remove trailing or doubled delimiters from the property value","Use SHOW CREATE TABLE to inspect and correct the property, then ALTER TABLE SET TBLPROPERTIES to fix it"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-12T02:17:10.037Z"}