Version 4 (modified by 18 years ago) ( diff ) | ,
---|
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 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
Development version of this provider can be obtained from:
http://svn.refractions.net/fdopostgis/trunk/
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
This provider is being jointly funded by Refractions Research and the City of Nanaimo. Development is being done by Mateusz Loskot.