class ThinkingSphinx::ActiveRecord::SQLBuilder
Attributes
source[R]
Public Class Methods
new(source)
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 6 def initialize(source) @source = source end
Public Instance Methods
sql_query()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 10 def sql_query statement.to_relation.to_sql.gsub(/\n/, "\\\n") end
sql_query_info()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 19 def sql_query_info statement.to_query_info_relation.to_sql end
sql_query_post_index()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 27 def sql_query_post_index return [] unless delta_processor && !source.delta? [delta_processor.reset_query] end
sql_query_pre()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 23 def sql_query_pre query.to_query end
sql_query_range()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 14 def sql_query_range return nil if source.disable_range? statement.to_query_range_relation.to_sql end
Private Instance Methods
associations()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 55 def associations @associations ||= begin joins = Joiner::Joins.new model if joins.respond_to?(:join_association_class) joins.join_association_class = ThinkingSphinx::ActiveRecord::JoinAssociation end source.associations.reject(&:string?).each do |association| joins.add_join_to association.stack end joins end end
big_document_ids?()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 86 def big_document_ids? source.options[:big_document_ids] || config.settings['big_document_ids'] end
config()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 47 def config ThinkingSphinx::Configuration.instance end
document_id()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 90 def document_id quoted_alias = quote_column source.primary_key column = quoted_primary_key column = cast_to_bigint column if big_document_ids? column = "#{column} * #{config.indices.count} + #{source.offset}" "#{column} AS #{quoted_alias}" end
groupings()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 110 def groupings groupings = source.groupings if model.column_names.include?(model.inheritance_column) groupings << quoted_inheritance_column end groupings end
model_name()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 118 def model_name klass = model.name klass = klass.demodulize unless model.store_full_sti_class klass end
pre_select()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 82 def pre_select ('SQL_NO_CACHE ' if source.type == 'mysql').to_s end
query()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 39 def query Query.new(self) end
quote_column(column)
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 70 def quote_column(column) model.connection.quote_column_name(column) end
quoted_inheritance_column()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 78 def quoted_inheritance_column "#{model.quoted_table_name}.#{quote_column(model.inheritance_column)}" end
quoted_primary_key()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 74 def quoted_primary_key "#{model.quoted_table_name}.#{quote_column(source.primary_key)}" end
range_condition()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 103 def range_condition condition = [] condition << "#{quoted_primary_key} BETWEEN $start AND $end" unless source.disable_range? condition += source.conditions condition end
relation()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 51 def relation model.unscoped end
reversed_document_id()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 99 def reversed_document_id "($id - #{source.offset}) / #{config.indices.count}" end
statement()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 43 def statement Statement.new(self) end