You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by Apache Wiki <wi...@apache.org> on 2014/04/02 14:37:30 UTC

[Tajo Wiki] Update of "LogicalNodeConvertStandard" by JihoonSon

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tajo Wiki" for change notification.

The "LogicalNodeConvertStandard" page has been changed by JihoonSon:
https://wiki.apache.org/tajo/LogicalNodeConvertStandard

New page:
= JSON Standard =

== Common Properties ==
 * A logical node is represented as a "Plan"
 * Every plan has the "PlanType" property
 * Every unary plan has a "Plan" property
 * Every binary plan has two "Plan" properties
 * Union plan has a "Plans" property which contains two or more "Plan" properties

== Component Description ==

=== Projection ===
 * Required properties
  * Name
 * Optional properties
  * Alias
{{{
"Projection": {
  "Name": "r_name"
  "Alias": "name_1"
}
}}}

=== Condition ===
 * Required properties
  * Qual
{{{
"Condition": {
  "Qual": "r_regionkey = 1"
}
}}}

== Individual Plan Description ==

=== ScanNode ===
 * The PlanType is SCAN
 * Required properties
  * RelationName
 * Optional properties
  * Projections, Conditions
   * The Projections (Conditions) property has one or more Projection (Condition) properties
{{{
"Plan": {
  "PlanType": "SCAN"
  "RelationName": "region"
  "Projections": {
    "Projection": {
      "Name": "r_name"
    }
  }
  "Conditions": {
    "Cond": "r_regionkey = 1"
  }
}
}}}

=== GroupByNode ===
 * Union plan
 * The PlanType is GROUP_BY
 * Required properties
  * Grouping keys
  * Measures
   * The Measures property has one or more Projection properties
 * Optional properties
  * Conditions
   * Having conditions
{{{
"Plan": {
  "PlanType": "GROUP_BY"
  "Keys": {
    "Key": "r_name"
  }
  "Measures": {
    "Projection": {
      "Name": "sum(r_regionkey)"
      "Alias": "sum_key"
    }
  }
  "Plan" {
    "PlanType": "SCAN"
    "RelationName": "region"
    "Projections": {
      "Projection": {
        "Name": "r_name"
      }
      "Projection": {
        "Name": "r_regionkey"
      }
    }
  }
}
}}}

=== JoinNode ===
 * Binary plan
 * The PlanType is JOIN
 * Each child plan has the ParentRelationship property
 * Required properties
  * JoinType
 * Optional properties
  * Conditions
   * Join conditions
{{{
"Plan": {
  "PlanType": "JOIN"
  "JoinType": "INNER"
  "Conditions": {
    "Cond": "r_regionkey = n_regionkey"
  }
  "Plan" {
    "PlanType": "SCAN"
    "ParentRelationship": "Outer"
    "RelationName": "region"
    "Projections": {
      "Projection": {
        "Name": "r_regionkey"
      }
    }
  }
  "Plan" {
    "PlanType": "SCAN"
    "ParentRelationship": "Inner"
    "RelationName": "nation"
    "Projections": {
      "Projection": {
        "Name": "n_regionkey"
      }
    }
  }
}
}}}