Module: Presto::Client::Models::PlanNode

Defined in:
lib/presto/client/models.rb

Class Method Summary collapse

Class Method Details

.decode(hash) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/presto/client/models.rb', line 91

def self.decode(hash)
  model_class = case hash["type"]
    when "output"             then OutputNode
    when "project"            then ProjectNode
    when "tablescan"          then TableScanNode
    when "values"             then ValuesNode
    when "aggregation"        then AggregationNode
    when "markDistinct"       then MarkDistinctNode
    when "materializeSample"  then MaterializeSampleNode
    when "filter"             then FilterNode
    when "window"             then WindowNode
    when "limit"              then LimitNode
    when "distinctlimit"      then DistinctLimitNode
    when "topn"               then TopNNode
    when "sample"             then SampleNode
    when "sort"               then SortNode
    when "exchange"           then ExchangeNode
    when "remoteSource"       then RemoteSourceNode
    when "join"               then JoinNode
    when "INNER"              then JoinNode
    when "LEFT"               then JoinNode
    when "RIGHT"              then JoinNode
    when "CROSS"              then JoinNode
    when "semijoin"           then SemiJoinNode
    when "indexjoin"          then IndexJoinNode
    when "indexsource"        then IndexSourceNode
    when "tablewriter"        then TableWriterNode
    when "tablecommit"        then TableCommitNode
    end
  model_class.decode(hash) if model_class
end