danhuawang commented on code in PR #5632: URL: https://github.com/apache/gravitino/pull/5632#discussion_r1855882858
########## trino-connector/integration-test/src/test/resources/trino-ci-testset/trino-cascading-testsets/hive/catalog_hive_prepare.sql: ########## @@ -0,0 +1,74 @@ +call gravitino.system.create_catalog( + 'gt_hive1', + 'hive', + MAP( + ARRAY['metastore.uris', 'cloud.region-code', 'cloud.trino.connection-url', 'cloud.trino.connection-user', 'cloud.trino.connection-password'], + ARRAY['${hive_uri}', 'c2', '${trino_remote_jdbc_uri}', 'admin', ''] + ) +); + +call gravitino.system.create_catalog( + 'gt_hive1_1', + 'hive', + map( + array['metastore.uris'], + array['${hive_uri}'] + ) +); + +CREATE SCHEMA gt_hive1_1.gt_datatype; +USE gt_hive1_1.gt_datatype; + +CREATE TABLE tb01 ( + f1 VARCHAR(200), + f2 CHAR(20), + f3 VARBINARY, + f4 DECIMAL(10, 3), + f5 REAL, + f6 DOUBLE, + f7 BOOLEAN, + f8 TINYINT, + f9 SMALLINT, + f10 INT, + f11 INTEGER, + f12 BIGINT, + f13 DATE, + f15 TIMESTAMP +); + +INSERT INTO tb01 (f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f15) +VALUES ('Sample text 1', 'Text1', x'65', 123.456, 7.89, 12.34, false, 1, 100, 1000, 1000, 100000, DATE '2024-01-01', TIMESTAMP '2024-01-01 08:00:00'); + +INSERT INTO tb01 (f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f15) +VALUES (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +CREATE TABLE tb02 (name char(255)); +INSERT INTO tb02 (name) VALUES ('Apache Gravitino is a high-performance, geo-distributed, and federated metadata lake. It manages metadata directly in different sources, types, and regions, providing users with unified metadata access for data and AI assets.'); + Review Comment: I attempt to not separate them like this. When I create and insert data in catalog using gravitino connector ,then query data using cascading connector , I will encounter the following error: The error like "Table gt_db1.** does not exist in the internal connector" frequently occurs when switch off connector between create data and query data. To solve this issue, I add "catalog_cascading_precheck.sql" this file to check if cascading connector is ready to query data that created by another connector. ``` 2024-11-23 10:26:07 INFO [main] TrinoQueryIT:93 - Test query env parameters: {postgresql_uri=jdbc:postgresql://10.20.31.18:5432, gravitino_uri=http://10.20.31.21:8090, trino_remote_jdbc_uri=jdbc:trino://10.20.31.22:8080, hive_uri=thrift://10.20.31.20:9083, trino_uri=http://10.20.31.21:8080, mysql_uri=jdbc:mysql://10.20.31.19, hdfs_uri=hdfs://10.20.31.20:9000} 2024-11-23 10:26:07 INFO [pool-2-thread-1] TrinoQueryIT:188 - Execute sql in the tester jdbc-mysql/catalog_mysql_prepare.sql under catalog mysql : call gravitino.system.create_catalog( 'gt_mysql1', 'jdbc-mysql', map( array['jdbc-url', 'jdbc-user', 'jdbc-password', 'jdbc-driver', 'trino.bypass.join-pushdown.strategy', 'cloud.region-code', 'cloud.trino.connection-url', 'cloud.trino.connection-user', 'cloud.trino.connection-password'], array['jdbc:mysql://10.20.31.19/?useSSL=false', 'trino', 'ds123', 'com.mysql.cj.jdbc.Driver', 'EAGER','c2', 'jdbc:trino://10.20.31.22:8080', 'admin', ''] ) ) Result: CALL 2024-11-23 10:26:07 INFO [pool-2-thread-1] TrinoQueryIT:188 - Execute sql in the tester jdbc-mysql/catalog_mysql_prepare.sql under catalog mysql : call gravitino.system.create_catalog( 'gt_mysql1_1', 'jdbc-mysql', map( array['jdbc-url', 'jdbc-user', 'jdbc-password', 'jdbc-driver', 'trino.bypass.join-pushdown.strategy'], array['jdbc:mysql://10.20.31.19/?useSSL=false', 'trino', 'ds123', 'com.mysql.cj.jdbc.Driver', 'EAGER'] ) ) Result: CALL 2024-11-23 10:26:08 INFO [pool-2-thread-1] TrinoQueryIT:266 - Execute sql in the tester jdbc-mysql/00001_datatype.sql under catalog mysql successfully. Sql: CREATE SCHEMA gt_mysql1_1.gt_db1; Expect: CREATE SCHEMA Actual: CREATE SCHEMA 2024-11-23 10:26:08 INFO [pool-2-thread-1] TrinoQueryIT:266 - Execute sql in the tester jdbc-mysql/00001_datatype.sql under catalog mysql successfully. Sql: CREATE TABLE gt_mysql1_1.gt_db1.tb03 (id int, name char(20)); Expect: CREATE TABLE Actual: CREATE TABLE 2024-11-23 10:26:08 ERROR [pool-2-thread-1] TrinoQueryIT:279 - Execute sql in the tester jdbc-mysql/00001_datatype.sql under catalog mysql failed. Sql: SELECT * FROM gt_mysql1.gt_db1.tb03; Expect: <BLANK_LINE> Actual: Query 20241123_022525_00151_b88tc failed: Table gt_db1.tb03 does not exist in the internal connector io.trino.spi.TrinoException: Table gt_db1.tb03 does not exist in the internal connector at org.apache.gravitino.trino.connector.GravitinoMetadata.getTableHandle(GravitinoMetadata.java:120) at org.apache.gravitino.trino.connector.GravitinoMetadata.getTableHandle(GravitinoMetadata.java:75) at io.trino.tracing.TracingConnectorMetadata.getTableHandle(TracingConnectorMetadata.java:149) at io.trino.metadata.MetadataManager.lambda$getTableHandle$5(MetadataManager.java:285) at java.base/java.util.Optional.flatMap(Optional.java:289) at io.trino.metadata.MetadataManager.getTableHandle(MetadataManager.java:279) at io.trino.metadata.MetadataManager.getRedirectionAwareTableHandle(MetadataManager.java:1848) at io.trino.metadata.MetadataManager.getRedirectionAwareTableHandle(MetadataManager.java:1840) at io.trino.tracing.TracingMetadata.getRedirectionAwareTableHandle(TracingMetadata.java:1423) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.getTableHandle(StatementAnalyzer.java:5816) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitTable(StatementAnalyzer.java:2279) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitTable(StatementAnalyzer.java:521) at io.trino.sql.tree.Table.accept(Table.java:60) at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:540) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.analyzeFrom(StatementAnalyzer.java:4869) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:3062) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:521) at io.trino.sql.tree.QuerySpecification.accept(QuerySpecification.java:155) at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:540) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:548) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:1558) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:521) at io.trino.sql.tree.Query.accept(Query.java:118) at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27) at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:540) at io.trino.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:500) at io.trino.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:489) at io.trino.sql.analyzer.Analyzer.analyze(Analyzer.java:97) at io.trino.sql.analyzer.Analyzer.analyze(Analyzer.java:86) at io.trino.execution.SqlQueryExecution.analyze(SqlQueryExecution.java:274) at io.trino.execution.SqlQueryExecution.<init>(SqlQueryExecution.java:209) at io.trino.execution.SqlQueryExecution$SqlQueryExecutionFactory.createQueryExecution(SqlQueryExecution.java:850) at io.trino.dispatcher.LocalDispatchQueryFactory.lambda$createDispatchQuery$0(LocalDispatchQueryFactory.java:153) at io.trino.$gen.Trino_435____20241123_020935_2.call(Unknown Source) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:76) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@gravitino.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org