Calcite - Join

Card Puncher Data Processing


Relational Operator - Join in Calcite.

Join is a calcite relational operator (RelNode)

Field Addressing

Example field addressing in a join between the input EMP and DEPT

  /   \      

The ordinal referencing is:

  • 0=EMP
    • 0=EMPNO,
    • 1=ENAME,
    • 2=JOB,
    • 3=MGR,
    • 4=HIREDATE,
    • 5=SAL,
    • 6=COMM,
    • 7=DEPTNO]
  • 1=DEPT
    • 0=DEPTNO,
    • 1=DNAME,
    • 2=LOC

To reference the field/column SAL (the field 5 of input 0)

builder.field(2, 0, "SAL")
// or
builder.field(2, "EMP", "SAL")
// or
builder.field(2, 0, 5)


  • 2 means that there are two inputs (How deep to search in the stack)
  • 0 or EMP design the input
  • 5 or SAL design the field

Discover More
Card Puncher Data Processing
Calcite - Field

in calcite. You can reference a field (cell) by name or ordinal. Ordinals are zero-based. Each operator guarantees the order in which its output fields occur. For example, Project returns the fields...

Share this page:
Follow us:
Task Runner