Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Explain why the workaround for GPKG/SQLite is necessary
I've talked to Even for this one
  • Loading branch information
elpaso committed Feb 19, 2019
1 parent 5d7a7ac commit f454827
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/providers/ogr/qgsogrprovider.cpp
Expand Up @@ -3622,6 +3622,9 @@ QSet<QVariant> QgsOgrProvider::uniqueValues( int index, int limit ) const
QByteArray sql = "SELECT DISTINCT " + quotedIdentifier( textEncoding()->fromUnicode( fld.name() ) );

// GPKG/SQLite fid
// For GPKG an SQLITE drivers PK fields are not exposed as real fields, (and OGR_F_GetFID only
// works with GPKG), so we are adding an extra column that will become index 0
// See https://issues.qgis.org/issues/21311
if ( ( mGDALDriverName == QLatin1String( "GPKG" ) || mGDALDriverName == QLatin1String( "SQLite" ) )
&& mFirstFieldIsFid && index == 0 )
{
Expand Down Expand Up @@ -3649,7 +3652,6 @@ QSet<QVariant> QgsOgrProvider::uniqueValues( int index, int limit ) const
while ( f.reset( l->GetNextFeature() ), f )
{
uniqueValues << ( OGR_F_IsFieldSetAndNotNull( f.get(), 0 ) ? convertValue( fld.type(), textEncoding()->toUnicode( OGR_F_GetFieldAsString( f.get(), 0 ) ) ) : QVariant( fld.type() ) );

if ( limit >= 0 && uniqueValues.size() >= limit )
break;
}
Expand Down

0 comments on commit f454827

Please sign in to comment.