lib/thinking_sphinx/adapters/postgresql_adapter.rb in dpickett-thinking-sphinx-1.1.12 vs lib/thinking_sphinx/adapters/postgresql_adapter.rb in dpickett-thinking-sphinx-1.1.23
- old
+ new
@@ -9,11 +9,16 @@
"pgsql"
end
def concatenate(clause, separator = ' ')
clause.split(', ').collect { |field|
- "COALESCE(CAST(#{field} as varchar), '')"
+ case field
+ when /COALESCE/, "'')"
+ field
+ else
+ "COALESCE(CAST(#{field} as varchar), '')"
+ end
}.join(" || '#{separator}' || ")
end
def group_concatenate(clause, separator = ' ')
"array_to_string(array_accum(#{clause}), '#{separator}')"
@@ -30,11 +35,12 @@
def cast_to_unsigned(clause)
clause
end
def convert_nulls(clause, default = '')
- default = "'#{default}'" if default.is_a?(String)
+ default = "'#{default}'" if default.is_a?(String)
+ default = 'NULL' if default.nil?
"COALESCE(#{clause}, #{default})"
end
def boolean(value)
@@ -125,6 +131,6 @@
$$ IMMUTABLE STRICT LANGUAGE plpgsql;
SQL
execute function, true
end
end
-end
\ No newline at end of file
+end