public abstract class TemplateBase extends Object
Modifier and Type | Class and Description |
---|---|
static class |
TemplateBase.CloseType |
static class |
TemplateBase.TemplateType |
Modifier and Type | Method and Description |
---|---|
abstract TemplateBase.CloseType |
close(Hop hop)
Indicates if the template must be closed at the current hop; either
due to final operations (e.g., aggregate) or unsupported operations.
|
abstract Pair<Hop[],CNodeTpl> |
constructCplan(Hop hop,
CPlanMemoTable memo,
boolean compileLiterals)
Constructs a single cplan rooted at the given hop, according
to the plan given in the memo structure for this particular
hop and its recursive inputs.
|
boolean |
equals(Object obj) |
abstract boolean |
fuse(Hop hop,
Hop input)
Indicates if the template can be expanded to the given hop
starting from an open template at the input.
|
TemplateBase.CloseType |
getCType() |
TemplateBase.TemplateType |
getType() |
int |
hashCode() |
boolean |
isClosed() |
abstract boolean |
merge(Hop hop,
Hop input)
Indicates if the template at the current hop can be expanded
by merging another template available for one of its other inputs
which is not yet covered by the template of the current hop.
|
abstract boolean |
open(Hop hop)
Indicates if this template can be opened at the given hop,
where hop represents bottom (first operation on the inputs)
of the fused operator.
|
public TemplateBase.TemplateType getType()
public TemplateBase.CloseType getCType()
public boolean isClosed()
public abstract boolean open(Hop hop)
hop
- current hoppublic abstract boolean fuse(Hop hop, Hop input)
hop
- current hopinput
- hop with open template of same typepublic abstract boolean merge(Hop hop, Hop input)
hop
- current hopinput
- direct input of current hop with available templatepublic abstract TemplateBase.CloseType close(Hop hop)
hop
- current hoppublic abstract Pair<Hop[],CNodeTpl> constructCplan(Hop hop, CPlanMemoTable memo, boolean compileLiterals)
hop
- root of cplanmemo
- memoization table for partial subplanscompileLiterals
- if true compile non-integer literals
as constants, otherwise variables. note: integer literals are
always compiled as constants.Copyright © 2020 The Apache Software Foundation. All rights reserved.