= FDO RFC 3 - OSGeo PostGIS Provider Submission? = This page contains a request for comments document (RFC) for the FDO Open Source project. More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date|| ''TBD'' || ||Last Modified|| Jason Birch [[Timestamp]]|| ||Author||Mateusz Loskot, Jason Birch|| ||RFC Status||(draft)|| ||Implementation Status||(under development)|| ||Proposed Milestone|| 3.2.2 || ||Assigned PSC guide(s)|| ''TBD'' || ||'''Voting History'''|| ''TBD'' || ||+1|||| ||+0|||| ||-0|||| ||-1|||| == Overview == The purpose of this RFC is the introduction of a dedicated PostGIS FDO provider into the FDO project. == Motivation == PostGIS/PostgreSQL is recognised as the premier open source database solution for spatial applications, and is a highly desirable format for FDO to support. While a level of support for PostGIS is currently available with the OGR provider, creating a dedicated provider for PostGIS has considerable benefits. It allows for some specific optimisations and advanced features that are not supported by the OGR provider, and shows FDO's commitment to the dominant open source spatial database, encouraging adoption by a larger portion of the open source community. == Proposed Solution == This provided will be targeted at '''FIX ME WITH REAL VERSIONS''' PostgreSQL version 8.0 and above, using PostGIS 1.1.7 and above. '''FIX ME WITH REAL VERSIONS''' The initial set of functionality for this provider will include * Support for three-dimensional geometry * Support for full set of attribute and spatial comparison operators * Support for select/sqlselect/insert/update/delete Specific capabilities currently include ('''more coming'''): ''' Connection ''' - !ThreadCapability: !PerConnectionThreaded - !SpatialContextExtent: Static - !SupportsLocking: : false - !SupportsTimeout: : false - !SupportsTransactions: : false - !SupportsLongTransactions: : false - SupportsSQL: : true - !SupportsConfiguration: : false ''' Schema ''' - Class - !FeatureClass - Class - Data - Boolean - Byte - !DateTime - Decimal - Double - Int16 - Int32 - Int64 - Single - String - !SupportsInheritance: false - !SupportsMultipleSchemas: true - !SupportsObjectProperties: false - !SupportsAssociationProperties: false - !SupportsSchemaOverrides: true - !SupportsNetworkModel: false - !SupportsAutoIdGeneration: true - !SupportsDataStoreScopeUniqueIdGeneration: false - !SupportedAutoGeneratedTypes - Int32 - Int64 - !SupportsSchemaModification: true '''Command''' - !SupportedCommands - Select - SQLCommand - !DescribeSchema - !GetSpatialContexts - !SupportsParameters: true - !SupportsTimeout: false - !SupportsSelectExpressions: true - !SupportsSelectFunctions: true - !SupportsSelectDistinct: true - !SupportsSelectOrdering: true - !SupportsSelectGrouping: false '''Filter''' - Condition - Comparison - Like - In - Null - Spatial - Spatial - Contains - Crosses - Disjoint - Equals - Intersects - Overlaps - Touches - Within - !CoveredBy - Inside - !EnvelopeIntersects - !SupportsGeodesicDistance: false - !SupportsNonLiteralGeometricOperations: false '''Expression''' - Basic - Function '''Raster''' - !SupportsRaster: false - !SupportsStitching: false - !SupportsSubsampling: false '''Topology''' - !SupportsTopology: false - !SupportsTopologicalHierarchy: false - !BreaksCurveCrossingsAutomatically: false - !ActivatesTopologyByArea: false - !ConstrainsFeatureMovements: false '''Geometry''' - Types - Point - !LineString - Polygon - !MultiPoint - !MultiLineString - !MultiPolygon - !MultiGeometry - Components - !LinearRing - Dimensionality: 3D == Implications == This provider does not require any API changes to the FDO core or other providers. It will need to be added to the standard build and test procedures, and the process for acquiring the PostgreSQL libraries will need to be documented (unless we can distribute them with the provider) == Test Plan == Basic functional testing of the provider using applications which implement FDO will be undertaken by Mateusz Loskot and Jason Birch, but additional testing would be appreciated. - capabilities - connection - all parts of schema description - standard query - filters - expressions - SQL query - insert - update - delete ''' ANYTHING ELSE? ''' The FDO Provider for PostGIS will include unit tests. Additionally, as part of the development process a set of simple code samples is being created to allow new FDO developers to easily interact with the PostGIS provider. == Funding/Resources == Funding for this provider is being provided by Refractions Research and the City of Nanaimo. Development is being done by Mateusz Loskot.