|Re: [eclipselink-dev] issues while running Foundation JUnit tests|
Hi Dies,I have started looking at the joining issue. Would you mind documenting the current state of your code that attempts to create the Symfoware-compatible query either in the bug or on the wiki page?
-Tom Dies Koper wrote:
Hi Tom, Andrei, As you suggested I've started running the Foundation tests. Currently pass 98.83% (70 errors). This is with the code to execute DDL within transactions still included. Quite a number of tests failed because of the INNER JOIN issue. I have temporary changed the code to use a LEFT OUTER JOIN instead until we have a final solution. I have updated the Wiki page with the Symfoware equivalent of an INNER JOIN. I have tried implementing it myself but wasn't sure how to do the final ON clause (current "(t2.employees_ID = t1.ID)" part needs to be changed to "(cor0.employees_ID = t1.ID)", i.e. different table reference for the join table's FK. Could you or Andrei help? Other issues I encountered (Wiki update in progress): - test item "SimpleIndexTest use index()" does a BETWEEN comparison between a VARCHAR and numbers: SELECT ... WHERE t0.MANAGED_ORDER_VARCHAR BETWEEN 2 AND 4 Do I exclude this test, or can I change something in my platform class to make it work? Symfoware would accept the SQL if I explicitly cast the VARCHAR: SELECT ... WHERE CAST(t0.MANAGED_ORDER_VARCHAR AS INTEGER) BETWEEN 2 AND 4 Or insert the numbers as strings of course: SELECT ... WHERE t0.MANAGED_ORDER_VARCHAR BETWEEN '2' AND '4' - test item "SimpleAddRemoveTest2" similar to the above, it does an arithmetic operation on a VARCHAR, and assigns the result back into a VARCHAR. UPDATE OL_PHONE SET PHONE_ORDER_VARCHAR = (PHONE_ORDER_VARCHAR + 1) WHERE ((PHONE_ORDER_VARCHAR BETWEEN 0 AND 1) AND (OWNER_ID = 7721)) Symfoware would accept this if we cast the types explicitly: UPDATE OL_PHONE SET PHONE_ORDER_VARCHAR = (CAST(PHONE_ORDER_VARCHAR AS INTEGER) + 1) WHERE ((CAST(PHONE_ORDER_VARCHAR AS INTEGER) BETWEEN 0 AND 1) AND (OWNER_ID = 7721)) - Table drop while connection is still open issue (in employee.relational.EmployeeSystem.dropTableConstraints) - "ReadObjectTest(Employee(Dave Vadis))" (and others) gives error message "The object read from the database, 'Employee(Dave Vadis)' does not match the originial, 'Employee(Dave Vadis).". Haven't investigated why, but the same error occurs in a few other tests (Tracy Chapman, Shipment(1 ton), aggregate.Agent) - "AggregateCollectionUoWTest" (and others) gives error message "The original object was changed through changing the clone.". Haven't investigated why, but the same error occurs in a few other tests (Tracy Chapman, Shipment(1 ton), aggregate.Agent) - MultipleUnitOfWorkTest(Employee: Bob Smith) (and a few more) throws java.sql.SQLException with a Symfoware message complaining that the schema is locked. Haven't investigated yet what could be locking it and how. - "Multiple operators with two parameters with brackets around multiply" driver gives an error that Symfoware does not allow you to put parameters at both sides of an arithmetic operator (e.g. ? * ?). - "SessionsXMLSchemaDefaultValueTest" Test gives error "Exception Description: The log level had the wrong default value". Haven't investigated yet what that means. - "JoinSubclassesTest" Driver(?) gives java.sql.SQLException: The ResultSet is closed at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.cursorRetrieveNextRow(DatabaseAccessor.java:438) Haven't investigated yet what that could mean. - "FullDatabaseFailureTest", "SingleConnectionFailureTest", "ConnectionPoolFailureTest" NPE because I did not set the ping string for Symfoware. I'd like to know more about what it is used for (i.e. when is it called, what else do I need to implement to make the function work properly). -"ReadAllTest(org.eclipse.persistence.testing.models.employee.domain.Employee)" (and others) Test gives error "24 objects were read from the database, but originially there were, 12." Haven't investigated yet what that could mean. - Symfoware's TIMESTAMP only stores up to the second. Some tests that use this field as primary key violate its unique constraint. Those tests currently sleep 1ms to allow primary key values to be unique to the millisecond (required for some DBs). Could we increase that to 1s for Symfoware? It's in org.eclipse.persistence.testing.models.legacy.Computer#prepareForInsert and org.eclipse.persistence.testing.models.mapping.Shipment#prepareForInsert. If any of the issue descriptions ring a bell, please let me know. Thanks! Dies _______________________________________________ eclipselink-dev mailing list eclipselink-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
Back to the top