Skip to content

Commit c027e47

Browse files
committed
Merge pull request #567 from mziccard/minor-bigquery-fixes
Minor fixes to bigquery
2 parents 9fba603 + e27b5b3 commit c027e47

File tree

10 files changed

+56
-41
lines changed

10 files changed

+56
-41
lines changed

gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ public static QueryResultsOption startIndex(long startIndex) {
443443
/**
444444
* Returns an option that sets how long to wait for the query to complete, in milliseconds,
445445
* before returning. Default is 10 seconds. If the timeout passes before the job completes,
446-
* {@link QueryResponse#jobComplete()} will be {@code false}.
446+
* {@link QueryResponse#jobCompleted()} will be {@code false}.
447447
*/
448448
public static QueryResultsOption maxWaitTime(long maxWaitTime) {
449449
checkArgument(maxWaitTime >= 0);

gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/BigQueryImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -514,10 +514,10 @@ public com.google.api.services.bigquery.model.QueryResponse call() {
514514
QueryResponse.Builder builder = QueryResponse.builder();
515515
JobId completeJobId = JobId.fromPb(results.getJobReference());
516516
builder.jobId(completeJobId);
517-
builder.jobComplete(results.getJobComplete());
517+
builder.jobCompleted(results.getJobComplete());
518518
List<TableRow> rowsPb = results.getRows();
519519
if (results.getJobComplete()) {
520-
builder.jobComplete(true);
520+
builder.jobCompleted(true);
521521
QueryResult.Builder resultBuilder = transformQueryResults(completeJobId, rowsPb,
522522
results.getPageToken(), options(), ImmutableMap.<BigQueryRpc.Option, Object>of());
523523
resultBuilder.totalBytesProcessed(results.getTotalBytesProcessed());
@@ -561,7 +561,7 @@ public GetQueryResultsResponse call() {
561561
JobId completeJobId = JobId.fromPb(results.getJobReference());
562562
builder.jobId(completeJobId);
563563
builder.etag(results.getEtag());
564-
builder.jobComplete(results.getJobComplete());
564+
builder.jobCompleted(results.getJobComplete());
565565
List<TableRow> rowsPb = results.getRows();
566566
if (results.getJobComplete()) {
567567
QueryResult.Builder resultBuilder = transformQueryResults(completeJobId, rowsPb,

gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryJobInfo.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ public Builder defaultDataset(DatasetId defaultDataset) {
225225
return self();
226226
}
227227

228+
/**
229+
* Sets the default dataset. This dataset is used for all unqualified table names used in the
230+
* query.
231+
*/
232+
public Builder defaultDataset(String defaultDataset) {
233+
return defaultDataset(DatasetId.of(defaultDataset));
234+
}
235+
228236
/**
229237
* Sets a priority for the query. If not specified the priority is assumed to be
230238
* {@link Priority#INTERACTIVE}.

gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryRequest.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
* a temporary table that is deleted approximately 24 hours after the query is run. The query is run
3030
* through a BigQuery Job whose identity can be accessed via {@link QueryResponse#jobId()}. If the
3131
* query does not complete within the provided {@link Builder#maxWaitTime(Long)}, the response
32-
* returned by {@link BigQuery#query(QueryRequest)} will have {@link QueryResponse#jobComplete()}
32+
* returned by {@link BigQuery#query(QueryRequest)} will have {@link QueryResponse#jobCompleted()}
3333
* set to {@code false} and {@link QueryResponse#result()} set to {@code null}. To obtain query
3434
* results you can use {@link BigQuery#getQueryResults(JobId, BigQuery.QueryResultsOption...)} until
35-
* {@link QueryResponse#jobComplete()} returns {@code true}.
35+
* {@link QueryResponse#jobCompleted()} returns {@code true}.
3636
*
3737
* <p>Example usage of a query request:
3838
* <pre> {@code
@@ -43,7 +43,7 @@
4343
* .maxResults(1000L)
4444
* .build();
4545
* QueryResponse response = bigquery.query(request);
46-
* while (!response.jobComplete()) {
46+
* while (!response.jobCompleted()) {
4747
* Thread.sleep(1000);
4848
* response = bigquery.getQueryResults(response.jobId());
4949
* }
@@ -109,11 +109,18 @@ public Builder defaultDataset(DatasetId defaultDataset) {
109109
return this;
110110
}
111111

112+
/**
113+
* Sets the default dataset to assume for any unqualified table names in the query.
114+
*/
115+
public Builder defaultDataset(String defaultDataset) {
116+
return defaultDataset(DatasetId.of(defaultDataset));
117+
}
118+
112119
/**
113120
* Sets how long to wait for the query to complete, in milliseconds, before the request times
114121
* out and returns. Note that this is only a timeout for the request, not the query. If the
115122
* query takes longer to run than the timeout value, the call returns without any results and
116-
* with the {@link QueryResponse#jobComplete()} set to {@code false}. If not set, a wait time of
123+
* with the {@link QueryResponse#jobCompleted()} set to {@code false}. If not set, a wait time of
117124
* 10000 milliseconds (10 seconds) is used.
118125
*/
119126
public Builder maxWaitTime(Long maxWaitTime) {
@@ -182,7 +189,7 @@ public DatasetId defaultDataset() {
182189
* Returns how long to wait for the query to complete, in milliseconds, before the request times
183190
* out and returns. Note that this is only a timeout for the request, not the query. If the
184191
* query takes longer to run than the timeout value, the call returns without any results and
185-
* with the {@link QueryResponse#jobComplete()} set to {@code false}. You can call
192+
* with the {@link QueryResponse#jobCompleted()} set to {@code false}. You can call
186193
* {@link BigQuery#getQueryResults(JobId, BigQuery.QueryResultsOption...)} to wait for the query
187194
* to complete and read the results. If not set, a wait time of 10000 milliseconds (10 seconds)
188195
* is used.

gcloud-java-bigquery/src/main/java/com/google/gcloud/bigquery/QueryResponse.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
* <p>Example usage of a query response:
3232
* <pre> {@code
3333
* QueryResponse response = bigquery.query(request);
34-
* while (!response.jobComplete()) {
34+
* while (!response.jobCompleted()) {
3535
* Thread.sleep(1000);
3636
* response = bigquery.getQueryResults(response.jobId());
3737
* }
@@ -56,15 +56,15 @@ public class QueryResponse implements Serializable {
5656
private final QueryResult result;
5757
private final String etag;
5858
private final JobId jobId;
59-
private final boolean jobComplete;
59+
private final boolean jobCompleted;
6060
private final List<BigQueryError> executionErrors;
6161

6262
static final class Builder {
6363

6464
private QueryResult result;
6565
private String etag;
6666
private JobId jobId;
67-
private boolean jobComplete;
67+
private boolean jobCompleted;
6868
private List<BigQueryError> executionErrors;
6969

7070
private Builder() {}
@@ -84,8 +84,8 @@ Builder jobId(JobId jobId) {
8484
return this;
8585
}
8686

87-
Builder jobComplete(boolean jobComplete) {
88-
this.jobComplete = jobComplete;
87+
Builder jobCompleted(boolean jobCompleted) {
88+
this.jobCompleted = jobCompleted;
8989
return this;
9090
}
9191

@@ -103,13 +103,13 @@ private QueryResponse(Builder builder) {
103103
this.result = builder.result;
104104
this.etag = builder.etag;
105105
this.jobId = builder.jobId;
106-
this.jobComplete = builder.jobComplete;
106+
this.jobCompleted = builder.jobCompleted;
107107
this.executionErrors = builder.executionErrors != null ? builder.executionErrors
108108
: ImmutableList.<BigQueryError>of();
109109
}
110110

111111
/**
112-
* Returns the result of the query. Returns {@code null} if {@link #jobComplete()} is {@code
112+
* Returns the result of the query. Returns {@code null} if {@link #jobCompleted()} is {@code
113113
* false}.
114114
*/
115115
public QueryResult result() {
@@ -137,8 +137,8 @@ public JobId jobId() {
137137
* {@link #result()} returns {@code null}. This method can be used to check if query execution
138138
* completed and results are available.
139139
*/
140-
public boolean jobComplete() {
141-
return jobComplete;
140+
public boolean jobCompleted() {
141+
return jobCompleted;
142142
}
143143

144144
/**
@@ -164,7 +164,7 @@ public String toString() {
164164
.add("result", result)
165165
.add("etag", etag)
166166
.add("jobId", jobId)
167-
.add("jobComplete", jobComplete)
167+
.add("jobCompleted", jobCompleted)
168168
.add("executionErrors", executionErrors)
169169
.toString();
170170
}
@@ -183,7 +183,7 @@ public boolean equals(Object obj) {
183183
return false;
184184
}
185185
QueryResponse response = (QueryResponse) obj;
186-
return jobComplete == response.jobComplete
186+
return jobCompleted == response.jobCompleted
187187
&& Objects.equals(etag, response.etag)
188188
&& Objects.equals(result, response.result)
189189
&& Objects.equals(jobId, response.jobId)

gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/BigQueryImplTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -902,7 +902,7 @@ public void testQueryRequest() {
902902
assertNull(response.etag());
903903
assertNull(response.result());
904904
assertEquals(queryJob, response.jobId());
905-
assertEquals(false, response.jobComplete());
905+
assertEquals(false, response.jobCompleted());
906906
assertEquals(ImmutableList.<BigQueryError>of(), response.executionErrors());
907907
assertFalse(response.hasErrors());
908908
assertEquals(null, response.result());
@@ -926,7 +926,7 @@ public void testQueryRequestCompleted() {
926926
QueryResponse response = bigquery.query(QUERY_REQUEST);
927927
assertNull(response.etag());
928928
assertEquals(queryJob, response.jobId());
929-
assertEquals(true, response.jobComplete());
929+
assertEquals(true, response.jobCompleted());
930930
assertEquals(false, response.result().cacheHit());
931931
assertEquals(ImmutableList.<BigQueryError>of(), response.executionErrors());
932932
assertFalse(response.hasErrors());
@@ -959,7 +959,7 @@ public void testGetQueryResults() {
959959
QueryResponse response = bigquery.getQueryResults(queryJob);
960960
assertEquals("etag", response.etag());
961961
assertEquals(queryJob, response.jobId());
962-
assertEquals(true, response.jobComplete());
962+
assertEquals(true, response.jobCompleted());
963963
assertEquals(false, response.result().cacheHit());
964964
assertEquals(ImmutableList.<BigQueryError>of(), response.executionErrors());
965965
assertFalse(response.hasErrors());
@@ -993,7 +993,7 @@ public void testGetQueryResultsWithOptions() {
993993
QUERY_RESULTS_OPTION_INDEX, QUERY_RESULTS_OPTION_MAX_RESULTS,
994994
QUERY_RESULTS_OPTION_PAGE_TOKEN);
995995
assertEquals(queryJob, response.jobId());
996-
assertEquals(true, response.jobComplete());
996+
assertEquals(true, response.jobCompleted());
997997
assertEquals(false, response.result().cacheHit());
998998
assertEquals(ImmutableList.<BigQueryError>of(), response.executionErrors());
999999
assertFalse(response.hasErrors());

gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/ITBigQueryTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ public void testCreateExternalTable() throws InterruptedException {
320320
.maxResults(1000L)
321321
.build();
322322
QueryResponse response = bigquery.query(request);
323-
while (!response.jobComplete()) {
323+
while (!response.jobCompleted()) {
324324
response = bigquery.getQueryResults(response.jobId());
325325
Thread.sleep(1000);
326326
}
@@ -382,7 +382,7 @@ public void testCreateViewTable() throws InterruptedException {
382382
.maxResults(1000L)
383383
.build();
384384
QueryResponse response = bigquery.query(request);
385-
while (!response.jobComplete()) {
385+
while (!response.jobCompleted()) {
386386
response = bigquery.getQueryResults(response.jobId());
387387
Thread.sleep(1000);
388388
}
@@ -627,7 +627,7 @@ public void testQuery() throws InterruptedException {
627627
.maxResults(1000L)
628628
.build();
629629
QueryResponse response = bigquery.query(request);
630-
while (!response.jobComplete()) {
630+
while (!response.jobCompleted()) {
631631
Thread.sleep(1000);
632632
response = bigquery.getQueryResults(response.jobId());
633633
}
@@ -786,7 +786,7 @@ public void testQueryJob() throws InterruptedException {
786786
assertNull(remoteJob.status().error());
787787

788788
QueryResponse response = bigquery.getQueryResults(remoteJob.jobId());
789-
while (!response.jobComplete()) {
789+
while (!response.jobCompleted()) {
790790
Thread.sleep(1000);
791791
response = bigquery.getQueryResults(response.jobId());
792792
}

gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/QueryResponseTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public QueryResult nextPage() {
6464
private static final QueryResponse QUERY_RESPONSE = QueryResponse.builder()
6565
.etag(ETAG)
6666
.jobId(JOB_ID)
67-
.jobComplete(JOB_COMPLETE)
67+
.jobCompleted(JOB_COMPLETE)
6868
.executionErrors(ERRORS)
6969
.result(QUERY_RESULT)
7070
.build();
@@ -74,18 +74,18 @@ public void testBuilder() {
7474
assertEquals(ETAG, QUERY_RESPONSE.etag());
7575
assertEquals(QUERY_RESULT, QUERY_RESPONSE.result());
7676
assertEquals(JOB_ID, QUERY_RESPONSE.jobId());
77-
assertEquals(JOB_COMPLETE, QUERY_RESPONSE.jobComplete());
77+
assertEquals(JOB_COMPLETE, QUERY_RESPONSE.jobCompleted());
7878
assertEquals(ERRORS, QUERY_RESPONSE.executionErrors());
7979
assertTrue(QUERY_RESPONSE.hasErrors());
8080
}
8181

8282
@Test
8383
public void testBuilderIncomplete() {
84-
QueryResponse queryResponse = QueryResponse.builder().jobComplete(false).build();
84+
QueryResponse queryResponse = QueryResponse.builder().jobCompleted(false).build();
8585
assertNull(queryResponse.etag());
8686
assertNull(queryResponse.result());
8787
assertNull(queryResponse.jobId());
88-
assertFalse(queryResponse.jobComplete());
88+
assertFalse(queryResponse.jobCompleted());
8989
assertEquals(ImmutableList.<BigQueryError>of(), queryResponse.executionErrors());
9090
assertFalse(queryResponse.hasErrors());
9191
}
@@ -100,7 +100,7 @@ private void compareQueryResponse(QueryResponse expected, QueryResponse value) {
100100
assertEquals(expected.etag(), value.etag());
101101
assertEquals(expected.result(), value.result());
102102
assertEquals(expected.jobId(), value.jobId());
103-
assertEquals(expected.jobComplete(), value.jobComplete());
103+
assertEquals(expected.jobCompleted(), value.jobCompleted());
104104
assertEquals(expected.executionErrors(), value.executionErrors());
105105
assertEquals(expected.hasErrors(), value.hasErrors());
106106
}

gcloud-java-bigquery/src/test/java/com/google/gcloud/bigquery/SerializationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ public class SerializationTest {
213213
private static final QueryResponse QUERY_RESPONSE = QueryResponse.builder()
214214
.etag(ETAG)
215215
.jobId(JOB_ID)
216-
.jobComplete(true)
216+
.jobCompleted(true)
217217
.result(QUERY_RESULT)
218218
.build();
219219

gcloud-java-examples/src/main/java/com/google/gcloud/examples/BigQueryExample.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import com.google.gcloud.bigquery.ViewInfo;
4545
import com.google.gcloud.spi.BigQueryRpc.Tuple;
4646

47-
import java.nio.ByteBuffer;
4847
import java.nio.channels.FileChannel;
4948
import java.nio.file.Paths;
5049
import java.util.Arrays;
@@ -99,6 +98,7 @@
9998
*/
10099
public class BigQueryExample {
101100

101+
private static final int CHUNK_SIZE = 8 * 256 * 1024;
102102
private static final Map<String, BigQueryAction> CREATE_ACTIONS = new HashMap<>();
103103
private static final Map<String, BigQueryAction> INFO_ACTIONS = new HashMap<>();
104104
private static final Map<String, BigQueryAction> LIST_ACTIONS = new HashMap<>();
@@ -627,7 +627,7 @@ private static class QueryAction extends BigQueryAction<QueryRequest> {
627627
void run(BigQuery bigquery, QueryRequest queryRequest) throws Exception {
628628
System.out.println("Running query");
629629
QueryResponse queryResponse = bigquery.query(queryRequest);
630-
while (!queryResponse.jobComplete()) {
630+
while (!queryResponse.jobCompleted()) {
631631
System.out.println("Waiting for query job " + queryResponse.jobId() + " to complete");
632632
Thread.sleep(1000L);
633633
queryResponse = bigquery.getQueryResults(queryResponse.jobId());
@@ -676,12 +676,12 @@ private static class LoadFileAction extends BigQueryAction<Tuple<LoadConfigurati
676676
void run(BigQuery bigquery, Tuple<LoadConfiguration, String> configuration) throws Exception {
677677
System.out.println("Running insert");
678678
try (FileChannel fileChannel = FileChannel.open(Paths.get(configuration.y()))) {
679-
ByteBuffer buffer = ByteBuffer.allocate(256 * 1024);
680679
WriteChannel writeChannel = bigquery.writer(configuration.x());
681-
while (fileChannel.read(buffer) > 0) {
682-
buffer.flip();
683-
writeChannel.write(buffer);
684-
buffer.clear();
680+
long position = 0;
681+
long written = fileChannel.transferTo(position, CHUNK_SIZE, writeChannel);
682+
while (written > 0) {
683+
position += written;
684+
written = fileChannel.transferTo(position, CHUNK_SIZE, writeChannel);
685685
}
686686
writeChannel.close();
687687
}

0 commit comments

Comments
 (0)