Community
Participate
Working Groups
Build Identifier: Hi there, We would like to submit a patch for your review for EclipseLink 2.4.0 The changes we made are: 1.We have made changes to skip test cases SubSelectSelectClauseTest and SubSelectSelectClauseTest2 in foundation test-lrg, as Symfoware does not allow using subquery in select list for query specification or single-row SELECT statement. (ExpressionSubSelectTestSuite.java) Refer to the bug number 372172. 2.FAST_TABLE_CREATOR does not work as expected. Tables were dropped and created even when FAST_TABLE_CREATOR is true. The expected behaviour is that DELETE FROM TABLE is executed instead of DROP/CREATE TABLE when the FAST_TABLE_CREATOR is true. The cause of the problem is that changes that have been made in TableCreator.replaceTablesAndConstrains() . - In version 2.3.2 schemaManager.replaceObject() is called. DELETE FROM TABLE is executed in the replaceObject() when FAST_TABLE_CREATOR is true. - In version 2.4.0 Instead, schemaManager.dropObject() and schemaManager.createTable() are called. DELETE FROM TABLE is not executed. To fix the problem, we have made changes in TableCreator.dropTables() and createTables() to DELETE FROM TABLE when FAST_TABLE_CREATOR is true. (TableCreator.java) 3. The commitTransaction() at the end of the method was never executed when Symfoware is used. This caused Symfoware to lock the uncommitted table and the test program was stalled. After the change, commitTransaction() is called when Symfoware is used and the test program completed successfully. (AdvancedMultiTenantJunitTest.java, DDLGenerationJUnitTestSuite.java, EntityMappingsMultitenantJUnitTestCase.java) 4.We have made a change to skip a part of caseTypeTest in jpa test-lrg. The generated SQL statement does not work when Symfoware is used. SELECT (CASE t0.F_NAME WHEN 'Bob' THEN '1' WHEN 'Jill' THEN '2' ELSE '0' END + 1) FROM CMP3_EMPLOYEE t0, CMP3_SALARY t1 WHERE (t1.EMP_ID = t0.EMP_ID) In Symfoware + operator does not work if an integer is surrounded by quotations. ‘1’ (with quotation) is interpreted as character. It is not interpreted as an integer. (JUnitJPQLComplexTest.java) Refer to the bug number 372178. Regards, Takuji Reproducible: Always
Created attachment 211377 [details] Symfoware Patch for Eclipselink 2.4.0 M12
Created attachment 211380 [details] Patch for FAST_TABLE_CREATOR issue
Created attachment 211467 [details] Symfoware Patch for Eclipselink 2.4.0 M12 Modified the invalid characters ' ' in JUnitJPQLComplexTestSuite.java
Created attachment 211468 [details] Patch for FAST_TABLE_CREATOR issue Replaced “schemaManager.FAST_TABLE_CREATOR” with “SchemaManager.FAST_TABLE_CREATOR” The field is static; Conventions are to use the class name instead of the instance name: “SchemaManager.FAST_TABLE_CREATOR” as is used everywhere where this field and other static fields are referenced.
Created attachment 214970 [details] Symfoware Patch for Eclipselink 2.4.0 M17.2
Created attachment 214971 [details] Patch for FAST_TABLE_CREATOR issue
Created attachment 214972 [details] DDLGenerationExtendTablesJUnitTestSuite
I have updated Symfoware patch for EclipseLink 2.4.0 M17.2 Followings are the new updates from the last comment. a.I have made a slight change for the 2. above. In TableCreator.java, if FAST_TABLE_CREATOR is true, DELETE FROM TABLE is executed in replaceTableAndConstraints method. b.The test suite DDLGenerationExtendTablesJUnitTestSuite is skipped, if 'toggle-fast-table-creator’ is true. I understand that the purpose of this test suite is to test DDL extend table support. (http://wiki.eclipse.org/EclipseLink/DesignDocs/368365) If 'toggle-fast-table-creator' is set as true, DELETE FROM TABLE is executed instead of DROP TABLE / CREATE TABLE. This DDL extension feature cannot be tested properly if 'toggle-fast-table-creator' is set as true. Therefore, DDLGenerationExtendTablesJUnitTestSuite test suite is skipped. c.Test cases testLeftParameters and testSubselectInSelect in JUnitJPQLComplexTestSuite.java are skipped due to SQL statements which are not supported by Symfoware. Please refer to Bug 378313, Bug 372172.
Took a look at the patch. Is there any reason why the change to replaceTablesAndConstratins() in TableCreator could not be made in TogglingFastTableCreator? We have been using that class to make use of Fast Table creation in the tests.
Thank you. We can move the changes in replaceTablesAndConstratins() from TableCreator to TogglingFastTableCreator. We have ran the test for Eclipselink 2.4.0 M19.1 and made changes for that. We will incorporate the changes and submit the new patch for that version or later.
'any progress on this? We're starting the final push for our 2.4 release and I'd like to get this in if it is available.
Modifications have been made to 2.4.0 M19 and all tests passed. However, when we ran the test on M19.1, some tests failed. We are still in the process of fixing the problems.
FYI: We are closing down soon. The latest I can accept a change is beginning of day this Friday, June 1 (Eastern Standard Time). I'm happy to check in a partial change, if provided and schedule any additional work for our 2.4.1 release.
Created attachment 216647 [details] DDLGenerationExtendTablesJUnitTestSuite
Created attachment 216648 [details] Patch for FAST_TABLE_CREATOR issue
Created attachment 216649 [details] SymfowarePatchforEclipselink240M21
Created attachment 216650 [details] SymfowarePatchforEclipselink240M21.patch
I have attached the Symfoware patch for Eclipselink 2.4.0 M21. I have moved replaceTablesAndConstratins() from TableCreator to TogglingFastTableCreator. ReadAllCallTest and ReadAllCallWithOrderingTest in foundation test suite failed due to this change. If I put DELETE FROM TABLE in the TableCreator these tests were successful. We will investigate this issue.
Fix checked in as submitted. Reviewed by Tom Ware - reviewed contributor submitted fixes Tested with JPA LRG and with contributor-side tests
We have created another patch for the outstanding issue in the foundation test suite. I have created a new ticket as this ticket is already closed. Please see the Bug 381941.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink