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;
     }