mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 07:57:13 +02:00
Add explicit useLegacySql flag to UpdateSnapshotViewAction
It turns out the Bigquery JSON api selects its validator exclusively through the useLegacySql flag (the #standardSQL directive isn't considered). To fix this, we add back the explicit flag. This also logs unexpected API errors, instead of allowing the job to quietly fail. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=166757569
This commit is contained in:
parent
c86fd96654
commit
63fdb506df
1 changed files with 7 additions and 3 deletions
|
@ -92,13 +92,13 @@ public class UpdateSnapshotViewAction implements Runnable {
|
|||
SqlTemplate.create(
|
||||
"#legacySQL\nSELECT * FROM [%PROJECT%:%SOURCE_DATASET%.%SOURCE_TABLE%]");
|
||||
updateSnapshotView(
|
||||
datasetId, tableId, kindName, LEGACY_LATEST_SNAPSHOT_DATASET, legacyTemplate);
|
||||
datasetId, tableId, kindName, LEGACY_LATEST_SNAPSHOT_DATASET, legacyTemplate, true);
|
||||
|
||||
SqlTemplate standardTemplate =
|
||||
SqlTemplate.create(
|
||||
"#standardSQL\nSELECT * FROM `%PROJECT%.%SOURCE_DATASET%.%SOURCE_TABLE%`");
|
||||
updateSnapshotView(
|
||||
datasetId, tableId, kindName, STANDARD_LATEST_SNAPSHOT_DATASET, standardTemplate);
|
||||
datasetId, tableId, kindName, STANDARD_LATEST_SNAPSHOT_DATASET, standardTemplate, false);
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.severefmt(e, "Could not update snapshot view for table %s", tableId);
|
||||
|
@ -111,7 +111,8 @@ public class UpdateSnapshotViewAction implements Runnable {
|
|||
String sourceTableId,
|
||||
String kindName,
|
||||
String viewDataset,
|
||||
SqlTemplate viewQueryTemplate)
|
||||
SqlTemplate viewQueryTemplate,
|
||||
boolean useLegacySql)
|
||||
throws IOException {
|
||||
|
||||
Bigquery bigquery = bigqueryFactory.create(projectId, viewDataset);
|
||||
|
@ -125,6 +126,7 @@ public class UpdateSnapshotViewAction implements Runnable {
|
|||
.setTableId(kindName))
|
||||
.setView(
|
||||
new ViewDefinition()
|
||||
.setUseLegacySql(useLegacySql)
|
||||
.setQuery(
|
||||
viewQueryTemplate
|
||||
.put("PROJECT", projectId)
|
||||
|
@ -148,6 +150,8 @@ public class UpdateSnapshotViewAction implements Runnable {
|
|||
} catch (GoogleJsonResponseException e) {
|
||||
if (e.getDetails().getCode() == 404) {
|
||||
bigquery.tables().insert(ref.getProjectId(), ref.getDatasetId(), table).execute();
|
||||
} else {
|
||||
logger.warningfmt("UpdateSnapshotViewAction failed, caught exception %s", e.getDetails());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue