[Qgis-developer] Fwd: Re: [Geopackage] Geopackage on a shared network drive

Even Rouault even.rouault at spatialys.com
Mon Oct 3 02:49:52 PDT 2016


Le lundi 03 octobre 2016 10:33:25, Neumann, Andreas a écrit :
> Hi Even,
> 
> Thank you for sharing this finding!
> 
> In that case I think that QGIS should offer a flag to open Geopackages
> in read-only mode.

<probably_ignore_this_and_skip_to_last_paragraph>
I'm not sure we need an explicit flag for read-only mode (in the GUI I mean). 
This could bring some complications: for example should that be saved with the 
layer in a project file? But if so, then you'd be stuck to read-only later if 
you want to edit a layer, etc.

Read-only mode could be the default mode for opening, and re-open in read-
write mode when this is needed. This is something I've done recently, but 
limited to MapInfo .tab, since opening .tab files in read-write mode prevented 
concurrent opening of the file in QGIS & MapInfo. I didn't want to mess with 
other formats, but fundamentally I don't see any reason why this couldn't be 
generalized to other formats (I'm not sure why QGIS has historically opened in 
read-write mode as first try. Probably because this was easier to implement)

For GPKG, there's just one subtelty though. I've fixed recently #15351 and to 
avoid deadlocks between readers&writers, the first to open a GPKG needs to turn 
on write ahead log (WAL) journalisation, so the workflow would be :

- open in read only
- check if journalisation is WAL
   - if so, done
   - if not, re-open in read-write, turn on WAL, re-open in read-only

And similar on closing to revert to the default DELETE journalisation mode.
</probably_ignore_this_and_skip_to_last_paragraph>

Hum, with further thinking, I don't undertstand why my suggestion in the 
discussion thread on the geopackage ML of changing the file permission to read-
only made things faster. Because, for feature iterators, QGIS uses a dedicated 
OGR connection in read-only mode and does not use the provider connection that 
might be in read-write mode. Unless the reporter still uses GDAL 1.11, which 
used to open in read-write mode regardless of what the user specified (was fixed 
in GDAL 2.0). That must be it. I'll check back with the reporter. So probably 
all the above is not needed after all...

> 
> Even - since you are "Mr. Geopackage" in the QGIS project anyway - can
> you please make sure that this can be covered in the upcoming Geopackage
> improvements? Would a "read-only" mode also be useful for other data
> formats? I opened a ticket at http://hub.qgis.org/issues/15652 and
> assigned it to you. I have no idea how much effort this enhancement
> would mean - can you please do an estimate and send me a quote for that?
> Maybe we could still include it in the upcoming Geopackage improvements
> financed by the Swiss QGIS user group.
> 
> -------------------
> 
> This also leads to a follow up question: many OGR data formats have
> "open options". As far as I know, these options are not exposed to the
> User in QGIS, other than the encoding - or did I miss something? Should
> we introduce a "GUI" way in QGIS 3.x to expose these "open options" in
> the "add vector layer" dialogue?

Open options cannot be specified through QGIS currently indeed. There are not 
so many vector drivers that expose them, mostly those who are of the database 
type (with some redundancy with the way configuring the connection is already 
offered in the GUI). Some notable exceptions in the regular file category are 
CSV and GML.
One downside of open options is that they can be rather esoteric and hard to 
understand for the average user, so I guess they should be presented in a 
expandable tab.

GDAL offers the possibility to auto-discover which open options are available 
for a format, but that doesn't solve the issue with internationalization in 
QGIS. Although I think I discussed with someone about this and one possibility 
mentionned was to dump, at QGIS build time, the strings to translate from GDAL 
in a QGIS resource file. I didn't look how internationalization worked in QGIS.

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the Qgis-developer mailing list