ransack
ransack copied to clipboard
using cont on Oracle CLOB column is converting value to empty_clob()
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?