Hi Remi,

Regarding crashes with Postgis: do you have multithreading with a lot of CPU cores active? I am experiencing crashes if more than 2 cores are active. Try limiting to 2 CPU cores and see if this helps.

Still trying to investigate this issue with the devs.

Besides the above issue, editing with Postgis works stable for me - certainly not as many crashes as you say you have.

Please do not ignore the crashes but try to report them so that the devs can do something about it.

Andreas

On 19.01.2015 11:57, Rémi Cura wrote:
I think a more global solution is possible.
After all when you load a postgis layer in qgis, if somebody else changes it, the view is not refreshed, which is annoying (and sometimes dangerous because you may edit old data).

It would be easy to ad this (which would also work for my case) using the LISTEN / NOTIFY feature of postgres.

Basically when selecting a table as a new qgis layer, you automatically add a triger to it.
The trigger will be fired at any change (create/delete/update).
The trigger would simply send a message to qgis via NOTIFY.
example : "NOTIFY qgis_change_XXXX ;", where XXXX is a unique id.
Of course qgis would be listening, which is very simple in python
(import psycopg2;
conn = psycopg.connect(my_database_string)
conn.autocommit(1)
curs = conn.cursor()
curs.execute("LISTEN qgis_change_XXXX;"))

Of course one would need a mechanism to remove this trigger when not necessary (for instance, name the channel "qgis_change_/time_stamp/", delete channel too old automatically, and change channel periodically (20 in for instance)).

I don't know if from a security point of view it would be possibe tough (would require the permission to create a trigger). I don't know if typical qgis user have the right to create trigger on database they use.

I use a lot of different version of QGIS and I can guarantee at least a dozen crash a day with version 1.8 to 2.3,
plus pending transaction with postgis whenever the crash occurs.
I'm installing 2.6 to see if postgis layers are less fragile right now ^^

Cheers,
Rémi-C

2015-01-19 11:29 GMT+01:00 Martin Dobias <wonder...@gmail.com <mailto:wonder...@gmail.com>>:

    I see - indeed QGIS would need to do quite some database
    inspection to understand that layer A and layer B are related.
    This should be however also easy to address in a custom plugin.

    It is surprising to me that you say PostGIS layers are fragile in
    QGIS - they are very commonly used by lots of people and we
    haven't heard about crashes in the issue tracker. If you do
    experience crashes please consider filing reports on hub.qgis.org
    <http://hub.qgis.org> with instructions on how to replicate them.

    Regards
    Martin


    On Mon, Jan 19, 2015 at 5:18 PM, Rémi Cura <remi.c...@gmail.com
    <mailto:remi.c...@gmail.com>> wrote:

        Thanks Martin,
        one day to several days feel like a very reasonnable order of
        magnitude.

        QGis is not refreshing the view because when editing layer A
        the postgis data base automatically also edit layer B.
        I don't think qgis has a mechanism of tracking dbchanges (it
        would be possible tough).
        Morevover PostGIS layer are still "fragile" in qgis (crashes
        often).

        Thanks for the help,
        Cheers
        Rémi-C

        2015-01-19 10:56 GMT+01:00 Martin Dobias <wonder...@gmail.com
        <mailto:wonder...@gmail.com>>:

            Hi Remi

            Such plugin should be quite easy to write - I would assume
            up to one day of work for an experienced pyqgis developer.
            For a newcomer it may take few more days to get familiar
            with the API, tools, environment and so on.

            For the refresh of rendering after geometry editing - that
            should work out of the box and I would consider it a bug
            if it does not.

            Regards
            Martin


            On Mon, Jan 19, 2015 at 3:16 PM, Rémi Cura
            <remi.c...@gmail.com <mailto:remi.c...@gmail.com>> wrote:

                Hello dear list.
                I'm usually active on the postgis or postgres list,
                but today I would like to ask a question regarding dev
                time.

                In your opinion,
                How much time would be needed to write a plugin for
                multiple versions of qgis (2.2 to current 2.6) doing 3
                simple things :
                 - auto commit the edition of geometry when in edition
                mode (no need to click on save  changes each time)
                 - force refresh of rendering after edition of a geometry
                 - every camera changes (zoom or position), send a sql
                query containing user name and geometry of view (a
                rectangle in wkt for instance).

                I can estimate this at my poor qgis-dev level, but I
                would like to have the timing for an expert qgis dev.

                Many thanks,

                Remi-C

                _______________________________________________
                Qgis-developer mailing list
                Qgis-developer@lists.osgeo.org
                <mailto:Qgis-developer@lists.osgeo.org>
                http://lists.osgeo.org/mailman/listinfo/qgis-developer







_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to