ransack icon indicating copy to clipboard operation
ransack copied to clipboard

using cont on Oracle CLOB column is converting value to empty_clob()

Open dsusco opened this issue 1 year ago • 0 comments

I have the following table:

CREATE TABLE "NOTIFICATIONS" ("ID" NUMBER(38) NOT NULL PRIMARY KEY, "NOTIFICATION_TYPE" VARCHAR2(255) NOT NULL, "NAME" VARCHAR2(255) NOT NULL, "MESSAGE" CLOB NOT NULL, "CREATED_AT" TIMESTAMP(6) NOT NULL, "UPDATED_AT" TIMESTAMP(6) NOT NULL);

And the following parameters:

Parameters: {"per"=>"10", "q"=>{"s"=>["id asc"], "notification_type_eq"=>"", "name_cont"=>"", "message_cont"=>"A"}}

Generate this query in Oracle:

SELECT "NOTIFICATIONS".* FROM "NOTIFICATIONS" WHERE "NOTIFICATIONS"."MESSAGE" LIKE empty_clob() ORDER BY "NOTIFICATIONS"."ID" ASC OFFSET :a1 ROWS FETCH FIRST :a2 ROWS ONLY  [["OFFSET", 0], ["LIMIT", 10]]

However, when I add this simple ransacker:

ransacker :message do |parent|
  Arel.sql(%Q["NOTIFICATIONS"."MESSAGE"])
end

There's no issue and I get the following query:

SELECT "NOTIFICATIONS".* FROM "NOTIFICATIONS" WHERE "NOTIFICATIONS"."MESSAGE" LIKE '%A%' ORDER BY "NOTIFICATIONS"."ID" ASC OFFSET :a1 ROWS FETCH FIRST :a2 ROWS ONLY  [["OFFSET", 0], ["LIMIT", 10]]

Does anyone have any idea why this is happening/necessary?

dsusco avatar Jan 11 '24 17:01 dsusco