[
https://issues.apache.org/jira/browse/DERBY-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dag H. Wanvik updated DERBY-532:
--------------------------------
Attachment: deferredConstraints.html
Updating a new up-to-date version of the functional specification. This should
form a basis for the documentation, it is hoped.
Some parts are as yet, unimplemented, i.e. NOT NULL constraints are not
deferrable, and the NOT ENFORCED state is not yet supported. These parts are
marked in red (rather than being removed) in the updated spec since I wanted to
keep the material there where it belongs if someone wants to pick it up later.
> Support deferrable constraints
> ------------------------------
>
> Key: DERBY-532
> URL: https://issues.apache.org/jira/browse/DERBY-532
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Reporter: Jörg von Frantzius
> Assignee: Dag H. Wanvik
> Labels: derby_triage10_11
> Fix For: 10.11.0.0
>
> Attachments: IndexDescriptor.html, IndexDescriptorImpl.html,
> IndexRowGenerator.html, SortObserver.html, deferredConstraints.html,
> deferredConstraints.html, deferredConstraints.html, deferredConstraints.html,
> deferredConstraints.html, deferredConstraints.html,
> derby-532-allow-pk-unique-1.diff, derby-532-allow-pk-unique-1.status,
> derby-532-check-constraints-1.diff, derby-532-check-constraints-1.stat,
> derby-532-check-constraints-2.diff, derby-532-check-constraints-2.stat,
> derby-532-fix-drop-not-nullable.diff, derby-532-fix-drop-not-nullable.status,
> derby-532-fix-metadata-1.diff, derby-532-fix-metadata-1.status,
> derby-532-fk-1.diff, derby-532-fk-3.diff, derby-532-fk-3.stat,
> derby-532-fk-4.diff, derby-532-fk-5.diff, derby-532-fk-5.stat,
> derby-532-fk-6.diff, derby-532-fk-6.stat, derby-532-fk-7.diff,
> derby-532-fk-7.stat, derby-532-fk-baseline-2.diff,
> derby-532-fk-baseline.diff, derby-532-import-1.diff,
> derby-532-import-1.status, derby-532-import-2.diff, derby-532-import-3.diff,
> derby-532-import-3.status, derby-532-metadata-queries.diff,
> derby-532-metadata-queries.status, derby-532-more-tests-1.diff,
> derby-532-more-tests-1.stat, derby-532-nullableUniqueFix.diff,
> derby-532-nullableUniqueFix.status, derby-532-post-scan-1.diff,
> derby-532-post-scan-1.stat, derby-532-post-scan-2.diff,
> derby-532-post-scan-2.stat, derby-532-post-scan-3.diff,
> derby-532-post-scan-3.stat, derby-532-post-scan-4.diff,
> derby-532-post-scan-4.stat, derby-532-serializable-scan-1.diff,
> derby-532-serializable-scan-2.diff, derby-532-serializable-scan-2.stat,
> derby-532-syntax-binding-dict-1.diff, derby-532-syntax-binding-dict-1.status,
> derby-532-syntax-binding-dict-2.diff, derby-532-syntax-binding-dict-2.status,
> derby-532-syntax-binding-dict-all-1.diff, derby-532-test-speedup.diff,
> derby-532-test-speedup.status,
> derby-532-test-with-default-deferrable-all-over.diff,
> derby-532-testAlterConstraintInvalidation.diff,
> derby-532-testAlterConstraintInvalidation.status, derby-532-unique-pk-1.diff,
> derby-532-unique-pk-1.status, derby-532-unique-pk-2.diff,
> derby-532-unique-pk-3.diff, derby-532-unique-pk-3.status,
> derby-532-upgrade-1.diff, derby-532-upgrade-1.status,
> derby-532-upgrade-1b.diff, derby-532-xa-1.diff, derby-532-xa-2.diff,
> derby-532-xa-3.diff, derby-532-xa-3.status
>
>
> In many situations it is desirable to have constraints checking taking place
> only at transaction commit time, and not before. If e.g. there is a chain of
> foreign key constraints between tables, insert statements have to be ordered
> to avoid constraint violations. If foreign key references are circular, the
> DML has to be split into insert statements and subsequent update statements
> by the user.
> In other words, with deferred constraints checking, life is much easier for
> the user. Also it can create problems with softwares such as
> object-relational mapping tools that are not prepared for statement ordering
> and thus depend on deferred constraints checking.
--
This message was sent by Atlassian JIRA
(v6.2#6252)