SpatiaLite  4.2.0
 All Data Structures Files Functions Variables Typedefs Macros Pages
Functions
spatialite.h File Reference

Main SpatiaLite header file. More...

#include <spatialite/gaiageo.h>
Include dependency graph for spatialite.h:

Go to the source code of this file.

Functions

SPATIALITE_DECLARE void spatialite_initialize (void)
 Initializes the library. More...
 
SPATIALITE_DECLARE void spatialite_shutdown (void)
 Finalizes the library. More...
 
SPATIALITE_DECLARE const char * spatialite_version (void)
 Return the current library version. More...
 
SPATIALITE_DECLARE const char * spatialite_target_cpu (void)
 Return the target CPU name. More...
 
SPATIALITE_DECLARE void * spatialite_alloc_connection (void)
 Initializes the internal memory block supporting each connection. More...
 
SPATIALITE_DECLARE void spatialite_init (int verbose)
 Initializes a SpatiaLite connection. More...
 
SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 *db_handle, const void *ptr, int verbose)
 Initializes a SpatiaLite connection. More...
 
SPATIALITE_DECLARE void spatialite_init_geos (void)
 Initializes the GEOS library. More...
 
SPATIALITE_DECLARE void spatialite_cleanup (void)
 Cleanup a SpatiaLite connection. More...
 
SPATIALITE_DECLARE void spatialite_cleanup_ex (const void *ptr)
 Cleanup a SpatiaLite connection. More...
 
SPATIALITE_DECLARE int dump_shapefile (sqlite3 *sqlite, char *table, char *column, char *shp_path, char *charset, char *geom_type, int verbose, int *rows, char *err_msg)
 Dumps a full geometry-table into an external Shapefile. More...
 
SPATIALITE_DECLARE int load_shapefile (sqlite3 *sqlite, char *shp_path, char *table, char *charset, int srid, char *column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg)
 Loads an external Shapefile into a newly created table. More...
 
SPATIALITE_DECLARE int load_shapefile_ex (sqlite3 *sqlite, char *shp_path, char *table, char *charset, int srid, char *geo_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg)
 Loads an external Shapefile into a newly created table. More...
 
SPATIALITE_DECLARE int load_dbf (sqlite3 *sqlite, char *dbf_path, char *table, char *charset, int verbose, int *rows, char *err_msg)
 Loads an external DBF file into a newly created table. More...
 
SPATIALITE_DECLARE int load_dbf_ex (sqlite3 *sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int *rows, char *err_msg)
 Loads an external DBF file into a newly created table. More...
 
SPATIALITE_DECLARE int dump_dbf (sqlite3 *sqlite, char *table, char *dbf_path, char *charset, char *err_msg)
 Dumps a full table into an external DBF file. More...
 
SPATIALITE_DECLARE int load_XL (sqlite3 *sqlite, const char *path, const char *table, unsigned int worksheetIndex, int first_titles, unsigned int *rows, char *err_msg)
 Loads an external spreadsheet (.xls) file into a newly created table. More...
 
SPATIALITE_DECLARE double math_round (double value)
 A portable replacement for C99 round() More...
 
SPATIALITE_DECLARE sqlite3_int64 math_llabs (sqlite3_int64 value)
 A portable replacement for C99 llabs() More...
 
SPATIALITE_DECLARE int spatial_ref_sys_init (sqlite3 *sqlite, int verbose)
 Inserts the inlined EPSG dataset into the "spatial_ref_sys" table. More...
 
SPATIALITE_DECLARE int spatial_ref_sys_init2 (sqlite3 *sqlite, int mode, int verbose)
 Inserts the inlined EPSG dataset into the "spatial_ref_sys" table. More...
 
SPATIALITE_DECLARE int insert_epsg_srid (sqlite3 *sqlite, int srid)
 Inserts some inlined EPSG definition into the "spatial_ref_sys" table. More...
 
SPATIALITE_DECLARE int is_kml_constant (sqlite3 *sqlite, char *table, char *column)
 Checks if a column is actually defined into the given table. More...
 
SPATIALITE_DECLARE int dump_kml (sqlite3 *sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision)
 Dumps a full geometry-table into an external KML file. More...
 
SPATIALITE_DECLARE void check_duplicated_rows (sqlite3 *sqlite, char *table, int *dupl_count)
 Checks for duplicated rows into the same table. More...
 
SPATIALITE_DECLARE void remove_duplicated_rows (sqlite3 *sqlite, char *table)
 Remove duplicated rows from a table. More...
 
SPATIALITE_DECLARE void remove_duplicated_rows_ex (sqlite3 *sqlite, char *table, int *removed)
 Remove duplicated rows from a table. More...
 
SPATIALITE_DECLARE void elementary_geometries (sqlite3 *sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId)
 Creates a derived table surely containing elementary Geometries. More...
 
SPATIALITE_DECLARE int dump_geojson (sqlite3 *sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option)
 Dumps a full geometry-table into an external GeoJSON file. More...
 
SPATIALITE_DECLARE int update_layer_statistics (sqlite3 *sqlite, const char *table, const char *column)
 Updates the LAYER_STATICS metadata table. More...
 
SPATIALITE_DECLARE int gaiaStatisticsInvalidate (sqlite3 *handle, const char *table, const char *geometry)
 Immediately and unconditionally invalidates the already existing Statistics. More...
 
SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent (sqlite3 *handle, const char *table, const char *geometry, int mode)
 Queries the Metadata tables returning the Layer Full Extent. More...
 
SPATIALITE_DECLARE
gaiaVectorLayersListPtr 
gaiaGetVectorLayersList (sqlite3 *handle, const char *table, const char *geometry, int mode)
 Queries the Metadata tables supporting Vector Layers. More...
 
SPATIALITE_DECLARE int gaiaCreateMetaCatalogTables (sqlite3 *handle)
 Creates (or re-creates) the "splite_metacatalog" and "splite_metacalog_statistics" tables. More...
 
SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatistics (sqlite3 *handle, const char *table, const char *column)
 Updates the "splite_metacatalog_statistics" table. More...
 
SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 *handle, const char *master_table, const char *table_name, const char *column_name)
 Updates the "splite_metacatalog_statistics" table (using a Master Table). More...
 
SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr ptr)
 Destroys a VectorLayersList object. More...
 
SPATIALITE_DECLARE int gaiaDropTable (sqlite3 *sqlite, const char *table)
 Drops a layer-table, removing any related dependency. More...
 
SPATIALITE_DECLARE int gaiaDropTableEx (sqlite3 *sqlite, const char *prefix, const char *table)
 Drops a layer-table, removing any related dependency. More...
 
SPATIALITE_DECLARE int check_geometry_column (sqlite3 *sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg)
 Checks a Geometry Column for validity. More...
 
SPATIALITE_DECLARE int check_geometry_column_r (const void *p_cache, sqlite3 *sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg)
 Checks a Geometry Column for validity. More...
 
SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 *sqlite, const char *output_dir, int *n_invalids, char **err_msg)
 Checks all Geometry Columns for validity. More...
 
SPATIALITE_DECLARE int check_all_geometry_columns_r (const void *p_cache, sqlite3 *sqlite, const char *output_dir, int *n_invalids, char **err_msg)
 Checks all Geometry Columns for validity. More...
 
SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 *sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg)
 Sanitizes a Geometry Column making all invalid geometries to be valid. More...
 
SPATIALITE_DECLARE int sanitize_geometry_column_r (const void *p_cache, sqlite3 *sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg)
 Sanitizes a Geometry Column making all invalid geometries to be valid. More...
 
SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 *sqlite, const char *tmp_prefix, const char *output_dir, int *not_repaired, char **err_msg)
 Sanitizes all Geometry Columns making all invalid geometries to be valid. More...
 
SPATIALITE_DECLARE int sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 *sqlite, const char *tmp_prefix, const char *output_dir, int *not_repaired, char **err_msg)
 Sanitizes all Geometry Columns making all invalid geometries to be valid. More...
 
SPATIALITE_DECLARE int gaiaGPKG2Spatialite (sqlite3 *handle_in, const char *gpkg_in_path, sqlite3 *handle_out, const char *splite_out_path)
 
SPATIALITE_DECLARE int gaiaSpatialite2GPKG (sqlite3 *handle_in, const char *splite_in_path, sqlite3 *handle_out, const char *gpkg_out_path)
 

Detailed Description

Main SpatiaLite header file.

Function Documentation

SPATIALITE_DECLARE int check_all_geometry_columns ( sqlite3 *  sqlite,
const char *  output_dir,
int *  n_invalids,
char **  err_msg 
)

Checks all Geometry Columns for validity.

Parameters
sqlitehandle to current DB connection
output_dirpathname of the directory to be created for report-files
n_invalidsif this variable is not NULL on successful completion will contain the total number of invalid Geometries found
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
check_all_geometry_columns_r, check_geometry_column, sanitize_geometry_column, sanitize_all_geometry_columns
Note
this function will check all Geometry Columns (vector layers) for validity; a HTML report will be produced.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
not reentrant and thread unsafe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int check_all_geometry_columns_r ( const void *  p_cache,
sqlite3 *  sqlite,
const char *  output_dir,
int *  n_invalids,
char **  err_msg 
)

