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_pre()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 19 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 45 def associations @associations ||= ThinkingSphinx::ActiveRecord::SourceJoins.call( model, source ) end
big_document_ids?()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 67 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 37 def config ThinkingSphinx::Configuration.instance end
document_id()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 71 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 87 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 95 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 63 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 29 def query Query.new(self) end
quote_column(column)
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 51 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 59 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 55 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 80 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 41 def relation model.unscoped end
statement()
click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder.rb, line 33 def statement Statement.new(self) end