{"record":{"id":"2f6582fcb7997816","repo":"prestodb/presto","slug":"tpcds-use-varchar-type-config-property-is-not-tr","errorCode":null,"errorMessage":"`tpcds.use-varchar-type` config property is not true for a native cluster","messagePattern":"`tpcds\\.use-varchar-type` config property is not true for a native cluster","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsConnectorFactory.java","lineNumber":74,"sourceCode":"    {\n        return \"tpcds\";\n    }\n\n    @Override\n    public ConnectorHandleResolver getHandleResolver()\n    {\n        return new TpcdsHandleResolver();\n    }\n\n    @Override\n    public Connector create(String catalogName, Map<String, String> config, ConnectorContext context)\n    {\n        int splitsPerNode = getSplitsPerNode(config);\n        // The Java TPC-DS connector works with either char or varchar columns.\n        // However, native execution only supports varchar columns, hence in a native cluster `tpcds.use-varchar-type` must be true.\n        boolean useVarcharType = useVarcharType(config);\n        if (context.getConnectorSystemConfig().isNativeExecution() && !(useVarcharType)) {\n            throw new IllegalArgumentException(\"`tpcds.use-varchar-type` config property is not true for a native cluster\");\n        }\n\n        NodeManager nodeManager = context.getNodeManager();\n        return new Connector()\n        {\n            @Override\n            public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel, boolean readOnly)\n            {\n                return TpcdsTransactionHandle.INSTANCE;\n            }\n\n            @Override\n            public ConnectorMetadata getMetadata(ConnectorTransactionHandle transactionHandle)\n            {\n                return new TpcdsMetadata(useVarcharType);\n            }\n\n            @Override","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsConnectorFactory.java#L56-L92","documentation":"TpcdsConnectorFactory.create() validates that when native execution is enabled for the cluster, the tpcds.use-varchar-type config property is true. The Java TPC-DS connector can serve char columns, but native workers only support varchar, so a mismatch would produce unusable column types. It throws IllegalArgumentException at connector creation time to fail fast.","triggerScenarios":"Creating the TPCDS connector (catalog startup) with native execution enabled in ConnectorSystemConfig while tpcds.use-varchar-type=false (or unset to a non-true value).","commonSituations":"Deploying a hybrid/native Presto cluster with an existing TPCDS catalog config; copying catalog properties from a Java-only cluster into a native cluster; forgetting the tpcds.use-varchar-type=true line.","solutions":["Set tpcds.use-varchar-type=true in the TPCDS catalog properties file","Disable native execution for this catalog/cluster if char types are required","Verify with the config loader that the property is actually picked up (correct catalog file, no typos)"],"exampleFix":"// before\ntpcds.use-varchar-type=false\n// after\ntpcds.use-varchar-type=true","handlingStrategy":"validation","validationCode":"boolean native = config.isNativeExecution();\nboolean varchar = Boolean.parseBoolean(properties.getOrDefault(\"tpcds.use-varchar-type\", \"false\"));\nif (native && !varchar) {\n    throw new IllegalArgumentException(\"set tpcds.use-varchar-type=true for native clusters\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always set tpcds.use-varchar-type=true in native deployments","Template catalog properties per cluster type (native vs java)","Validate catalog configs in CI for both execution modes"],"tags":["tpcds","configuration","native-execution"],"backgroundTag":"incompatible-catalog-config","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"}