@@ -32,12 +32,12 @@ def initialize(model, options={})
32
32
end
33
33
34
34
def earliest
35
- earliest_obj = model . order ( "#{ timestamp_field } asc" ) . first
35
+ earliest_obj = model . order ( "#{ model . base_class . table_name } . #{ timestamp_field } asc" ) . first
36
36
earliest_obj . nil? ? Time . at ( 0 ) : earliest_obj . send ( timestamp_field )
37
37
end
38
38
39
39
def latest
40
- latest_obj = model . order ( "#{ timestamp_field } desc" ) . first
40
+ latest_obj = model . order ( "#{ model . base_class . table_name } . #{ timestamp_field } desc" ) . first
41
41
latest_obj . nil? ? Time . now : latest_obj . send ( timestamp_field )
42
42
end
43
43
# A model class is expected to provide a method Model.sets that
@@ -137,7 +137,7 @@ def next_set(find_scope, token_string)
137
137
def select_partial ( find_scope , token )
138
138
records = find_scope . where ( token_conditions ( token ) )
139
139
. limit ( @limit )
140
- . order ( "#{ identifier_field } asc" )
140
+ . order ( "#{ model . base_class . table_name } . #{ identifier_field } asc" )
141
141
raise OAI ::ResumptionTokenException . new unless records
142
142
143
143
total = find_scope . where ( token_conditions ( token ) ) . count
@@ -158,7 +158,7 @@ def token_conditions(token)
158
158
159
159
return sql if "0" == last_id
160
160
# Now add last id constraint
161
- sql . first << " AND #{ identifier_field } > :id"
161
+ sql . first << " AND #{ model . base_class . table_name } . #{ identifier_field } > :id"
162
162
sql . last [ :id ] = last_id
163
163
164
164
return sql
@@ -169,12 +169,12 @@ def sql_conditions(opts)
169
169
sql = [ ]
170
170
esc_values = { }
171
171
if opts . has_key? ( :from )
172
- sql << "#{ timestamp_field } >= :from"
172
+ sql << "#{ model . base_class . table_name } . #{ timestamp_field } >= :from"
173
173
esc_values [ :from ] = parse_to_local ( opts [ :from ] )
174
174
end
175
175
if opts . has_key? ( :until )
176
176
# Handle databases which store fractions of a second by rounding up
177
- sql << "#{ timestamp_field } < :until"
177
+ sql << "#{ model . base_class . table_name } . #{ timestamp_field } < :until"
178
178
esc_values [ :until ] = parse_to_local ( opts [ :until ] ) { |t | t + 1 }
179
179
end
180
180
@@ -215,4 +215,3 @@ def parse_to_local(time)
215
215
216
216
end
217
217
end
218
-
0 commit comments