[fdo-internals] FDO RFC 16 - FDO Provider for SQLite

Jason Birch Jason.Birch at nanaimo.ca
Tue Mar 18 17:20:16 EDT 2008


I don't think that it needs to be either/or.

As Frank proposed, I would prefer to see a solution that allows the user
to specify the following in geometry_columns table:

FGF
WKB12
WKT12

And then allow storage of any one of these in the database as the
"native" format for any given table.

The overhead is that all implementations of this SQLite geo-database
would have to support these formats, but this would allow optimisation
for FDO/MapGuide with FGF, for standardisation with WKB (I would suggest
only supporting SFS 1.2 WKB), or for ease of access with WKT.

I am hesitant about any solution that requires special dlls for
accessing the SQLite database at this point...

Jason

-----Original Message-----
From: Mateusz Loskot
Subject: Re: [fdo-internals] FDO RFC 16 - FDO Provider for SQLite

My positions are:

1. If we focus only on implementation of the FDO Provider for SQLite, 
then I think that FGF is a better choice than WKT/WKB because it will 
not require FGF<->WKB translations. Format translations are potential 
performance bottlenecks.

2. If we came to the conclusion that it's better to implement more 
universal solution, then WKB format is reasonable choice.

Potentially, there is a chance for development of universal solution 
without loosing max of performance. The option is to follow OGC SFS and 
common implementations like PostGIS or MySQL. Simply, we should be able 
to extend SQLite with OGC SFS functions: AsBinary and AsText
Then, following schemes would be possible:

1. Return FGF as native format, equivalent to PostGIS EWKB

SELECT the_geom FROM table:

2. Request WKB

SELECT AsBinary(the_geom) FROM table;

3. Request WKT

SELECT AsText(the_geom) FROM table;

Following this concept, it could be even possible to implement AsEWKT 
and AsEWKB to gain some level of compatibility with PostGIS.

Why I'm saying such option is possible?

 From version 3.3.6, SQLite supports loadable extension modules 
providing additional SQL functions:

http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions

"Additional functions may be written in C and added to the database 
engine using the sqlite3_create_function() API."

http://www.sqlite.org/lang_expr.html
http://sqlite.org/capi3ref.html#sqlite3_create_function

Short example about creating custom functions:

http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html
http://souptonuts.sourceforge.net/code/myfuncpp.cc.html

Greetings
-- 
Mateusz Loskot
http://mateusz.loskot.net
_______________________________________________
fdo-internals mailing list
fdo-internals at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/fdo-internals


More information about the fdo-internals mailing list