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