public Column(String name, TypeSignature signature) { this(name, signature.toString(), new ClientTypeSignature(signature)); }
/** * This field is deprecated and clients should switch to {@link #getArguments()} */ @Deprecated @JsonProperty public List<ClientTypeSignature> getTypeArguments() { List<ClientTypeSignature> result = new ArrayList<>(); for (ClientTypeSignatureParameter argument : arguments) { switch (argument.getKind()) { case TYPE: result.add(argument.getTypeSignature()); break; case NAMED_TYPE: result.add(new ClientTypeSignature(argument.getNamedTypeSignature().getTypeSignature())); break; default: return new ArrayList<>(); } } return result; }
public ClientTypeSignatureParameter(TypeSignatureParameter typeParameterSignature) { this.kind = typeParameterSignature.getKind(); switch (kind) { case TYPE: value = new ClientTypeSignature(typeParameterSignature.getTypeSignature()); break; case LONG: value = typeParameterSignature.getLongLiteral(); break; case NAMED_TYPE: value = typeParameterSignature.getNamedTypeSignature(); break; default: throw new UnsupportedOperationException(format("Unknown kind [%s]", kind)); } }
@Test public void testBackwardsCompatible() { ClientTypeSignature signature = new ClientTypeSignature(StandardTypes.ARRAY, ImmutableList.of(new ClientTypeSignatureParameter(TypeSignatureParameter.of(BIGINT.getTypeSignature())))); ClientTypeSignature legacy = CLIENT_TYPE_SIGNATURE_CODEC.fromJson("{\"rawType\":\"array\",\"literalArguments\":[],\"typeArguments\":[{\"rawType\":\"bigint\",\"literalArguments\":[],\"typeArguments\":[]}]}"); assertEquals(legacy, signature); }
@Test public void testJsonRoundTrip() { TypeSignature bigint = BIGINT.getTypeSignature(); assertJsonRoundTrip(new ClientTypeSignature(bigint)); assertJsonRoundTrip(new ClientTypeSignature( "array", ImmutableList.of(new ClientTypeSignatureParameter(TypeSignatureParameter.of(bigint))))); assertJsonRoundTrip(new ClientTypeSignature( "foo", ImmutableList.of(new ClientTypeSignatureParameter(TypeSignatureParameter.of(42))))); assertJsonRoundTrip(new ClientTypeSignature( "row", ImmutableList.of( new ClientTypeSignatureParameter(TypeSignatureParameter.of(new NamedTypeSignature(Optional.of(new RowFieldName("foo", false)), bigint))), new ClientTypeSignatureParameter(TypeSignatureParameter.of(new NamedTypeSignature(Optional.of(new RowFieldName("bar", false)), bigint)))))); }
private static List<Column> createColumnsList(QueryInfo queryInfo) { requireNonNull(queryInfo, "queryInfo is null"); StageInfo outputStage = queryInfo.getOutputStage(); requireNonNull(outputStage, "outputStage is null"); List<String> names = queryInfo.getFieldNames(); List<Type> types = outputStage.getTypes(); checkArgument(names.size() == types.size(), "names and types size mismatch"); ImmutableList.Builder<Column> list = ImmutableList.builder(); for (int i = 0; i < names.size(); i++) { String name = names.get(i); TypeSignature typeSignature = types.get(i).getTypeSignature(); String type = typeSignature.toString(); list.add(new Column(name, type, new ClientTypeSignature(typeSignature))); } return list.build(); }
/** * This field is deprecated and clients should switch to {@link #getArguments()} */ @Deprecated @JsonProperty public List<ClientTypeSignature> getTypeArguments() { List<ClientTypeSignature> result = new ArrayList<>(); for (ClientTypeSignatureParameter argument : arguments) { switch (argument.getKind()) { case TYPE: result.add(argument.getTypeSignature()); break; case NAMED_TYPE: result.add(new ClientTypeSignature(argument.getNamedTypeSignature().getTypeSignature())); break; default: return new ArrayList<>(); } } return result; }
public ClientTypeSignatureParameter(TypeSignatureParameter typeParameterSignature) { this.kind = typeParameterSignature.getKind(); switch (kind) { case TYPE: value = new ClientTypeSignature(typeParameterSignature.getTypeSignature()); break; case LONG: value = typeParameterSignature.getLongLiteral(); break; case NAMED_TYPE: value = typeParameterSignature.getNamedTypeSignature(); break; default: throw new UnsupportedOperationException(format("Unknown kind [%s]", kind)); } }
@Test public void testBackwardsCompatible() { ClientTypeSignature signature = new ClientTypeSignature(StandardTypes.ARRAY, ImmutableList.of(new ClientTypeSignatureParameter(TypeSignatureParameter.of(BIGINT.getTypeSignature())))); ClientTypeSignature legacy = CLIENT_TYPE_SIGNATURE_CODEC.fromJson("{\"rawType\":\"array\",\"literalArguments\":[],\"typeArguments\":[{\"rawType\":\"bigint\",\"literalArguments\":[],\"typeArguments\":[]}]}"); assertEquals(legacy, signature); }
columns = ImmutableList.of(new Column("result", "boolean", new ClientTypeSignature(StandardTypes.BOOLEAN, ImmutableList.of()))); data = ImmutableSet.<List<Object>>of(ImmutableList.<Object>of(true));
@Test public void testJsonRoundTrip() { TypeSignature bigint = BIGINT.getTypeSignature(); assertJsonRoundTrip(new ClientTypeSignature(bigint)); assertJsonRoundTrip(new ClientTypeSignature( "array", ImmutableList.of(new ClientTypeSignatureParameter(TypeSignatureParameter.of(bigint))))); assertJsonRoundTrip(new ClientTypeSignature( "foo", ImmutableList.of(new ClientTypeSignatureParameter(TypeSignatureParameter.of(42))))); assertJsonRoundTrip(new ClientTypeSignature( "row", ImmutableList.of( new ClientTypeSignatureParameter(TypeSignatureParameter.of(new NamedTypeSignature(Optional.of(new RowFieldName("foo", false)), bigint))), new ClientTypeSignatureParameter(TypeSignatureParameter.of(new NamedTypeSignature(Optional.of(new RowFieldName("bar", false)), bigint)))))); }