Bug report #13071

Editing tools not available with PostGIS layers

Added by Michal Zimmermann over 8 years ago. Updated over 8 years ago.

Status:Closed
Priority:High
Assignee:-
Category:Data Provider/PostGIS
Affected QGIS version:2.10.0 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:not reproducable
Crashes QGIS or corrupts data:No Copied to github as #:21141

Description

2.10 doesn't allow to edit PostGIS layers with other tool than split features. I am both the owner of the database and the table. No messages in the log. Installed from qgis repo. Running elementaryOS built on Ubuntu 14.04 64bit.

25.png (123 KB) Michal Zimmermann, 2015-07-04 11:52 AM

History

#1 Updated by Edward H over 8 years ago

You must have a primarykey defined for the layer. In the previous release, it was not necessary for editing PostGIS layer. But this "rule" is maybe too restricitve and may be considered as a bug... I'm not developper...

#2 Updated by Michal Zimmermann over 8 years ago

Thanks that works, QGIS crashes when tries to save the changes though. All the PostGIS says is:

2015-07-06 10:04:51 CEST ERROR: invalid name syntax
2015-07-06 10:04:51 CEST STATEMENT: SELECT st_estimatedextent('"szif"','"dpb_01"','wkb_geometry')
2015-07-06 10:05:16 CEST LOG: unexpected EOF on client connection with an open transaction

#3 Updated by Michal Zimmermann over 8 years ago

And here comes more from QGIS

Fatal: ASSERT failure in QList<T>::operator[]: "index out of range", file /usr/include/qt4/QtCore/qlist.h, line 477
Stacktrace (piped through c++filt):
/usr/bin/qgis.bin[0x4cd810]
/usr/bin/qgis.bin[0x4cd918]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x21)[0x7f4a7fc5bbb1]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x70ff9)[0x7f4a7fc5bff9]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(qFatal(char const*, ...)+0x94)[0x7f4a7fc5c804]
/usr/lib/qgis/plugins/libpostgresprovider.so(QgsPostgresProvider::addFeatures(QList<QgsFeature>&)+0xa8e)[0x7f49eea7808e]
/usr/lib/libqgis_core.so.2.10.0(QgsVectorLayerEditBuffer::commitChanges(QStringList&)+0x7e1)[0x7f4a815bb581]
/usr/lib/libqgis_core.so.2.10.0(QgsVectorLayer::commitChanges()+0x86)[0x7f4a815aec46]
/usr/bin/qgis.bin(QgisApp::saveEdits(QgsMapLayer*, bool, bool)+0x6e)[0x4d8a0e]
/usr/bin/qgis.bin[0x7edaa3]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x2da)[0x7f4a7fd7c87a]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QAction::triggered(bool)+0x32)[0x7f4a7f0fba62]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QAction::activate(QAction::ActionEvent)+0x63)[0x7f4a7f0fd433]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x57cb92)[0x7f4a7f4b4b92]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QAbstractButton::mouseReleaseEvent(QMouseEvent*)+0x6c)[0x7f4a7f4b4cbc]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QToolButton::mouseReleaseEvent(QMouseEvent*)+0xa)[0x7f4a7f56baca]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QWidget::event(QEvent*)+0xaca)[0x7f4a7f15151a]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QApplicationPrivate::notify_helper(QObject*, QEvent*)+0x8c)[0x7f4a7f101e2c]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QApplication::notify(QObject*, QEvent*)+0x3ad)[0x7f4a7f1085dd]
/usr/lib/libqgis_core.so.2.10.0(QgsApplication::notify(QObject*, QEvent*)+0x5b)[0x7f4a814045cb]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QCoreApplication::notifyInternal(QObject*, QEvent*)+0x6d)[0x7f4a7fd684dd]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)+0x153)[0x7f4a7f107d93]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x2449eb)[0x7f4a7f17c9eb]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(QApplication::x11ProcessEvent(_XEvent*)+0x1559)[0x7f4a7f17c289]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26bb32)[0x7f4a7f1a3b32]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x254)[0x7f4a7af14bd4]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x48e18)[0x7f4a7af14e18]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c)[0x7f4a7af14ebc]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x71)[0x7f4a7fd957a1]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26bbe6)[0x7f4a7f1a3be6]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x2f)[0x7f4a7fd670af]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0x175)[0x7f4a7fd673a5]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4(QCoreApplication::exec()+0x89)[0x7f4a7fd6cb79]
/usr/bin/qgis.bin[0x4c889f]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f4a7d0aaec5]
/usr/bin/qgis.bin[0x4cd258]
[1]    11766 abort (core dumped)  qgis

#4 Updated by Giovanni Manghi over 8 years ago

  • Category set to Data Provider/PostGIS
  • Status changed from Open to Feedback

I cannot confirm, here all the editing tools are accessible on PostGIS layers without a primary key (tested on 2.8.2, 2.10 and master).

About the crash: does it happens always on any layer?

#5 Updated by Jürgen Fischer over 8 years ago

Michal Zimmermann wrote:

Thanks that works, QGIS crashes when tries to save the changes though. All the PostGIS says is:

which postgis version are you using?

#6 Updated by Giovanni Manghi over 8 years ago

  • Resolution set to not reproducable
  • Status changed from Feedback to Closed

closing for lack of feedback.

Also available in: Atom PDF