Opened 11 years ago

Closed 11 years ago

#3474 closed defect (fixed)

Spatialite Triggers

Reported by: aronrubin Owned by: Even Rouault
Priority: high Milestone: 1.7.2
Component: OGR_SF Version: 1.7.1
Severity: major Keywords: spatialite, sqlite


Spatialite triggers are not preserved across CreateField?. Triggers are automatically dropped when the depended table is dropped. BTW is ALTER TABLE ADD COLUMN not used to support Sqlite <= 3.1.3?

One other method to preserve the triggers would be to save the following aside (in a OGR side buffer): SELECT sql FROM sqlite_master WHERE type IN ('trigger','index') AND tbl_name='%s' Then execute the saved statements after manually altering the table.

Another method would assume that spatialite was the only source of triggers, etc. and execute DisableSpatialIndex? prior, preform manual alter, and execute CreateSpatialIndex? afterward.

Of course with both methods any column constraints in the original table would still be lost but that is less of an issue if we assume CreateField? will only be called on OGR managed layers. Again I assume you did not use the ALTER or sqlite3_table_column_metadata for maximum compatibility.

Change History (2)

comment:1 Changed 11 years ago by Even Rouault

Owner: changed from warmerdam to Even Rouault
Status: newassigned

comment:2 Changed 11 years ago by Even Rouault

Resolution: fixed
Status: assignedclosed

Fixed in trunk (r19188) and in branches/1.7 (r19189). Test added in r19190

Note: See TracTickets for help on using tickets.