Skip to content

Commit

Permalink
Don't show a empty geometry field when expanding aspatial GPKG tables…
Browse files Browse the repository at this point in the history
… in browser
  • Loading branch information
nyalldawson authored and troopa81 committed Nov 28, 2022
1 parent 31bf477 commit 934a209
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/core/providers/ogr/qgsgeopackageproviderconnection.cpp
Expand Up @@ -535,7 +535,7 @@ QgsFields QgsGeoPackageProviderConnection::fields( const QString &schema, const
}
// Append name of the geometry column, the data provider does not expose this information so we need an extra query:/
const QString sql = QStringLiteral( "SELECT g.column_name "
"FROM gpkg_contents c LEFT JOIN gpkg_geometry_columns g ON (c.table_name = g.table_name) "
"FROM gpkg_contents c CROSS JOIN gpkg_geometry_columns g ON (c.table_name = g.table_name) "
"WHERE c.table_name = %1" ).arg( QgsSqliteUtils::quotedString( table ) );
try
{
Expand Down
7 changes: 7 additions & 0 deletions tests/src/python/test_qgsproviderconnection_ogr_gpkg.py
Expand Up @@ -158,6 +158,13 @@ def test_gpkg_fields(self):
self.assertIn(table_info.primaryKeyColumns()[0], fields.names())
self.assertEqual(fields.names(), ['fid', 'id', 'typ', 'name', 'ortsrat', 'id_long', 'geom'])

# aspatial table
fields = conn.fields('', 'myNewAspatialTable')
table_info = conn.table('', 'myNewAspatialTable')
self.assertFalse(table_info.geometryColumn())
self.assertIn(table_info.primaryKeyColumns()[0], fields.names())
self.assertEqual(fields.names(), ['fid'])

@unittest.skipIf(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(3, 5, 0), "GDAL 3.5 required")
def test_gpkg_field_domain_names(self):
"""
Expand Down

0 comments on commit 934a209

Please sign in to comment.