Showing with 7 additions and 1 deletion.
  1. +6 −1 src/gui/attributetable/qgsattributetablemodel.cpp
  2. +1 −0 src/providers/postgres/qgspostgresfeatureiterator.cpp
7 changes: 6 additions & 1 deletion src/gui/attributetable/qgsattributetablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ QgsAttributeTableModel::QgsAttributeTableModel( QgsVectorLayerCache *layerCache,
{
QgsDebugMsg( "entered." );

if ( layerCache->layer()->geometryType() == QGis::NoGeometry )
{
mFeatureRequest.setFlags( QgsFeatureRequest::NoGeometry );
}

mFeat.setFeatureId( std::numeric_limits<int>::min() );

if ( !layer()->hasGeometryType() )
Expand Down Expand Up @@ -305,7 +310,7 @@ void QgsAttributeTableModel::loadLayer()
removeRows( 0, rowCount() );
endRemoveRows();

QgsFeatureIterator features = layer()->getFeatures( mFeatureRequest );
QgsFeatureIterator features = mLayerCache->getFeatures( mFeatureRequest );

int i = 0;

Expand Down
1 change: 1 addition & 0 deletions src/providers/postgres/qgspostgresfeatureiterator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ bool QgsPostgresFeatureIterator::declareCursor( const QString& whereClause )
bool fetchGeometry = !( mRequest.flags() & QgsFeatureRequest::NoGeometry );
if ( fetchGeometry && P->mGeometryColumn.isNull() )
{
QgsMessageLog::logMessage( QObject::tr( "Trying to fetch geometry on a layer without geometry." ), QObject::tr( "PostgreSQL" ) );
return false;
}

Expand Down