You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ah...@apache.org on 2025/06/17 21:48:18 UTC
(beam) branch release-2.66 updated: [Beam SQL] Change SET CATALOG to USE CATALOG (#35314) (#35333)
This is an automated email from the ASF dual-hosted git repository.
ahmedabualsaud pushed a commit to branch release-2.66
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/release-2.66 by this push:
new 7d610f8b40b [Beam SQL] Change SET CATALOG to USE CATALOG (#35314) (#35333)
7d610f8b40b is described below
commit 7d610f8b40bff9430838c08637da932fe18cbabc
Author: Ahmed Abualsaud <65...@users.noreply.github.com>
AuthorDate: Tue Jun 17 17:48:12 2025 -0400
[Beam SQL] Change SET CATALOG to USE CATALOG (#35314) (#35333)
* USE catalog instead of SET
* add missing
---
.github/trigger_files/beam_PostCommit_SQL.json | 2 +-
sdks/java/extensions/sql/src/main/codegen/config.fmpp | 7 +++++--
.../sql/src/main/codegen/includes/parserImpls.ftl | 8 ++++----
.../impl/parser/{SqlSetCatalog.java => SqlUseCatalog.java} | 12 ++++++------
.../org/apache/beam/sdk/extensions/sql/BeamSqlCliTest.java | 14 +++++++-------
.../apache/beam/sdk/extensions/sql/PubsubToBigqueryIT.java | 2 +-
.../apache/beam/sdk/extensions/sql/PubsubToIcebergIT.java | 2 +-
.../sql/meta/provider/iceberg/IcebergReadWriteIT.java | 4 ++--
.../meta/provider/iceberg/IcebergTableProviderTest.java | 2 +-
9 files changed, 28 insertions(+), 25 deletions(-)
diff --git a/.github/trigger_files/beam_PostCommit_SQL.json b/.github/trigger_files/beam_PostCommit_SQL.json
index c537844dc84..b2683333323 100644
--- a/.github/trigger_files/beam_PostCommit_SQL.json
+++ b/.github/trigger_files/beam_PostCommit_SQL.json
@@ -1,4 +1,4 @@
{
"comment": "Modify this file in a trivial way to cause this test suite to run",
- "modification": 3
+ "modification": 2
}
diff --git a/sdks/java/extensions/sql/src/main/codegen/config.fmpp b/sdks/java/extensions/sql/src/main/codegen/config.fmpp
index a51d0125a3f..623a3e2792f 100644
--- a/sdks/java/extensions/sql/src/main/codegen/config.fmpp
+++ b/sdks/java/extensions/sql/src/main/codegen/config.fmpp
@@ -30,7 +30,7 @@ data: {
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateFunction"
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlDropCatalog"
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlDdlNodes"
- "org.apache.beam.sdk.extensions.sql.impl.parser.SqlSetCatalog"
+ "org.apache.beam.sdk.extensions.sql.impl.parser.SqlUseCatalog"
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlSetOptionBeam"
"org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils"
"org.apache.beam.sdk.schemas.Schema"
@@ -46,6 +46,7 @@ data: {
"TBLPROPERTIES"
"PROPERTIES"
"PARTITIONED"
+ "USE"
]
# List of keywords from "keywords" section that are not reserved.
@@ -370,6 +371,8 @@ data: {
"LOCATION"
"TBLPROPERTIES"
"PROPERTIES"
+ "PARTITIONED"
+ "USE"
]
# List of non-reserved keywords to add;
@@ -391,7 +394,7 @@ data: {
# Return type of method implementation should be 'SqlNode'.
# Example: SqlShowDatabases(), SqlShowTables().
statementParserMethods: [
- "SqlSetCatalog(Span.of(), null)"
+ "SqlUseCatalog(Span.of(), null)"
"SqlSetOptionBeam(Span.of(), null)"
]
diff --git a/sdks/java/extensions/sql/src/main/codegen/includes/parserImpls.ftl b/sdks/java/extensions/sql/src/main/codegen/includes/parserImpls.ftl
index 78940ee6938..450c6eeaff7 100644
--- a/sdks/java/extensions/sql/src/main/codegen/includes/parserImpls.ftl
+++ b/sdks/java/extensions/sql/src/main/codegen/includes/parserImpls.ftl
@@ -213,14 +213,14 @@ SqlCreate SqlCreateCatalog(Span s, boolean replace) :
}
/**
- * SET CATALOG catalog_name
+ * USE CATALOG catalog_name
*/
-SqlCall SqlSetCatalog(Span s, String scope) :
+SqlCall SqlUseCatalog(Span s, String scope) :
{
final SqlNode catalogName;
}
{
- <SET> {
+ <USE> {
s.add(this);
}
<CATALOG>
@@ -230,7 +230,7 @@ SqlCall SqlSetCatalog(Span s, String scope) :
catalogName = SimpleIdentifier()
)
{
- return new SqlSetCatalog(
+ return new SqlUseCatalog(
s.end(this),
scope,
catalogName);
diff --git a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/parser/SqlSetCatalog.java b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/parser/SqlUseCatalog.java
similarity index 91%
rename from sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/parser/SqlSetCatalog.java
rename to sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/parser/SqlUseCatalog.java
index 208b389d3c3..7088c718302 100644
--- a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/parser/SqlSetCatalog.java
+++ b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/parser/SqlUseCatalog.java
@@ -39,13 +39,13 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class SqlSetCatalog extends SqlSetOption implements BeamSqlParser.ExecutableStatement {
- private static final Logger LOG = LoggerFactory.getLogger(SqlSetCatalog.class);
+public class SqlUseCatalog extends SqlSetOption implements BeamSqlParser.ExecutableStatement {
+ private static final Logger LOG = LoggerFactory.getLogger(SqlUseCatalog.class);
private final SqlIdentifier catalogName;
- private static final SqlOperator OPERATOR = new SqlSpecialOperator("SET CATALOG", SqlKind.OTHER);
+ private static final SqlOperator OPERATOR = new SqlSpecialOperator("USE CATALOG", SqlKind.OTHER);
- public SqlSetCatalog(SqlParserPos pos, String scope, SqlNode catalogName) {
+ public SqlUseCatalog(SqlParserPos pos, String scope, SqlNode catalogName) {
super(pos, scope, SqlDdlNodes.getIdentifier(catalogName, pos), null);
this.catalogName = SqlDdlNodes.getIdentifier(catalogName, pos);
}
@@ -79,13 +79,13 @@ public class SqlSetCatalog extends SqlSetOption implements BeamSqlParser.Executa
catalogName.getParserPosition(),
RESOURCE.internal(
String.format(
- "Unexpected 'SET CATALOG' call for Schema '%s' that is not a Catalog.", name)));
+ "Unexpected 'USE CATALOG' call for Schema '%s' that is not a Catalog.", name)));
}
if (catalogManager.getCatalog(name) == null) {
throw SqlUtil.newContextException(
catalogName.getParserPosition(),
- RESOURCE.internal(String.format("Cannot set catalog: '%s' not found.", name)));
+ RESOURCE.internal(String.format("Cannot use catalog: '%s' not found.", name)));
}
if (catalogManager.currentCatalog().name().equals(name)) {
diff --git a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlCliTest.java b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlCliTest.java
index dcbb0cfec09..b8aa030649a 100644
--- a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlCliTest.java
+++ b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlCliTest.java
@@ -310,8 +310,8 @@ public class BeamSqlCliTest {
BeamSqlCli cli = new BeamSqlCli().catalogManager(catalogManager);
thrown.expect(CalciteContextException.class);
- thrown.expectMessage("Cannot set catalog: 'my_catalog' not found.");
- cli.execute("SET CATALOG my_catalog");
+ thrown.expectMessage("Cannot use catalog: 'my_catalog' not found.");
+ cli.execute("USE CATALOG my_catalog");
}
@Test
@@ -344,15 +344,15 @@ public class BeamSqlCliTest {
// catalog manager always starts with a "default" catalog
assertEquals("default", catalogManager.currentCatalog().name());
- cli.execute("SET CATALOG catalog_1");
+ cli.execute("USE CATALOG catalog_1");
assertEquals("catalog_1", catalogManager.currentCatalog().name());
assertEquals(catalog1Props, catalogManager.currentCatalog().properties());
- cli.execute("SET CATALOG catalog_2");
+ cli.execute("USE CATALOG catalog_2");
assertEquals("catalog_2", catalogManager.currentCatalog().name());
assertEquals(catalog2Props, catalogManager.currentCatalog().properties());
// DEFAULT is a reserved keyword, so need to encapsulate in backticks
- cli.execute("SET CATALOG 'default'");
+ cli.execute("USE CATALOG 'default'");
assertEquals("default", catalogManager.currentCatalog().name());
}
@@ -405,7 +405,7 @@ public class BeamSqlCliTest {
BeamSqlCli cli = new BeamSqlCli().catalogManager(catalogManager);
cli.execute("CREATE CATALOG my_catalog TYPE 'local'");
- cli.execute("SET CATALOG my_catalog");
+ cli.execute("USE CATALOG my_catalog");
cli.execute(
"CREATE EXTERNAL TABLE person (\n" + "id int, name varchar, age int) \n" + "TYPE 'text'");
@@ -413,7 +413,7 @@ public class BeamSqlCliTest {
assertNotNull(catalogManager.currentCatalog().metaStore().getTables().get("person"));
cli.execute("CREATE CATALOG my_other_catalog TYPE 'local'");
- cli.execute("SET CATALOG my_other_catalog");
+ cli.execute("USE CATALOG my_other_catalog");
assertEquals("my_other_catalog", catalogManager.currentCatalog().name());
assertNull(catalogManager.currentCatalog().metaStore().getTables().get("person"));
}
diff --git a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToBigqueryIT.java b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToBigqueryIT.java
index c8d843bda9e..54be98adbc1 100644
--- a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToBigqueryIT.java
+++ b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToBigqueryIT.java
@@ -53,7 +53,7 @@ public class PubsubToBigqueryIT implements Serializable {
@Test
public void testSimpleInsert() throws Exception {
String createCatalog = "CREATE CATALOG my_catalog TYPE `local`";
- String setCatalog = "SET CATALOG my_catalog";
+ String setCatalog = "USE CATALOG my_catalog";
String pubsubTableString =
"CREATE EXTERNAL TABLE pubsub_topic (\n"
+ "event_timestamp TIMESTAMP, \n"
diff --git a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToIcebergIT.java b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToIcebergIT.java
index c757843b5f1..c9680ca0adc 100644
--- a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToIcebergIT.java
+++ b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/PubsubToIcebergIT.java
@@ -98,7 +98,7 @@ public class PubsubToIcebergIT implements Serializable {
+ format(" 'warehouse' = '%s', \n", warehouse)
+ format(" 'gcp_project' = '%s', \n", OPTIONS.getProject())
+ " 'gcp_region' = 'us-central1')";
- setCatalogDdl = "SET CATALOG my_catalog";
+ setCatalogDdl = "USE CATALOG my_catalog";
}
private String tableIdentifier;
diff --git a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergReadWriteIT.java b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergReadWriteIT.java
index bd1bbcef557..c885d1bac14 100644
--- a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergReadWriteIT.java
+++ b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergReadWriteIT.java
@@ -151,7 +151,7 @@ public class IcebergReadWriteIT {
sqlEnv.executeDdl(createCatalog);
// 2) use the catalog we just created
- String setCatalog = "SET CATALOG my_catalog";
+ String setCatalog = "USE CATALOG my_catalog";
sqlEnv.executeDdl(setCatalog);
// 3) create beam table
@@ -277,7 +277,7 @@ public class IcebergReadWriteIT {
sqlEnv.executeDdl(createCatalog);
// 2) use the catalog we just created
- String setCatalog = "SET CATALOG my_catalog";
+ String setCatalog = "USE CATALOG my_catalog";
sqlEnv.executeDdl(setCatalog);
// 3) create Beam table
diff --git a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergTableProviderTest.java b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergTableProviderTest.java
index 6cde6a626c9..0a704bcb5e2 100644
--- a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergTableProviderTest.java
+++ b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergTableProviderTest.java
@@ -84,7 +84,7 @@ public class IcebergTableProviderTest {
.build();
sqlEnv.executeDdl("CREATE CATALOG my_catalog TYPE iceberg");
- sqlEnv.executeDdl("SET CATALOG my_catalog");
+ sqlEnv.executeDdl("USE CATALOG my_catalog");
sqlEnv.executeDdl(
"CREATE EXTERNAL TABLE test_partitioned_table(\n"
+ " id INTEGER,\n"