FarragoRelCleanup

From Eigenpedia

Jump to: navigation, search

This is a list of proposed cleanups related to RelNodes:

  • change all rels to do shallow-cloning only (meaning most rels can use the default Java clone impl)
  • make all RexNodes hashable to improve rel metadata caching
  • eliminate FennelRel abstract bases (e.g. FennelMultipleRel): eigenjira:FRG-104
  • possibly controversial: eliminate RelNode.getRows and require that this be always implemented via RelMetadataQuery.getRowCount; in particular, clean up code to propagate null (unknown) rowcounts instead of making up bogus rowcounts; eigenjira:FRG-196
  • possibly controversial: eliminate RelNode.computeSelfCost and require that this be always implemented via RelMetadataQuery.getNonCumulativeCost
  • probably controversial: eliminate RelNode.getCollationList and require that this be always implemented via RelMetadataQuery.getCollationList
  • deal with dangling bits left over from Saffron: eigenjira:FRG-13
  • review correlation variables
  • replace OneRowRel with ValuesRel
  • eliminate the "all/distinct" flag on UnionRel

The following cleanups were completed as part of EigenbaseCodeReorg2008:

  • refactor package org.eigenbase.rel; "primitives" produced by SqlToRelConverter (e.g. JoinRel) go to new package org.eigenbase.rel.algebra remain; everything else (e.g. MergeCalcRule) goes to org.eigenbase.rel.rules
  • move Fennel-related subset of net.sf.farrago.query to new package net.sf.farrago.fennel.rel
  • make rule singleton pattern consistent: eigenjira:FRG-105
  • change AggregateRel explain to use MAX($1) instead of MAX(1)
Personal tools