trino
trino copied to clipboard
Support ClickHouse DateTime(<timezone>) data type
Hello.
Trino 389.
Currently Trino doesn't support DateTime(<timezone>)
type in Clickhouse, and, even worse, unsupported-type-handling=CONVERT_TO_VARCHAR
also fails to handle it. When I turn it on, I get the following error:
Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
Full stacktrace
2022-08-08T10:04:37.180Z ERROR SplitRunner-42-139 io.trino.execution.executor.TaskExecutor Error processing Split 20220808_100436_00001_23krj.2.0.0-0 SystemSplit{addresses=[172.25.0.12:8080]} (start = 3.6987939359458916E10, wall = 99 ms, cpu = 0 ms, wait = 0 ms, calls = 1)
com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4863)
at io.trino.collect.cache.EvictableCache.get(EvictableCache.java:108)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.getTableMetadata(DefaultJdbcMetadata.java:629)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.lambda$listTableColumns$10(DefaultJdbcMetadata.java:672)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.listTableColumns(DefaultJdbcMetadata.java:672)
at io.trino.spi.connector.ConnectorMetadata.streamTableColumns(ConnectorMetadata.java:292)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:318)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:85)
at io.trino.metadata.MetadataManager.listTableColumns(MetadataManager.java:547)
at io.trino.metadata.MetadataListing.listTableColumns(MetadataListing.java:166)
at io.trino.connector.system.jdbc.ColumnJdbcTable.cursor(ColumnJdbcTable.java:263)
at io.trino.connector.system.SystemPageSourceProvider$1.cursor(SystemPageSourceProvider.java:129)
at io.trino.split.MappedRecordSet.cursor(MappedRecordSet.java:53)
at io.trino.spi.connector.RecordPageSource.<init>(RecordPageSource.java:37)
at io.trino.connector.system.SystemPageSourceProvider.createPageSource(SystemPageSourceProvider.java:108)
at io.trino.split.PageSourceManager.createPageSource(PageSourceManager.java:62)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:268)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:196)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:338)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$processStateMonitor$3(WorkProcessorUtils.java:219)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$finishWhen$4(WorkProcessorUtils.java:234)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorSourceOperatorAdapter.getOutput(WorkProcessorSourceOperatorAdapter.java:150)
at io.trino.operator.Driver.processInternal(Driver.java:410)
at io.trino.operator.Driver.lambda$process$10(Driver.java:313)
at io.trino.operator.Driver.tryWithLock(Driver.java:698)
at io.trino.operator.Driver.process(Driver.java:305)
at io.trino.operator.Driver.processForDuration(Driver.java:276)
at io.trino.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:740)
at io.trino.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:163)
at io.trino.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:488)
at io.trino.$gen.Trino_389____20220808_100410_2.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:72)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4868)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
... 47 more
Caused by: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.base.Verify.verify(Verify.java:417)
at io.trino.plugin.jdbc.BaseJdbcClient.getColumns(BaseJdbcClient.java:311)
at io.trino.plugin.jdbc.ForwardingJdbcClient.getColumns(ForwardingJdbcClient.java:96)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.lambda$getColumns$5(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:35)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.getColumns(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:66)
... 55 more
2022-08-08T10:04:37.197Z ERROR remote-task-callback-3 io.trino.execution.scheduler.PipelinedStageExecution Pipelined stage execution for stage 20220808_100436_00001_23krj.2 failed
com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4863)
at io.trino.collect.cache.EvictableCache.get(EvictableCache.java:108)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.getTableMetadata(DefaultJdbcMetadata.java:629)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.lambda$listTableColumns$10(DefaultJdbcMetadata.java:672)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.listTableColumns(DefaultJdbcMetadata.java:672)
at io.trino.spi.connector.ConnectorMetadata.streamTableColumns(ConnectorMetadata.java:292)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:318)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:85)
at io.trino.metadata.MetadataManager.listTableColumns(MetadataManager.java:547)
at io.trino.metadata.MetadataListing.listTableColumns(MetadataListing.java:166)
at io.trino.connector.system.jdbc.ColumnJdbcTable.cursor(ColumnJdbcTable.java:263)
at io.trino.connector.system.SystemPageSourceProvider$1.cursor(SystemPageSourceProvider.java:129)
at io.trino.split.MappedRecordSet.cursor(MappedRecordSet.java:53)
at io.trino.spi.connector.RecordPageSource.<init>(RecordPageSource.java:37)
at io.trino.connector.system.SystemPageSourceProvider.createPageSource(SystemPageSourceProvider.java:108)
at io.trino.split.PageSourceManager.createPageSource(PageSourceManager.java:62)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:268)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:196)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:338)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$processStateMonitor$3(WorkProcessorUtils.java:219)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$finishWhen$4(WorkProcessorUtils.java:234)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorSourceOperatorAdapter.getOutput(WorkProcessorSourceOperatorAdapter.java:150)
at io.trino.operator.Driver.processInternal(Driver.java:410)
at io.trino.operator.Driver.lambda$process$10(Driver.java:313)
at io.trino.operator.Driver.tryWithLock(Driver.java:698)
at io.trino.operator.Driver.process(Driver.java:305)
at io.trino.operator.Driver.processForDuration(Driver.java:276)
at io.trino.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:740)
at io.trino.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:163)
at io.trino.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:488)
at io.trino.$gen.Trino_389____20220808_100410_2.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:72)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4868)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
... 47 more
Caused by: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.base.Verify.verify(Verify.java:417)
at io.trino.plugin.jdbc.BaseJdbcClient.getColumns(BaseJdbcClient.java:311)
at io.trino.plugin.jdbc.ForwardingJdbcClient.getColumns(ForwardingJdbcClient.java:96)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.lambda$getColumns$5(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:35)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.getColumns(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:66)
... 55 more
2022-08-08T10:04:37.201Z ERROR stage-scheduler io.trino.execution.scheduler.SqlQueryScheduler Failure in distributed stage for query 20220808_100436_00001_23krj
com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4863)
at io.trino.collect.cache.EvictableCache.get(EvictableCache.java:108)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.getTableMetadata(DefaultJdbcMetadata.java:629)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.lambda$listTableColumns$10(DefaultJdbcMetadata.java:672)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.listTableColumns(DefaultJdbcMetadata.java:672)
at io.trino.spi.connector.ConnectorMetadata.streamTableColumns(ConnectorMetadata.java:292)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:318)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:85)
at io.trino.metadata.MetadataManager.listTableColumns(MetadataManager.java:547)
at io.trino.metadata.MetadataListing.listTableColumns(MetadataListing.java:166)
at io.trino.connector.system.jdbc.ColumnJdbcTable.cursor(ColumnJdbcTable.java:263)
at io.trino.connector.system.SystemPageSourceProvider$1.cursor(SystemPageSourceProvider.java:129)
at io.trino.split.MappedRecordSet.cursor(MappedRecordSet.java:53)
at io.trino.spi.connector.RecordPageSource.<init>(RecordPageSource.java:37)
at io.trino.connector.system.SystemPageSourceProvider.createPageSource(SystemPageSourceProvider.java:108)
at io.trino.split.PageSourceManager.createPageSource(PageSourceManager.java:62)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:268)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:196)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:338)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$processStateMonitor$3(WorkProcessorUtils.java:219)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$finishWhen$4(WorkProcessorUtils.java:234)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorSourceOperatorAdapter.getOutput(WorkProcessorSourceOperatorAdapter.java:150)
at io.trino.operator.Driver.processInternal(Driver.java:410)
at io.trino.operator.Driver.lambda$process$10(Driver.java:313)
at io.trino.operator.Driver.tryWithLock(Driver.java:698)
at io.trino.operator.Driver.process(Driver.java:305)
at io.trino.operator.Driver.processForDuration(Driver.java:276)
at io.trino.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:740)
at io.trino.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:163)
at io.trino.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:488)
at io.trino.$gen.Trino_389____20220808_100410_2.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:72)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4868)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
... 47 more
Caused by: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.base.Verify.verify(Verify.java:417)
at io.trino.plugin.jdbc.BaseJdbcClient.getColumns(BaseJdbcClient.java:311)
at io.trino.plugin.jdbc.ForwardingJdbcClient.getColumns(ForwardingJdbcClient.java:96)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.lambda$getColumns$5(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:35)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.getColumns(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:66)
... 55 more
2022-08-08T10:04:37.211Z ERROR stage-scheduler io.trino.execution.StageStateMachine Stage 20220808_100436_00001_23krj.2 failed
com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4863)
at io.trino.collect.cache.EvictableCache.get(EvictableCache.java:108)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.getTableMetadata(DefaultJdbcMetadata.java:629)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.lambda$listTableColumns$10(DefaultJdbcMetadata.java:672)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at io.trino.plugin.jdbc.DefaultJdbcMetadata.listTableColumns(DefaultJdbcMetadata.java:672)
at io.trino.spi.connector.ConnectorMetadata.streamTableColumns(ConnectorMetadata.java:292)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:318)
at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.streamTableColumns(ClassLoaderSafeConnectorMetadata.java:85)
at io.trino.metadata.MetadataManager.listTableColumns(MetadataManager.java:547)
at io.trino.metadata.MetadataListing.listTableColumns(MetadataListing.java:166)
at io.trino.connector.system.jdbc.ColumnJdbcTable.cursor(ColumnJdbcTable.java:263)
at io.trino.connector.system.SystemPageSourceProvider$1.cursor(SystemPageSourceProvider.java:129)
at io.trino.split.MappedRecordSet.cursor(MappedRecordSet.java:53)
at io.trino.spi.connector.RecordPageSource.<init>(RecordPageSource.java:37)
at io.trino.connector.system.SystemPageSourceProvider.createPageSource(SystemPageSourceProvider.java:108)
at io.trino.split.PageSourceManager.createPageSource(PageSourceManager.java:62)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:268)
at io.trino.operator.ScanFilterAndProjectOperator$SplitToPages.process(ScanFilterAndProjectOperator.java:196)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:338)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:325)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$processStateMonitor$3(WorkProcessorUtils.java:219)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:240)
at io.trino.operator.WorkProcessorUtils.lambda$finishWhen$4(WorkProcessorUtils.java:234)
at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:391)
at io.trino.operator.WorkProcessorSourceOperatorAdapter.getOutput(WorkProcessorSourceOperatorAdapter.java:150)
at io.trino.operator.Driver.processInternal(Driver.java:410)
at io.trino.operator.Driver.lambda$process$10(Driver.java:313)
at io.trino.operator.Driver.tryWithLock(Driver.java:698)
at io.trino.operator.Driver.process(Driver.java:305)
at io.trino.operator.Driver.processForDuration(Driver.java:276)
at io.trino.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:740)
at io.trino.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:163)
at io.trino.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:488)
at io.trino.$gen.Trino_389____20220808_100410_2.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:72)
at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:752)
at io.trino.plugin.jdbc.CachingJdbcClient.getColumns(CachingJdbcClient.java:165)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4868)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
... 47 more
Caused by: com.google.common.base.VerifyException: Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
at com.google.common.base.Verify.verify(Verify.java:417)
at io.trino.plugin.jdbc.BaseJdbcClient.getColumns(BaseJdbcClient.java:311)
at io.trino.plugin.jdbc.ForwardingJdbcClient.getColumns(ForwardingJdbcClient.java:96)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.lambda$getColumns$5(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:35)
at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.getColumns(StatisticsAwareJdbcClient.java:116)
at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getColumns$3(CachingJdbcClient.java:165)
at io.trino.collect.cache.EmptyCache.get(EmptyCache.java:66)
... 55 more
Actually it would be great to add support of the DateTime(<timezone>)
type, but currently it would be nice to fix converting to varchar.
Thank you.
Currently Trino doesn't support
DateTime(<timezone>)
type in Clickhouse, and, even worse,unsupported-type-handling=CONVERT_TO_VARCHAR
also fails to handle it.
Those are two separate issues.
When I turn it on, I get the following error:
Unsupported type handling is set to CONVERT_TO_VARCHAR, but toColumnMapping() returned empty for JdbcTypeHandle{jdbcType=2014, jdbcTypeName=DateTime('Europe/Moscow'), columnSize=Optional[29], decimalDigits=Optional[0]}
https://github.com/trinodb/trino/pull/13542
Actually it would be great to add support of the DateTime(
) type,
Agreed!
relates to https://github.com/trinodb/trino/issues/10537
Actually it would be great to add support of the DateTime() type,
@amoskaliov #10537 will be tracked to support DateTime*(timezone)
, you can keep an eye on it or I can ping you after it is done.
@findepi thank you for fast reaction. In less than 24 hours the fix is already merged, this is amazing work.
@tangjiangling thank you, I've subscribed. Looking forward to this issue being resolved.