Checks all Geometry Columns for validity.

Parameters
p_cachea memory pointer returned by spatialite_alloc_connection()
sqlitehandle to current DB connection
output_dirpathname of the directory to be created for report-files
n_invalidsif this variable is not NULL on successful completion will contain the total number of invalid Geometries found
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
check_all_geometry_columns, check_geometry_column, sanitize_geometry_column, sanitize_all_geometry_columns
Note
this function will check all Geometry Columns (vector layers) for validity; a HTML report will be produced.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
reentrant and thread-safe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE void check_duplicated_rows ( sqlite3 *  sqlite,
char *  table,
int *  dupl_count 
)

Checks for duplicated rows into the same table.

Parameters
sqlitehandle to current DB connection
tablename of the table to be checked
dupl_counton completion will contain the number of duplicated rows found
See Also
remove_duplicated_rows
Note
two (or more) rows are assumed to be duplicated if any column

value (excluding any Primary Key column) is exacly the same

SPATIALITE_DECLARE int check_geometry_column ( sqlite3 *  sqlite,
const char *  table,
const char *  geom,
const char *  report_path,
int *  n_rows,
int *  n_invalids,
char **  err_msg 
)

Checks a Geometry Column for validity.

Parameters
sqlitehandle to current DB connection
tablename of the table
geometryname of the column to be checked
report_pathpathname of the report-file
n_rowsif this variable is not NULL on successful completion will contain the total number of rows found into the checkeck table
n_invalidsif this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the checkeck table
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
check_geometry_column_r, check_all_geometry_columns, sanitize_geometry_column, sanitize_all_geometry_columns
Note
this function will check a Geometry Column (layer) for validity; a HTML report will be produced.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
not reentrant and thread unsafe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int check_geometry_column_r ( const void *  p_cache,
sqlite3 *  sqlite,
const char *  table,
const char *  geom,
const char *  report_path,
int *  n_rows,
int *  n_invalids,
char **  err_msg 
)

Checks a Geometry Column for validity.

Parameters
p_cachea memory pointer returned by spatialite_alloc_connection()
sqlitehandle to current DB connection
tablename of the table
geometryname of the column to be checked
report_pathpathname of the report-file
n_rowsif this variable is not NULL on successful completion will contain the total number of rows found into the checkeck table
n_invalidsif this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the checkeck table
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
check_geometry_column, check_all_geometry_columns, sanitize_geometry_column, sanitize_all_geometry_columns
Note
this function will check a Geometry Column (layer) for validity; a HTML report will be produced.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
reentrant and thread-safe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int dump_dbf ( sqlite3 *  sqlite,
char *  table,
char *  dbf_path,
char *  charset,
char *  err_msg 
)

Dumps a full table into an external DBF file.

Parameters
sqlitehandle to current DB connection
tablethe name of the table to be exported
dbf_pathpathname of the DBF to be exported
charseta valid GNU ICONV charset to be used for DBF text strings
err_msgon completion will contain an error message (if any)
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int dump_geojson ( sqlite3 *  sqlite,
char *  table,
char *  geom_col,
char *  outfile_path,
int  precision,
int  option 
)

Dumps a full geometry-table into an external GeoJSON file.

Parameters
sqlitehandle to current DB connection
tablethe name of the table to be exported
geom_colthe name of the geometry column
outfile_pathpathname for the GeoJSON file to be written to
precisionnumber of decimal digits for coordinates
optionthe format to use for output
Note
valid values for option are:
  • 0 no option
  • 1 GeoJSON MBR
  • 2 GeoJSON Short CRS (e.g EPSG:4326)
  • 3 MBR + Short CRS
  • 4 GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326)
  • 5 MBR + Long CRS
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int dump_kml ( sqlite3 *  sqlite,
char *  table,
char *  geom_col,
char *  kml_path,
char *  name_col,
char *  desc_col,
int  precision 
)

Dumps a full geometry-table into an external KML file.

Parameters
sqlitehandle to current DB connection
tablethe name of the table to be exported
geom_colthe name of the geometry column
kml_pathpathname of the KML file to be exported
name_colcolumn to be used for KML "name" (may be null)
desc_colcolumn to be used for KML "description" (may be null)
precisionnumber of decimal digits for coordinates
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int dump_shapefile ( sqlite3 *  sqlite,
char *  table,
char *  column,
char *  shp_path,
char *  charset,
char *  geom_type,
int  verbose,
int *  rows,
char *  err_msg 
)

Dumps a full geometry-table into an external Shapefile.

