Class: Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::OrderValuesLoaderStrategy
- Inherits:
-
Object
- Object
- Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::OrderValuesLoaderStrategy
- Defined in:
- lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy.rb
Instance Method Summary collapse
- #columns ⇒ Object
- #final_projections ⇒ Object
-
#initialize(model, order_by_columns) ⇒ OrderValuesLoaderStrategy
constructor
A new instance of OrderValuesLoaderStrategy.
- #initializer_columns ⇒ Object
Constructor Details
#initialize(model, order_by_columns) ⇒ OrderValuesLoaderStrategy
Returns a new instance of OrderValuesLoaderStrategy.
9 10 11 12 |
# File 'lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy.rb', line 9 def initialize(model, order_by_columns) @model = model @order_by_columns = order_by_columns end |
Instance Method Details
#columns ⇒ Object
18 19 20 |
# File 'lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy.rb', line 18 def columns order_by_columns.array_lookup_expressions_by_position(QueryBuilder::RECURSIVE_CTE_NAME) end |
#final_projections ⇒ Object
22 23 24 |
# File 'lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy.rb', line 22 def final_projections order_by_columns.map(&:original_column_name) end |
#initializer_columns ⇒ Object
14 15 16 |
# File 'lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy.rb', line 14 def initializer_columns order_by_columns.map { |column_data| null_with_type_cast(column_data) } end |