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|