Parameters
sqlitehandle to current DB connection
tablethe name of the table to be exported
columnthe name of the geometry column
shp_pathpathname of the Shapefile to be exported (no suffix)
charseta valid GNU ICONV charset to be used for DBF text strings
geom_type"POINT", "LINESTRING", "POLYGON", "MULTIPOLYGON" or NULL
verboseif TRUE a short report is shown on stderr
rowson completion will contain the total number of actually exported rows
err_msgon completion will contain an error message (if any)
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE void elementary_geometries ( sqlite3 *  sqlite,
char *  inTable,
char *  geometry,
char *  outTable,
char *  pKey,
char *  multiId 
)

Creates a derived table surely containing elementary Geometries.

Parameters
sqlitehandle to current DB connection
inTablename of the input table
geometryname of the Geometry column
outTablename of the output table to be created
pKeyname of the Primary Key column in the output table
multiIdname of the column identifying origins in the output table
Note
if the input table contains some kind of complex Geometry (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or GEOMETRYCOLLECTION), then many rows are inserted into the output table: each single row will contain the same attributes and an elementaty Geometry. All the rows created by expanding the same input row will expose the same value in the "multiId" column.
SPATIALITE_DECLARE int gaiaCreateMetaCatalogTables ( sqlite3 *  handle)

Creates (or re-creates) the "splite_metacatalog" and "splite_metacalog_statistics" tables.

Parameters
handleSQLite handle to current DB connection.
Returns
0 (FALSE) on failure, any other value (TRUE) on success
See Also
gaiaUpdateMetaCatalogStatistics, gaiaUpdateMetaCatalogStatisticsFromMaster
SPATIALITE_DECLARE int gaiaDropTable ( sqlite3 *  sqlite,
const char *  table 
)

Drops a layer-table, removing any related dependency.

Parameters
sqlitehandle to current DB connection
tablename of the table to be removed
Note
this function will drop a SpatialTable, SpatialView or VirtualShape being properly registered within the Metadata tables.
an eventual Spatial Index will be dropped as well, and any row referring the selected table will be removed from the Metadata tables.
Returns
0 on failure, any other value on success
See Also
gaiaDropTableEx
Note
this one simply is a convenience method alway defaulting to gaiaDropTableEx(sqlite, "main", table);
SPATIALITE_DECLARE int gaiaDropTableEx ( sqlite3 *  sqlite,
const char *  prefix,
const char *  table 
)

Drops a layer-table, removing any related dependency.

Parameters
sqlitehandle to current DB connection
prefixschema prefix identifying the target DB
"main" always identifies the main DB (primary, not Attached).
tablename of the table to be removed
Note
this function will drop a SpatialTable, SpatialView or VirtualShape being properly registered within the Metadata tables.
an eventual Spatial Index will be dropped as well, and any row referring the selected table will be removed from the Metadata tables.
Returns
0 on failure, any other value on success
See Also
gaiaDropTable
SPATIALITE_DECLARE void gaiaFreeVectorLayersList ( gaiaVectorLayersListPtr  ptr)

Destroys a VectorLayersList object.

Parameters
ptrpointer to the VectorLayersList object to be destroyed
See Also
gaiaGetVectorLayersList
Examples:
demo5.c.
SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent ( sqlite3 *  handle,
const char *  table,
const char *  geometry,
int  mode 
)

Queries the Metadata tables returning the Layer Full Extent.

Parameters
handleSQLite handle to current DB connection.
tableVectorLayer Table (or View, or VirtualShape).
geometryGeometry Column name.
modeif TRUE a PESSIMISTIC statistics update will be implied, otherwise OPTIMISTIC.
Returns
the pointer to the newly created Geometry (Envelope): NULL on failure
See Also
update_layer_statistic, gaiaStatisticsInvalidate, gaiaGetVectorLayersList
Note
you are responsible to destroy (before or after) any allocated Geometry returned by gaiaGetLayerExtent().
The geometry arg is optional when the table simply has a single Geometry Column, and can be NULL in this case.
When the mode arg is set to FALSE (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate).
If the mode arg is set to TRUE a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate).
If the named Layer doesn't exist, or if it's completely empty (not containing any valid Geometry) NULL will be returned.
SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList ( sqlite3 *  handle,
const char *  table,
const char *  geometry,
int  mode 
)

Queries the Metadata tables supporting Vector Layers.

