Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,17 @@ public final class QueryParameterHelper implements Serializable {
private static final long serialVersionUID = -283738274937293739L; // For Serializable interface

private final ParameterMode mode;
private final ImmutableMap<String, QueryParameterValue> namedParameters;
private final ImmutableList<QueryParameterValue> positionalParameters;
private final Map<String, QueryParameterValue> namedParameters;
private final List<QueryParameterValue> positionalParameters;

public QueryParameterHelper(
ParameterMode mode,
ImmutableMap<String, QueryParameterValue> named,
ImmutableList<QueryParameterValue> positional) {
Map<String, QueryParameterValue> named,
List<QueryParameterValue> positional) {
this.mode = mode;

this.namedParameters = named;
this.positionalParameters = positional;
this.namedParameters = ImmutableMap.copyOf(named);
this.positionalParameters = ImmutableList.copyOf(positional);
}

static QueryParameterHelper none() {
Expand All @@ -56,8 +56,7 @@ static QueryParameterHelper none() {
static QueryParameterHelper named(Map<String, QueryParameterValue> namedParameters) {
Preconditions.checkNotNull(
namedParameters, "Input named parameters map cannot be null for named mode");
return new QueryParameterHelper(
ParameterMode.NAMED, ImmutableMap.copyOf(namedParameters), ImmutableList.of());
return new QueryParameterHelper(ParameterMode.NAMED, namedParameters, ImmutableList.of());
}

static QueryParameterHelper positional(List<QueryParameterValue> positionalParameters) {
Expand All @@ -68,7 +67,7 @@ static QueryParameterHelper positional(List<QueryParameterValue> positionalParam
return new QueryParameterHelper(
ParameterMode.POSITIONAL,
ImmutableMap.of(), // Pass empty immutable map
ImmutableList.copyOf(positionalParameters));
positionalParameters);
}

public ParameterMode getMode() {
Expand All @@ -81,7 +80,7 @@ public ParameterMode getMode() {
* @return An Optional containing an immutable map of named parameters if mode is NAMED, otherwise
* Optional.empty().
*/
public Optional<ImmutableMap<String, QueryParameterValue>> getNamedParameters() {
public Optional<Map<String, QueryParameterValue>> getNamedParameters() {
return mode == ParameterMode.NAMED ? Optional.of(namedParameters) : Optional.empty();
}

Expand All @@ -91,7 +90,7 @@ public Optional<ImmutableMap<String, QueryParameterValue>> getNamedParameters()
* @return An Optional containing an immutable list of positional parameters if mode is
* POSITIONAL, otherwise Optional.empty().
*/
public Optional<ImmutableList<QueryParameterValue>> getPositionalParameters() {
public Optional<List<QueryParameterValue>> getPositionalParameters() {
return mode == ParameterMode.POSITIONAL ? Optional.of(positionalParameters) : Optional.empty();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
import com.google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions;
import com.google.cloud.bigquery.storage.v1.ReadStream;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import java.math.BigDecimal;
import java.time.Instant;
import java.util.Arrays;
Expand Down Expand Up @@ -1008,7 +1007,7 @@ public void testParseNamedParameters_SuccessAllTypes() {
assertThat(result.isEmpty()).isFalse();

assertThat(result.getNamedParameters()).isPresent();
ImmutableMap<String, QueryParameterValue> params = result.getNamedParameters().get();
Map<String, QueryParameterValue> params = result.getNamedParameters().get();
assertThat(params).hasSize(12);

assertThat(params.get("strParam")).isEqualTo(QueryParameterValue.string("hello world"));
Expand Down Expand Up @@ -1039,7 +1038,7 @@ public void testParseNamedParameters_EmptyStringValue() {

assertThat(result.getMode()).isEqualTo(ParameterMode.NAMED);
assertThat(result.getNamedParameters()).isPresent();
ImmutableMap<String, QueryParameterValue> params = result.getNamedParameters().get();
Map<String, QueryParameterValue> params = result.getNamedParameters().get();
assertThat(params).hasSize(1);
assertThat(params.get("emptyStr")).isEqualTo(QueryParameterValue.string(""));
}
Expand All @@ -1053,7 +1052,7 @@ public void testParseNamedParameters_SpacesInValue() {
QueryParameterHelper result = BigQueryUtil.parseQueryParameters(options);
assertThat(result.getMode()).isEqualTo(ParameterMode.NAMED);
assertThat(result.getNamedParameters()).isPresent();
ImmutableMap<String, QueryParameterValue> params = result.getNamedParameters().get();
Map<String, QueryParameterValue> params = result.getNamedParameters().get();
assertThat(params).hasSize(2);
assertThat(params.get("withSpaces"))
.isEqualTo(QueryParameterValue.string("leading and trailing spaces"));
Expand All @@ -1069,7 +1068,7 @@ public void testParseNamedParameters_DuplicateKeysDifferentCase() {
QueryParameterHelper result = BigQueryUtil.parseQueryParameters(options);
assertThat(result.getMode()).isEqualTo(ParameterMode.NAMED);
assertThat(result.getNamedParameters()).isPresent();
ImmutableMap<String, QueryParameterValue> params = result.getNamedParameters().get();
Map<String, QueryParameterValue> params = result.getNamedParameters().get();

// Both keys exist as they are different strings
assertThat(params).hasSize(2);
Expand Down Expand Up @@ -1103,7 +1102,7 @@ public void testParsePositionalParameters_Success() {
assertThat(result.isEmpty()).isFalse();

assertThat(result.getPositionalParameters()).isPresent();
ImmutableList<QueryParameterValue> params = result.getPositionalParameters().get();
List<QueryParameterValue> params = result.getPositionalParameters().get();
assertThat(params).hasSize(3); // Parser ensures correct size based on max index

assertThat(params.get(0)).isEqualTo(QueryParameterValue.string("value1")); // Index 0 = Param 1
Expand All @@ -1121,7 +1120,7 @@ public void testParsePositionalParameters_SingleParameter() {

assertThat(result.getMode()).isEqualTo(ParameterMode.POSITIONAL);
assertThat(result.getPositionalParameters()).isPresent();
ImmutableList<QueryParameterValue> params = result.getPositionalParameters().get();
List<QueryParameterValue> params = result.getPositionalParameters().get();
assertThat(params).hasSize(1);
assertThat(params.get(0)).isEqualTo(QueryParameterValue.float64(1.0));
}
Expand Down
Loading