private List<Struct> resultRows(Statement statement, Type expectedRowType) { ArrayList<Struct> results = new ArrayList<>(); ResultSet resultSet = statement.executeQuery(client.singleUse(TimestampBound.strong())); while (resultSet.next()) { Struct row = resultSet.getCurrentRowAsStruct(); results.add(row); } assertThat(resultSet.getType()).isEqualTo(expectedRowType); assertThat(resultSet.next()).isFalse(); return results; }
private static Struct queryRow(ReadContext ctx) { ResultSet resultSet = Statement.of("SELECT StringValue FROM TestTable").executeQuery(ctx); // TODO(user): Consider a library routine to consume a single row from a query. assertThat(resultSet.next()).isTrue(); Struct row = resultSet.getCurrentRowAsStruct(); assertThat(resultSet.next()).isFalse(); return row; }
private Struct executeWithRowResultType(Statement statement, Type expectedRowType) { ResultSet resultSet = statement.executeQuery(client.singleUse(TimestampBound.strong())); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getType()).isEqualTo(expectedRowType); Struct row = resultSet.getCurrentRowAsStruct(); assertThat(resultSet.next()).isFalse(); return row; }
@Test public void unboundParameter() { ResultSet resultSet = Statement.of("SELECT @v").executeQuery(client.singleUse(TimestampBound.strong())); expectedException.expect(isSpannerException(ErrorCode.INVALID_ARGUMENT)); expectedException.expectMessage("No parameter found for binding: v"); resultSet.next(); }
@Test public void largeErrorText() { String veryLongString = Joiner.on("").join(Iterables.limit(Iterables.cycle("x"), 8000)); Statement statement = Statement.newBuilder("SELECT REGEXP_CONTAINS(@value, @regexp)") .bind("value") .to("") .bind("regexp") .to("(" + veryLongString) .build(); ResultSet resultSet = statement.executeQuery(client.singleUse(TimestampBound.strong())); expectedException.expect(isSpannerException(ErrorCode.OUT_OF_RANGE)); expectedException.expectMessage("Cannot parse regular expression"); resultSet.next(); }
.to("k32") .build(); ResultSet resultSet = statement.executeQuery(client.singleUse(TimestampBound.strong())); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getType())