wiki:FDORfc3

Version 3 (modified by jbirch, 18 years ago) ( diff )

Capabilities added (interim)

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
AuthorMateusz 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.

Note: See TracWiki for help on using the wiki.