module Sequel::Plugins::InsertReturningSelect::ClassMethods
Constants
- RETURN_ALL
Attributes
The dataset to use to insert new rows. For internal use only.
Private Instance Methods
Source
# File lib/sequel/plugins/insert_returning_select.rb 54 def insert_returning_columns(ds) 55 return unless ds.supports_returning?(:insert) 56 return unless values = ds.opts[:select] 57 58 # SELECT table.* -> RETURNING * 59 if values.length == 1 && values[0].is_a?(Sequel::SQL::ColumnAll) 60 return RETURN_ALL 61 end 62 63 # SELECT column1, table.column2, ... -> RETURNING column1, column2, ... 64 values = values.map{|v| ds.unqualified_column_for(v)} 65 if values.all? 66 values 67 end 68 end
Determine the columns to use for the returning clause, or return nil if they canβt be determined and a returning clause should not be added automatically.
Source
# File lib/sequel/plugins/insert_returning_select.rb 36 def reset_instance_dataset 37 ret = super 38 return unless ds = @instance_dataset 39 40 if columns = insert_returning_columns(ds) 41 ds = ds.returning(*columns) 42 end 43 @instance_insert_dataset = ds 44 45 ret 46 end
When reseting the instance dataset, also reset the instance_insert_dataset.
Calls superclass method