Opened 13 years ago

Closed 11 years ago

#756 closed enhancement (fixed)

SQLServerSpatial: Expose synonyms as FDO classes.

Reported by: brentrobinson Owned by: brentrobinson
Priority: minor Milestone: 3.7.0
Component: SQLServer Spatial Version: 3.7.0
Severity: 3 Keywords: SQL Server 2008 SQLServerSpatial synonym class
Cc: External ID:

Description

The SQLServerSpatial provider currently exposes tables and views as FDO classes. This ticket will add the exposing of synonyms as classes.

Change History (4)

comment:1 by brentrobinson, 13 years ago

Status: newassigned

Revision: 5967 Author: brentrobinson Date: 1:45:48 PM, Tuesday, March 22, 2011 Message: Ticket#756: SQLServerSpatial: Create an FDO class for each synonym, when reverse-engineering feature schemas from a datastore.


Modified : /trunk/Providers/GenericRdbms/Nls/fdordbmsmsg.mc Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Owner.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Owner.h Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/DbObjectReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/DbObjectReader.h Added : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/SynonymReader.cpp Added : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/SynonymReader.h Added : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Synonym.cpp Added : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Synonym.h Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/SQLServerSpatialSchemaMgr.vcproj Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/SQLServerSpatialSchemaMgr.vcxproj Modified : /trunk/Providers/GenericRdbms/Src/SchemaMgr/GrdSchemaMgr.vcproj Modified : /trunk/Providers/GenericRdbms/Src/SchemaMgr/GrdSchemaMgr.vcxproj Modified : /trunk/Providers/GenericRdbms/Src/SchemaMgr/Ph/CMakeLists.txt Modified : /trunk/Providers/GenericRdbms/Src/SchemaMgr/Ph/Makefile.am Added : /trunk/Providers/GenericRdbms/Src/SchemaMgr/Ph/Synonym.cpp Added : /trunk/Providers/GenericRdbms/Src/SchemaMgr/Ph/Synonym.h Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/SQLServerSpatial/SqlServerSchemaMgrTests.cpp Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/SQLServerSpatial/SqlServerSchemaMgrTests.h Added : /trunk/Providers/GenericRdbms/Src/UnitTest/synonyms1_SQLServerSpatial_master.xml Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/ColumnGeom.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/DbObjType.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/DbObjectComponentLoader.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Owner.h Added : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Rd/SynonymReader.h Added : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Synonym.h Added : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/SynonymBaseLoader.h Modified : /trunk/Utilities/SchemaMgr/Nls/SmMessage.mc Modified : /trunk/Utilities/SchemaMgr/Physical.vcproj Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/CMakeLists.txt Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/ColumnGeom.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/DbObject.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Makefile.am Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Owner.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Rd/CMakeLists.txt Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Rd/Makefile.am Added : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Rd/SynonymReader.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/SpatialContextGeom.cpp Added : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Synonym.cpp Added : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/SynonymBaseLoader.cpp

comment:2 by brentrobinson, 13 years ago

Revision: 6011

Author: brentrobinson Date: 1:22:14 PM, Friday, March 25, 2011 Message: Ticket#756: SQLServerSpatial: synonym handling performance improvements.

In FdoSmPhSynonym:

  • skip fetching foreign keys if referenced table is in a different datastore. Foreign keys in other datastores are currently not turned into association properties anyway.
  • Removed fallbacks (for when referenced table cannot be found) which look for columns, primary keys, foreign keys and indexes directly owned by the Synonym. The Oracle and SQL Server data dictionaries do not relate synonyms directly to these components.
  • Load up synonym reference when asked to load base objects.

The above eliminate a number of selects that always have an empty results set.

In FdoSmPhSpatialContextGeom

  • Fixed bug introduced by J000-BR9, where the geometry column is determined to be the base column if it's owning dbObject is differs from the current dbObject. This was determined by comparing unqualified names, giving a false match if the 2 dbObjects had same name but were in different datastores. Changed comparison to be by qualified name.

Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/SQLServerSpatial/SqlServerSchemaMgrTests.cpp Modified : /trunk/Providers/GenericRdbms/Src/UnitTest/synonyms1_SQLServerSpatial_master.xml Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/DbObject.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Synonym.h Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/SpatialContextGeom.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Synonym.cpp

comment:3 by brentrobinson, 13 years ago

Revision: 6021 Author: brentrobinson Date: 12:41:19 PM, Wednesday, March 30, 2011 Message: Ticket#756: SQLSeverSpatial: Tuned the reading of physical spatial contexts by implementing partial bulk loading. When asked to retrieve a particular spatial context, it and a number of other spatial contexts are now retrieved.

More performance enhancements for synonyms are also included for the case where:

  • a GetClassNames command is executed for all schemas
  • a partial DescribeSchema command is executed where classes for some of the synonyms in the datastore are requested.

The GetClassNames causes all synonyms in the datastore to be read and cached. The partial DescribeSchema causes the base object for each requested synonym to be looked up. These base object fetches are bulked up so that the base objects for the requested synonym plus 24 other candidate synonyms are fetched at once. However, the candidates were chosen from all synonyms in the datastore, most of which are not being described.

The fix was to add a flag to each synonym indicating whether it is cached for listing only or for retrieving its components (e.g. columns). Only synonyms cached for component retrieval are picked up as candidates when fetching base objects, meaning fewer fetches to get the base objects for the synonyms to describe.


Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Owner.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Owner.h Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/SpatialContextReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/SpatialContextReader.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/DbObject.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Owner.h Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/DbObject.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Owner.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Synonym.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/SynonymBaseLoader.cpp

comment:4 by brentrobinson, 11 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.