Sha256: 06c69ae0c1a7f9cfdce7933987566a4a6de2681b06f708dc4ef7c03c82c7f66a
Contents?: true
Size: 1 KB
Versions: 1
Compression:
Stored size: 1 KB
Contents
class Upsert class Buffer class SQLite3_Database < Buffer def compose(targets) target = targets.first parts = [] parts << %{ INSERT OR IGNORE INTO "#{table_name}" (#{quote_idents(target.columns)}) VALUES (#{quote_values(target.inserts)}) } if target.updates.length > 0 parts << %{ UPDATE "#{table_name}" SET #{quote_pairs(target.updates)} WHERE #{quote_pairs(target.selector)} } end parts.join(';') end def execute(sql) connection.execute_batch sql end def max_targets 1 end def max_length INFINITY end include Quoter def quote_value(v) case v when NilClass 'NULL' when String, Symbol SINGLE_QUOTE + SQLite3::Database.quote(v.to_s) + SINGLE_QUOTE else v end end def quote_ident(k) DOUBLE_QUOTE + SQLite3::Database.quote(k.to_s) + DOUBLE_QUOTE end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
upsert-0.0.1 | lib/upsert/buffer/sqlite3_database.rb |