{"record":{"id":"460a61409d443b55","repo":"prestodb/presto","slug":"invalid-property-tpcds-splits-per-node","errorCode":null,"errorMessage":"Invalid property tpcds.splits-per-node","messagePattern":"Invalid property tpcds\\.splits-per-node","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsConnectorFactory.java","lineNumber":128,"sourceCode":"            @Override\n            public ConnectorCodecProvider getConnectorCodecProvider()\n            {\n                return new ThriftCodecProvider.Builder().setThriftCodecManager(new ThriftCodecManager())\n                        .setConnectorSplitType(TpcdsSplit.class)\n                        .setConnectorTransactionHandle(TpcdsTransactionHandle.class)\n                        .setConnectorTableLayoutHandle(TpcdsTableLayoutHandle.class)\n                        .setConnectorTableHandle(TpcdsTableHandle.class).build();\n            }\n        };\n    }\n\n    private int getSplitsPerNode(Map<String, String> properties)\n    {\n        try {\n            return parseInt(firstNonNull(properties.get(\"tpcds.splits-per-node\"), String.valueOf(defaultSplitsPerNode)));\n        }\n        catch (NumberFormatException e) {\n            throw new IllegalArgumentException(\"Invalid property tpcds.splits-per-node\");\n        }\n    }\n\n    private boolean useVarcharType(Map<String, String> properties)\n    {\n        try {\n            return parseBoolean(firstNonNull(properties.get(\"tpcds.use-varchar-type\"), String.valueOf(false)));\n        }\n        catch (NumberFormatException e) {\n            throw new IllegalArgumentException(\"Invalid property tpcds.use-varchar-type\");\n        }\n    }\n\n    private boolean isWithNoSexism(Map<String, String> properties)\n    {\n        return parseBoolean(firstNonNull(properties.get(\"tpcds.with-no-sexism\"), String.valueOf(false)));\n    }\n}","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsConnectorFactory.java#L110-L146","documentation":"TpcdsConnectorFactory.getSplitsPerNode() parses the tpcds.splits-per-node catalog property, defaulting when absent. A non-integer value causes parseInt to throw NumberFormatException, which is rethrown as IllegalArgumentException(\"Invalid property tpcds.splits-per-node\"). This fails connector creation so a bad catalog config is caught at startup.","triggerScenarios":"Catalog properties contain tpcds.splits-per-node set to a non-numeric string (e.g., \"ten\", \"1.5\", or a value with stray whitespace/units).","commonSituations":"Hand-edited catalog properties; templating mistakes leaving placeholder text like ${SPLITS}; units accidentally appended to the number; copy-paste from docs with wrong value.","solutions":["Set tpcds.splits-per-node to a plain integer (e.g., tpcds.splits-per-node=4) in the catalog properties","Remove the property entirely to use the default","Check for hidden whitespace/quotes or unresolved template variables in the properties file"],"exampleFix":"// before\ntpcds.splits-per-node=${SPLITS_PER_NODE}  # unresolved template -> IllegalArgumentException\n// after\ntpcds.splits-per-node=8","handlingStrategy":"validation","validationCode":"String raw = properties.get(\"tpcds.splits-per-node\");\nif (raw != null && !raw.matches(\"\\\\d+\")) {\n    throw new IllegalArgumentException(\"tpcds.splits-per-node must be an integer, got: \" + raw);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep numeric catalog properties as bare integers without units or quotes","Grep catalog properties for unresolved ${...} templates before deploy","Parse-validate all catalog properties at config load time in tests"],"tags":["tpcds","configuration","invalid-property"],"backgroundTag":"invalid-config-property","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"}