Parameters
handleSQLite handle to current DB connection.
tableVectorLayer Table (or View, or VirtualShape).
geometryGeometry Column name.
modeone of GAIA_VECTORS_LIST_OPTIMISTIC or GAIA_VECTORS_LIST_PESSIMISTIC.
Returns
the pointer to the newly created VectorLayersList object: NULL on failure
See Also
gaiaFreeVectorLayersList, update_layer_statistics, gaiaStatisticsInvalidate, gaiaGetLayerExtent, gaiaGetVectorLayersList
Note
you are responsible to destroy (before or after) any allocated VectorLayersList returned by gaiaGetVectorLayersList().
If the table arg is NULL all VectorLayers defined within the DB will be reported; otherwise only a single Layer will be reported (if existing).
By defining the geometry arg (not NULL) you can further restrict the returned report.
When the mode arg is set to GAIA_VECTORS_LIST_OPTIMISTIC (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate).
If the mode arg is set to GAIA_VECTORS_LIST_PESSIMISTIC a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate).
Examples:
demo5.c.
SPATIALITE_DECLARE int gaiaStatisticsInvalidate ( sqlite3 *  handle,
const char *  table,
const char *  geometry 
)

Immediately and unconditionally invalidates the already existing Statistics.

Parameters
handleSQLite handle to current DB connection.
tableVectorLayer Table (or View, or VirtualShape).
geometryGeometry Column name.
Returns
0 on success, any other value on success
See Also
update_layer_statistics, gaiaGetLayerExtent, gaiaGetVectorLayersList
Note
if the table arg is NULL all Statistics for any VectorLayer defined within the DB will be invalidated; otherwise only a single Layer will be affectedd (if existing).
By defining the geometry arg (not NULL) you can further restrict your selection.
SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatistics ( sqlite3 *  handle,
const char *  table,
const char *  column 
)

Updates the "splite_metacatalog_statistics" table.

Parameters
handleSQLite handle to current DB connection.
tablename of the table to be processed.
columnname of the column to be processed.
Returns
0 (FALSE) on failure, any other value (TRUE) on success
See Also
gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatisticsFromMaster
SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatisticsFromMaster ( sqlite3 *  handle,
const char *  master_table,
const char *  table_name,
const char *  column_name 
)

Updates the "splite_metacatalog_statistics" table (using a Master Table).

Parameters
handleSQLite handle to current DB connection.
master_tablename of the master-table controlling the whole process.
table_namename of the column into the master-table containing table-names.
column_namename of the column into the master-table containing column-names.
Returns
0 (FALSE) on failure, any other value (TRUE) on success
See Also
gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatistics
SPATIALITE_DECLARE int insert_epsg_srid ( sqlite3 *  sqlite,
int  srid 
)

Inserts some inlined EPSG definition into the "spatial_ref_sys" table.

Parameters
sqlitehandle to current DB connection
sridthe SRID value uniquely identifying the required EPSG definition
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int is_kml_constant ( sqlite3 *  sqlite,
char *  table,
char *  column 
)

Checks if a column is actually defined into the given table.

Parameters
sqlitehandle to current DB connection
tablethe table to be checked
columnthe column to be checked
Returns
0 on success, any other value on success
Note
internally used to detect if some KML attribute defaults to a constant value
SPATIALITE_DECLARE int load_dbf ( sqlite3 *  sqlite,
char *  dbf_path,
char *  table,
char *  charset,
int  verbose,
int *  rows,
char *  err_msg 
)

Loads an external DBF file into a newly created table.

Parameters
sqlitehandle to current DB connection
dbf_pathpathname of the DBF file to be imported
tablethe name of the table to be created
charseta valid GNU ICONV charset to be used for DBF text strings
verboseif TRUE a short report is shown on stderr
rowson completion will contain the total number of actually exported rows
err_msgon completion will contain an error message (if any)
See Also
load_dbf_ex
Note
this function simply calls load_dbf_ex by passing an implicit pk_column=NULL argument
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int load_dbf_ex ( sqlite3 *  sqlite,
char *  dbf_path,
char *  table,
char *  pk_column,
char *  charset,
int  verbose,
int *  rows,
char *  err_msg 
)

Loads an external DBF file into a newly created table.

Parameters
sqlitehandle to current DB connection
dbf_pathpathname of the DBF file to be imported
tablethe name of the table to be created
pk_columnname of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default.
charseta valid GNU ICONV charset to be used for DBF text strings
verboseif TRUE a short report is shown on stderr
rowson completion will contain the total number of actually exported rows
err_msgon completion will contain an error message (if any)
See Also
load_shapefile
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int load_shapefile ( sqlite3 *  sqlite,
char *  shp_path,
char *  table,
char *  charset,
int  srid,
char *  column,
int  coerce2d,
int  compressed,
int  verbose,
int  spatial_index,
int *  rows,
char *  err_msg 
)

Loads an external Shapefile into a newly created table.

