FW: PostGIS provider connection question

4 messages Options
Embed this post
Permalink
Orest Halustchak

FW: PostGIS provider connection question

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)

Expanding the audience …

 

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Jason Birch
Sent: Tuesday, July 07, 2009 1:52 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: PostGIS provider connection question

 

I don't have any real objections to this, though I don't have a vested interest in the PostGIS provider at this point.  It would probably be best to go to the mapguide and fdo users lists for feedback from real PostGIS users.

 

The original design decision was made because we had limited resources after moving away from the initial decision to implement using the generic RDBMS framework.  It was easier not to support multiple databases (something about ListDataStores, a lack of cross-database query capabilities in PostgreSQL, getting a bit fuzzy now) and at the time I didn't have a requirement for multiple databases on the same server, or cross-schema data access from a single connection.

 

As a note, I believe that best practice is not to store the PostGIS support in the public schema, but in an alternate schema using a search path.  I'm not entirely up to date on this though.

 

Jason

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Orest Halustchak
Sent: Tuesday, July 07, 2009 6:55 AM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: PostGIS provider connection question

 

Hi,

 

Does anyone have any thoughts on the topic below?

 

Thanks,

Orest.

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Orest Halustchak
Sent: Friday, June 26, 2009 11:06 AM
To: FDO Internals Mail List
Subject: [fdo-internals] PostGIS provider connection question

 

Hi,

 

I have a concern about the current connection parameters that the FDO PostGIS provider is using.

 

The current situation is this.

 

To make a connection to PostGIS we need to specify a service and a datastore.

 

The service is mapped to

 database@server:port

 

And the datastore to

                The physical postgis schema

 

So a typical connection would be

Service :              MyPGDatabase@MyServer:5432

Datastore :         public

 

 

But a PostGIS server can contain multiple databases with each database containing multiple schemas, which contain the tables. My question is why wouldn’t we set up a connection mapping that exposes the PostGIS databases as FDO datastores and the PostGIS schemas as FDO schema, similar to how we do it with SQL Server, which has similar concepts.

 

So, connection information would be:

        Service:          server:port,                  e.g. MyServer:5432

        Datastore:    PG database name,   e.g. MyPGDatabase

 

Then, within that datastore, we have schemas called ‘public’ and any other schemas that the user has created there, such as “landbase”, “transportation”, “utilities”, etc.

 

 

I realize that this has already been implemented and changing this could have some backwards compatibility issues with applications and MG resource definitions. But, maybe the benefits of having a better datastore / schema mapping to PG database / schema would be worth figuring out how to deal with the compatibility issues?

 

What do you think?

 

Thanks,

Orest.

 

 


_______________________________________________
fdo-internals mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/fdo-internals

_______________________________________________
fdo-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/fdo-users
Bruno Scott

Re: FW: PostGIS provider connection question

Reply Threaded More More options
Print post
Permalink
We would have to take care of a couple of things.

First : backward compatibility with existing postGIS connection. I think it would be fairly easy to support both type of connection.

Second : Actually, the provider caches the full schema, caching a full database could be a long process.

Third : Naming convention for tables. PostGIS provider actually return only the table name whitout the schema. Supporting multi schema would meen to return a schema.table type of name. This may be another backard cimpatibility problems.

Of course all these concerns have solutions:)

Bruno
Mike Toews

Re: FW: PostGIS provider connection question

Reply Threaded More More options
Print post
Permalink
In reply to this post by Orest Halustchak
Hi Orest,

I've been working with the provider for about a year now using Map3D
2008 (soon 2010) and PosgreSQL 8.3/PostGIS 1.3.4 on an Ubuntu server.
Over the course of this period I've experienced many incompatibilities
with my schema and what we can implement in a production environment.
I've submitted many bug reports for these, including the use of multiple
geometry columns and using array data types. Several of these are fixed
(Thanks!).

To overcome the incompatibilities with the FDO provider, I have found
that I needed to isolate all data for FDO into it's own schema, and keep
it separate from the main data. So I have a main schema for SQL work,
QGIS, ODBC/MS Access, etc. and an fdo schema for the FDO provider
(only), which is a subset of the main schema. I've even developed local
replication triggers (set up using a PL/Python script) which replicates
tables in both schemas (I can't use views with rules, since this is also
a bug). This way, edits to data in either schemas are replicated.

This setup was a lot of work, is fragile to schema changes, and I'd
rather use a single schema, just like the other client apps. Much of the
recent work in the FDO provider will hopefully allow me to forget about
the second replicated schema altogether, and connect/use the main schema.

Bruno's second comment about caching the schema is a bit of a concern
for me. I have 10 schemas (three which are replications for fdo), with
about 250 tables total (some of which are locally replicated between two
schemas) and about 30 views. Also, Bruno's third comment about naming
conventions is also a concern, since I have similarly named tables in
different schemas, regardless if they are locally replicated between two
schemas. I will have many many conflicts.

I don't see any limitations using the datastore to define the schema, as
is presently done in the provider. This limits the scope of caching,
which is good. I can always create additional FDO connections to other
datastores if I need to get data from other schemas. Or I can create a
cross-schema view if it is read-only.

I think I'd rather have development go toward fixing the current issues
and bugs with the provider so that it is up to par with the capabilities
of other PostgreSQL client software, such as ODBC and QGIS.

-Mike

Orest Halustchak wrote:

