lib/pg_conn.rb in pg_conn-0.27.0 vs lib/pg_conn.rb in pg_conn-0.27.1
- old
+ new
@@ -981,11 +981,14 @@
end
end
# :call-seq
# parse_query(query)
- # parse_query(table, id_or_where_clause = "true", fields = [])
+ # parse_query(table, id, fields...)
+ # parse_query(table, where_clause, fields...)
+ # parse_query(table, hash, fields...)
+ # parse_query(table, fields...)
#
# Parse a query. Used in query-functions (#value etc.). The fields argument
# can be a list of fields or arrays of fields
#
def parse_query(*args)
@@ -996,9 +999,13 @@
where_clause = "true"
fields = []
case args.first
when Integer; where_clause = "id = #{args.shift}"
when String; where_clause = args.shift
+ when Hash
+ where_clause = args.shift.map { |k,v|
+ "#{self.quote_identifier(k)} = #{self.quote_value(v) }"
+ }.join(" and ")
when Symbol; fields << args.shift
when Array; fields = args.shift
when nil; where_clause = "true"
else
raise ArgumentError