Parameters
sqlitehandle to current DB connection
shp_pathpathname of the Shapefile to be imported (no suffix)
tablethe name of the table to be created
charseta valid GNU ICONV charset to be used for DBF text strings
sridthe SRID to be set for Geometries
columnthe name of the geometry column
coerce2dif TRUE any Geometry will be casted to 2D [XY]
compressedif TRUE compressed Geometries will be created
verboseif TRUE a short report is shown on stderr
spatial_indexif TRUE an R*Tree Spatial Index will be created
rowson completion will contain the total number of actually exported rows
err_msgon completion will contain an error message (if any)
Returns
0 on failure, any other value on success
See Also
load_shapefile_ex
Note
this function simply calls load_shapefile_ex by passing implicit gype="AUTO" and pk_column=NULL arguments
SPATIALITE_DECLARE int load_shapefile_ex ( sqlite3 *  sqlite,
char *  shp_path,
char *  table,
char *  charset,
int  srid,
char *  geo_column,
char *  gtype,
char *  pk_column,
int  coerce2d,
int  compressed,
int  verbose,
int  spatial_index,
int *  rows,
char *  err_msg 
)

Loads an external Shapefile into a newly created table.

Parameters
sqlitehandle to current DB connection
shp_pathpathname of the Shapefile to be imported (no suffix)
tablethe name of the table to be created
charseta valid GNU ICONV charset to be used for DBF text strings
sridthe SRID to be set for Geometries
geo_columnthe name of the geometry column
gtypeexpected to be one of: "LINESTRING", "LINESTRINGZ", "LINESTRINGM", "LINESTRINGZM", "MULTILINESTRING", "MULTILINESTRINGZ", "MULTILINESTRINGM", "MULTILINESTRINGZM", "POLYGON", "POLYGONZ", "POLYGONM", "POLYGONZM", "MULTIPOLYGON", "MULTIPOLYGONZ", "MULTIPOLYGONM", "MULTIPOLYGONZM" or "AUTO".
pk_columnname of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default.
coerce2dif TRUE any Geometry will be casted to 2D [XY]
compressedif TRUE compressed Geometries will be created
verboseif TRUE a short report is shown on stderr
spatial_indexif TRUE an R*Tree Spatial Index will be created
rowson completion will contain the total number of actually exported rows
err_msgon completion will contain an error message (if any)
Returns
0 on failure, any other value on success
See Also
load_shapefile
Note
the Shapefile format doesn't supports any distinction between LINESTRINGs and MULTILINESTRINGs, or between POLYGONs and MULTIPOLYGONs; as does not allows to clearly distinguish if the M-measure is required.
So a first preliminary scan of the Shapefile is required in order to correctly identify the actual payload (gtype = "AUTO", default case).
By explicitly specifying some expected geometry type this first scan will be skipped at all thus introducing a noticeable performance gain.
Anyway, declaring a mismatching geometry type will surely cause a failure.
SPATIALITE_DECLARE int load_XL ( sqlite3 *  sqlite,
const char *  path,
const char *  table,
unsigned int  worksheetIndex,
int  first_titles,
unsigned int *  rows,
char *  err_msg 
)

Loads an external spreadsheet (.xls) file into a newly created table.

Parameters
sqlitehandle to current DB connection
pathpathname of the spreadsheet file to be imported
tablethe name of the table to be created
worksheetIndexthe index identifying the worksheet to be imported
first_titlesif TRUE the first line is assumed to contain column names
rowson completion will contain the total number of actually exported rows
err_msgon completion will contain an error message (if any)
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE sqlite3_int64 math_llabs ( sqlite3_int64  value)

A portable replacement for C99 llabs()

Parameters
valuea 64 bit integer value
Returns
the corresponding absolute value
SPATIALITE_DECLARE double math_round ( double  value)

A portable replacement for C99 round()

Parameters
valuea double value
Returns
the nearest integeral value
SPATIALITE_DECLARE void remove_duplicated_rows ( sqlite3 *  sqlite,
char *  table 
)

Remove duplicated rows from a table.

Parameters
sqlitehandle to current DB connection
tablename of the table to be cleaned
See Also
check_duplicated_rows, remove_duplicated_rows_ex
Note
when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence.
SPATIALITE_DECLARE void remove_duplicated_rows_ex ( sqlite3 *  sqlite,
char *  table,
int *  removed 
)

Remove duplicated rows from a table.

Parameters
sqlitehandle to current DB connection
tablename of the table to be cleaned
removedon successful completion will contain the total count of removed duplicate rows
See Also
check_duplicated_rows, remove_duplicated_rows
Note
when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence.
SPATIALITE_DECLARE int sanitize_all_geometry_columns ( sqlite3 *  sqlite,
const char *  tmp_prefix,
const char *  output_dir,
int *  not_repaired,
char **  err_msg 
)

