Sha256: 9fa637268a50adc5b96e9e00dd9226c6d1a2929efe17b600eed8bd1206e72cc8
Contents?: true
Size: 1.6 KB
Versions: 6
Compression:
Stored size: 1.6 KB
Contents
require 'swift/db/sqlite3' Sequel.require 'adapters/shared/sqlite' module Sequel module Swift # Database and Dataset instance methods for SQLite specific # support via Swift. module SQLite # Database instance methods for SQLite databases accessed via Swift. module DatabaseMethods extend Sequel::Database::ResetIdentifierMangling include Sequel::SQLite::DatabaseMethods DATABASE_ERROR_REGEXPS = { /\AUNIQUE constraint failed: / => UniqueConstraintViolation, /\AFOREIGN KEY constraint failed/ => ForeignKeyConstraintViolation, /\ACHECK constraint failed/ => CheckConstraintViolation, /\A(SQLITE ERROR 19 \(CONSTRAINT\) : )?constraint failed/ => ConstraintViolation, /may not be NULL\z|NOT NULL constraint failed: .+/ => NotNullConstraintViolation, /\ASQLITE ERROR \d+ \(\) : CHECK constraint failed: / => CheckConstraintViolation }.freeze def database_error_regexps DATABASE_ERROR_REGEXPS end # Set the correct pragmas on the connection. def connect(opts) c = super connection_pragmas.each{|s| log_yield(s){c.execute(s)}} c end end # Dataset class for SQLite datasets accessed via Swift. class Dataset < Swift::Dataset include Sequel::SQLite::DatasetMethods private # Use Swift's escape method for quoting. def literal_string_append(sql, s) sql << APOS << db.synchronize(@opts[:server]){|c| c.escape(s)} << APOS end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems