[fdo-users] Few questions on OSGeo.MySQL.3.1

Brent Robinson brent.robinson at autodesk.com
Mon Oct 1 10:15:43 EDT 2007


Hi Maksim,

To answer question 2, the storage engine can be customized but, if I
remember right, MySQL restricts geometry columns to residing in MyISAM
tables. Therefore, even though the MySQL provider supports customizing
the storage engine, the cases where it can actually be changed are
limited.

Customizing the storage engine can be done through the
IApplySchema::SetPhysicalMapping() function. This function takes an
FdoPhysicalSchemaMapping but you'd need to pass in the provider-specific
derivation (FdoMySQLOvPhysicalSchemaMapping).

FdoMySQLOvPhysicalSchemaMapping::SetStorageEngine() can be used to
change the storage engine for any tables that are created when the
schema is applied (tables that already exist are not affected). You must
also set the name of the FdoMySQLOvPhysicalSchemaMapping to the same
name as the feature schema being applied. The header for this class can
be found in providers/GenericRdbms/Inc/Rdbms/Override/MySQL.

Individual tables can be customized but this requires a hierarchy of
physical schema mappings. This can be done by adding an
FdoMySQLOvClassDefinition, for each class to customize, to the
FdoMySQLOvPhysicalSchemaMapping. An FdoMySQLOvTable must be added to
each FdoMySQLOvClassDefinition. FdoMySQLOvTable:: SetStorageEngine can
be used to set the storage engine used to create the table for the
class. 

Basically the physical schema mapping classes have the same hierarchy as
the feature schema classes, plus some extra leaf classes for customizing
the physical database objects created for each feature schema element.

Brent.

-----Original Message-----
From: fdo-users-bounces at lists.osgeo.org
[mailto:fdo-users-bounces at lists.osgeo.org] On Behalf Of Maksim Sestic
Sent: Saturday, September 29, 2007 9:44 AM
To: fdo-users at lists.osgeo.org
Subject: [fdo-users] Few questions on OSGeo.MySQL.3.1


Hi all,

I have a few questions related to Map 2007 SP3 FDO provider for MySQL
(3.1):

1) What spatial filters (operations) are actually supported? Are
SpatialOperations.SpatialOperations_Inside, Within, CoveredBy supported?
If
not, what's the most optimal way to find if something's inside something
else (say, inside a polygon)? :-)

2) I've noticed that MySQL provider creates generic (f_*) tables using
InnoDB mechanism. On the other hand, feature class tables are created
using
MyISAM. Assuming that InnoDB supports full ACID, are there any
parameters to
ApplySchema command to actually tell provider what type of MySQL storage
to
create?

Regards,
Maksim Sestic
-- 
View this message in context:
http://www.nabble.com/Few-questions-on-OSGeo.MySQL.3.1-tf4539502s18162.h
tml#a12955762
Sent from the fdo-users mailing list archive at Nabble.com.

_______________________________________________
fdo-users mailing list
fdo-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/fdo-users



More information about the fdo-users mailing list