Sanitizes all Geometry Columns making all invalid geometries to be valid.

Parameters
sqlitehandle to current DB connection
tmp_prefixname-prefix for temporary tables
output_dirpathname of the directory to be created for report-files
not_repairedif this variable is not NULL on successful completion will contain the total count of repair failures (i.e. Geometries beyond possible repair)
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
sanitize_all_geometry_columns_r, check_geometry_column, check_all_geometry_columns, sanitize_geometry_column
Note
this function will attempt to make valid all invalid geometries found within all Geometry Columns (vector layers); a temporary table is required so to support each input table.
if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
not reentrant and thread unsafe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int sanitize_all_geometry_columns_r ( const void *  p_cache,
sqlite3 *  sqlite,
const char *  tmp_prefix,
const char *  output_dir,
int *  not_repaired,
char **  err_msg 
)

Sanitizes all Geometry Columns making all invalid geometries to be valid.

Parameters
p_cachea memory pointer returned by spatialite_alloc_connection()
sqlitehandle to current DB connection
tmp_prefixname-prefix for temporary tables
output_dirpathname of the directory to be created for report-files
not_repairedif this variable is not NULL on successful completion will contain the total count of repair failures (i.e. Geometries beyond possible repair)
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
sanitize_all_geometry_columns, check_geometry_column, check_all_geometry_columns, sanitize_geometry_column
Note
this function will attempt to make valid all invalid geometries found within all Geometry Columns (vector layers); a temporary table is required so to support each input table.
if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
reentrant and thread-safe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int sanitize_geometry_column ( sqlite3 *  sqlite,
const char *  table,
const char *  geom,
const char *  tmp_table,
const char *  report_path,
int *  n_invalids,
int *  n_repaired,
int *  n_discarded,
int *  n_failures,
char **  err_msg 
)

Sanitizes a Geometry Column making all invalid geometries to be valid.

Parameters
sqlitehandle to current DB connection
tablename of the table
geometryname of the column to be checked
tmp_tablename of the temporary table
report_pathpathname of the report-file
n_invalidsif this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the sanitize table
n_repairedif this variable is not NULL on successful completion will contain the total number of repaired Geometries
n_discardedif this variable is not NULL on successful completion will contain the total number of repaired Geometries (by discarding fragments)
n_failuresif this variable is not NULL on successful completion will contain the total number of repair failures (i.e. Geometries beyond possible repair)
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
sanitize_geometry_column_r, check_geometry_column, check_all_geometry_columns, sanitize_all_geometry_columns
Note
this function will attempt to make valid all invalid geometries found within a Geometry Column (layer); a temporary table is required.
if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
not reentrant and thread unsafe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int sanitize_geometry_column_r ( const void *  p_cache,
sqlite3 *  sqlite,
const char *  table,
const char *  geom,
const char *  tmp_table,
const char *  report_path,
int *  n_invalids,
int *  n_repaired,
int *  n_discarded,
int *  n_failures,
char **  err_msg 
)

Sanitizes a Geometry Column making all invalid geometries to be valid.

Parameters
p_cachea memory pointer returned by spatialite_alloc_connection()
sqlitehandle to current DB connection
tablename of the table
geometryname of the column to be checked
tmp_tablename of the temporary table
report_pathpathname of the report-file
n_invalidsif this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the sanitize table
n_repairedif this variable is not NULL on successful completion will contain the total number of repaired Geometries
n_discardedif this variable is not NULL on successful completion will contain the total number of repaired Geometries (by discarding fragments)
n_failuresif this variable is not NULL on successful completion will contain the total number of repair failures (i.e. Geometries beyond possible repair)
err_msgif this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned
See Also
sanitize_geometry_column, check_geometry_column, check_all_geometry_columns, sanitize_all_geometry_columns
Note
this function will attempt to make valid all invalid geometries found within a Geometry Column (layer); a temporary table is required.
if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well.
an eventual error message returned via err_msg requires to be deallocated by invoking free()
reentrant and thread-safe.
Returns
0 on failure, any other value on success
SPATIALITE_DECLARE int spatial_ref_sys_init ( sqlite3 *  sqlite,
int  verbose 
)

Inserts the inlined EPSG dataset into the "spatial_ref_sys" table.

Parameters
sqlitehandle to current DB connection
verboseif TRUE a short report is shown on stderr
Returns
0 on failure, any other value on success
See Also
spatial_ref_sys_init2
Note
this function is internally invoked by the SQL function InitSpatialMetadata(), and is not usually intended for direct use. This functions is now deprecated, and will simply call spatial_ref_sys_init2(sqlite, GAIA_EPSG_ANY, verbose).
SPATIALITE_DECLARE int spatial_ref_sys_init2 ( sqlite3 *  sqlite,
int  mode,
int  verbose 
)

