From beb6c6488b1c9aa40d44d18abc211d23ebbe3127 Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Wed, 26 Jul 2023 14:56:52 -0400 Subject: [PATCH] fix: SearchStats IndexUnusedReasons null bug --- .../com/google/cloud/bigquery/IndexUnusedReason.java | 10 +++++----- .../com/google/cloud/bigquery/it/ITBigQueryTest.java | 7 ++++++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java index 06a88b068e..42224a5b57 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java @@ -16,7 +16,6 @@ package com.google.cloud.bigquery; -import com.google.api.services.bigquery.model.TableReference; import com.google.auto.value.AutoValue; import java.io.Serializable; import javax.annotation.Nullable; @@ -54,7 +53,7 @@ public abstract static class Builder { * * @param tableReference tableReference or {@code null} for none */ - public abstract Builder setBaseTable(TableReference tableReference); + public abstract Builder setBaseTable(TableId tableReference); /** Creates a @code IndexUnusedReason} object. */ public abstract IndexUnusedReason build(); @@ -96,7 +95,7 @@ public static Builder newBuilder() { * @return value or {@code null} for none */ @Nullable - public abstract TableReference getBaseTable(); + public abstract TableId getBaseTable(); com.google.api.services.bigquery.model.IndexUnusedReason toPb() { com.google.api.services.bigquery.model.IndexUnusedReason indexUnusedReason = @@ -110,8 +109,9 @@ com.google.api.services.bigquery.model.IndexUnusedReason toPb() { if (getMessage() != null) { indexUnusedReason.setMessage(indexUnusedReason.getMessage()); } + // From other examples i can see TableId.tbPb() for Base table in CloneDefinition if (getBaseTable() != null) { - indexUnusedReason.setBaseTable(indexUnusedReason.getBaseTable()); + indexUnusedReason.setBaseTable(getBaseTable().toPb()); } return indexUnusedReason; } @@ -129,7 +129,7 @@ static IndexUnusedReason fromPb( builder.setMessage(indexUnusedReason.getMessage()); } if (indexUnusedReason.getBaseTable() != null) { - builder.setBaseTable(indexUnusedReason.getBaseTable()); + builder.setBaseTable(TableId.fromPb(indexUnusedReason.getBaseTable())); } return builder.build(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8c5742e57d..62bc49913b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -5090,7 +5090,7 @@ public void testQueryJobWithLabels() throws InterruptedException, TimeoutExcepti } @Test - public void testQueryJobWithSearchReturnsSearchStatistics() throws InterruptedException { + public void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws InterruptedException { String tableName = "test_query_job_table"; String query = "SELECT * FROM " @@ -5109,6 +5109,11 @@ public void testQueryJobWithSearchReturnsSearchStatistics() throws InterruptedEx JobStatistics.QueryStatistics stats = remoteJob.getStatistics(); assertNotNull(stats.getSearchStats()); assertEquals(stats.getSearchStats().getIndexUsageMode(), "UNUSED"); + + System.out.println("Penguins"); + System.out.println(stats.getSearchStats().getIndexUnusedReasons()); + System.out.println("Horses"); + } finally { bigquery.delete(destinationTable); }