Sha256: 851072758b51f6e99ffe0af76655cd17f309193a61e4fda02bbf228415357075
Contents?: true
Size: 1.64 KB
Versions: 2
Compression:
Stored size: 1.64 KB
Contents
require 'dm-constraints/adapters/dm-do-adapter' module DataMapper module Constraints module Adapters module OracleAdapter include DataObjectsAdapter # oracle does not provide the information_schema table # To question intenal state like postgres or mysql # @see DataMapper::Constraints::Adapters::DataObjectsAdapter # @api private def constraint_exists?(storage_name, constraint_name) statement = DataMapper::Ext::String.compress_lines(<<-SQL) SELECT COUNT(*) FROM USER_CONSTRAINTS WHERE table_name = ? AND constraint_name = ? SQL select(statement, storage_name, constraint_name).first > 0 end # @see DataMapper::Constraints::Adapters::DataObjectsAdapter#create_constraints_statement def create_constraints_statement(storage_name, constraint_name, constraint_type, foreign_keys, reference_storage_name, reference_keys) DataMapper::Ext::String.compress_lines(<<-SQL) ALTER TABLE #{quote_name(storage_name)} ADD CONSTRAINT #{quote_name(constraint_name)} FOREIGN KEY (#{foreign_keys.join(', ')}) REFERENCES #{quote_name(reference_storage_name)} (#{reference_keys.join(', ')}) INITIALLY DEFERRED DEFERRABLE SQL end def destroy_constraints_statement(storage_name, constraint_name) DataMapper::Ext::String.compress_lines(<<-SQL) ALTER TABLE #{quote_name(storage_name)} DROP CONSTRAINT #{quote_name(constraint_name)} CASCADE SQL end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dm-constraints-1.1.0 | lib/dm-constraints/adapters/dm-oracle-adapter.rb |
dm-constraints-1.1.0.rc3 | lib/dm-constraints/adapters/dm-oracle-adapter.rb |