From bfc560b1f37b2947fb39fb99f7a1d5b83b888985 Mon Sep 17 00:00:00 2001 From: Fernando Velasquez Date: Mon, 11 Apr 2022 12:20:32 -0400 Subject: [PATCH] Updated BigQuery expression capabilities --- .../relational/SQLExpressionFactory.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/cdap/plugin/gcp/bigquery/relational/SQLExpressionFactory.java b/src/main/java/io/cdap/plugin/gcp/bigquery/relational/SQLExpressionFactory.java index 469b7d6894..e7c12be959 100644 --- a/src/main/java/io/cdap/plugin/gcp/bigquery/relational/SQLExpressionFactory.java +++ b/src/main/java/io/cdap/plugin/gcp/bigquery/relational/SQLExpressionFactory.java @@ -1,5 +1,6 @@ package io.cdap.plugin.gcp.bigquery.relational; +import io.cdap.cdap.etl.api.engine.sql.StandardSQLCapabilities; import io.cdap.cdap.etl.api.relational.Capability; import io.cdap.cdap.etl.api.relational.CoreExpressionCapabilities; import io.cdap.cdap.etl.api.relational.Expression; @@ -12,7 +13,7 @@ import io.cdap.cdap.etl.api.relational.StringExpressionFactoryType; import io.cdap.plugin.gcp.bigquery.sqlengine.builder.BigQueryBaseSQLBuilder; -import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -22,6 +23,15 @@ */ public class SQLExpressionFactory implements ExpressionFactory { + private static final Set CAPABILITIES = Collections.unmodifiableSet( + new HashSet() {{ + add(StringExpressionFactoryType.SQL); + add(StandardSQLCapabilities.BIGQUERY); + add(CoreExpressionCapabilities.CAN_GET_QUALIFIED_DATASET_NAME); + add(CoreExpressionCapabilities.CAN_GET_QUALIFIED_COLUMN_NAME); + add(CoreExpressionCapabilities.CAN_SET_DATASET_ALIAS); + }}); + /** * Gets the expression factory type, which in this case is SQL. * @@ -46,14 +56,11 @@ public Expression compile(String expression) { /** * Get the set of Capabilities supported, which in this case is SQL. * - * @return A single capability, {@link StringExpressionFactoryType}.SQL. + * @return a set containing all capabilities supported by this SQL engine. */ @Override public Set getCapabilities() { - return new HashSet<>(Arrays.asList(StringExpressionFactoryType.SQL, - CoreExpressionCapabilities.CAN_GET_QUALIFIED_DATASET_NAME, - CoreExpressionCapabilities.CAN_GET_QUALIFIED_COLUMN_NAME, - CoreExpressionCapabilities.CAN_SET_DATASET_ALIAS)); + return CAPABILITIES; } /** @@ -79,7 +86,7 @@ public ExtractableExpression getQualifiedDataSetName(Relation relation) * The resulting expression will be invalid if the relation is not a {@link BigQueryRelation} * or the column does not exist in this relation. * @param relation supplied relation. - * @param column column name. + * @param column column name. * @return valid containing the column name wrapped in quotes; or invalid expression. */ @Override