Sha256: 77d11d048aa5f5bc73845670ba46c1bb7a9e64f20236eaaa01c911cb2b4744a0

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

# frozen-string-literal: true

module Sequel
  class Dataset
    module Replace
      INSERT = 'INSERT'.freeze
      Sequel::Deprecation.deprecate_constant(self, :INSERT)
      REPLACE = 'REPLACE'.freeze
      Sequel::Deprecation.deprecate_constant(self, :REPLACE)

      # Execute a REPLACE statement on the database (deletes any duplicate
      # rows before inserting).
      def replace(*values)
        execute_insert(replace_sql(*values))
      end

      # SQL statement for REPLACE
      def replace_sql(*values)
        clone(:replace=>true).insert_sql(*values)
      end

      # Replace multiple rows in a single query.
      def multi_replace(*values)
        clone(:replace=>true).multi_insert(*values)
      end

      # Databases using this module support REPLACE.
      def supports_replace?
        true
      end

      private

      # If this is an replace instead of an insert, use replace instead
      def insert_insert_sql(sql)
        sql << (@opts[:replace] ? 'REPLACE' : 'INSERT')
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
sequel-4.49.0 lib/sequel/adapters/utils/replace.rb
sequel-4.48.0 lib/sequel/adapters/utils/replace.rb
tdiary-5.0.5 vendor/bundle/gems/sequel-4.47.0/lib/sequel/adapters/utils/replace.rb
sequel-4.47.0 lib/sequel/adapters/utils/replace.rb
sequel-4.46.0 lib/sequel/adapters/utils/replace.rb