queue_classic_admin icon indicating copy to clipboard operation
queue_classic_admin copied to clipboard

ActiveRecord::StatementInvalid when sorting by the "Arguments" column

Open abevoelker opened this issue 10 years ago • 6 comments

Visit http://localhost:3000/queue_classic_admin/queue_classic_jobs?dir=asc&sort=args to reproduce.

PG::UndefinedFunction: ERROR:  could not identify an ordering operator for type json
LINE 1: ...assic_jobs".* FROM "queue_classic_jobs"  ORDER BY args desc ...
                                                             ^
HINT:  Use an explicit ordering operator or modify the query.
: SELECT  "queue_classic_jobs".* FROM "queue_classic_jobs"  ORDER BY args desc NULLS LAST LIMIT 50 OFFSET 0
  Rendered /home/abe/.gem/ruby/2.1.5/gems/queue_classic_admin-0.2.0/app/views/queue_classic_admin/shared/_job_list.html.erb (13.1ms)
  Rendered /home/abe/.gem/ruby/2.1.5/gems/queue_classic_admin-0.2.0/app/views/queue_classic_admin/queue_classic_jobs/index.html.erb within layouts/queue_classic_admin/application (14.5ms)
Completed 500 Internal Server Error in 20ms

Full stacktrace: https://gist.github.com/abevoelker/b00d55553222057bc0bd

This is with Postgres 9.3.5.

abevoelker avatar Jan 06 '15 01:01 abevoelker

Ah, right...not sure what is the solution to that.

Some history for you. args used to be a text column (in Rails's language) but is now json for newly created projects. It works fine in text though, which is still the case for "older" applications.

Thoughts? Maybe we could detect the column type, and based on that have different behavior? Maybe there is a way to cast that into string then do the sort of it?

I personally never faced that, but it would make sense to fix it somehow while keeping it as-is for people with and args column of type text.

jipiboily avatar Jan 15 '15 20:01 jipiboily

Ah, gotcha. Might be simplest to just take the sort off of that column completely, since the actual data can be completely arbitrary based on whatever the end user is passing to their job classes, right? In newer Postgreses you can slice and dice the JSON structure but that doesn't do you any good if you can't predict the structure ahead of time. Up to you folks though.

abevoelker avatar Jan 15 '15 20:01 abevoelker

@smatthieu @ukd1 are you sorting by args ever?

jipiboily avatar Jan 16 '15 01:01 jipiboily

Hrm.. @smathieu

jipiboily avatar Jan 16 '15 01:01 jipiboily

No. Removing the sort column for this makes the most sense I think.

smathieu avatar Jan 16 '15 01:01 smathieu

:+1:

jipiboily avatar Jan 16 '15 01:01 jipiboily