[
https://issues.apache.org/jira/browse/DRILL-5260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15881585#comment-15881585
]
ASF GitHub Bot commented on DRILL-5260:
---------------------------------------
Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/753#discussion_r102847232
--- Diff:
exec/java-exec/src/test/java/org/apache/drill/test/ProfileParser.java ---
@@ -138,9 +414,208 @@ public long getMetric(int id) {
}
}
- public Map<Integer,OpInfo> getOpInfo( ) {
+ /**
+ * Information about an operator definition: the plan-time information
+ * that appears in the plan portion of the profile. Also holds the
+ * "actuals" from the minor fragment portion of the profile.
+ * Allows integrating the "planned" vs. "actual" performance of the
+ * query.
+ */
+
+ public static class OpDefInfo {
+ public String opName;
+ public boolean isInferred;
+ public int majorId;
+ public int stepId;
+ public String args;
+ public List<FieldDef> columns;
+ public int globalLevel;
+ public int localLevel;
+ public int id;
+ public int branchId;
+ public boolean isBranchRoot;
+ public double estMemoryCost;
+ public double estNetCost;
+ public double estIOCost;
+ public double estCpuCost;
+ public double estRowCost;
+ public double estRows;
+ public String name;
+ public long actualMemory;
+ public int actualBatches;
+ public long actualRows;
+ public OpDefInfo inferredParent;
+ public List<OperatorProfile> opExecs = new ArrayList<>( );
+ public List<OpDefInfo> children = new ArrayList<>( );
+
+ // 00-00 Screen : rowType = RecordType(VARCHAR(10) Year,
VARCHAR(65536) Month, VARCHAR(100) Devices, VARCHAR(100) Tier, VARCHAR(100)
LOB, CHAR(10) Gateway, BIGINT Day, BIGINT Hour, INTEGER Week, VARCHAR(100)
Week_end_date, BIGINT Usage_Cnt): \
+ // rowcount = 100.0, cumulative cost = {7.42124276972414E9 rows,
7.663067406383167E10 cpu, 0.0 io, 2.24645048816E10 network, 2.692766612982188E8
memory}, id = 129302
+ //
+ // 00-01 Project(Year=[$0], Month=[$1], Devices=[$2], Tier=[$3],
LOB=[$4], Gateway=[$5], Day=[$6], Hour=[$7], Week=[$8], Week_end_date=[$9],
Usage_Cnt=[$10]) :
+ // rowType = RecordType(VARCHAR(10) Year, VARCHAR(65536) Month,
VARCHAR(100) Devices, VARCHAR(100) Tier, VARCHAR(100) LOB, CHAR(10) Gateway,
BIGINT Day, BIGINT Hour, INTEGER Week, VARCHAR(100) Week_end_date, BIGINT
Usage_Cnt): rowcount = 100.0, cumulative cost = {7.42124275972414E9 rows,
7.663067405383167E10 cpu, 0.0 io, 2.24645048816E10 network, 2.692766612982188E8
memory}, id = 129301
+
+ public OpDefInfo(String plan) {
+ Pattern p = Pattern.compile(
"^(\\d+)-(\\d+)(\\s+)(\\w+)(?:\\((.*)\\))?\\s*:\\s*(.*)$" );
+ Matcher m = p.matcher(plan);
+ if (!m.matches()) {
+ throw new IllegalStateException( "Could not parse plan: " + plan );
+ }
+ majorId = Integer.parseInt(m.group(1));
+ stepId = Integer.parseInt(m.group(2));
+ name = m.group(4);
+ args = m.group(5);
+ String tail = m.group(6);
+ String indent = m.group(3);
+ globalLevel = (indent.length() - 4) / 2;
+
+ p = Pattern.compile("rowType = RecordType\\((.*)\\): (rowcount .*)");
+ m = p.matcher(tail);
--- End diff --
Why is that? Spaces are literals. Colons are literal in this location, they
have meaning only in a pattern like (?:X). What am I missing?
> Refinements to new "Cluster Fixture" test framework
> ---------------------------------------------------
>
> Key: DRILL-5260
> URL: https://issues.apache.org/jira/browse/DRILL-5260
> Project: Apache Drill
> Issue Type: Improvement
> Affects Versions: 1.10
> Reporter: Paul Rogers
> Assignee: Paul Rogers
> Priority: Minor
> Fix For: 1.10
>
>
> Roll-up of a number of enhancements to the cluster fixture framework.
> * Config option to suppress printing of CSV and other output. (Allows
> printing for single tests, not printing when running from Maven.)
> * Parsing of query profiles to extract plan and run time information.
> * Fix bug in log fixture when enabling logging for a package.
> * Improved ZK support.
> * Set up the new CTTAS default temporary workspace for tests.
> * Revise TestDrillbitResiliance to use the new framework.
> * Revise TestWindowFrame to to use the new framework.
> * Revise TestMergeJoinWithSchemaChanges to use the new framework.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)