Skip to content

Commit c091d9d

Browse files
committed
fix: handle EXPORT DATA, EXPORT MODEL, and LOAD DATA statements
1 parent 72d4ab6 commit c091d9d

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,10 @@ static SqlType getSqlTypeFromStatementType(StatementType statementType) {
7272
case "ROLLBACK_TRANSACTION":
7373
return SqlType.TCL;
7474
case "EXPORT_DATA":
75+
return SqlType.EXPORT;
7576
case "EXPORT_MODEL":
7677
case "LOAD_DATA":
78+
return SqlType.DDL;
7779
default:
7880
return SqlType.OTHER;
7981
}

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -725,6 +725,20 @@ void handleQueryResult(String query, TableResult results, SqlType queryType)
725725
throw new BigQueryJdbcException(ex);
726726
}
727727
break;
728+
case EXPORT:
729+
try {
730+
Job completedJob = this.bigQuery.getJob(results.getJobId()).waitFor();
731+
JobStatistics.QueryStatistics statistics =
732+
(JobStatistics.QueryStatistics) completedJob.getStatistics();
733+
if (statistics.getExportDataStats() != null) {
734+
updateAffectedRowCount(statistics.getExportDataStats().getRowCount());
735+
} else {
736+
updateAffectedRowCount(0L);
737+
}
738+
} catch (InterruptedException ex) {
739+
throw new BigQueryJdbcRuntimeException(ex);
740+
}
741+
break;
728742
case OTHER:
729743
throw new BigQueryJdbcException(String.format("Unexpected value: " + queryType));
730744
}
@@ -1610,6 +1624,7 @@ enum SqlType {
16101624
DDL,
16111625
SCRIPT,
16121626
TCL,
1627+
EXPORT,
16131628
OTHER
16141629
}
16151630

0 commit comments

Comments
 (0)