ActiveRecord::Job::reserve and MSSQL #57
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have a Rails 3 application that runs on multiple databases including Oracle and MS SQL Server via JRuby (1.7.3). I've encountered an issue with SQL statement generation from delayed_job (3.0.5) when calling
Delayed::Worker.new.work_off
. Using Oracle (activerecord-oracle_enhanced-adapter
), this statement works fine. Using SQL Server, I receive the following error:The generated SQL is:
I've tracked this down to
Delayed::Backend::ActiveRecord::Job::reserve
. Line 51 adds a priority to the query but this doesn't make sense in the context of the above update statement with subquery. The Oracle adapter automatically splits the generated SQL into two queries so a subquery isn't used.Like the PostgreSQL and MySQL customisations, I've written one for MSSQL using a combination of their techniques. As I'm using JRuby, I've only tested against
activerecord-jdbcmssql-adapter
.