Bug report #11037
DbManager allows users to input missing column names for row id and geometry
Status: | Closed | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | DB Manager | ||
Affected QGIS version: | 2.4.0 | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | No | Resolution: | |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 19376 |
Description
Atlas crash when using a spatialite VIEW in coverage layer (tested on Window 64 and FreeBSD).
Works fine with PostGis View.
Associated revisions
[composer] Prevent atlas crash when layer has bad features (refs #11037)
DBManager: avoid loading a query as layer with missing fields (fix #11037),
restore combo style and label when multiple unique fields for view are not supported (follow 8e45da9d7e)
History
#1 Updated by Nyall Dawson about 10 years ago
- Status changed from Open to Feedback
Do you have a spatialite data file which demonstrates this that I can test with?
#2 Updated by Loïc BARTOLETTI about 10 years ago
- File QGis_test_atlas.zip added
- File test_atlas_add_view.png added
Here a project with spatialite data.
test_atlas is a layer
atlas is a view created like this:
CREATE VIEW "atlas" AS SELECT "ROWID", "info", ST_Union("geom") as "geom" FROM "test_atlas" GROUP BY "info"
and added with DB Manager (see PNG image)
#3 Updated by Nyall Dawson about 10 years ago
I get an error trying to open that zip. Can you please re-upload?
#4 Updated by Loïc BARTOLETTI about 10 years ago
- File QGis_test_atlas.zip added
I forget to say that works when I create a table like this:
CREATE TABLE "union_atlas" AS SELECT "ROWID" as "ROWID" , "info" as "info", ST_Union("geom") AS "geom" FROM "test_atlas" GROUP BY "info";
#5 Updated by Nyall Dawson about 10 years ago
- Subject changed from Composer/Atlas crash when using spatialite VIEW in coverage layer to DbManager allows users to input missing column names for row id and geometry
- Category changed from Map Composer/Printing to DB Manager
- Status changed from Feedback to In Progress
Ok - I've fixed the crash (because crashing is bad!), but the real problem is in your query/db manager. In your screenshot you have entered "ROWID" as the unique values column, but this column does not exist in your query. This causes the layer to load in a broken state -- some things work, but the behaviour is undefined (for instance, try opening the attribute table on this layer).
I'm reassigning this bug to db manager plugin as you should not be allowed to input an invalid column name as the unique column or geometry column.
#6 Updated by Sandro Santilli over 9 years ago
- Crashes QGIS or corrupts data changed from Yes to No
does not cause crash or corruption anymore... is it really in progress ?
#7 Updated by Giuseppe Sucameli almost 9 years ago
- Status changed from In Progress to Closed
Fixed in changeset 2a57b170685a45cb939457933b1474ac02d78ee5.