>From Vijay Sarathy <[email protected]>:
Vijay Sarathy has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19446 )
Change subject: [ASTERIXDB-3480][COMP] Automate samples creation in CBO
......................................................................
[ASTERIXDB-3480][COMP] Automate samples creation in CBO
- user model changes: yes
- storage format changes: no
- interface changes: no
Details:
If a query is executed with CBO turned ON, but some of the base collections do
not
have samples created on them, a warning is issued.
Ext-ref: MB-63093
Change-Id: I741fb4dcd0b24cf5b26ca0429765ddce139f022e
---
M
hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
M
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
M
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
3 files changed, 29 insertions(+), 2 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/46/19446/1
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
index 3588fd4..ba5705e 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
@@ -69,6 +69,7 @@
import
org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil;
import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
import
org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
+import org.apache.hyracks.api.exceptions.ErrorCode;
import org.apache.hyracks.api.exceptions.IWarningCollector;
import org.apache.hyracks.api.exceptions.Warning;
import org.apache.logging.log4j.LogManager;
@@ -261,6 +262,11 @@
if (cboMode) {
if (!doAllDataSourcesHaveSamples(leafInputs, context)) {
+ IWarningCollector warningCollector =
joinEnum.optCtx.getWarningCollector();
+ if (warningCollector.shouldWarn()) {
+ Warning warning = Warning.of(op.getSourceLocation(),
ErrorCode.SAMPLES_NOT_CREATED);
+ warningCollector.warn(warning);
+ }
return cleanUp();
}
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
index 7cb107d..f79c9bd 100644
---
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
+++
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
@@ -173,7 +173,8 @@
INAPPLICABLE_HINT(10006),
CROSS_PRODUCT_JOIN(10007),
GROUP_ALL_DECOR(10008),
- EXPRESSION_CANNOT_BE_CONSTANT(10009);
+ EXPRESSION_CANNOT_BE_CONSTANT(10009),
+ SAMPLES_NOT_CREATED(10010);
private static final String RESOURCE_PATH = "errormsg/en.properties";
public static final String HYRACKS = "HYR";
diff --git
a/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
b/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
index e1fbe30..404c8de 100644
---
a/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
+++
b/hyracks-fullstack/hyracks/hyracks-api/src/main/resources/errormsg/en.properties
@@ -162,4 +162,5 @@
10006 = Could not apply %1$s hint: %2$s
10007 = Encountered a cross product join
10008 = Inappropriate use of group by all with decor variables
-10009 = '%1$s' expression cannot be a constant
\ No newline at end of file
+10009 = '%1$s' expression cannot be a constant
+10010 = Samples have not been created on all collections referenced in the
query
\ No newline at end of file
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19446
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I741fb4dcd0b24cf5b26ca0429765ddce139f022e
Gerrit-Change-Number: 19446
Gerrit-PatchSet: 1
Gerrit-Owner: Vijay Sarathy <[email protected]>
Gerrit-MessageType: newchange