Inserts the inlined EPSG dataset into the "spatial_ref_sys" table.

Parameters
sqlitehandle to current DB connection
modecan be one of GAIA_EPSG_ANY, GAIA_EPSG_NONE or GAIA_EPSG_WGS84_ONLY
verboseif TRUE a short report is shown on stderr
Returns
0 on failure, any other value on success
Note
this function is internally invoked by the SQL function InitSpatialMetadata(), and is not usually intended for direct use.
SPATIALITE_DECLARE void* spatialite_alloc_connection ( void  )

Initializes the internal memory block supporting each connection.

See Also
spatialite_init_ex, spatialite_cleanup_ex
Examples:
demo1.c, demo2.c, demo3.c, demo4.c, and demo5.c.
SPATIALITE_DECLARE void spatialite_cleanup ( void  )

Cleanup a SpatiaLite connection.

This function is now DEPRECATED; use spatialite_cleanup_ex() for all new development.

This function performs general cleanup, essentially undoing the effect of spatialite_init().

See Also
spatialite_init
SPATIALITE_DECLARE void spatialite_cleanup_ex ( const void *  ptr)

Cleanup a SpatiaLite connection.

This function performs general cleanup, essentially undoing the effect of spatialite_init_ex().

Parameters
ptrthe same memory pointer passed to the corresponding call to spatialite_init_ex() and returned by spatialite_alloc_connection()
See Also
spatialite_init_ex, spatialite_alloc_connection
Examples:
demo1.c, demo2.c, demo3.c, demo4.c, and demo5.c.
SPATIALITE_DECLARE void spatialite_init ( int  verbose)

Initializes a SpatiaLite connection.

This function is now DEPRECATED because is not reentrant (not thread safe); use spatialite_init_ex() for all new development.

Parameters
verboseif TRUE a short start-up message is shown on stderr
See Also
spatialite_cleanup, spatialite_init_ex
Note
You absolutely must invoke this function before attempting to perform any other SpatiaLite's call.
SPATIALITE_DECLARE void spatialite_init_ex ( sqlite3 *  db_handle,
const void *  ptr,
int  verbose 
)

Initializes a SpatiaLite connection.

Parameters
db_handlehandle to the current SQLite connection
ptra memory pointer returned by spatialite_alloc_connection()
verboseif TRUE a short start-up message is shown on stderr
See Also
spatialite_alloc_connection, spatialite_cleanup_ex, spatialite_init
Note
You absolutely must invoke this function before attempting to perform any other SpatiaLite's call.
Examples:
demo1.c, demo2.c, demo3.c, demo4.c, and demo5.c.
SPATIALITE_DECLARE void spatialite_init_geos ( void  )

Initializes the GEOS library.

Note
You are never supposed to invoke this function (internally handled).
SPATIALITE_DECLARE void spatialite_initialize ( void  )

Initializes the library.

Note
you are always expected to explicitly call this function before attempting to call any SpatiaLite own function.
SPATIALITE_DECLARE void spatialite_shutdown ( void  )

Finalizes the library.

Note
you are always expected to explicitly call this function immediately before exiting the main application.
This function will free any memory allocation and will release any system resource internally used by the library.
Examples:
demo1.c, demo2.c, demo3.c, demo4.c, and demo5.c.
SPATIALITE_DECLARE const char* spatialite_target_cpu ( void  )

Return the target CPU name.

Returns
the target CPU string.
SPATIALITE_DECLARE const char* spatialite_version ( void  )

Return the current library version.

Returns
the version string.
Examples:
demo1.c, demo3.c, demo4.c, and demo5.c.
SPATIALITE_DECLARE int update_layer_statistics ( sqlite3 *  sqlite,
const char *  table,
const char *  column 
)

Updates the LAYER_STATICS metadata table.

Parameters
sqlitehandle to current DB connection
tablename of the table to be processed
columnname of the geometry to be processed
Note
this function will explore the given table/geometry determining the number of rows and the full layer extent; a corresponding table/geometry entry is expected to be already declared in the GEOMETRY_COLUMNS table. These informations will be permanently stored into the LAYER_STATISTICS table; if such table does not yet exists will be implicitly created.
  • if table is NULL, any entry found within GEOMETRY_COLUMNS will be processed.
  • if table is not NULL and column is NULL, any geometry belonging to the given table will be processed.
  • if both table and column are not NULL, then only the given entry will be processed.
See Also
gaiaStatisticsInvalidate, gaiaGetLayerExtent, gaiaGetVectorLayersList
Returns
0 on failure, the total count of processed entries on success