lib/pghero/methods/suggested_indexes.rb in pghero-1.2.4 vs lib/pghero/methods/suggested_indexes.rb in pghero-1.3.0
- old
+ new
@@ -272,21 +272,29 @@
aexpr = tree["AEXPR"] || tree[nil]
if tree["BOOLEXPR"]
if tree["BOOLEXPR"]["boolop"] == 0
tree["BOOLEXPR"]["args"].flat_map { |v| parse_where(v) }
+ else
+ raise "Not Implemented"
end
elsif tree["AEXPR AND"]
left = parse_where(tree["AEXPR AND"]["lexpr"])
right = parse_where(tree["AEXPR AND"]["rexpr"])
- left + right if left && right
+ if left && right
+ left + right
+ else
+ raise "Not Implemented"
+ end
elsif aexpr && ["=", "<>", ">", ">=", "<", "<=", "~~", "~~*", "BETWEEN"].include?(aexpr["name"].first)
[{column: aexpr["lexpr"]["COLUMNREF"]["fields"].last, op: aexpr["name"].first}]
elsif tree["AEXPR IN"] && ["=", "<>"].include?(tree["AEXPR IN"]["name"].first)
[{column: tree["AEXPR IN"]["lexpr"]["COLUMNREF"]["fields"].last, op: tree["AEXPR IN"]["name"].first}]
elsif tree["NULLTEST"]
op = tree["NULLTEST"]["nulltesttype"] == 1 ? "not_null" : "null"
[{column: tree["NULLTEST"]["arg"]["COLUMNREF"]["fields"].last, op: op}]
+ else
+ raise "Not Implemented"
end
end
def parse_sort(sort_clause)
sort_clause.map do |v|