>
> *From:* [hidden email]
> [mailto:[hidden email]] *On Behalf Of *Orest
> Halustchak
> *Sent:* Friday, June 26, 2009 11:06 AM
> *To:* FDO Internals Mail List
> *Subject:* [fdo-internals] PostGIS provider connection question
>
> Hi,
>
> I have a concern about the current connection parameters that the FDO
> PostGIS provider is using.
>
> The current situation is this.
>
> To make a connection to PostGIS we need to specify a service and a
> datastore.
>
> The service is mapped to
>
> database@server:port
>
> And the datastore to
>
> The physical postgis schema
>
> So a typical connection would be
>
> Service : MyPGDatabase@MyServer:5432
>
> Datastore : public
>
> But a PostGIS server can contain multiple databases with each database
> containing multiple schemas, which contain the tables. My question is
> why wouldn’t we set up a connection mapping that exposes the PostGIS
> databases as FDO datastores and the PostGIS schemas as FDO schema,
> similar to how we do it with SQL Server, which has similar concepts.
>
> So, connection information would be:
>
> Service: server:port, e.g. MyServer:5432
>
> Datastore: PG database name, e.g. MyPGDatabase
>
> Then, within that datastore, we have schemas called ‘public’ and any
> other schemas that the user has created there, such as “landbase”,
> “transportation”, “utilities”, etc.
>
> I realize that this has already been implemented and changing this
> could have some backwards compatibility issues with applications and
> MG resource definitions. But, maybe the benefits of having a better
> datastore / schema mapping to PG database / schema would be worth
> figuring out how to deal with the compatibility issues?
>
> What do you think?
>
> Thanks,
>
> Orest.
>

_______________________________________________
fdo-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/fdo-users
Orest Halustchak

RE: FW: PostGIS provider connection question

Reply Threaded More More options
Print post
Permalink
Hi Mike,

Thanks very much for your comments. As a summary, you're saying that we should fix major bugs first before this enhancement since there are ways to work around the connection to access other schemas. The bugs are the more important problem right now. Makes sense!

Thanks,
Orest.

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Mike Toews
Sent: Thursday, July 16, 2009 6:22 PM
To: FDO Users Mail List
Cc: [hidden email]
Subject: Re: [fdo-users] FW: PostGIS provider connection question

Hi Orest,

I've been working with the provider for about a year now using Map3D
2008 (soon 2010) and PosgreSQL 8.3/PostGIS 1.3.4 on an Ubuntu server.
Over the course of this period I've experienced many incompatibilities
with my schema and what we can implement in a production environment.
I've submitted many bug reports for these, including the use of multiple
geometry columns and using array data types. Several of these are fixed
(Thanks!).

To overcome the incompatibilities with the FDO provider, I have found
that I needed to isolate all data for FDO into it's own schema, and keep
it separate from the main data. So I have a main schema for SQL work,
QGIS, ODBC/MS Access, etc. and an fdo schema for the FDO provider
(only), which is a subset of the main schema. I've even developed local
replication triggers (set up using a PL/Python script) which replicates
tables in both schemas (I can't use views with rules, since this is also
a bug). This way, edits to data in either schemas are replicated.

This setup was a lot of work, is fragile to schema changes, and I'd
rather use a single schema, just like the other client apps. Much of the
recent work in the FDO provider will hopefully allow me to forget about
the second replicated schema altogether, and connect/use the main schema.

Bruno's second comment about caching the schema is a bit of a concern
for me. I have 10 schemas (three which are replications for fdo), with
about 250 tables total (some of which are locally replicated between two
schemas) and about 30 views. Also, Bruno's third comment about naming
conventions is also a concern, since I have similarly named tables in
different schemas, regardless if they are locally replicated between two
schemas. I will have many many conflicts.

I don't see any limitations using the datastore to define the schema, as
is presently done in the provider. This limits the scope of caching,
which is good. I can always create additional FDO connections to other
datastores if I need to get data from other schemas. Or I can create a
cross-schema view if it is read-only.

I think I'd rather have development go toward fixing the current issues
and bugs with the provider so that it is up to par with the capabilities
of other PostgreSQL client software, such as ODBC and QGIS.

-Mike

Orest Halustchak wrote:

>
> *From:* [hidden email]
> [mailto:[hidden email]] *On Behalf Of *Orest
> Halustchak
> *Sent:* Friday, June 26, 2009 11:06 AM
> *To:* FDO Internals Mail List
> *Subject:* [fdo-internals] PostGIS provider connection question
>
> Hi,
>
> I have a concern about the current connection parameters that the FDO
> PostGIS provider is using.
>
> The current situation is this.
>
> To make a connection to PostGIS we need to specify a service and a
> datastore.
>
> The service is mapped to
>
> database@server:port
>
> And the datastore to
>
> The physical postgis schema
>
> So a typical connection would be
>
> Service : MyPGDatabase@MyServer:5432
>
> Datastore : public
>
> But a PostGIS server can contain multiple databases with each database
> containing multiple schemas, which contain the tables. My question is
> why wouldn't we set up a connection mapping that exposes the PostGIS
> databases as FDO datastores and the PostGIS schemas as FDO schema,
> similar to how we do it with SQL Server, which has similar concepts.
>
> So, connection information would be:
>
> Service: server:port, e.g. MyServer:5432
>
> Datastore: PG database name, e.g. MyPGDatabase
>
> Then, within that datastore, we have schemas called 'public' and any
> other schemas that the user has created there, such as "landbase",
> "transportation", "utilities", etc.
>
> I realize that this has already been implemented and changing this
> could have some backwards compatibility issues with applications and
> MG resource definitions. But, maybe the benefits of having a better
> datastore / schema mapping to PG database / schema would be worth
> figuring out how to deal with the compatibility issues?
>
> What do you think?
>
> Thanks,
>
> Orest.
>

_______________________________________________
fdo-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/fdo-users
_______________________________________________
fdo-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/fdo-users