Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Motivation:

Complete the schema management API with a remove schema call

Contact:

full name

Tracker:

http://jira.codehaus.org/browse/GEOT-XXXX

Tagline:

Excerpt

We add, we update... we don't remove?

Table of Contents

Description

The current DataAccess/DataStore API provides means to create and update a schema, but not a way to remove it.
The DataAccess interface will be modified as follows:

Code Block
interface DataAccess {

    ...


    /**
     * Used to permanently remove a schema from the underlying storage
     * <p>
     * This functionality is similar to an "drop table" statement in SQL. Implementation
     * is optional; it may not be supported by all servers or files.
     * @param typeName
     * @throws IOException if the operation failed
     * @throws UnsupportedOperation if functionality is not available
     */
    void removeSchema(Name typeName) throws IOException;

    ...

}

Whilst the DataStore interface will see the following new method:

Code Block
interface DataStore {

    ...


    /**
     * Used to permanently remove a schema from the underlying storage
     * <p>
     * This functionality is similar to an "drop table" statement in SQL. Implementation
     * is optional; it may not be supported by all servers or files.
     * @param typeName
     * @throws IOException if the operation failed
     * @throws UnsupportedOperation if functionality is not available
     */
    void removeSchema(String typeName) throws IOException;

    ...

}

The code base will be modified, on trunk only, so that the new methods are implemented by throwing an UnsupportedOperationException in the common base classes, and making sure all the code base keeps on building.
Moreover, the support to actually drop the schemas will be implemented in the JDBC data stores.

Status

Voting has not started yet:

Tasks

This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

  1. API changed based on BEFORE / AFTER
  2. Update default implementation
  3. Update wiki (both module matrix and upgrade to to 2.5 pages) |
  4. Remove deprecated code from GeoTools project
  5. Update the user guide
  6. Update or provided sample code in demo
  7. review user documentation

Documentation Changes

We may want to show the new API support in some example.