[ 
https://issues.apache.org/jira/browse/DERBY-532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13835590#comment-13835590
 ] 

Dag H. Wanvik edited comment on DERBY-532 at 11/30/13 1:48 AM:
---------------------------------------------------------------

Here are the rest of the failures and errors I saw running the JUnit tests. 
I'll be analyzing them to see if they are to be expected or not.

- LangProcedureTest (lock difference)
- LangScripts update (lock difference)
- LojReorderTest (different execution plan)
- InListMultiProbeTest (assertTrue(rtsp.usedIndexScan()))
- CollationTest2 (java.sql.SQLIntegrityConstraintViolationException:
  The statement was aborted because it would have caused a duplicate
  key value in a unique or primary key constraint or unique index
  identified by 'SQL131129120107383' defined on 'DERBY_5367'.)
- ConglomerateSharingTest (number of physical conglomerates that exist
  for the received table: Expected: >3< Found: >4<
  To be expected? (check): deferrable doesn't share index
- NullableUniqueConstraintTest (junit.framework.ComparisonFailure:
  Unexpected SQL state. expected:<[23505]> but was:<[XJ001]>)
  if (SanityManager.DEBUG) { // deferrable: we use a non-unique index
     SanityManager.ASSERT(
       insertStatus != ConglomerateController.ROWISDUPLICATE); <=====!!
  }
  ++ more

- UniqueConstraintSetNullTest
  (java.sql.SQLIntegrityConstraintViolationException: The statement
  was aborted because it would have caused a duplicate key value in a
  unique or primary key constraint or unique index identified by
  'U_CON' defined on 'CONSTRAINTEST'.)
  ++ more

- UniqueConstraintMultiThreadedTest
  (junit.framework.AssertionFailedError: isolation levels: 1 1)

- XplainStatisticsTest (         expected rows: 
                [[COUNTRIES_UNQ_NM, C, BTREE, RC, 1, 1, 1, SH, R, 2, ALL]]
         actual result: 
                [[COUNTRIES_UNQ_NM, C, BTREE, RC, 2, 1, 1, IS, R, 2, ALL]])

- dml019(org.apache.derbyTesting.functionTests.tests.nist.NistScripts)
  failed: junit.framework.ComparisonFailure: Output at line 85 
  expected:<E1 |P[1 |4]0 > but was:<E1 |P[2 |2]0 >

- UpdateStatisticsTest (junit.framework.AssertionFailedError: failed
  to get statistics for table TEST_TAB_1 (#expected=0, timeout=0)
  Index statistics for TEST_TAB_1 1:
  {tableId=2f2b17ef-0142-a377-c079-0000766f8c2f, tableName=TEST_TAB_1,
  indexName=SQL131129120747740, lcols=1, rows=2, unique/card=2,
  created=2013-11-29 12:07:47.742} expected:<0> but was:<1>)

(Note: this run included the proposed patch for DERBY-6419 as well)


was (Author: dagw):
Here are the rest of the failures and errors I saw running the JUnit tests. 
I'll be analyzing them to see if they are to be expected or not.

- LangProcedureTest (lock difference)
- LangScripts update (lock difference)
- LojReorderTest (different execution plan)
- InListMultiProbeTest (assertTrue(rtsp.usedIndexScan()))
- CollationTest2 (java.sql.SQLIntegrityConstraintViolationException:
  The statement was aborted because it would have caused a duplicate
  key value in a unique or primary key constraint or unique index
  identified by 'SQL131129120107383' defined on 'DERBY_5367'.)
- ConglomerateSharingTest (number of physical conglomerates that exist
  for the received table: Expected: >3< Found: >4<
  To be expected? (check): deferrable doesn't share index
- NullableUniqueConstraintTest (junit.framework.ComparisonFailure:
  Unexpected SQL state. expected:<[23505]> but was:<[XJ001]>)

  if (SanityManager.DEBUG) { // deferrable: we use a non-unique index
     SanityManager.ASSERT(
       insertStatus != ConglomerateController.ROWISDUPLICATE); <=====!!
  }

  ++ more

- UniqueConstraintSetNullTest
  (java.sql.SQLIntegrityConstraintViolationException: The statement
  was aborted because it would have caused a duplicate key value in a
  unique or primary key constraint or unique index identified by
  'U_CON' defined on 'CONSTRAINTEST'.)
  ++ more

- UniqueConstraintMultiThreadedTest
  (junit.framework.AssertionFailedError: isolation levels: 1 1)

- XplainStatisticsTest (         expected rows: 
                [[COUNTRIES_UNQ_NM, C, BTREE, RC, 1, 1, 1, SH, R, 2, ALL]]
         actual result: 
                [[COUNTRIES_UNQ_NM, C, BTREE, RC, 2, 1, 1, IS, R, 2, ALL]])

- dml019(org.apache.derbyTesting.functionTests.tests.nist.NistScripts)
  failed: junit.framework.ComparisonFailure: Output at line 85 
  expected:<E1 |P[1 |4]0 > but was:<E1 |P[2 |2]0 >

- UpdateStatisticsTest (junit.framework.AssertionFailedError: failed
  to get statistics for table TEST_TAB_1 (#expected=0, timeout=0)
  Index statistics for TEST_TAB_1 1:
  {tableId=2f2b17ef-0142-a377-c079-0000766f8c2f, tableName=TEST_TAB_1,
  indexName=SQL131129120747740, lcols=1, rows=2, unique/card=2,
  created=2013-11-29 12:07:47.742} expected:<0> but was:<1>)


> 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
>         Attachments: IndexDescriptor.html, IndexDescriptorImpl.html, 
> IndexRowGenerator.html, SortObserver.html, deferredConstraints.html, 
> deferredConstraints.html, deferredConstraints.html, deferredConstraints.html, 
> deferredConstraints.html, derby-532-fix-metadata-1.diff, 
> derby-532-fix-metadata-1.status, 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-more-tests-1.diff, 
> derby-532-more-tests-1.stat, 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-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-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.1#6144)

Reply via email to