Skip to content

Commit 5cb673a

Browse files
committed
Move sqlite/spatialite system tables to the QgsSqliteUtils class
1 parent 09a4f6f commit 5cb673a

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

src/core/qgssqliteutils.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,25 @@ QString QgsSqliteUtils::quotedValue( const QVariant &value )
151151
}
152152
}
153153

154+
QStringList QgsSqliteUtils::systemTables()
155+
{
156+
return QStringList() << QStringLiteral( "SpatialIndex" ) << QStringLiteral( "geom_cols_ref_sys" ) << QStringLiteral( "geometry_columns" )
157+
<< QStringLiteral( "geometry_columns_auth" ) << QStringLiteral( "views_geometry_columns" ) << QStringLiteral( "virts_geometry_columns" )
158+
<< QStringLiteral( "spatial_ref_sys" ) << QStringLiteral( "spatial_ref_sys_all" ) << QStringLiteral( "spatial_ref_sys_aux" )
159+
<< QStringLiteral( "sqlite_sequence" ) << QStringLiteral( "tableprefix_metadata" ) << QStringLiteral( "tableprefix_rasters" )
160+
<< QStringLiteral( "layer_params" ) << QStringLiteral( "layer_statistics" ) << QStringLiteral( "layer_sub_classes" )
161+
<< QStringLiteral( "layer_table_layout" ) << QStringLiteral( "pattern_bitmaps" ) << QStringLiteral( "symbol_bitmaps" )
162+
<< QStringLiteral( "project_defs" ) << QStringLiteral( "raster_pyramids" ) << QStringLiteral( "sqlite_stat1" ) << QStringLiteral( "sqlite_stat2" )
163+
<< QStringLiteral( "spatialite_history" ) << QStringLiteral( "geometry_columns_field_infos" ) << QStringLiteral( "geometry_columns_statistics" )
164+
<< QStringLiteral( "geometry_columns_time" ) << QStringLiteral( "sql_statements_log" ) << QStringLiteral( "vector_layers" )
165+
<< QStringLiteral( "vector_layers_auth" ) << QStringLiteral( "vector_layers_field_infos" ) << QStringLiteral( "vector_layers_statistics" )
166+
<< QStringLiteral( "views_geometry_columns_auth" ) << QStringLiteral( "views_geometry_columns_field_infos" )
167+
<< QStringLiteral( "views_geometry_columns_statistics" ) << QStringLiteral( "virts_geometry_columns_auth" )
168+
<< QStringLiteral( "virts_geometry_columns_field_infos" ) << QStringLiteral( "virts_geometry_columns_statistics" )
169+
<< QStringLiteral( "virts_layer_statistics" ) << QStringLiteral( "views_layer_statistics" )
170+
<< QStringLiteral( "ElementaryGeometries" );
171+
}
172+
154173
QString QgsSqlite3Mprintf( const char *format, ... )
155174
{
156175
va_list ap;

src/core/qgssqliteutils.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,13 @@ class CORE_EXPORT QgsSqliteUtils
180180
* \since QGIS 3.6
181181
*/
182182
static QString quotedValue( const QVariant &value );
183+
184+
/**
185+
* Returns a string list of SQLite (and spatialite) system tables
186+
*
187+
* \since QGIS 3.8
188+
*/
189+
static QStringList systemTables();
183190
};
184191

185192
/**

src/providers/spatialite/qgsspatialiteconnection.cpp

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "qgssettings.h"
1717
#include "qgslogger.h"
1818
#include "qgsspatialiteutils.h"
19+
#include "qgssqliteutils.h"
1920

2021
#include <QFileInfo>
2122
#include <cstdlib> // atoi
@@ -239,22 +240,8 @@ bool QgsSpatiaLiteConnection::getTableInfoAbstractInterface( sqlite3 *handle, bo
239240
}
240241

241242
// List of system tables not to be shown if geometryless tables are requested
242-
QStringList ignoreTableNames;
243-
ignoreTableNames << QStringLiteral( "SpatialIndex" ) << QStringLiteral( "geom_cols_ref_sys" ) << QStringLiteral( "geometry_columns" )
244-
<< QStringLiteral( "geometry_columns_auth" ) << QStringLiteral( "views_geometry_columns" ) << QStringLiteral( "virts_geometry_columns" )
245-
<< QStringLiteral( "spatial_ref_sys" ) << QStringLiteral( "spatial_ref_sys_all" ) << QStringLiteral( "spatial_ref_sys_aux" )
246-
<< QStringLiteral( "sqlite_sequence" ) << QStringLiteral( "tableprefix_metadata" ) << QStringLiteral( "tableprefix_rasters" )
247-
<< QStringLiteral( "layer_params" ) << QStringLiteral( "layer_statistics" ) << QStringLiteral( "layer_sub_classes" )
248-
<< QStringLiteral( "layer_table_layout" ) << QStringLiteral( "pattern_bitmaps" ) << QStringLiteral( "symbol_bitmaps" )
249-
<< QStringLiteral( "project_defs" ) << QStringLiteral( "raster_pyramids" ) << QStringLiteral( "sqlite_stat1" ) << QStringLiteral( "sqlite_stat2" )
250-
<< QStringLiteral( "spatialite_history" ) << QStringLiteral( "geometry_columns_field_infos" ) << QStringLiteral( "geometry_columns_statistics" )
251-
<< QStringLiteral( "geometry_columns_time" ) << QStringLiteral( "sql_statements_log" ) << QStringLiteral( "vector_layers" )
252-
<< QStringLiteral( "vector_layers_auth" ) << QStringLiteral( "vector_layers_field_infos" ) << QStringLiteral( "vector_layers_statistics" )
253-
<< QStringLiteral( "views_geometry_columns_auth" ) << QStringLiteral( "views_geometry_columns_field_infos" )
254-
<< QStringLiteral( "views_geometry_columns_statistics" ) << QStringLiteral( "virts_geometry_columns_auth" )
255-
<< QStringLiteral( "virts_geometry_columns_field_infos" ) << QStringLiteral( "virts_geometry_columns_statistics" )
256-
<< QStringLiteral( "virts_layer_statistics" ) << QStringLiteral( "views_layer_statistics" )
257-
<< QStringLiteral( "ElementaryGeometries" );
243+
QStringList ignoreTableNames = QgsSqliteUtils::systemTables();
244+
258245
// attempting to load the VectorLayersList
259246
list = gaiaGetVectorLayersList( handle, nullptr, nullptr, GAIA_VECTORS_LIST_FAST );
260247
if ( list )

0 commit comments

Comments
 (0)