I would add two distinct methods to Datastore:
- updateSchema 
- dropSchema

The added clarity would be worth it.

I would also consider extending the format of updateSchema so we can supply 
default expressions to the "new" columns.

Jody


On 04/03/2010, at 11:22 PM, Andrea Aime wrote:

> Hi,
> in OpenGeo we're looking into adding in GeoServer the ability
> to create new feature types from a user provided description
> by leveraging the data store createSchema(FeatureType) call.
> 
> With this mail I'm trying to provide some ideas on the how
> and gather feedback.
> 
> The main idea is to have a GUI that allows one to compose a
> feature type description and an equivalent REST call.
> The GUI could be placed in the "new layer chooser",
> now we have a
> "add layer from" <datastore>
> selection, I guess we could have a couple of radio buttons
> instead providing also a
> "create layer into" <datastore>
> or something like that.
> 
> The GUI would then offer the ability to add attributes,
> name, data type, nullability and length.
> 
> The REST api would allow to POST a description of
> the feature type to
> /workspaces/<ws>/datastores/<ds>
> The description would come in the same formats
> supported for the feature type
> (see 
> http://docs.geoserver.org/2.0.x/en/user/extensions/rest/rest-config-api.html#feature-types)
> 
> This would make it quite a bit easier to start
> from scratch and allow data editing.
> 
> Two things that are rolling in my mind are also how
> to possibly handle something as simple as the human error.
> 
> Say I made a mistake in the structure of the feature type.
> How do I go and correct it?
> DataStore and DataAccess provides updateSchema(), though I'm not aware
> of any datastore actually implementing this call. For
> a datastore
> DataStore is also missing dropSchema() method, which sounds
> quite like a strong limitation to this use case... I mean
> being able to create a feature type by GUI and then have to go
> on the database and issue a drop table manually seems backwards.
> Dropping is also much simpler to implement than updating.
> How do we go about to add this functionality though?
> Shall we roll a new interface that contains only that method?
> Or create a DataAccess2, DataStore2 subinterfaces that contains
> it (oh the horror).
> Or... but please be seated before reading this one... hijack
> updateSchema and assume the user meant to delete the feature
> type when we call updateSchema(Name, null)?
> 
> The second thing is, would it make things easier if we mark
> a datastore as the "default" and then have all schema management
> calls hit it?
> 
> Cheers
> Andrea
> 
> -- 
> Andrea Aime
> OpenGeo - http://opengeo.org
> Expert service straight from the developers.
> 
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Geoserver-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to