module Sequel::Plugins::InsertReturningSelect::ClassMethods

Attributes

instance_insert_dataset[R]

The dataset to use to insert new rows. For internal use only.

Private Instance Methods

insert_returning_columns(ds) click to toggle source

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.

# File lib/sequel/plugins/insert_returning_select.rb, line 49
def insert_returning_columns(ds)
  return unless ds.supports_returning?(:insert)
  return unless values = ds.opts[:select]

  values = values.map{|v| ds.unqualified_column_for(v)}
  if values.all?
    values
  end
end
reset_instance_dataset() click to toggle source

When reseting the instance dataset, also reset the instance_insert_dataset.

Calls superclass method
# File lib/sequel/plugins/insert_returning_select.rb, line 34
def reset_instance_dataset
  ret = super
  ds = @instance_dataset

  if columns = insert_returning_columns(ds)
    ds = ds.returning(*columns)
  end
  @instance_insert_dataset = ds

  ret
end