Completed fix.
git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_fix_issue_233@1000 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java b/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java
index 95ec76c..cafe5b7 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java
@@ -312,6 +312,10 @@
builder.setTypeTraitProvider(format.getTypeTraitProvider());
builder.setNormalizedKeyComputerFactoryProvider(format.getNormalizedKeyComputerFactoryProvider());
+ if (!pc.isGenerateJobSpec()) {
+ return null;
+ }
+
JobSpecification spec = compiler.createJob(AsterixAppContextInfoImpl.INSTANCE);
// set the job event listener
spec.setJobletEventListenerFactory(new JobEventListenerFactory(queryMetadataProvider.getJobTxnId(),
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/AqlTranslator.java b/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/AqlTranslator.java
index 08e1c5f..80293b0 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/AqlTranslator.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/AqlTranslator.java
@@ -650,7 +650,9 @@
.getDatasetName().getValue(), st1.getQuery(), st1.getVarCounter());
Pair<JobSpecification, FileSplit> compiled = rewriteCompileQuery(metadataProvider, clfrqs.getQuery(), clfrqs);
- jobsToExecute.add(compiled.first);
+ if (compiled.first != null) {
+ jobsToExecute.add(compiled.first);
+ }
}
private void handleInsertStatement(AqlMetadataProvider metadataProvider, Statement stmt,
@@ -662,7 +664,9 @@
CompiledInsertStatement clfrqs = new CompiledInsertStatement(dataverseName, stmtInsert.getDatasetName()
.getValue(), stmtInsert.getQuery(), stmtInsert.getVarCounter());
Pair<JobSpecification, FileSplit> compiled = rewriteCompileQuery(metadataProvider, clfrqs.getQuery(), clfrqs);
- jobsToExecute.add(compiled.first);
+ if (compiled.first != null) {
+ jobsToExecute.add(compiled.first);
+ }
}
private void handleDeleteStatement(AqlMetadataProvider metadataProvider, Statement stmt,
@@ -675,7 +679,9 @@
stmtDelete.getDatasetName().getValue(), stmtDelete.getCondition(), stmtDelete.getDieClause(),
stmtDelete.getVarCounter(), metadataProvider);
Pair<JobSpecification, FileSplit> compiled = rewriteCompileQuery(metadataProvider, clfrqs.getQuery(), clfrqs);
- jobsToExecute.add(compiled.first);
+ if (compiled.first != null) {
+ jobsToExecute.add(compiled.first);
+ }
}
private Pair<JobSpecification, FileSplit> rewriteCompileQuery(AqlMetadataProvider metadataProvider, Query query,
@@ -686,15 +692,12 @@
Pair<Query, Integer> reWrittenQuery = APIFramework.reWriteQuery(declaredFunctions, metadataProvider, query,
sessionConfig, out, pdf);
- // Query Compilation (happens under the same ongoing metadata
- // transaction)
- sessionConfig.setGenerateJobSpec(true);
+ // Query Compilation (happens under the same ongoing metadata transaction)
if (metadataProvider.isWriteTransaction()) {
metadataProvider.setJobTxnId(TransactionIDFactory.generateTransactionId());
}
JobSpecification spec = APIFramework.compileQuery(declaredFunctions, metadataProvider, query,
reWrittenQuery.second, stmt == null ? null : stmt.getDatasetName(), sessionConfig, out, pdf, stmt);
- sessionConfig.setGenerateJobSpec(false);
Pair<JobSpecification, FileSplit> compiled = new Pair<JobSpecification, FileSplit>(spec,
metadataProvider.getOutputFile());
@@ -721,7 +724,9 @@
bfs.initialize(metadataProvider.getMetadataTxnContext(), dataset);
cbfs.setQuery(bfs.getQuery());
Pair<JobSpecification, FileSplit> compiled = rewriteCompileQuery(metadataProvider, bfs.getQuery(), cbfs);
- jobsToExecute.add(compiled.first);
+ if (compiled.first != null) {
+ jobsToExecute.add(compiled.first);
+ }
}
private void handleControlFeedStatement(AqlMetadataProvider metadataProvider, Statement stmt,
@@ -737,8 +742,10 @@
private QueryResult handleQuery(AqlMetadataProvider metadataProvider, Query query, IHyracksClientConnection hcc,
List<JobSpecification> jobsToExecute) throws Exception {
Pair<JobSpecification, FileSplit> compiled = rewriteCompileQuery(metadataProvider, query, null);
- GlobalConfig.ASTERIX_LOGGER.info(compiled.first.toJSON().toString(1));
- jobsToExecute.add(compiled.first);
+ if (compiled.first != null) {
+ GlobalConfig.ASTERIX_LOGGER.info(compiled.first.toJSON().toString(1));
+ jobsToExecute.add(compiled.first);
+ }
return new QueryResult(query, compiled.second.getLocalFile().getFile().getAbsolutePath());
}
diff --git a/asterix-app/src/test/java/edu/uci/ics/asterix/test/optimizer/OptimizerTest.java b/asterix-app/src/test/java/edu/uci/ics/asterix/test/optimizer/OptimizerTest.java
index 0c0b104..43c6c0c 100644
--- a/asterix-app/src/test/java/edu/uci/ics/asterix/test/optimizer/OptimizerTest.java
+++ b/asterix-app/src/test/java/edu/uci/ics/asterix/test/optimizer/OptimizerTest.java
@@ -126,7 +126,7 @@
AsterixJavaClient asterix = new AsterixJavaClient(
AsterixHyracksIntegrationUtil.getHyracksClientConnection(), query, plan);
try {
- asterix.compile(true, false, false, true, true, true, false);
+ asterix.compile(true, false, false, true, true, false, false);
} catch (AsterixException e) {
plan.close();
query.close();