Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#699 closed defect (fixed)

RDBMS: Fixes for classes with inherited associations and constraints

Reported by: brentrobinson Owned by: brentrobinson
Priority: minor Milestone: 3.6.0
Component: GenericRdbms API Version:
Severity: 3 Keywords: Association Property List Constraint inherited base class
Cc: External ID:

Description

The following fails for MySQL, PostgreSQL and SQLServerSpatial providers:

  • Create a class definition (A)
  • Add an identity property
  • Create a class definition (B).
  • Add an identity property
  • Add an assocation property with class A as the associated class
  • Apply the schema
  • Create a class definition (C) with class B as base class
  • Apply the schema. This will fail with an error indicating that Classes B and A are already associated.

The following fails for the PostgreSQL provider:

  • Create a class definition (A)
  • Add an identity property
  • Add a data property with a list constraint
  • Apply the schema
  • Create a class definition (B) with class A as base class
  • Apply the schema.

Change History (2)

comment:1 by brentrobinson, 14 years ago

Resolution: fixed
Status: newclosed

Revision: 5723 Author: brentrobinson Date: 11:30:38 AM, Friday, October 01, 2010 Message: Ticket#699: Modified the SQL for retrieving unique and check constraints, to go against the SQLServer sys views instead of the information_schema. This resolves a problem that occurred when ApplySchema created a class that inherits from an existing class with check constraint longer than 4000 characters. The constraint got truncated and the creation of the class table failed with SQL syntax error. The problem can still happen but the constraint now has to be longer than 32000 characters.

This change also speeds up the retrieval of unique and check constraints.


Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/ODBCDriver/constants.h Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/ODBCDriver/desc_slct.c Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/ConstraintReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/apply_no_meta_test1_SQLServerSpatial_master.xml

Revision: 5739 Author: brentrobinson Date: 10:27:22 AM, Tuesday, October 05, 2010 Message: Ticket#699: Added test for creating class based on existing class that has association properties.


Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/Common/FdoAssociationSchemaTest.cpp Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/Common/FdoAssociationSchemaTest.h

Revision: 5740 Author: brentrobinson Date: 8:48:43 AM, Thursday, October 07, 2010 Message: Ticket#699: Added case for adding class based on existing class with constraints.


Modified : /trunk/Utilities/TestCommon/Src/TestCommonConstraints.cpp

comment:2 by brentrobinson, 14 years ago

Revision: 5682 Author: brentrobinson Date: 2:49:50 PM, Friday, September 24, 2010 Message: Ticket#669:

FdoSmPhRdPostGisConstraintReader:corrected left/right bracket imbalance resulting from conversion of check constraint from PostGreSQL to FDO format.

FdoSmLpAssociationProperty: there is a check to ensure that an assocation between the containing and associated classes does not already exist. This check is now performed only for new associations.

Also, removed "text", "cascade" and "mode" as reserved words.


Modified : /trunk/Providers/GenericRdbms/Src/PostGis/SchemaMgr/Ph/Mgr.cpp Modified : /trunk/Providers/GenericRdbms/Src/PostGis/SchemaMgr/Ph/Rd/ConstraintReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/SchemaMgr/Ph/Mgr.cpp Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/Common/SchemaMgrTests.cpp Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Table.h Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Lp/AssociationPropertyDefinition.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Table.cpp

Note: See TracTickets for help on using tickets.