Skip to content

Commit 1edea97

Browse files
committed
Make sure exclude [__rnt] table names form relation reflection.
* Fixes #219 and #221. * Thanks @sphogan.
1 parent 051b226 commit 1edea97

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* The #remove_default_constraint uses #execute_procedure now. Fixes #223. Thanks @gicappa and @clintmiller.
55
* Mimic other adapters quoting for empty strings passed to integer columns. Fixes #164.
66
* Allow named parameters in stored procedures. Fixes #216. Thanks @sixfeetover.
7+
* Make sure exclude [__rnt] table names form relation reflection. Fixes #219 and #221. Thanks @sphogan.
78

89

910
* 3.2.8 *
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module ActiveRecord
2+
module ConnectionAdapters
3+
module Sqlserver
4+
module CoreExt
5+
module Relation
6+
7+
private
8+
9+
def tables_in_string(string)
10+
super - ['__rnt']
11+
end
12+
13+
end
14+
end
15+
end
16+
end
17+
end
18+
19+
ActiveRecord::Relation.send :include, ActiveRecord::ConnectionAdapters::Sqlserver::CoreExt::Relation

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
require 'active_record/connection_adapters/sqlserver/core_ext/active_record'
99
require 'active_record/connection_adapters/sqlserver/core_ext/database_statements'
1010
require 'active_record/connection_adapters/sqlserver/core_ext/explain'
11+
require 'active_record/connection_adapters/sqlserver/core_ext/relation'
1112
require 'active_record/connection_adapters/sqlserver/database_limits'
1213
require 'active_record/connection_adapters/sqlserver/database_statements'
1314
require 'active_record/connection_adapters/sqlserver/errors'

test/cases/offset_and_limit_test_sqlserver.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
require 'models/reference'
55
require 'models/book'
66
require 'models/author'
7+
require 'models/subscription'
78
require 'models/post'
89
require 'models/comment'
910
require 'models/categorization'
1011

1112
class OffsetAndLimitTestSqlserver < ActiveRecord::TestCase
1213

13-
fixtures :jobs, :people, :references,
14+
fixtures :jobs, :people, :references, :subscriptions,
1415
:authors, :posts, :comments, :categorizations
1516

1617
setup :create_10_books
@@ -94,6 +95,13 @@ class OffsetAndLimitTestSqlserver < ActiveRecord::TestCase
9495
assert_equal [8, 9, 10, 12], david.ordered_uniq_comments.limit(5).offset(6).map(&:id)
9596
assert_equal 4, david.ordered_uniq_comments.limit(5).offset(6).count
9697
end
98+
99+
should 'remove [__rnt] table names from relation reflection and hence do not eager loading' do
100+
create_10_books
101+
create_10_books
102+
assert_queries(1) { Book.limit(10).offset(10).includes(:subscriptions).all }
103+
end
104+
97105

98106
context 'with count' do
99107

0 commit comments

Comments
 (0)