From c3ed5bfe522ee8c62538bc451e83de18966a4094 Mon Sep 17 00:00:00 2001 From: Yuya Ebihara Date: Thu, 6 Oct 2022 17:13:27 +0900 Subject: [PATCH 1/2] Support truncate table statement in BigQuery --- docs/src/main/sphinx/connector/bigquery.rst | 1 + .../trino/plugin/bigquery/BigQueryMetadata.java | 15 +++++++++++++++ .../bigquery/TestBigQueryConnectorTest.java | 3 +++ 3 files changed, 19 insertions(+) diff --git a/docs/src/main/sphinx/connector/bigquery.rst b/docs/src/main/sphinx/connector/bigquery.rst index b303ae5e184f..12e5dda837a3 100644 --- a/docs/src/main/sphinx/connector/bigquery.rst +++ b/docs/src/main/sphinx/connector/bigquery.rst @@ -298,6 +298,7 @@ BigQuery database. In addition to the the following features: * :doc:`/sql/insert` +* :doc:`/sql/truncate` * :doc:`/sql/create-table` * :doc:`/sql/create-table-as` * :doc:`/sql/drop-table` diff --git a/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQueryMetadata.java b/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQueryMetadata.java index cfafe76d99e9..4e4886c74604 100644 --- a/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQueryMetadata.java +++ b/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQueryMetadata.java @@ -480,6 +480,21 @@ public void dropTable(ConnectorSession session, ConnectorTableHandle tableHandle client.dropTable(tableId); } + @Override + public void truncateTable(ConnectorSession session, ConnectorTableHandle tableHandle) + { + BigQueryTableHandle table = (BigQueryTableHandle) tableHandle; + BigQueryClient client = bigQueryClientFactory.createBigQueryClient(session); + + RemoteTableName remoteTableName = table.asPlainTable().getRemoteTableName(); + String sql = format( + "TRUNCATE TABLE %s.%s.%s", + quote(remoteTableName.getProjectId()), + quote(remoteTableName.getDatasetName()), + quote(remoteTableName.getTableName())); + client.executeUpdate(QueryJobConfiguration.of(sql)); + } + @Override public ConnectorInsertTableHandle beginInsert(ConnectorSession session, ConnectorTableHandle tableHandle, List columns, RetryMode retryMode) { diff --git a/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/TestBigQueryConnectorTest.java b/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/TestBigQueryConnectorTest.java index 704586d827b9..ab5800d0870e 100644 --- a/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/TestBigQueryConnectorTest.java +++ b/plugin/trino-bigquery/src/test/java/io/trino/plugin/bigquery/TestBigQueryConnectorTest.java @@ -84,6 +84,9 @@ protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior) case SUPPORTS_NOT_NULL_CONSTRAINT: return false; + case SUPPORTS_TRUNCATE: + return true; + case SUPPORTS_NEGATIVE_DATE: return false; From c2b26bb86f6df1872c0f403dc6085d7bfbb6e50d Mon Sep 17 00:00:00 2001 From: Yuya Ebihara Date: Fri, 7 Oct 2022 06:02:11 +0900 Subject: [PATCH 2/2] empty