You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2015/04/03 15:02:43 UTC
[10/10] incubator-calcite git commit: [CALCITE-659] Missing types in
averageTypeValueSize method in RelMdSize (Jesus Camacho Rodriguez)
[CALCITE-659] Missing types in averageTypeValueSize method in RelMdSize (Jesus Camacho Rodriguez)
Close apache/incubator-calcite#71
Project: http://git-wip-us.apache.org/repos/asf/incubator-calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/30ae0513
Tree: http://git-wip-us.apache.org/repos/asf/incubator-calcite/tree/30ae0513
Diff: http://git-wip-us.apache.org/repos/asf/incubator-calcite/diff/30ae0513
Branch: refs/heads/master
Commit: 30ae0513c1c7e9cfb14a8a6b0e60cc37ec499ce7
Parents: 0d80fd2
Author: Jesus Camacho Rodriguez <jc...@hortonworks.com>
Authored: Wed Apr 1 16:39:31 2015 +0100
Committer: Julian Hyde <jh...@apache.org>
Committed: Fri Apr 3 01:10:06 2015 -0700
----------------------------------------------------------------------
.../main/java/org/apache/calcite/rel/metadata/RelMdSize.java | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/30ae0513/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java
index 27e8a0c..af60e73 100644
--- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java
+++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java
@@ -275,6 +275,7 @@ public class RelMdSize {
return 2d;
case INTEGER:
case REAL:
+ case DECIMAL:
case DATE:
case TIME:
return 4d;
@@ -294,6 +295,12 @@ public class RelMdSize {
case VARCHAR:
// Even in large (say VARCHAR(2000)) columns most strings are small
return Math.min((double) type.getPrecision() * BYTES_PER_CHARACTER, 100d);
+ case ROW:
+ Double average = 0.0;
+ for (RelDataTypeField field : type.getFieldList()) {
+ average += averageTypeValueSize(field.getType());
+ }
+ return average;
default:
return null;
}