class RDF::DataObjects::Adapters::Postgres
Postgres
Adapter for RDF::DataObjects
.
Public Class Methods
delete_sql()
click to toggle source
SQL prepared statement for deletions
@return [String]
# File lib/rdf/do/adapters/postgres.rb, line 46 def self.delete_sql "DELETE FROM quads where (subject = ? AND predicate = ? AND object = ? AND context = ?)" end
insert_sql()
click to toggle source
SQL prepared statement for insertions
@return [String]
# File lib/rdf/do/adapters/postgres.rb, line 30 def self.insert_sql 'insert into quads (subject, predicate, object, context) VALUES (?, ?, ?, ?)' end
migrate?(do_repository, opts = {})
click to toggle source
Indempotently migrate this database.
@param [RDF::DataObjects::Repository] do_repository @return [void]
# File lib/rdf/do/adapters/postgres.rb, line 18 def self.migrate?(do_repository, opts = {}) begin do_repository.exec('CREATE TABLE quads (subject varchar(255), predicate varchar(255), object varchar(255), context varchar(255), UNIQUE (subject, predicate, object, context))') rescue nil end begin do_repository.exec('CREATE INDEX quads_context_index ON quads (context)') rescue nil end begin do_repository.exec('CREATE INDEX quads_object_index ON quads (object)') rescue nil end begin do_repository.exec('CREATE INDEX quads_predicate_index ON quads (predicate)') rescue nil end begin do_repository.exec('CREATE INDEX quads_subject_index ON quads (subject)') rescue nil end do_repository.exec('CREATE OR REPLACE RULE "insert_ignore" AS ON INSERT TO quads WHERE EXISTS(SELECT true FROM quads WHERE subject = NEW.subject AND predicate = NEW.predicate AND object = NEW.object AND context = NEW.context) DO INSTEAD NOTHING;') end # SQL prepared statement for insertions # # @return [String] def self.insert_sql 'insert into quads (subject, predicate, object, context) VALUES (?, ?, ?, ?)' end # SQL prepared statement for multiple insertion # # @param [Integer] count The number of statements to be inserted # @return [String] def self.multiple_insert_sql(count) sql = 'insert into quads (subject, predicate, object, context) VALUES ' sql + (1..count).map { "(?, ?, ?, ?)" }.join(',') end # SQL prepared statement for deletions # # @return [String] def self.delete_sql "DELETE FROM quads where (subject = ? AND predicate = ? AND object = ? AND context = ?)" end end end
multiple_insert_sql(count)
click to toggle source
SQL prepared statement for multiple insertion
@param [Integer] count The number of statements to be inserted @return [String]
# File lib/rdf/do/adapters/postgres.rb, line 38 def self.multiple_insert_sql(count) sql = 'insert into quads (subject, predicate, object, context) VALUES ' sql + (1..count).map { "(?, ?, ?, ?)" }.join(',') end