Check-in [5fda27f68f]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:switching to 5.1.0-devel and supporting GEOS 3.9.1
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5fda27f68f175d28ec1d80eb148823c0649f254a
User & Date: sandro 2021-03-20 10:09:55
Context
2021-03-25
10:59
implementing WMS_RegisterStyle() check-in: b21fb5c28b user: sandro tags: trunk
2021-03-20
10:09
switching to 5.1.0-devel and supporting GEOS 3.9.1 check-in: 5fda27f68f user: sandro tags: trunk
2021-02-07
15:51
releasing 5.0.1 check-in: 9162b02b10 user: sandro tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to config.h.

149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "a.furieri@lqt.it"

/* Define to the full name of this package. */
#define PACKAGE_NAME "libspatialite"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libspatialite 5.0.1"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libspatialite"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "5.0.1"

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1








|








|







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "a.furieri@lqt.it"

/* Define to the full name of this package. */
#define PACKAGE_NAME "libspatialite"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libspatialite 5.1.0-devel"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libspatialite"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "5.1.0-devel"

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1

Changes to configure.

1
2
3
4
5
6
7
8
9
10
...
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
....
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
....
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
....
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
....
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
....
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
.....
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
.....
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597
19598
19599
19600
19601
.....
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
.....
20238
20239
20240
20241
20242
20243
20244

20245
20246
20247
20248
20249
20250
20251
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libspatialite 5.0.1.
#
# Report bugs to <a.furieri@lqt.it>.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
................................................................................
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME='libspatialite'
PACKAGE_TARNAME='libspatialite'
PACKAGE_VERSION='5.0.1'
PACKAGE_STRING='libspatialite 5.0.1'
PACKAGE_BUGREPORT='a.furieri@lqt.it'
PACKAGE_URL=''

# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
................................................................................
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures libspatialite 5.0.1 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.
................................................................................
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of libspatialite 5.0.1:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
................................................................................
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
libspatialite configure 5.0.1
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit
................................................................................
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_decl
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by libspatialite $as_me 5.0.1, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ $0 $@

_ACEOF
exec 5>>config.log
{
................................................................................
    CYGPATH_W=echo
  fi
fi


# Define the identity of the package.
 PACKAGE='libspatialite'
 VERSION='5.0.1'


# Some tools Automake needs.

ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}


................................................................................
  LIBS="-lz $LIBS"

else
  as_fn_error $? "'libz' is required but it doesn't seem to be installed on this system." "$LINENO" 5
fi


ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/control_points/Makefile src/cutter/Makefile src/topology/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/stored_procedures/Makefile src/connection_cache/Makefile src/connection_cache/generator/Makefile src/virtualtext/Makefile src/wfs/Makefile test/Makefile test/sql_stmt_tests/Makefile test/sql_stmt_geos_tests/Makefile test/sql_stmt_geos_380/Makefile test/sql_stmt_geos_non380/Makefile test/sql_stmt_geosadvanced_tests/Makefile test/sql_stmt_geopackage_tests/Makefile test/sql_stmt_gpkg_epsg492_tests/Makefile test/sql_stmt_gpkg_epsg493_tests/Makefile test/sql_stmt_gpkg_epsg600_tests/Makefile test/sql_stmt_proj_tests/Makefile test/sql_stmt_proj492_tests/Makefile test/sql_stmt_proj493_tests/Makefile test/sql_stmt_proj600_tests/Makefile test/sql_stmt_proj720_tests/Makefile test/sql_stmt_proj600security_tests/Makefile test/sql_stmt_mathsql_tests/Makefile test/sql_stmt_rtgeom_tests/Makefile test/sql_stmt_rttopo_tests/Makefile test/sql_stmt_libxml2_tests/Makefile test/sql_stmt_libxml2_rttopo_tests/Makefile test/sql_stmt_security_tests/Makefile test/sql_stmt_xmlsec_tests/Makefile test/sql_stmt_freexl_tests/Makefile test/sql_stmt_cache_tests/Makefile test/sql_stmt_gpkgcache_tests/Makefile test/sql_stmt_nocache_tests/Makefile test/sql_stmt_gpkgnocache_tests/Makefile test/sql_stmt_voronoj1_tests/Makefile test/sql_stmt_voronoj2_tests/Makefile test/sql_stmt_sequence_tests/Makefile test/sql_stmt_routing_tests/Makefile test/sql_stmt_logfile_tests/Makefile test/sql_stmt_iconv_tests/Makefile test/sql_stmt_proc_tests/Makefile test/sql_stmt_point_geom/Makefile test/sql_stmt_tiny_point/Makefile test/sql_stmt_postgres_tests/Makefile test/sql_stmt_geos370_tests/Makefile test/sql_stmt_renamenew_tests/Makefile test/sql_stmt_renameold_tests/Makefile test/sql_stmt_bufoptsnew_tests/Makefile test/sql_stmt_bufoptsold_tests/Makefile test/sql_stmt_minizip/Makefile test/sql_stmt_zip_proj6/Makefile test/sql_stmt_geos_390/Makefile test/sql_stmt_geos_non390/Makefile test/sql_stmt_rtgeom_390/Makefile test/sql_stmt_rtgeom_non390/Makefile test/sql_stmt_voronoj_390/Makefile test/sql_stmt_voronoj_non390/Makefile examples/Makefile Doxyfile spatialite.pc"


# exporting the TARGET_CPU string
splite_cpu=`$CC -dumpmachine`
cat >>confdefs.h <<_ACEOF
#define SPATIALITE_TARGET_CPU "$splite_cpu"
_ACEOF
................................................................................
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libspatialite $as_me 5.0.1, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@
................................................................................

Report bugs to <a.furieri@lqt.it>."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libspatialite config.status 5.0.1
configured by $0, generated by GNU Autoconf 2.69,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

................................................................................
    "test/sql_stmt_renamenew_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_renamenew_tests/Makefile" ;;
    "test/sql_stmt_renameold_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_renameold_tests/Makefile" ;;
    "test/sql_stmt_bufoptsnew_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_bufoptsnew_tests/Makefile" ;;
    "test/sql_stmt_bufoptsold_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_bufoptsold_tests/Makefile" ;;
    "test/sql_stmt_minizip/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_minizip/Makefile" ;;
    "test/sql_stmt_zip_proj6/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_zip_proj6/Makefile" ;;
    "test/sql_stmt_geos_390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_390/Makefile" ;;

    "test/sql_stmt_geos_non390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_non390/Makefile" ;;
    "test/sql_stmt_rtgeom_390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_rtgeom_390/Makefile" ;;
    "test/sql_stmt_rtgeom_non390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_rtgeom_non390/Makefile" ;;
    "test/sql_stmt_voronoj_390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_voronoj_390/Makefile" ;;
    "test/sql_stmt_voronoj_non390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_voronoj_non390/Makefile" ;;
    "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
    "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;


|







 







|
|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







>







1
2
3
4
5
6
7
8
9
10
...
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
....
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
....
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
....
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
....
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
....
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
.....
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
.....
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597
19598
19599
19600
19601
.....
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
.....
20238
20239
20240
20241
20242
20243
20244
20245
20246
20247
20248
20249
20250
20251
20252
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libspatialite 5.1.0-devel.
#
# Report bugs to <a.furieri@lqt.it>.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
................................................................................
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME='libspatialite'
PACKAGE_TARNAME='libspatialite'
PACKAGE_VERSION='5.1.0-devel'
PACKAGE_STRING='libspatialite 5.1.0-devel'
PACKAGE_BUGREPORT='a.furieri@lqt.it'
PACKAGE_URL=''

# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
................................................................................
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures libspatialite 5.1.0-devel to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.
................................................................................
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of libspatialite 5.1.0-devel:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
................................................................................
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
libspatialite configure 5.1.0-devel
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit
................................................................................
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_decl
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by libspatialite $as_me 5.1.0-devel, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ $0 $@

_ACEOF
exec 5>>config.log
{
................................................................................
    CYGPATH_W=echo
  fi
fi


# Define the identity of the package.
 PACKAGE='libspatialite'
 VERSION='5.1.0-devel'


# Some tools Automake needs.

ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}


................................................................................
  LIBS="-lz $LIBS"

else
  as_fn_error $? "'libz' is required but it doesn't seem to be installed on this system." "$LINENO" 5
fi


ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/control_points/Makefile src/cutter/Makefile src/topology/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/stored_procedures/Makefile src/connection_cache/Makefile src/connection_cache/generator/Makefile src/virtualtext/Makefile src/wfs/Makefile test/Makefile test/sql_stmt_tests/Makefile test/sql_stmt_geos_tests/Makefile test/sql_stmt_geos_380/Makefile test/sql_stmt_geos_non380/Makefile test/sql_stmt_geosadvanced_tests/Makefile test/sql_stmt_geopackage_tests/Makefile test/sql_stmt_gpkg_epsg492_tests/Makefile test/sql_stmt_gpkg_epsg493_tests/Makefile test/sql_stmt_gpkg_epsg600_tests/Makefile test/sql_stmt_proj_tests/Makefile test/sql_stmt_proj492_tests/Makefile test/sql_stmt_proj493_tests/Makefile test/sql_stmt_proj600_tests/Makefile test/sql_stmt_proj720_tests/Makefile test/sql_stmt_proj600security_tests/Makefile test/sql_stmt_mathsql_tests/Makefile test/sql_stmt_rtgeom_tests/Makefile test/sql_stmt_rttopo_tests/Makefile test/sql_stmt_libxml2_tests/Makefile test/sql_stmt_libxml2_rttopo_tests/Makefile test/sql_stmt_security_tests/Makefile test/sql_stmt_xmlsec_tests/Makefile test/sql_stmt_freexl_tests/Makefile test/sql_stmt_cache_tests/Makefile test/sql_stmt_gpkgcache_tests/Makefile test/sql_stmt_nocache_tests/Makefile test/sql_stmt_gpkgnocache_tests/Makefile test/sql_stmt_voronoj1_tests/Makefile test/sql_stmt_voronoj2_tests/Makefile test/sql_stmt_sequence_tests/Makefile test/sql_stmt_routing_tests/Makefile test/sql_stmt_logfile_tests/Makefile test/sql_stmt_iconv_tests/Makefile test/sql_stmt_proc_tests/Makefile test/sql_stmt_point_geom/Makefile test/sql_stmt_tiny_point/Makefile test/sql_stmt_postgres_tests/Makefile test/sql_stmt_geos370_tests/Makefile test/sql_stmt_renamenew_tests/Makefile test/sql_stmt_renameold_tests/Makefile test/sql_stmt_bufoptsnew_tests/Makefile test/sql_stmt_bufoptsold_tests/Makefile test/sql_stmt_minizip/Makefile test/sql_stmt_zip_proj6/Makefile test/sql_stmt_geos_390/Makefile test/sql_stmt_geos_391/Makefile test/sql_stmt_geos_non390/Makefile test/sql_stmt_rtgeom_390/Makefile test/sql_stmt_rtgeom_non390/Makefile test/sql_stmt_voronoj_390/Makefile test/sql_stmt_voronoj_non390/Makefile examples/Makefile Doxyfile spatialite.pc"


# exporting the TARGET_CPU string
splite_cpu=`$CC -dumpmachine`
cat >>confdefs.h <<_ACEOF
#define SPATIALITE_TARGET_CPU "$splite_cpu"
_ACEOF
................................................................................
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libspatialite $as_me 5.1.0-devel, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@
................................................................................

Report bugs to <a.furieri@lqt.it>."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libspatialite config.status 5.1.0-devel
configured by $0, generated by GNU Autoconf 2.69,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

................................................................................
    "test/sql_stmt_renamenew_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_renamenew_tests/Makefile" ;;
    "test/sql_stmt_renameold_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_renameold_tests/Makefile" ;;
    "test/sql_stmt_bufoptsnew_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_bufoptsnew_tests/Makefile" ;;
    "test/sql_stmt_bufoptsold_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_bufoptsold_tests/Makefile" ;;
    "test/sql_stmt_minizip/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_minizip/Makefile" ;;
    "test/sql_stmt_zip_proj6/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_zip_proj6/Makefile" ;;
    "test/sql_stmt_geos_390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_390/Makefile" ;;
    "test/sql_stmt_geos_391/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_391/Makefile" ;;
    "test/sql_stmt_geos_non390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_non390/Makefile" ;;
    "test/sql_stmt_rtgeom_390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_rtgeom_390/Makefile" ;;
    "test/sql_stmt_rtgeom_non390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_rtgeom_non390/Makefile" ;;
    "test/sql_stmt_voronoj_390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_voronoj_390/Makefile" ;;
    "test/sql_stmt_voronoj_non390/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_voronoj_non390/Makefile" ;;
    "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
    "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;

Changes to configure.ac.

1
2
3
4
5
6
7
8
9
10
11
12
...
184
185
186
187
188
189
190

191
192
193
194
195
196
197
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.61)
AC_INIT(libspatialite, 5.0.1, a.furieri@lqt.it)
AC_LANG(C)
AC_CONFIG_MACRO_DIR([m4])

AM_INIT_AUTOMAKE([foreign no-define])
AM_MAINTAINER_MODE
AC_CONFIG_HEADERS(./fakeconfig.h ./config.h ./src/headers/spatialite/gaiaconfig.h ./config-msvc.h ./src/headers/spatialite/gaiaconfig-msvc.h)

................................................................................
		test/sql_stmt_renamenew_tests/Makefile \
		test/sql_stmt_renameold_tests/Makefile \
		test/sql_stmt_bufoptsnew_tests/Makefile \
		test/sql_stmt_bufoptsold_tests/Makefile \
		test/sql_stmt_minizip/Makefile \
		test/sql_stmt_zip_proj6/Makefile \
		test/sql_stmt_geos_390/Makefile \

		test/sql_stmt_geos_non390/Makefile \
		test/sql_stmt_rtgeom_390/Makefile \
		test/sql_stmt_rtgeom_non390/Makefile \
		test/sql_stmt_voronoj_390/Makefile \
		test/sql_stmt_voronoj_non390/Makefile \
		examples/Makefile \
		Doxyfile \




|







 







>







1
2
3
4
5
6
7
8
9
10
11
12
...
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.61)
AC_INIT(libspatialite, 5.1.0-devel, a.furieri@lqt.it)
AC_LANG(C)
AC_CONFIG_MACRO_DIR([m4])

AM_INIT_AUTOMAKE([foreign no-define])
AM_MAINTAINER_MODE
AC_CONFIG_HEADERS(./fakeconfig.h ./config.h ./src/headers/spatialite/gaiaconfig.h ./config-msvc.h ./src/headers/spatialite/gaiaconfig-msvc.h)

................................................................................
		test/sql_stmt_renamenew_tests/Makefile \
		test/sql_stmt_renameold_tests/Makefile \
		test/sql_stmt_bufoptsnew_tests/Makefile \
		test/sql_stmt_bufoptsold_tests/Makefile \
		test/sql_stmt_minizip/Makefile \
		test/sql_stmt_zip_proj6/Makefile \
		test/sql_stmt_geos_390/Makefile \
		test/sql_stmt_geos_391/Makefile \
		test/sql_stmt_geos_non390/Makefile \
		test/sql_stmt_rtgeom_390/Makefile \
		test/sql_stmt_rtgeom_non390/Makefile \
		test/sql_stmt_voronoj_390/Makefile \
		test/sql_stmt_voronoj_non390/Makefile \
		examples/Makefile \
		Doxyfile \

Changes to fakeconfig.h.

200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "a.furieri@lqt.it"

/* Define to the full name of this package. */
#define PACKAGE_NAME "libspatialite"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libspatialite 5.0.1"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libspatialite"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "5.0.1"

/* Should be defined in order to enable PROJ.6 support. */
#define PROJ_NEW 1

/* Should contain a text-string describing the intended target CPU */
#define SPATIALITE_TARGET_CPU "x86_64-redhat-linux"

/* the Version of this package. */
#define SPATIALITE_VERSION "5.0.1"

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1








|








|








|







200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "a.furieri@lqt.it"

/* Define to the full name of this package. */
#define PACKAGE_NAME "libspatialite"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libspatialite 5.1.0-devel"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libspatialite"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "5.1.0-devel"

/* Should be defined in order to enable PROJ.6 support. */
#define PROJ_NEW 1

/* Should contain a text-string describing the intended target CPU */
#define SPATIALITE_TARGET_CPU "x86_64-redhat-linux"

/* the Version of this package. */
#define SPATIALITE_VERSION "5.1.0-devel"

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1

Changes to spatialite-sql-latest.html.

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
....
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
....
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357









3358
3359
3360
3361
3362
3363
3364
....
3797
3798
3799
3800
3801
3802
3803












3804
3805
3806
3807
3808
3809
3810
....
5863
5864
5865
5866
5867
5868
5869
5870





5871
5872
5873
5874
5875
5876
5877
....
5884
5885
5886
5887
5888
5889
5890




5891
5892
5893
5894
5895
5896
5897
			h2 {color:navy; text-align:center;} 
			h3 {color:blue;} 
			b {color:brown;}
			b.black {color:navy;}
			i {color:navy;}
		</style>
	</head><body bgcolor="#fffff0">
		<h2>SpatiaLite 5.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL functions reference list</h2>
		<a href="https://www.gaia-gis.it/fossil/libspatialite">back</a>
		<ul>
			<li><a href="#version">SQL Version Info [and build options testing] functions</a></li>
			<li><a href="#generic">Generic SQL utility functions</a></li>
			<li><a href="#global">Global settings per connection</a></li>
			<li><a href="#sequence">SQL functions manipulating Sequences</a></li>
			<li><a href="#math">SQL math functions</a></li>
................................................................................
	<li>if the <b>mode</b> arg <b>'NONE'</b> (alias <b>'EMPTY'</b>) is specified, no EPSG SRID will be inserted at all</li>
</ul></td></tr>
			<tr><td><b>InitAdvancedMetaData</b></td>
				<td>InitAdvancedMetaData( void ) : <i>Integer</i><hr>
					InitAdvancedMetaData( transaction <i>Integer</i> ) : <i>Integer</i>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>This one simply is an utility function intended to create several ancillary metadata tables required by <b>libspatialite v.5</b> and subsequent versions.</v><br>
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<hr>
				<b>Note</b>: will be automatically called by both <b>InitSpatialMetaData()</b> or <b>InitSpatialMetaDataFull()</b>, but could be usefull for recovering
				old databases created by earlier versions; it's absolutely harmless because any existing MetaTable will be left untouched.</td></tr>
			<tr><td><b>InitSpatialMetaDataFull</b></td>
				<td>InitSpatialMetaDataFull( void ) : <i>Integer</i><hr>
					InitSpatialMetaDataFull( transaction <i>Integer</i> ) : <i>Integer</i><hr>
					InitSpatialMetaDataFull( mode <i>String</i> ) : <i>Integer</i><hr>
................................................................................
				</ul>the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
			<tr><td><b>CreateMissingSystemTables</b></td>
				<td>CreateMissingSystemTables( void ) : <i>Integer</i><hr>
					CreateMissingSystemTables( relaxed <i>Integer</i> ) : <i>Integer</i><hr>
					CreateMissingSystemTables( relaxed <i>Integer</i> , transaction <i>Integer</i> ) : <i>Integer</i>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>This function will create any missing ancillary metadata table required by <b>libspatialite v.5</b> and subsequent versions.</v><br>
				<ul>
					<li>the <i>optional</i> argument <b>relaxed</b> has the same interpretation as in <b>CreateStylingTables()</b>:
					if it is explicitly set as <b>TRUE</b> then
					a <i>relaxed</i> version of the validating Triggers will be installed (not checking for strict <i><u>XSD schema validation</u></i>).</li>
					<li>if the <i>optional</i> argument <b>transaction</b> is explicitly set as <b>TRUE</b> then 
					the whole operation will be atomically confined within a monolithic SQL transaction</li>
				</ul>
				The return type is Integer, with a return value of 1 on success.<br>
				An exception will be raised on invalid arguments or on failure.<hr>
				<b>Note</b>: this SQL function is intended for safely upgrading
				old databases created by earlier versions; it's absolutely harmless because any existing MetaTable will be left untouched.</td></tr>









			<tr><td><b>InsertEpsgSrid</b></td>
				<td>InsertEpsgSrid( srid <i>Integer</i> ) : <i>Integer</i></td>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>Attempts to insert into <b>spatial_ref_sys</b> the EPSG definition uniquely identified by <b>srid</b><br>
				[the corresponding EPSG SRID definition will be copied from the inlined dataset defined in <b>libspatialite</b>]<hr>
the return type is Integer, with a return value of 1 for success or 0 for failure</td></tr>
................................................................................
				<td align="center" bgcolor="#99d099">libxml2</td>
				<td>Updates Copyright and License infos associated to a <b>Vector Coverage</b>.
				<ul>
					<li><b>coverage_name</b> must identify an existing Vector Coverage.</li>
					<li><b>copyright</b> identifies the Copyright holder; if <b>NULL</b> the current value will be preserved.</li>
					<li>the optional argument <b>license</b> must reference one the Data Licenses registered into the <b>data_licenses</b> table, as e.g. <i>CC0 1.0</i> or <i>CC BY 4.0</i>.</li>
				</ul><hr>












the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
				returned on invalid arguments.</td></tr>
		<tr><td><b>SE_RegisterVectorCoverageSrid</b></td>
				<td>SE_RegisterVectorCoverageSrid( coverage_name <i>String</i> , srid <i>Integer</i> ) : <i>Integer</i></td>
				<td></td>
				<td align="center" bgcolor="#99d099">libxml2</td>
				<td>Adds an alternative <b>SRID</b> to an already defined Vector Coverage.
................................................................................
                    image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> ) : <i>Integer</i><hr>
				    WMS_RegisterGetMap( getcapabilitites_url <i>Text</i> , getmap_url <i>Text</i> , layer_name <i>Text</i> , version <i>Text</i>, ref_sys <i>Text</i> ,
                    image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> , is_tiled <i>Boolean</i> , 
                    is_cached <i>Boolean</i> , tile_width <i>Integer</i> , tile_height <i>Integer</i> ) : <i>Integer</i><hr>
				    WMS_RegisterGetMap( getcapabilitites_url <i>Text</i> , getmap_url <i>Text</i> , layer_name <i>Text</i> , title <i>Text</i> , abstract <i>Text</i> , 
				    version <i>Text</i>, ref_sys <i>Text</i> , image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> , 
				    is_tiled <i>Boolean</i> , is_cached <i>Boolean</i> , tile_width <i>Integer</i> , tile_height <i>Integer</i> , bgcolor <i>Text</i> ,
				    is_queryable <i>Boolean</i> , getfeatureinfo_url <b>Text</b> ) : <i>Integer</i></td>





				<td colspan="3">Registers a WMS layer.
					<ul>
						<li><b>getcapabilities_url</b>: URL referencing the parent <i>WMS GetCapabilities</i> request (must be already registered).</li>
						<li><b>getmap_url</b>: base URL corresponding to the <i>WMS GetMap</i> request.</li>
						<li><b>layer_name</b> name of the <i>WMS Layer</i>.</li>
						<li><b>title</b> (<i>optional arg</i>): Title of the WMS Service.</li>
						<li><b>abstract</b> (<i>optional arg</i>): Abstract of the WMS Service.</li>
................................................................................
						<li><b>is_tiled</b> (<i>optional arg</i>): if <i>WMS GetMap</i> requests should be handled <i>by tiles</i> or not.</li>
						<li><b>is_cached</b> (<i>optional arg</i>): if <i>WMS GetMap</i> results should be cached or not (applies only to <i>tiled</i> requests).</li>
						<li><b>tile_width</b> (<i>optional arg</i>): tile width expressed in <i>pixels</i> (applies only to <i>tiled</i> requests).</li>
						<li><b>tile_height</b> (<i>optional arg</i>): tile height expressed in <i>pixels</i> (applies only to <i>tiled</i> requests).</li>
						<li><b>bgcolor</b> (<i>optional arg</i>): image background color (<i>Hex RGB color</i> as e.g. <b>'ff8000'</b> or <b>'A8A8A8'</b>).</li>
						<li><b>is_queriable</b> (<i>optional arg</i>): if the <i>WMS Layer</i> supports or not <i>GetFeatureInfo</i> requests.</li>
						<li><b>getfeatureinfo_url</b> (<i>optional arg</i>): base URL corresponding to a <i>WMS GetFeatureInfo</i> request.</li>




					</ul><hr>
					Will return <b>1</b> on success; <b>0</b> on failure; <b>-1</b> on invalid arguments.</td></tr>
			<tr><td><b>WMS_UnRegisterGetMap</b></td>
				<td>WMS_UnRegisterGetMap( getmap_url <i>Text</i> , layer_name <i>Text</i> ) : <i>Integer</i></td>
				<td colspan="3">Unregisters a WMS Layer (and all related children).<hr>
					Will return <b>1</b> on success; <b>0</b> on failure; <b>-1</b> on invalid arguments.</td></tr>
			<tr><td><b>WMS_SetGetMapInfos</b></td>







|







 







|







 







|











>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>







 







|
>
>
>
>
>







 







>
>
>
>







6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
....
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
....
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
....
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
....
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
....
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
			h2 {color:navy; text-align:center;} 
			h3 {color:blue;} 
			b {color:brown;}
			b.black {color:navy;}
			i {color:navy;}
		</style>
	</head><body bgcolor="#fffff0">
		<h2>SpatiaLite 5.1.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL functions reference list</h2>
		<a href="https://www.gaia-gis.it/fossil/libspatialite">back</a>
		<ul>
			<li><a href="#version">SQL Version Info [and build options testing] functions</a></li>
			<li><a href="#generic">Generic SQL utility functions</a></li>
			<li><a href="#global">Global settings per connection</a></li>
			<li><a href="#sequence">SQL functions manipulating Sequences</a></li>
			<li><a href="#math">SQL math functions</a></li>
................................................................................
	<li>if the <b>mode</b> arg <b>'NONE'</b> (alias <b>'EMPTY'</b>) is specified, no EPSG SRID will be inserted at all</li>
</ul></td></tr>
			<tr><td><b>InitAdvancedMetaData</b></td>
				<td>InitAdvancedMetaData( void ) : <i>Integer</i><hr>
					InitAdvancedMetaData( transaction <i>Integer</i> ) : <i>Integer</i>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>This one simply is an utility function intended to create several ancillary metadata tables required by <b>libspatialite v.5</b> and subsequent versions.<br>
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE<hr>
				<b>Note</b>: will be automatically called by both <b>InitSpatialMetaData()</b> or <b>InitSpatialMetaDataFull()</b>, but could be usefull for recovering
				old databases created by earlier versions; it's absolutely harmless because any existing MetaTable will be left untouched.</td></tr>
			<tr><td><b>InitSpatialMetaDataFull</b></td>
				<td>InitSpatialMetaDataFull( void ) : <i>Integer</i><hr>
					InitSpatialMetaDataFull( transaction <i>Integer</i> ) : <i>Integer</i><hr>
					InitSpatialMetaDataFull( mode <i>String</i> ) : <i>Integer</i><hr>
................................................................................
				</ul>the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE</td></tr>
			<tr><td><b>CreateMissingSystemTables</b></td>
				<td>CreateMissingSystemTables( void ) : <i>Integer</i><hr>
					CreateMissingSystemTables( relaxed <i>Integer</i> ) : <i>Integer</i><hr>
					CreateMissingSystemTables( relaxed <i>Integer</i> , transaction <i>Integer</i> ) : <i>Integer</i>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>This function will create any missing ancillary metadata table required by <b>libspatialite v.5</b> and subsequent versions.<br>
				<ul>
					<li>the <i>optional</i> argument <b>relaxed</b> has the same interpretation as in <b>CreateStylingTables()</b>:
					if it is explicitly set as <b>TRUE</b> then
					a <i>relaxed</i> version of the validating Triggers will be installed (not checking for strict <i><u>XSD schema validation</u></i>).</li>
					<li>if the <i>optional</i> argument <b>transaction</b> is explicitly set as <b>TRUE</b> then 
					the whole operation will be atomically confined within a monolithic SQL transaction</li>
				</ul>
				The return type is Integer, with a return value of 1 on success.<br>
				An exception will be raised on invalid arguments or on failure.<hr>
				<b>Note</b>: this SQL function is intended for safely upgrading
				old databases created by earlier versions; it's absolutely harmless because any existing MetaTable will be left untouched.</td></tr>
			<tr><td><b>CreateMissingRasterlite2Columns</b></td>
				<td>CreateMissingRasterlite2Columns( void ) : <i>Integer</i></td>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>This function will create any missing column on metadata tables required by <b>librasterlite2 v.2</b> and subsequent versions.<br><br>
				The return type is Integer, with a return value of 1 on success and 0 on failure.<hr>
				<b>Note</b>: this SQL function is intended for safely upgrading
				old databases created by earlier versions of SpatiaLite (5.0.0 or 5.0.1); it's absolutely harmless if the currently 
				connected DB already has all the columns required by Rasterlite2 v.2.0</td></tr>
			<tr><td><b>InsertEpsgSrid</b></td>
				<td>InsertEpsgSrid( srid <i>Integer</i> ) : <i>Integer</i></td>
				<td></td>
				<td align="center" bgcolor="#d0f0d0">base</td>
				<td>Attempts to insert into <b>spatial_ref_sys</b> the EPSG definition uniquely identified by <b>srid</b><br>
				[the corresponding EPSG SRID definition will be copied from the inlined dataset defined in <b>libspatialite</b>]<hr>
the return type is Integer, with a return value of 1 for success or 0 for failure</td></tr>
................................................................................
				<td align="center" bgcolor="#99d099">libxml2</td>
				<td>Updates Copyright and License infos associated to a <b>Vector Coverage</b>.
				<ul>
					<li><b>coverage_name</b> must identify an existing Vector Coverage.</li>
					<li><b>copyright</b> identifies the Copyright holder; if <b>NULL</b> the current value will be preserved.</li>
					<li>the optional argument <b>license</b> must reference one the Data Licenses registered into the <b>data_licenses</b> table, as e.g. <i>CC0 1.0</i> or <i>CC BY 4.0</i>.</li>
				</ul><hr>
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
				returned on invalid arguments.</td></tr>
		<tr><td><b>SE_SetVectorCoverageVisibilityRange</b></td>
				<td>SE_SetVectorCoverageVisibilityRange( coverage_name <i>String</i> , minScaleDenominator <i>Double</i> , maxScaleDenominator <i>Double</i> ): <i>Integer</i></td>
				<td></td>
				<td align="center" bgcolor="#99d099">libxml2</td>
				<td>Updates the Visibility Scale Range associated to a <b>Vector Coverage</b>.
				<ul>
					<li><b>coverage_name</b> must identify an existing Vector Coverage.</li>
					<li><b>minScaleDenominator</b> and <b>maxScaleDenominator</b> set the upper and lower visibility limits.<br>
						The one or the other (or both) can legitimately be set to <b>NULL</b>, thus meaning that the corresponding limit is intentionally left unassigned.</li>
				</ul><hr>
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be
				returned on invalid arguments.</td></tr>
		<tr><td><b>SE_RegisterVectorCoverageSrid</b></td>
				<td>SE_RegisterVectorCoverageSrid( coverage_name <i>String</i> , srid <i>Integer</i> ) : <i>Integer</i></td>
				<td></td>
				<td align="center" bgcolor="#99d099">libxml2</td>
				<td>Adds an alternative <b>SRID</b> to an already defined Vector Coverage.
................................................................................
                    image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> ) : <i>Integer</i><hr>
				    WMS_RegisterGetMap( getcapabilitites_url <i>Text</i> , getmap_url <i>Text</i> , layer_name <i>Text</i> , version <i>Text</i>, ref_sys <i>Text</i> ,
                    image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> , is_tiled <i>Boolean</i> , 
                    is_cached <i>Boolean</i> , tile_width <i>Integer</i> , tile_height <i>Integer</i> ) : <i>Integer</i><hr>
				    WMS_RegisterGetMap( getcapabilitites_url <i>Text</i> , getmap_url <i>Text</i> , layer_name <i>Text</i> , title <i>Text</i> , abstract <i>Text</i> , 
				    version <i>Text</i>, ref_sys <i>Text</i> , image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> , 
				    is_tiled <i>Boolean</i> , is_cached <i>Boolean</i> , tile_width <i>Integer</i> , tile_height <i>Integer</i> , bgcolor <i>Text</i> ,
				    is_queryable <i>Boolean</i> , getfeatureinfo_url <i>Text</i> ) : <i>Integer</i><hr>
				    WMS_RegisterGetMap( getcapabilitites_url <i>Text</i> , getmap_url <i>Text</i> , layer_name <i>Text</i> , title <i>Text</i> , abstract <i>Text</i> , 
				    version <i>Text</i>, ref_sys <i>Text</i> , image_format <i>Text</i> , style <i>Text</i> , is_transparent <i>Boolean</i> , flip_axes <i>Boolean</i> , 
				    is_tiled <i>Boolean</i> , is_cached <i>Boolean</i> , tile_width <i>Integer</i> , tile_height <i>Integer</i> , bgcolor <i>Text</i> ,
				    is_queryable <i>Boolean</i> , getfeatureinfo_url <i>Text</i> , cascaded <i>Integer</i> , </i>minScaleDenominato <i>Double</i> , 
				    maxScaleDenominator <i>Double</i> ) : <i>Integer</i></td>
				<td colspan="3">Registers a WMS layer.
					<ul>
						<li><b>getcapabilities_url</b>: URL referencing the parent <i>WMS GetCapabilities</i> request (must be already registered).</li>
						<li><b>getmap_url</b>: base URL corresponding to the <i>WMS GetMap</i> request.</li>
						<li><b>layer_name</b> name of the <i>WMS Layer</i>.</li>
						<li><b>title</b> (<i>optional arg</i>): Title of the WMS Service.</li>
						<li><b>abstract</b> (<i>optional arg</i>): Abstract of the WMS Service.</li>
................................................................................
						<li><b>is_tiled</b> (<i>optional arg</i>): if <i>WMS GetMap</i> requests should be handled <i>by tiles</i> or not.</li>
						<li><b>is_cached</b> (<i>optional arg</i>): if <i>WMS GetMap</i> results should be cached or not (applies only to <i>tiled</i> requests).</li>
						<li><b>tile_width</b> (<i>optional arg</i>): tile width expressed in <i>pixels</i> (applies only to <i>tiled</i> requests).</li>
						<li><b>tile_height</b> (<i>optional arg</i>): tile height expressed in <i>pixels</i> (applies only to <i>tiled</i> requests).</li>
						<li><b>bgcolor</b> (<i>optional arg</i>): image background color (<i>Hex RGB color</i> as e.g. <b>'ff8000'</b> or <b>'A8A8A8'</b>).</li>
						<li><b>is_queriable</b> (<i>optional arg</i>): if the <i>WMS Layer</i> supports or not <i>GetFeatureInfo</i> requests.</li>
						<li><b>getfeatureinfo_url</b> (<i>optional arg</i>): base URL corresponding to a <i>WMS GetFeatureInfo</i> request.</li>
						<li><b>cascaded</b> (<i>optional arg</i>): number of cascaded WMS servers.
							Can be legitimately set to <b>NULL</b>, thus intending <i>Unknown/Undefined</i>.</li>
						<li><b>minScaleDenominator</b> and <b>maxScaleDenominator</b>  (<i>optional args</i>) are intended to set the lower and upper limits of the Visibility Scale Range.
							Both can be legitimately set to <b>NULL</b>, thus intending that the corresponding limit is intentionally left undefined.</li>
					</ul><hr>
					Will return <b>1</b> on success; <b>0</b> on failure; <b>-1</b> on invalid arguments.</td></tr>
			<tr><td><b>WMS_UnRegisterGetMap</b></td>
				<td>WMS_UnRegisterGetMap( getmap_url <i>Text</i> , layer_name <i>Text</i> ) : <i>Integer</i></td>
				<td colspan="3">Unregisters a WMS Layer (and all related children).<hr>
					Will return <b>1</b> on success; <b>0</b> on failure; <b>-1</b> on invalid arguments.</td></tr>
			<tr><td><b>WMS_SetGetMapInfos</b></td>

Changes to src/Makefile.am.

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
	./srsinit/libsrsinit.la \
	./stored_procedures/libstored_procedures.la \
	./connection_cache/libconnection_cache.la \
	./virtualtext/libvirtualtext.la \
	./wfs/libwfs.la @LIBXML2_LIBS@

if MINGW
libspatialite_la_LDFLAGS = -version-info 4:4:0 -no-undefined
libspatialite_la_LIBADD += -lm
else 
if ANDROID
libspatialite_la_LDFLAGS = -version-info 8:2:1
libspatialite_la_LIBADD += -ldl -lm
else
libspatialite_la_LDFLAGS = -version-info 8:2:1
libspatialite_la_LIBADD += -lpthread -ldl -lm
endif
endif

mod_spatialite_la_SOURCES = versioninfo/version.c

mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la \







|



|


|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
	./srsinit/libsrsinit.la \
	./stored_procedures/libstored_procedures.la \
	./connection_cache/libconnection_cache.la \
	./virtualtext/libvirtualtext.la \
	./wfs/libwfs.la @LIBXML2_LIBS@

if MINGW
libspatialite_la_LDFLAGS = -version-info 5:1:0 -no-undefined
libspatialite_la_LIBADD += -lm
else 
if ANDROID
libspatialite_la_LDFLAGS = -version-info 8:2:2
libspatialite_la_LIBADD += -ldl -lm
else
libspatialite_la_LDFLAGS = -version-info 8:2:2
libspatialite_la_LIBADD += -lpthread -ldl -lm
endif
endif

mod_spatialite_la_SOURCES = versioninfo/version.c

mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la \

Changes to src/Makefile.in.

451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
	./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \
	./control_points/libcontrol_points.la ./cutter/libcutter.la \
	./topology/libtopology.la ./srsinit/libsrsinit.la \
	./stored_procedures/libstored_procedures.la \
	./connection_cache/libconnection_cache.la \
	./virtualtext/libvirtualtext.la ./wfs/libwfs.la @LIBXML2_LIBS@ \
	$(am__append_1) $(am__append_2) $(am__append_3)
@ANDROID_FALSE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 8:2:1
@ANDROID_TRUE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 8:2:1
@MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:4:0 -no-undefined
mod_spatialite_la_SOURCES = versioninfo/version.c
mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la ./gaiaexif/gaiaexif.la \
	./gaiageo/gaiageo.la ./geopackage/geopackage.la \
	./spatialite/splite.la ./shapefiles/shapefiles.la ./dxf/dxf.la \
	./md5/md5.la ./control_points/control_points.la \
	./cutter/cutter.la ./topology/topology.la ./srsinit/srsinit.la \
	./stored_procedures/stored_procedures.la \







|
|
|







451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
	./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \
	./control_points/libcontrol_points.la ./cutter/libcutter.la \
	./topology/libtopology.la ./srsinit/libsrsinit.la \
	./stored_procedures/libstored_procedures.la \
	./connection_cache/libconnection_cache.la \
	./virtualtext/libvirtualtext.la ./wfs/libwfs.la @LIBXML2_LIBS@ \
	$(am__append_1) $(am__append_2) $(am__append_3)
@ANDROID_FALSE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 8:2:2
@ANDROID_TRUE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 8:2:2
@MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 5:1:0 -no-undefined
mod_spatialite_la_SOURCES = versioninfo/version.c
mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la ./gaiaexif/gaiaexif.la \
	./gaiageo/gaiageo.la ./geopackage/geopackage.la \
	./spatialite/splite.la ./shapefiles/shapefiles.la ./dxf/dxf.la \
	./md5/md5.la ./control_points/control_points.la \
	./cutter/cutter.la ./topology/topology.la ./srsinit/srsinit.la \
	./stored_procedures/stored_procedures.la \

Changes to src/headers/spatialite.h.

2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
 */
    SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetRTreeFullExtent (sqlite3 *
							       db_handle,
							       const char
							       *db_prefix,
							       const char *name,
							       int srid);

/**
  Will attempt to retrieve the Full Extent from an R*Tree (GeoPackage)
   
 \param db_handle handle to the current SQLite connection
 \param prefix schema prefix identifying the DB containing the R*Tree\n
 "main" always identifies the main DB (primary, not Attached).
 \param name the name of the R*Tree table
 \param srid the intended SRID for the R*Tree
 
 \sa gaiaGetRTreeFullExtent
 
 \return a Rectangle Geometry corresponding to the Full Extent,\n
 NULL on failure.
 */
    SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetGpkgRTreeFullExtent (sqlite3 *
								   db_handle,
								   const char
								   *db_prefix,
								   const char
								   *name,
								   int srid);







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







2071
2072
2073
2074
2075
2076
2077















2078
2079
2080
2081
2082
2083
2084
 */
    SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetRTreeFullExtent (sqlite3 *
							       db_handle,
							       const char
							       *db_prefix,
							       const char *name,
							       int srid);















    SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetGpkgRTreeFullExtent (sqlite3 *
								   db_handle,
								   const char
								   *db_prefix,
								   const char
								   *name,
								   int srid);

Changes to src/headers/spatialite/gaiaconfig-msvc.h.

49
50
51
52
53
54
55
56
/* Should be defined in order to disable PROJ.4 support. */
/* #undef OMIT_PROJ */

/* Should be defined in order to enable PROJ.6 support. */
#define PROJ_NEW 1

/* the Version of this package */
#define SPATIALITE_VERSION "5.0.1"







|
49
50
51
52
53
54
55
56
/* Should be defined in order to disable PROJ.4 support. */
/* #undef OMIT_PROJ */

/* Should be defined in order to enable PROJ.6 support. */
#define PROJ_NEW 1

/* the Version of this package */
#define SPATIALITE_VERSION "5.1.0-devel"

Changes to src/headers/spatialite/gaiaconfig.h.

55
56
57
58
59
60
61
62
/* Should be defined in order to enable PROJ.6 support. */
#define PROJ_NEW 1

/* Should contain a text-string describing the intended target CPU */
#define SPATIALITE_TARGET_CPU "x86_64-redhat-linux"

/* the Version of this package */
#define SPATIALITE_VERSION "5.0.1"







|
55
56
57
58
59
60
61
62
/* Should be defined in order to enable PROJ.6 support. */
#define PROJ_NEW 1

/* Should contain a text-string describing the intended target CPU */
#define SPATIALITE_TARGET_CPU "x86_64-redhat-linux"

/* the Version of this package */
#define SPATIALITE_VERSION "5.1.0-devel"

Changes to src/headers/spatialite_private.h.

725
726
727
728
729
730
731








732
733
734
735
736
737
738
...
787
788
789
790
791
792
793
794


795
796
797
798
799
800
801
....
1536
1537
1538
1539
1540
1541
1542



1543
1544
1545
1546
1547
1548
						      int is_editable);

    SPATIALITE_PRIVATE int set_vector_coverage_copyright (void *p_sqlite,
							  const char
							  *coverage_name,
							  const char *copyright,
							  const char *license);









    SPATIALITE_PRIVATE int register_vector_coverage_srid (void *p_sqlite,
							  const char
							  *coverage_name,
							  int srid);

    SPATIALITE_PRIVATE int unregister_vector_coverage_srid (void *p_sqlite,
................................................................................
						int flip_axes,
						int tiled,
						int cached,
						int tile_width,
						int tile_height,
						const char *bgcolor,
						int is_queryable,
						const char *getfeatureinfo_url);



    SPATIALITE_PRIVATE int unregister_wms_getmap (void *p_sqlite,
						  const char *url,
						  const char *layer_name);

    SPATIALITE_PRIVATE int set_wms_getmap_infos (void *p_sqlite,
						 const char *url,
................................................................................
    SPATIALITE_PRIVATE int create_vector_styled_layers_view (sqlite3 * sqlite);

    SPATIALITE_PRIVATE int createMissingSystemTables (sqlite3 * sqlite,
						      const void *cache,
						      int relaxed,
						      int transaction,
						      char **err_msg);




#ifdef __cplusplus
}
#endif

#endif				/* _SPATIALITE_PRIVATE_H */







>
>
>
>
>
>
>
>







 







|
>
>







 







>
>
>






725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
...
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
....
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
						      int is_editable);

    SPATIALITE_PRIVATE int set_vector_coverage_copyright (void *p_sqlite,
							  const char
							  *coverage_name,
							  const char *copyright,
							  const char *license);

    SPATIALITE_PRIVATE int set_vector_coverage_visibility_range (void *p_sqlite,
								 const char
								 *coverage_name,
								 double
								 min_scale,
								 double
								 max_scale);

    SPATIALITE_PRIVATE int register_vector_coverage_srid (void *p_sqlite,
							  const char
							  *coverage_name,
							  int srid);

    SPATIALITE_PRIVATE int unregister_vector_coverage_srid (void *p_sqlite,
................................................................................
						int flip_axes,
						int tiled,
						int cached,
						int tile_width,
						int tile_height,
						const char *bgcolor,
						int is_queryable,
						const char *getfeatureinfo_url,
						int cascaded, double min_scale,
						double max_scale);

    SPATIALITE_PRIVATE int unregister_wms_getmap (void *p_sqlite,
						  const char *url,
						  const char *layer_name);

    SPATIALITE_PRIVATE int set_wms_getmap_infos (void *p_sqlite,
						 const char *url,
................................................................................
    SPATIALITE_PRIVATE int create_vector_styled_layers_view (sqlite3 * sqlite);

    SPATIALITE_PRIVATE int createMissingSystemTables (sqlite3 * sqlite,
						      const void *cache,
						      int relaxed,
						      int transaction,
						      char **err_msg);

    SPATIALITE_PRIVATE int createMissingRasterlite2Columns (sqlite3 *
							    db_handle);

#ifdef __cplusplus
}
#endif

#endif				/* _SPATIALITE_PRIVATE_H */

Changes to src/shapefiles/shapefiles.c.

6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
			    break;
			};
		  }
		/* geometry */
		if (indented)
		    fprintf (out, "\r\n\t\t},\r\n\t\t\"geometry\" : ");
		else
		    fprintf (out, "},\"geomety\":");
		switch (sqlite3_column_type (stmt, 0))
		  {
		  case SQLITE_NULL:
		      fprintf (out, "null");
		      break;
		  default:
		      tval = (const char *) sqlite3_column_text (stmt, 0);







|







6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
			    break;
			};
		  }
		/* geometry */
		if (indented)
		    fprintf (out, "\r\n\t\t},\r\n\t\t\"geometry\" : ");
		else
		    fprintf (out, "},\"geometry\":");
		switch (sqlite3_column_type (stmt, 0))
		  {
		  case SQLITE_NULL:
		      fprintf (out, "null");
		      break;
		  default:
		      tval = (const char *) sqlite3_column_text (stmt, 0);

Changes to src/spatialite/extra_tables.c.

2016
2017
2018
2019
2020
2021
2022



2023
2024
2025
2026
2027
2028
2029
....
2077
2078
2079
2080
2081
2082
2083

2084
2085
2086
2087
2088
2089
2090
....
2099
2100
2101
2102
2103
2104
2105

2106
2107
2108
2109
2110
2111
2112
....
2773
2774
2775
2776
2777
2778
2779


2780
2781
2782
2783
2784
2785
2786
....
2831
2832
2833
2834
2835
2836
2837

2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849

2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863

2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875

2876
2877
2878
2879
2880
2881
2882
2883
2884
2885

2886
2887
2888
2889
2890
2891
2892
2893
2894
2895

2896
2897
2898
2899
2900
2901
2902
2903
....
3156
3157
3158
3159
3160
3161
3162



3163
3164
3165
3166
3167
3168
3169
....
5127
5128
5129
5130
5131
5132
5133










































































	"extent_maxy DOUBLE,\n"
	"strict_resolution INTEGER NOT NULL,\n"
	"mixed_resolutions INTEGER NOT NULL,\n"
	"section_paths INTEGER NOT NULL,\n"
	"section_md5 INTEGER NOT NULL,\n"
	"section_summary INTEGER NOT NULL,\n"
	"is_queryable INTEGER NOT NULL,\n"



	"red_band_index INTEGER,\n"
	"green_band_index INTEGER,\n"
	"blue_band_index INTEGER,\n"
	"nir_band_index INTEGER,\n"
	"enable_auto_ndvi INTEGER,\n"
	"copyright TEXT NOT NULL DEFAULT '*** unknown ***',\n"
	"license INTEGER NOT NULL DEFAULT 0,\n"
................................................................................
	"c.extent_maxy AS extent_maxy, c.srid AS srid, 1 AS native_srid, "
	"s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text, "
	"c.strict_resolution AS strict_resolution, "
	"c.mixed_resolutions AS mixed_resolutions, "
	"c.section_paths AS section_paths, c.section_md5 AS section_md5, "
	"c.section_summary AS section_summary, c.is_queryable AS is_queryable, "

	"c.red_band_index, c.green_band_index, c.blue_band_index, "
	"c.nir_band_index, c.enable_auto_ndvi\n"
	"FROM raster_coverages AS c\n"
	"LEFT JOIN spatial_ref_sys AS s ON (c.srid = s.srid)\n"
	"UNION\nSELECT c.coverage_name AS coverage_name, c.title AS title, "
	"c.abstract AS abstract,  c.sample_type AS sample_type, "
	"c.pixel_type AS pixel_type, c.num_bands AS num_bands, "
................................................................................
	"x.extent_maxy AS extent_maxy, s.srid AS srid, 0 AS native_srid, "
	"s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text, "
	"c.strict_resolution AS strict_resolution, "
	"c.mixed_resolutions AS mixed_resolutions, "
	"c.section_paths AS section_paths, c.section_md5 AS section_md5, "
	"c.section_summary AS section_summary, c.is_queryable AS is_queryable, "

	"c.red_band_index, c.green_band_index, c.blue_band_index, "
	"c.nir_band_index, c.enable_auto_ndvi\n"
	"FROM raster_coverages AS c\n"
	"JOIN raster_coverages_srid AS x ON (c.coverage_name = x.coverage_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
    if (ret != SQLITE_OK)
................................................................................
	"extent_miny DOUBLE,\n"
	"extent_maxx DOUBLE,\n"
	"extent_maxy DOUBLE,\n"
	"title TEXT NOT NULL DEFAULT '*** missing Title ***',\n"
	"abstract TEXT NOT NULL DEFAULT '*** missing Abstract ***',\n"
	"is_queryable INTEGER NOT NULL,\n"
	"is_editable INTEGER NOT NULL,\n"


	"copyright TEXT NOT NULL DEFAULT '*** unknown ***',\n"
	"license INTEGER NOT NULL DEFAULT 0,\n"
	"CONSTRAINT fk_vc_gc FOREIGN KEY (f_table_name, f_geometry_column) "
	"REFERENCES geometry_columns (f_table_name, f_geometry_column) "
	"ON DELETE CASCADE,\n"
	"CONSTRAINT fk_vc_sv FOREIGN KEY (view_name, view_geometry) "
	"REFERENCES views_geometry_columns (view_name, view_geometry) "
................................................................................
	  sqlite3_free (err_msg);
	  return 0;
      }

/* creating the vector_coverages_ref_sys view */
    sql = "CREATE VIEW IF NOT EXISTS vector_coverages_ref_sys AS\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "

	"v.is_queryable AS is_queryable, v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN geometry_columns AS x ON (v.topology_name IS NULL AND v.network_name IS NULL AND "
	"v.f_table_name IS NOT NULL AND v.f_geometry_column IS NOT NULL AND "
	"v.f_table_name = x.f_table_name AND v.f_geometry_column = x.f_geometry_column)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "

	"v.is_queryable AS is_queryable, v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN views_geometry_columns AS y ON (v.view_name IS NOT NULL AND "
	"v.view_geometry IS NOT NULL AND v.view_name = y.view_name AND "
	"v.view_geometry = y.view_geometry)\n"
	"JOIN geometry_columns AS x ON (y.f_table_name = x.f_table_name AND "
	"y.f_geometry_column = x.f_geometry_column)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "

	"v.is_queryable AS is_queryable, v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN virts_geometry_columns AS x ON (v.virt_name IS NOT NULL "
	"AND v.virt_geometry IS NOT NULL AND v.virt_name = x.virt_name "
	"AND v.virt_geometry = x.virt_geometry)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "

	"v.is_queryable AS is_queryable, v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN topologies AS x ON (v.topology_name IS NOT NULL AND v.topology_name = x.topology_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "

	"v.is_queryable AS is_queryable, v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN networks AS x ON (v.network_name IS NOT NULL AND v.network_name = x.network_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "

	"v.is_queryable AS is_queryable, v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, x.extent_minx AS extent_minx, "
	"x.extent_miny AS extent_miny, x.extent_maxx AS extent_maxx, x.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 0 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN vector_coverages_srid AS x ON (v.coverage_name = x.coverage_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)";
................................................................................
	"format TEXT NOT NULL,\n"
	"style TEXT NOT NULL,\n"
	"transparent INTEGER NOT NULL CHECK (transparent IN (0, 1)),\n"
	"flip_axes INTEGER NOT NULL CHECK (flip_axes IN (0, 1)),\n"
	"is_queryable INTEGER NOT NULL CHECK (is_queryable IN (0, 1)),\n"
	"getfeatureinfo_url TEXT,\n"
	"bgcolor TEXT,\n"



	"tiled INTEGER NOT NULL CHECK (tiled IN (0, 1)),\n"
	"tile_width INTEGER NOT NULL CHECK (tile_width BETWEEN 256 AND 5000),\n"
	"tile_height INTEGER NOT NULL CHECK (tile_width BETWEEN 256 AND 5000),\n"
	"is_cached INTEGER NOT NULL CHECK (is_cached IN (0, 1)),\n"
	"copyright TEXT NOT NULL DEFAULT '*** unknown ***',\n"
	"license INTEGER NOT NULL DEFAULT 0,\n"
	"CONSTRAINT fk_wms_getmap FOREIGN KEY (parent_id) "
................................................................................

/* full success */
    *err_msg = NULL;
    return 1;
#endif /* end RTTOPO */
#endif /* end LIBXML2 */
}

















































































>
>
>







 







>







 







>







 







>
>







 







>
|











>
|













>
|











>
|









>
|









>
|







 







>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
....
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
....
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
....
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
....
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
....
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
....
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
	"extent_maxy DOUBLE,\n"
	"strict_resolution INTEGER NOT NULL,\n"
	"mixed_resolutions INTEGER NOT NULL,\n"
	"section_paths INTEGER NOT NULL,\n"
	"section_md5 INTEGER NOT NULL,\n"
	"section_summary INTEGER NOT NULL,\n"
	"is_queryable INTEGER NOT NULL,\n"
	"is_opaque INTEGER NOT NULL DEFAULT 0,\n"
	"min_scale DOUBLE,\n"
	"max_scale DOUBLE,\n"
	"red_band_index INTEGER,\n"
	"green_band_index INTEGER,\n"
	"blue_band_index INTEGER,\n"
	"nir_band_index INTEGER,\n"
	"enable_auto_ndvi INTEGER,\n"
	"copyright TEXT NOT NULL DEFAULT '*** unknown ***',\n"
	"license INTEGER NOT NULL DEFAULT 0,\n"
................................................................................
	"c.extent_maxy AS extent_maxy, c.srid AS srid, 1 AS native_srid, "
	"s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text, "
	"c.strict_resolution AS strict_resolution, "
	"c.mixed_resolutions AS mixed_resolutions, "
	"c.section_paths AS section_paths, c.section_md5 AS section_md5, "
	"c.section_summary AS section_summary, c.is_queryable AS is_queryable, "
	"c.is_opaque AS is_opaque, c.min_scale AS min_scale, c.max_scale AS max_scale, "
	"c.red_band_index, c.green_band_index, c.blue_band_index, "
	"c.nir_band_index, c.enable_auto_ndvi\n"
	"FROM raster_coverages AS c\n"
	"LEFT JOIN spatial_ref_sys AS s ON (c.srid = s.srid)\n"
	"UNION\nSELECT c.coverage_name AS coverage_name, c.title AS title, "
	"c.abstract AS abstract,  c.sample_type AS sample_type, "
	"c.pixel_type AS pixel_type, c.num_bands AS num_bands, "
................................................................................
	"x.extent_maxy AS extent_maxy, s.srid AS srid, 0 AS native_srid, "
	"s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text, "
	"c.strict_resolution AS strict_resolution, "
	"c.mixed_resolutions AS mixed_resolutions, "
	"c.section_paths AS section_paths, c.section_md5 AS section_md5, "
	"c.section_summary AS section_summary, c.is_queryable AS is_queryable, "
	"c.is_opaque AS is_opaque, c.min_scale AS min_scale, c.max_scale AS max_scale, "
	"c.red_band_index, c.green_band_index, c.blue_band_index, "
	"c.nir_band_index, c.enable_auto_ndvi\n"
	"FROM raster_coverages AS c\n"
	"JOIN raster_coverages_srid AS x ON (c.coverage_name = x.coverage_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
    if (ret != SQLITE_OK)
................................................................................
	"extent_miny DOUBLE,\n"
	"extent_maxx DOUBLE,\n"
	"extent_maxy DOUBLE,\n"
	"title TEXT NOT NULL DEFAULT '*** missing Title ***',\n"
	"abstract TEXT NOT NULL DEFAULT '*** missing Abstract ***',\n"
	"is_queryable INTEGER NOT NULL,\n"
	"is_editable INTEGER NOT NULL,\n"
	"min_scale DOUBLE,\n"
	"max_scale DOUBLE,\n"
	"copyright TEXT NOT NULL DEFAULT '*** unknown ***',\n"
	"license INTEGER NOT NULL DEFAULT 0,\n"
	"CONSTRAINT fk_vc_gc FOREIGN KEY (f_table_name, f_geometry_column) "
	"REFERENCES geometry_columns (f_table_name, f_geometry_column) "
	"ON DELETE CASCADE,\n"
	"CONSTRAINT fk_vc_sv FOREIGN KEY (view_name, view_geometry) "
	"REFERENCES views_geometry_columns (view_name, view_geometry) "
................................................................................
	  sqlite3_free (err_msg);
	  return 0;
      }

/* creating the vector_coverages_ref_sys view */
    sql = "CREATE VIEW IF NOT EXISTS vector_coverages_ref_sys AS\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "
	"v.is_queryable AS is_queryable, v.min_scale AS min_scale, v.max_scale AS max_scale, "
	"v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN geometry_columns AS x ON (v.topology_name IS NULL AND v.network_name IS NULL AND "
	"v.f_table_name IS NOT NULL AND v.f_geometry_column IS NOT NULL AND "
	"v.f_table_name = x.f_table_name AND v.f_geometry_column = x.f_geometry_column)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "
	"v.is_queryable AS is_queryable, v.min_scale AS min_scale, v.max_scale AS max_scale, "
	"v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN views_geometry_columns AS y ON (v.view_name IS NOT NULL AND "
	"v.view_geometry IS NOT NULL AND v.view_name = y.view_name AND "
	"v.view_geometry = y.view_geometry)\n"
	"JOIN geometry_columns AS x ON (y.f_table_name = x.f_table_name AND "
	"y.f_geometry_column = x.f_geometry_column)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "
	"v.is_queryable AS is_queryable, v.min_scale AS min_scale, v.max_scale AS max_scale, "
	"v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN virts_geometry_columns AS x ON (v.virt_name IS NOT NULL "
	"AND v.virt_geometry IS NOT NULL AND v.virt_name = x.virt_name "
	"AND v.virt_geometry = x.virt_geometry)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "
	"v.is_queryable AS is_queryable, v.min_scale AS min_scale, v.max_scale AS max_scale, "
	"v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN topologies AS x ON (v.topology_name IS NOT NULL AND v.topology_name = x.topology_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "
	"v.is_queryable AS is_queryable, v.min_scale AS min_scale, v.max_scale AS max_scale, "
	"v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, v.extent_minx AS extent_minx, "
	"v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, v.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 1 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN networks AS x ON (v.network_name IS NOT NULL AND v.network_name = x.network_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n"
	"UNION\n"
	"SELECT v.coverage_name AS coverage_name, v.title AS title, v.abstract AS abstract, "
	"v.is_queryable AS is_queryable, v.min_scale AS min_scale, v.max_scale AS max_scale, "
	"v.geo_minx AS geo_minx, v.geo_miny AS geo_miny, "
	"v.geo_maxx AS geo_maxx, v.geo_maxy AS geo_maxy, x.extent_minx AS extent_minx, "
	"x.extent_miny AS extent_miny, x.extent_maxx AS extent_maxx, x.extent_maxy AS extent_maxy, "
	"s.srid AS srid, 0 AS native_srid, s.auth_name AS auth_name, s.auth_srid AS auth_srid, "
	"s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n"
	"FROM vector_coverages AS v\n"
	"JOIN vector_coverages_srid AS x ON (v.coverage_name = x.coverage_name)\n"
	"LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)";
................................................................................
	"format TEXT NOT NULL,\n"
	"style TEXT NOT NULL,\n"
	"transparent INTEGER NOT NULL CHECK (transparent IN (0, 1)),\n"
	"flip_axes INTEGER NOT NULL CHECK (flip_axes IN (0, 1)),\n"
	"is_queryable INTEGER NOT NULL CHECK (is_queryable IN (0, 1)),\n"
	"getfeatureinfo_url TEXT,\n"
	"bgcolor TEXT,\n"
	"cascaded INTEGER,\n"
	"min_scale DOUBLE,\n"
	"max_scale DOUBLE,\n"
	"tiled INTEGER NOT NULL CHECK (tiled IN (0, 1)),\n"
	"tile_width INTEGER NOT NULL CHECK (tile_width BETWEEN 256 AND 5000),\n"
	"tile_height INTEGER NOT NULL CHECK (tile_width BETWEEN 256 AND 5000),\n"
	"is_cached INTEGER NOT NULL CHECK (is_cached IN (0, 1)),\n"
	"copyright TEXT NOT NULL DEFAULT '*** unknown ***',\n"
	"license INTEGER NOT NULL DEFAULT 0,\n"
	"CONSTRAINT fk_wms_getmap FOREIGN KEY (parent_id) "
................................................................................

/* full success */
    *err_msg = NULL;
    return 1;
#endif /* end RTTOPO */
#endif /* end LIBXML2 */
}

SPATIALITE_PRIVATE int
createMissingRasterlite2Columns (sqlite3 * sqlite)
{
/* 
/ attempting to create all missing Columns in System Tables 
/ required by Rasterlite2 "final"
*/
    int ret;
    int failure = 0;
    int success = 0;
    const char *sql;

    sql = "ALTER TABLE MAIN.raster_coverages ADD COLUMN is_opaque "
	"INTEGER NOT NULL DEFAULT 0";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.raster_coverages ADD COLUMN min_scale DOUBLE";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.raster_coverages ADD COLUMN max_scale DOUBLE";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.vector_coverages ADD COLUMN min_scale DOUBLE";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.vector_coverages ADD COLUMN max_scale DOUBLE";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.wms_getmap ADD COLUMN cascaded INTEGER";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.wms_getmap ADD COLUMN min_scale DOUBLE";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    sql = "ALTER TABLE MAIN.wms_getmap ADD COLUMN max_scale DOUBLE";
    ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL);
    if (ret != SQLITE_OK)
	failure++;
    else
	success++;

    if (success == 0)
	return 0;
    return 1;
}

Changes to src/spatialite/se_helpers.c.

674
675
676
677
678
679
680

681
682
683
684
685
686
687
688
....
3139
3140
3141
3142
3143
3144
3145





















































3146
3147
3148
3149
3150
3151
3152
....
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
....
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
....
5609
5610
5611
5612
5613
5614
5615
5616

5617
5618
5619
5620
5621
5622
5623
....
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
....
5694
5695
5696
5697
5698
5699
5700












5701
5702
5703
5704
5705
5706
5707
....
5712
5713
5714
5715
5716
5717
5718
5719

5720
5721
5722
5723
5724
5725
5726
5727
....
5755
5756
5757
5758
5759
5760
5761




















5762
5763
5764
5765
5766
5767
5768
    int i;
    char **results;
    int rows;
    int columns;
    int ret;
    int count = 0;
    char *name = NULL;

    const char *sql = "SELECT name FROM rl2map_configurations_view ORDER BY name";
    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg);
    if (ret != SQLITE_OK)
      {
	  spatialite_e ("GetMapConfigurationName: \"%s\"\n", errMsg);
	  sqlite3_free (errMsg);
	  return NULL;
      }
................................................................................
			sqlite3_errmsg (sqlite));
	  sqlite3_finalize (stmt);
	  return 0;
      }
    sqlite3_finalize (stmt);
    return 1;
}






















































static int
check_vector_coverage_srid2 (sqlite3 * sqlite, const char *coverage_name,
			     int srid)
{
/* checks if a Vector Coverage SRID do actually exists */
    int ret;
................................................................................
    double geo_maxx = maxx;
    double geo_maxy = maxy;
    char *proj_from = NULL;
    char *proj_to = NULL;
    gaiaGeomCollPtr in;
    gaiaGeomCollPtr out;
    gaiaPointPtr pt;
    
#ifndef OMIT_PROJ		/* including PROJ.4 */

    getProjParams (sqlite, natural_srid, &proj_from);
    if (proj_from == NULL)
	goto error;

    ret = srid_is_geographic (sqlite, natural_srid, &geographic);
................................................................................
    double geo_maxx = maxx;
    double geo_maxy = maxy;
    char *proj_from = NULL;
    char *proj_to = NULL;
    gaiaGeomCollPtr in;
    gaiaGeomCollPtr out;
    gaiaPointPtr pt;
    
#ifndef OMIT_PROJ		/* including PROJ.4 */

    getProjParams (sqlite, natural_srid, &proj_from);
    if (proj_from == NULL)
	goto error;

    ret = srid_is_geographic (sqlite, natural_srid, &geographic);
................................................................................
register_wms_getmap (void *p_sqlite, const char *getcapabilities_url,
		     const char *getmap_url, const char *layer_name,
		     const char *title, const char *abstract,
		     const char *version, const char *ref_sys,
		     const char *image_format, const char *style,
		     int transparent, int flip_axes, int tiled, int cached,
		     int tile_width, int tile_height, const char *bgcolor,
		     int is_queryable, const char *getfeatureinfo_url)

{
/* auxiliary function: inserts a WMS GetMap */
    sqlite3 *sqlite = (sqlite3 *) p_sqlite;
    int ret;
    sqlite3_int64 parent_id;
    const char *sql;
    sqlite3_stmt *stmt;
................................................................................
	&& abstract != NULL)
      {
	  /* attempting to insert the WMS GetMap */
	  sql =
	      "INSERT INTO wms_getmap (parent_id, url, layer_name, title, abstract, "
	      "version, srs, format, style, transparent, flip_axes, tiled, "
	      "is_cached, tile_width, tile_height, bgcolor, is_queryable, "
	      "getfeatureinfo_url) VALUES "
	      "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
	  ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("WMS_RegisterGetMap: \"%s\"\n",
			      sqlite3_errmsg (sqlite));
		return 0;
	    }
................................................................................
	      is_queryable = 1;
	  sqlite3_bind_int (stmt, 17, is_queryable);
	  if (getfeatureinfo_url == NULL)
	      sqlite3_bind_null (stmt, 18);
	  else
	      sqlite3_bind_text (stmt, 18, getfeatureinfo_url,
				 strlen (getfeatureinfo_url), SQLITE_STATIC);












	  ret = sqlite3_step (stmt);
	  if (ret == SQLITE_DONE || ret == SQLITE_ROW)
	      ;
	  else
	    {
		spatialite_e ("WMS_RegisterGetMap() error: \"%s\"\n",
			      sqlite3_errmsg (sqlite));
................................................................................
      }
    else if (getmap_url != NULL && layer_name != NULL)
      {
	  /* attempting to insert the WMS GetMap */
	  sql =
	      "INSERT INTO wms_getmap (parent_id, url, layer_name, version, srs, "
	      "format, style, transparent, flip_axes, tiled, is_cached, "
	      "tile_width, tile_height, is_queryable) VALUES "

	      "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0)";
	  ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("WMS_RegisterGetMap: \"%s\"\n",
			      sqlite3_errmsg (sqlite));
		return 0;
	    }
................................................................................
	      tile_width = 5000;
	  sqlite3_bind_int (stmt, 12, tile_width);
	  if (tile_height < 256)
	      tile_height = 256;
	  if (tile_height > 5000)
	      tile_height = 5000;
	  sqlite3_bind_int (stmt, 13, tile_height);




















	  ret = sqlite3_step (stmt);
	  if (ret == SQLITE_DONE || ret == SQLITE_ROW)
	      ;
	  else
	    {
		spatialite_e ("WMS_RegisterGetMap() error: \"%s\"\n",
			      sqlite3_errmsg (sqlite));







>
|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|







 







|







 







|
>







 







|
|







 







>
>
>
>
>
>
>
>
>
>
>
>







 







|
>
|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
....
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
....
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
....
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
....
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
....
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
....
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
....
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
....
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
    int i;
    char **results;
    int rows;
    int columns;
    int ret;
    int count = 0;
    char *name = NULL;
    const char *sql =
	"SELECT name FROM rl2map_configurations_view ORDER BY name";
    ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg);
    if (ret != SQLITE_OK)
      {
	  spatialite_e ("GetMapConfigurationName: \"%s\"\n", errMsg);
	  sqlite3_free (errMsg);
	  return NULL;
      }
................................................................................
			sqlite3_errmsg (sqlite));
	  sqlite3_finalize (stmt);
	  return 0;
      }
    sqlite3_finalize (stmt);
    return 1;
}

SPATIALITE_PRIVATE int
set_vector_coverage_visibility_range (void *p_sqlite, const char *coverage_name,
				      double min_scale, double max_scale)
{
/* auxiliary function: updates the copyright infos supporting a Vector Coverage */
    sqlite3 *sqlite = (sqlite3 *) p_sqlite;
    int ret;
    const char *sql;
    sqlite3_stmt *stmt;
    int old_changes = sqlite3_total_changes (sqlite);
    int new_changes;

    if (coverage_name == NULL)
	return 0;

    sql = "UPDATE vector_coverages SET min_scale = ?, max_scale = ? "
	"WHERE Lower(coverage_name) = Lower(?)";
    ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
    if (ret != SQLITE_OK)
      {
	  spatialite_e ("setVectorCoverageVisibilityRange: \"%s\"\n",
			sqlite3_errmsg (sqlite));
	  return 0;
      }
    sqlite3_reset (stmt);
    sqlite3_clear_bindings (stmt);
    if (min_scale < 0.0)
	sqlite3_bind_null (stmt, 1);
    else
	sqlite3_bind_double (stmt, 1, min_scale);
    if (max_scale < 0.0)
	sqlite3_bind_null (stmt, 2);
    else
	sqlite3_bind_double (stmt, 2, max_scale);
    sqlite3_bind_text (stmt, 3, coverage_name, strlen (coverage_name),
		       SQLITE_STATIC);
    ret = sqlite3_step (stmt);
    if (ret == SQLITE_DONE || ret == SQLITE_ROW)
	;
    else
      {
	  spatialite_e ("setVectorCoverageVisibilityRange() error: \"%s\"\n",
			sqlite3_errmsg (sqlite));
	  sqlite3_finalize (stmt);
	  return 0;
      }
    sqlite3_finalize (stmt);
    new_changes = sqlite3_total_changes (sqlite);
    if (old_changes == new_changes)
	return 0;
    return 1;
}

static int
check_vector_coverage_srid2 (sqlite3 * sqlite, const char *coverage_name,
			     int srid)
{
/* checks if a Vector Coverage SRID do actually exists */
    int ret;
................................................................................
    double geo_maxx = maxx;
    double geo_maxy = maxy;
    char *proj_from = NULL;
    char *proj_to = NULL;
    gaiaGeomCollPtr in;
    gaiaGeomCollPtr out;
    gaiaPointPtr pt;

#ifndef OMIT_PROJ		/* including PROJ.4 */

    getProjParams (sqlite, natural_srid, &proj_from);
    if (proj_from == NULL)
	goto error;

    ret = srid_is_geographic (sqlite, natural_srid, &geographic);
................................................................................
    double geo_maxx = maxx;
    double geo_maxy = maxy;
    char *proj_from = NULL;
    char *proj_to = NULL;
    gaiaGeomCollPtr in;
    gaiaGeomCollPtr out;
    gaiaPointPtr pt;

#ifndef OMIT_PROJ		/* including PROJ.4 */

    getProjParams (sqlite, natural_srid, &proj_from);
    if (proj_from == NULL)
	goto error;

    ret = srid_is_geographic (sqlite, natural_srid, &geographic);
................................................................................
register_wms_getmap (void *p_sqlite, const char *getcapabilities_url,
		     const char *getmap_url, const char *layer_name,
		     const char *title, const char *abstract,
		     const char *version, const char *ref_sys,
		     const char *image_format, const char *style,
		     int transparent, int flip_axes, int tiled, int cached,
		     int tile_width, int tile_height, const char *bgcolor,
		     int is_queryable, const char *getfeatureinfo_url,
		     int cascaded, double min_scale, double max_scale)
{
/* auxiliary function: inserts a WMS GetMap */
    sqlite3 *sqlite = (sqlite3 *) p_sqlite;
    int ret;
    sqlite3_int64 parent_id;
    const char *sql;
    sqlite3_stmt *stmt;
................................................................................
	&& abstract != NULL)
      {
	  /* attempting to insert the WMS GetMap */
	  sql =
	      "INSERT INTO wms_getmap (parent_id, url, layer_name, title, abstract, "
	      "version, srs, format, style, transparent, flip_axes, tiled, "
	      "is_cached, tile_width, tile_height, bgcolor, is_queryable, "
	      "getfeatureinfo_url, cascaded, min_scale, max_scale) VALUES "
	      "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
	  ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("WMS_RegisterGetMap: \"%s\"\n",
			      sqlite3_errmsg (sqlite));
		return 0;
	    }
................................................................................
	      is_queryable = 1;
	  sqlite3_bind_int (stmt, 17, is_queryable);
	  if (getfeatureinfo_url == NULL)
	      sqlite3_bind_null (stmt, 18);
	  else
	      sqlite3_bind_text (stmt, 18, getfeatureinfo_url,
				 strlen (getfeatureinfo_url), SQLITE_STATIC);
	  if (cascaded < 0)
	      sqlite3_bind_null (stmt, 19);
	  else
	      sqlite3_bind_int (stmt, 19, cascaded);
	  if (min_scale < 0.0)
	      sqlite3_bind_null (stmt, 20);
	  else
	      sqlite3_bind_double (stmt, 20, min_scale);
	  if (max_scale < 0.0)
	      sqlite3_bind_null (stmt, 21);
	  else
	      sqlite3_bind_double (stmt, 21, max_scale);
	  ret = sqlite3_step (stmt);
	  if (ret == SQLITE_DONE || ret == SQLITE_ROW)
	      ;
	  else
	    {
		spatialite_e ("WMS_RegisterGetMap() error: \"%s\"\n",
			      sqlite3_errmsg (sqlite));
................................................................................
      }
    else if (getmap_url != NULL && layer_name != NULL)
      {
	  /* attempting to insert the WMS GetMap */
	  sql =
	      "INSERT INTO wms_getmap (parent_id, url, layer_name, version, srs, "
	      "format, style, transparent, flip_axes, tiled, is_cached, "
	      "tile_width, tile_height, is_queryable, getfeatureinfo_url, "
	      "cascaded, min_scale, max_scale) VALUES "
	      "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
	  ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("WMS_RegisterGetMap: \"%s\"\n",
			      sqlite3_errmsg (sqlite));
		return 0;
	    }
................................................................................
	      tile_width = 5000;
	  sqlite3_bind_int (stmt, 12, tile_width);
	  if (tile_height < 256)
	      tile_height = 256;
	  if (tile_height > 5000)
	      tile_height = 5000;
	  sqlite3_bind_int (stmt, 13, tile_height);
	  if (is_queryable != 0)
	      is_queryable = 1;
	  sqlite3_bind_int (stmt, 14, is_queryable);
	  if (getfeatureinfo_url == NULL)
	      sqlite3_bind_null (stmt, 15);
	  else
	      sqlite3_bind_text (stmt, 16, getfeatureinfo_url,
				 strlen (getfeatureinfo_url), SQLITE_STATIC);
	  if (cascaded < 0)
	      sqlite3_bind_null (stmt, 17);
	  else
	      sqlite3_bind_int (stmt, 17, cascaded); 
	  if (min_scale < 0.0)
	      sqlite3_bind_null (stmt, 18);
	  else
	      sqlite3_bind_double (stmt, 18, min_scale);
	  if (max_scale < 0.0)
	      sqlite3_bind_null (stmt, 19);
	  else
	      sqlite3_bind_double (stmt, 19, max_scale);
	  ret = sqlite3_step (stmt);
	  if (ret == SQLITE_DONE || ret == SQLITE_ROW)
	      ;
	  else
	    {
		spatialite_e ("WMS_RegisterGetMap() error: \"%s\"\n",
			      sqlite3_errmsg (sqlite));

Changes to src/spatialite/spatialite.c.

396
397
398
399
400
401
402






















403
404
405
406
407
408
409
....
9867
9868
9869
9870
9871
9872
9873










9874
9875
9876
9877
9878
9879
9880
....
9891
9892
9893
9894
9895
9896
9897



9898
9899
9900
9901
9902
9903
9904
.....
10008
10009
10010
10011
10012
10013
10014
10015



































































































10016
10017
10018
10019
10020
10021

10022
10023
10024
10025
10026
10027
10028
.....
24947
24948
24949
24950
24951
24952
24953

24954
24955
24956

24957
24958
24959
24960
24961
24962
24963
24964
.....
24973
24974
24975
24976
24977
24978
24979

24980

24981

24982
24983
24984
24985
24986
24987
24988
24989
.....
26135
26136
26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
.....
40734
40735
40736
40737
40738
40739
40740

40741
40742
40743
40744
40745
40746
40747
40748
.....
40828
40829
40830
40831
40832
40833
40834

40835
40836
40837
40838
40839
40840
40841
40842
40843

40844
40845
40846
40847
40848
40849
40850
40851
.....
42462
42463
42464
42465
42466
42467
42468


























































42469
42470
42471
42472
42473
42474
42475
.....
42749
42750
42751
42752
42753
42754
42755
42756
42757
42758
42759
42760
42761
42762
42763
.....
42777
42778
42779
42780
42781
42782
42783
42784
42785
42786
42787
42788
42789
42790
42791
.....
42805
42806
42807
42808
42809
42810
42811
42812
42813
42814
42815
42816
42817
42818
42819
.....
47074
47075
47076
47077
47078
47079
47080
47081
47082
47083
47084
47085
47086
47087
47088
.....
47118
47119
47120
47121
47122
47123
47124
47125
47126
47127
47128
47129
47130
47131
47132
.....
47164
47165
47166
47167
47168
47169
47170
47171
47172
47173
47174
47175
47176
47177
47178
.....
47201
47202
47203
47204
47205
47206
47207
47208
47209
47210
47211
47212
47213
47214
47215
.....
47235
47236
47237
47238
47239
47240
47241
47242
47243
47244
47245
47246
47247
47248
47249
.....
47274
47275
47276
47277
47278
47279
47280
47281
47282
47283
47284
47285
47286
47287
47288
.....
47313
47314
47315
47316
47317
47318
47319
47320
47321
47322
47323
47324
47325
47326
47327
.....
47336
47337
47338
47339
47340
47341
47342
47343
47344
47345
47346
47347
47348
47349
47350
.....
47359
47360
47361
47362
47363
47364
47365
47366
47367
47368
47369
47370
47371
47372
47373
.....
48243
48244
48245
48246
48247
48248
48249



48250
48251
48252
48253
48254
48255
48256
.....
48619
48620
48621
48622
48623
48624
48625


48626
48627
48628
48629
48630
48631
48632
.....
52587
52588
52589
52590
52591
52592
52593



52594
52595
52596
52597
52598
52599
52600
52601
52602
52603
52604
52605
52606
52607
52608
52609
52610
52611
52612
52613
52614
52615
52616
52617
52618
52619
52620
52621
.....
52656
52657
52658
52659
52660
52661
52662
52663
52664
52665
52666
52667
52668
52669
52670
52671
52672
52673
52674
52675
52676
52677
52678
52679
52680
52681
52682
52683
52684
52685
52686
52687
52688
52689
52690
			       err_msg);
	  sqlite3_free (err_msg);
      }
    sqlite3_result_error (context, msg, -1);
    sqlite3_free (msg);
    return;
}























static void
fnct_spatialite_version (sqlite3_context * context, int argc,
			 sqlite3_value ** argv)
{
/* SQL function:
/ spatialite_version()
................................................................................
/ WMS_RegisterGetMap(Text getcapabilitites_url, Text getmap_url,
/                    Text layer_name, Text title, Text abstract,
/                    Text version, Text ref_sys, Text image_format,
/                    Text style, Int transparent, Int flip_axes,
/                    Int tiled, Int cached, Int tile_width, 
/                    Int tile_height, Text bgcolor, Int is_queryable,
/                    Text getfeatureinfo_url)










/
/ inserts a WMS GetMap
/ returns 1 on success
/ 0 on failure, -1 on invalid arguments
*/
    int ret;
    const char *getcapabilities_url;
................................................................................
    int tiled = 0;
    int cached = 0;
    int tile_width = 512;
    int tile_height = 512;
    const char *bgcolor = NULL;
    int is_queryable = 0;
    const char *getfeatureinfo_url = NULL;



    sqlite3 *sqlite = sqlite3_context_db_handle (context);
    GAIA_UNUSED ();
    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT
	|| sqlite3_value_type (argv[1]) != SQLITE_TEXT
	|| sqlite3_value_type (argv[2]) != SQLITE_TEXT)
      {
	  sqlite3_result_int (context, -1);
................................................................................
	  else if (sqlite3_value_type (argv[17]) == SQLITE_TEXT)
	      getfeatureinfo_url = (const char *) sqlite3_value_text (argv[17]);
	  else
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
      }



































































































    ret =
	register_wms_getmap (sqlite, getcapabilities_url, getmap_url,
			     layer_name, title, abstract, version, ref_sys,
			     image_format, style, transparent, flip_axes,
			     tiled, cached, tile_width, tile_height, bgcolor,
			     is_queryable, getfeatureinfo_url);

    sqlite3_result_int (context, ret);
}

static void
fnct_UnregisterWMSGetMap (sqlite3_context * context, int argc,
			  sqlite3_value ** argv)
{
................................................................................
				  line = geo->FirstLinestring;
				  while (line)
				    {
					/* Linestrings */
					l = gaiaGeodesicTotalLength (a,
								     b,
								     rf,

								     line->
								     DimensionModel,
								     line->Coords,

								     line->Points);
					if (l < 0.0)
					  {
					      length = -1.0;
					      break;
					  }
					length += l;
					line = line->Next;
................................................................................
					while (polyg)
					  {
					      /* exterior Ring */
					      ring = polyg->Exterior;
					      l = gaiaGeodesicTotalLength (a,
									   b,
									   rf,

									   ring->DimensionModel,

									   ring->Coords,

									   ring->Points);
					      if (l < 0.0)
						{
						    length = -1.0;
						    break;
						}
					      length += l;
					      for (ib = 0;
................................................................................
		      break;
		  }

		if (use_ellipsoid >= 0)
		  {
#ifdef ENABLE_RTTOPO		/* only if RTTOPO is enabled */
		      perimeter = gaiaGeodesicTotalLength (a, b, rf,
							   pg->
							   Exterior->DimensionModel,
							   pg->Exterior->Coords,
							   pg->
							   Exterior->Points);
		      if (perimeter < 0.0)
			  ret = 0;
		      else
			  ret = 1;
#else
		      ret = 0;
#endif /* end RTTOPO conditional */
................................................................................
			      }
			    length += l;
			    for (ib = 0; ib < polyg->NumInteriors; ib++)
			      {
				  /* interior Rings */
				  ring = polyg->Interiors + ib;
				  l = gaiaGeodesicTotalLength (a, b, rf,

							       ring->DimensionModel,
							       ring->Coords,
							       ring->Points);
				  if (l < 0.0)
				    {
					length = -1.0;
					break;
				    }
................................................................................
		      polyg = geo->FirstPolygon;
		      while (polyg)
			{
			    /* exterior Ring */
			    ring = polyg->Exterior;
			    length +=
				gaiaGreatCircleTotalLength (a, b,

							    ring->DimensionModel,
							    ring->Coords,
							    ring->Points);
			    for (ib = 0; ib < polyg->NumInteriors; ib++)
			      {
				  /* interior Rings */
				  ring = polyg->Interiors + ib;
				  length +=
				      gaiaGreatCircleTotalLength (a, b,

								  ring->DimensionModel,
								  ring->Coords,
								  ring->Points);
			      }
			    polyg = polyg->Next;
			}
		  }
		sqlite3_result_double (context, length);
................................................................................
	    }
      }
    ret =
	set_vector_coverage_copyright (sqlite, coverage_name, copyright,
				       license);
    sqlite3_result_int (context, ret);
}



























































static void
fnct_RegisterVectorCoverageSrid (sqlite3_context * context, int argc,
				 sqlite3_value ** argv)
{
/* SQL function:
/ RegisterVectorCoverageSrid(Text coverage_name, Integer srid)
................................................................................
    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
    ret = count_map_configurations (sqlite);
    sqlite3_result_int (context, ret);
}

static void
fnct_MapConfigurationNameN (sqlite3_context * context, int argc,
			       sqlite3_value ** argv)
{
/* SQL function:
/ MapConfigurationNameN(Integer ind)
/
/ returns the Name of the Nth  Map Configuration (first Index is ZERO)
/ NULL on failure or on invalid arguments
*/
................................................................................
	sqlite3_result_null (context);
    else
	sqlite3_result_text (context, name, strlen (name), free);
}

static void
fnct_MapConfigurationTitleN (sqlite3_context * context, int argc,
				sqlite3_value ** argv)
{
/* SQL function:
/ MapConfigurationTitleN(Integer ind)
/
/ returns the Title of the Nth  Map Configuration (first Index is ZERO)
/ NULL on failure or on invalid arguments
*/
................................................................................
	sqlite3_result_null (context);
    else
	sqlite3_result_text (context, name, strlen (name), free);
}

static void
fnct_MapConfigurationAbstractN (sqlite3_context * context, int argc,
				   sqlite3_value ** argv)
{
/* SQL function:
/ MapConfigurationAbstractN(Integer ind)
/
/ returns the Name of the Nth  Map Configuration (first Index is ZERO)
/ NULL on failure or on invalid arguments
*/
................................................................................
      }
    cache->buffer_end_cap_style = GEOSBUF_CAP_ROUND;
    cache->buffer_join_style = GEOSBUF_JOIN_ROUND;
    cache->buffer_mitre_limit = 5.0;
    cache->buffer_quadrant_segments = 30;
    sqlite3_result_int (context, 1);
#else /* GEOS is disabled */
	sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_endcap (sqlite3_context * context, int argc,
			       sqlite3_value ** argv)
{
................................................................................
      {
	  cache->buffer_end_cap_style = val;
	  sqlite3_result_int (context, 1);
      }
    else
	sqlite3_result_int (context, 0);
#else /* GEOS is disabled */
	sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_join (sqlite3_context * context, int argc,
			     sqlite3_value ** argv)
{
................................................................................
      {
	  cache->buffer_join_style = val;
	  sqlite3_result_int (context, 1);
      }
    else
	sqlite3_result_int (context, 0);
#else /* GEOS is disabled */
	sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_mitrelimit (sqlite3_context * context, int argc,
				   sqlite3_value ** argv)
{
................................................................................
      {
	  sqlite3_result_int (context, 0);
	  return;
      }
    cache->buffer_mitre_limit = value;
    sqlite3_result_int (context, 1);
#else /* GEOS is disabled */
	sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_quadsegs (sqlite3_context * context, int argc,
				 sqlite3_value ** argv)
{
................................................................................
	  return;
      }
    if (value <= 0)
	value = 1;
    cache->buffer_quadrant_segments = value;
    sqlite3_result_int (context, 1);
#else /* GEOS is disabled */
	sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_endcap (sqlite3_context * context, int argc,
			       sqlite3_value ** argv)
{
................................................................................
	  sqlite3_result_text (context, "SQUARE", strlen ("SQUARE"),
			       SQLITE_TRANSIENT);
	  break;
      default:
	  sqlite3_result_null (context);
      };
#else /* GEOS is disabled */
	  sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_join (sqlite3_context * context, int argc,
			     sqlite3_value ** argv)
{
................................................................................
	  sqlite3_result_text (context, "BEVEL", strlen ("BEVEL"),
			       SQLITE_TRANSIENT);
	  break;
      default:
	  sqlite3_result_null (context);
      };
#else /* GEOS is disabled */
	  sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_mitrelimit (sqlite3_context * context, int argc,
				   sqlite3_value ** argv)
{
................................................................................
    if (cache == NULL)
      {
	  sqlite3_result_null (context);
	  return;
      }
    sqlite3_result_double (context, cache->buffer_mitre_limit);
#else /* GEOS is disabled */
	  sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_quadsegs (sqlite3_context * context, int argc,
				 sqlite3_value ** argv)
{
................................................................................
    if (cache == NULL)
      {
	  sqlite3_result_null (context);
	  return;
      }
    sqlite3_result_int (context, cache->buffer_quadrant_segments);
#else /* GEOS is disabled */
	  sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_addVirtualTableExtent (sqlite3_context * context, int argc,
			    sqlite3_value ** argv)
{
................................................................................
				fnct_createMissingSystemTables, 0, 0, 0);
    sqlite3_create_function_v2 (db, "CreateMissingSystemTables", 1,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache,
				fnct_createMissingSystemTables, 0, 0, 0);
    sqlite3_create_function_v2 (db, "CreateMissingSystemTables", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache,
				fnct_createMissingSystemTables, 0, 0, 0);




    sqlite3_create_function_v2 (db, "spatialite_target_cpu", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_spatialite_target_cpu, 0, 0, 0);
    sqlite3_create_function_v2 (db, "check_strict_sql_quoting", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_check_strict_sql_quoting, 0, 0, 0);
................................................................................
    sqlite3_create_function (db, "WMS_SetGetCapabilitiesInfos", 3, SQLITE_ANY,
			     0, fnct_SetWMSGetCapabilitiesInfos, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 9, SQLITE_ANY, 0,
			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 13, SQLITE_ANY, 0,
			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 18, SQLITE_ANY, 0,


			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_UnRegisterGetMap", 2, SQLITE_ANY, 0,
			     fnct_UnregisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_SetGetMapInfos", 4, SQLITE_ANY, 0,
			     fnct_SetWMSGetMapInfos, 0, 0);
    sqlite3_create_function (db, "WMS_SetGetMapCopyright", 3, SQLITE_ANY, 0,
			     fnct_SetWMSGetMapCopyright, 0, 0);
................................................................................
			     0, fnct_SetVectorCoverageInfos, 0, 0);
    sqlite3_create_function (db, "SE_SetVectorCoverageCopyright", 2,
			     SQLITE_ANY, 0, fnct_SetVectorCoverageCopyright,
			     0, 0);
    sqlite3_create_function (db, "SE_SetVectorCoverageCopyright", 3,
			     SQLITE_ANY, 0, fnct_SetVectorCoverageCopyright,
			     0, 0);



    sqlite3_create_function (db, "SE_RegisterVectorCoverageSrid", 2,
			     SQLITE_ANY, 0, fnct_RegisterVectorCoverageSrid,
			     0, 0);
    sqlite3_create_function (db, "SE_UnRegisterVectorCoverageSrid", 2,
			     SQLITE_ANY, 0, fnct_UnregisterVectorCoverageSrid,
			     0, 0);
    sqlite3_create_function (db, "SE_RegisterVectorCoverageKeyword", 2,
			     SQLITE_ANY, 0,
			     fnct_RegisterVectorCoverageKeyword, 0, 0);
    sqlite3_create_function (db, "SE_UnRegisterVectorCoverageKeyword", 2,
			     SQLITE_ANY, 0,
			     fnct_UnregisterVectorCoverageKeyword, 0, 0);
    sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 0,
			     SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent,
			     0, 0);
    sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 1,
			     SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent,
			     0, 0);
    sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 2,
			     SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent,
			     0, 0);
    sqlite3_create_function_v2 (db, "SE_AutoRegisterStandardBrushes", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_AutoRegisterStandardBrushes, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_RegisterExternalGraphic, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 5,
................................................................................
				fnct_ReloadRasterStyle, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_RegisterRasterStyledLayer", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_RegisterRasterStyledLayer, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_UnRegisterRasterStyledLayer", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_UnRegisterRasterStyledLayer, 0, 0, 0);
    sqlite3_create_function (db, "SE_RegisterRasterCoverageSrid", 2,
			     SQLITE_ANY, 0, fnct_RegisterRasterCoverageSrid,
			     0, 0);
    sqlite3_create_function (db, "SE_UnRegisterRasterCoverageSrid", 2,
			     SQLITE_ANY, 0, fnct_UnregisterRasterCoverageSrid,
			     0, 0);
    sqlite3_create_function (db, "SE_RegisterRasterCoverageKeyword", 2,
			     SQLITE_ANY, 0,
			     fnct_RegisterRasterCoverageKeyword, 0, 0);
    sqlite3_create_function (db, "SE_UnRegisterRasterCoverageKeyword", 2,
			     SQLITE_ANY, 0,
			     fnct_UnregisterRasterCoverageKeyword, 0, 0);
    sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 0,
			     SQLITE_ANY, 0, fnct_UpdateRasterCoverageExtent,
			     0, 0);
    sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 1,
			     SQLITE_ANY, 0, fnct_UpdateRasterCoverageExtent,
			     0, 0);
    sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 2,
			     SQLITE_ANY, 0, fnct_UpdateRasterCoverageExtent,
			     0, 0);

    sqlite3_create_function_v2 (db, "RL2_RegisterMapConfiguration", 1,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_RegisterMapConfiguration, 0, 0, 0);
    sqlite3_create_function_v2 (db, "RL2_UnRegisterMapConfiguration", 1,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_UnRegisterMapConfiguration, 0, 0, 0);







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>







 







>
>
>







 








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





|
>







 







>

<
|
>
|







 







>
|
>
|
>
|







 







|
|

|
|







 







>
|







 







>
|








>
|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







|







 







>
>
>







 







>
>







 







>
>
>
|
|
<




|
|



|
|
<
|
|
<
|
|
<







 







|
|
<




|
|



|
|
<
|
|
<
|
|
<







396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
....
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
....
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
.....
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
.....
25082
25083
25084
25085
25086
25087
25088
25089
25090

25091
25092
25093
25094
25095
25096
25097
25098
25099
25100
.....
25109
25110
25111
25112
25113
25114
25115
25116
25117
25118
25119
25120
25121
25122
25123
25124
25125
25126
25127
25128
.....
26274
26275
26276
26277
26278
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
.....
40873
40874
40875
40876
40877
40878
40879
40880
40881
40882
40883
40884
40885
40886
40887
40888
.....
40968
40969
40970
40971
40972
40973
40974
40975
40976
40977
40978
40979
40980
40981
40982
40983
40984
40985
40986
40987
40988
40989
40990
40991
40992
40993
.....
42604
42605
42606
42607
42608
42609
42610
42611
42612
42613
42614
42615
42616
42617
42618
42619
42620
42621
42622
42623
42624
42625
42626
42627
42628
42629
42630
42631
42632
42633
42634
42635
42636
42637
42638
42639
42640
42641
42642
42643
42644
42645
42646
42647
42648
42649
42650
42651
42652
42653
42654
42655
42656
42657
42658
42659
42660
42661
42662
42663
42664
42665
42666
42667
42668
42669
42670
42671
42672
42673
42674
42675
.....
42949
42950
42951
42952
42953
42954
42955
42956
42957
42958
42959
42960
42961
42962
42963
.....
42977
42978
42979
42980
42981
42982
42983
42984
42985
42986
42987
42988
42989
42990
42991
.....
43005
43006
43007
43008
43009
43010
43011
43012
43013
43014
43015
43016
43017
43018
43019
.....
47274
47275
47276
47277
47278
47279
47280
47281
47282
47283
47284
47285
47286
47287
47288
.....
47318
47319
47320
47321
47322
47323
47324
47325
47326
47327
47328
47329
47330
47331
47332
.....
47364
47365
47366
47367
47368
47369
47370
47371
47372
47373
47374
47375
47376
47377
47378
.....
47401
47402
47403
47404
47405
47406
47407
47408
47409
47410
47411
47412
47413
47414
47415
.....
47435
47436
47437
47438
47439
47440
47441
47442
47443
47444
47445
47446
47447
47448
47449
.....
47474
47475
47476
47477
47478
47479
47480
47481
47482
47483
47484
47485
47486
47487
47488
.....
47513
47514
47515
47516
47517
47518
47519
47520
47521
47522
47523
47524
47525
47526
47527
.....
47536
47537
47538
47539
47540
47541
47542
47543
47544
47545
47546
47547
47548
47549
47550
.....
47559
47560
47561
47562
47563
47564
47565
47566
47567
47568
47569
47570
47571
47572
47573
.....
48443
48444
48445
48446
48447
48448
48449
48450
48451
48452
48453
48454
48455
48456
48457
48458
48459
.....
48822
48823
48824
48825
48826
48827
48828
48829
48830
48831
48832
48833
48834
48835
48836
48837
.....
52792
52793
52794
52795
52796
52797
52798
52799
52800
52801
52802
52803

52804
52805
52806
52807
52808
52809
52810
52811
52812
52813
52814

52815
52816

52817
52818

52819
52820
52821
52822
52823
52824
52825
.....
52860
52861
52862
52863
52864
52865
52866
52867
52868

52869
52870
52871
52872
52873
52874
52875
52876
52877
52878
52879

52880
52881

52882
52883

52884
52885
52886
52887
52888
52889
52890
			       err_msg);
	  sqlite3_free (err_msg);
      }
    sqlite3_result_error (context, msg, -1);
    sqlite3_free (msg);
    return;
}

static void
fnct_createMissingRasterlite2Columns (sqlite3_context * context, int argc,
				      sqlite3_value ** argv)
{
/* SQL function:
/ CreateMissingRasterlite2Columns()
/
/ creates all missing columns on system tables required 
/ by RasterLite2 "stable"
/ returns 1 on success, 0 on failure
*/
    int ret;
    sqlite3 *sqlite = sqlite3_context_db_handle (context);
    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */

    ret = createMissingRasterlite2Columns (sqlite);
    if (ret == 0)
	sqlite3_result_int (context, 0);
    else
	sqlite3_result_int (context, 1);
}

static void
fnct_spatialite_version (sqlite3_context * context, int argc,
			 sqlite3_value ** argv)
{
/* SQL function:
/ spatialite_version()
................................................................................
/ WMS_RegisterGetMap(Text getcapabilitites_url, Text getmap_url,
/                    Text layer_name, Text title, Text abstract,
/                    Text version, Text ref_sys, Text image_format,
/                    Text style, Int transparent, Int flip_axes,
/                    Int tiled, Int cached, Int tile_width, 
/                    Int tile_height, Text bgcolor, Int is_queryable,
/                    Text getfeatureinfo_url)
/   or
/ WMS_RegisterGetMap(Text getcapabilitites_url, Text getmap_url,
/                    Text layer_name, Text title, Text abstract,
/                    Text version, Text ref_sys, Text image_format,
/                    Text style, Int transparent, Int flip_axes,
/                    Int tiled, Int cached, Int tile_width, 
/                    Int tile_height, Text bgcolor, Int is_queryable,
/                    Text getfeatureinfo_url, int cascaded,
/                    Double min_scale_denominator, 
/                    Double max_scale_denominator)
/
/ inserts a WMS GetMap
/ returns 1 on success
/ 0 on failure, -1 on invalid arguments
*/
    int ret;
    const char *getcapabilities_url;
................................................................................
    int tiled = 0;
    int cached = 0;
    int tile_width = 512;
    int tile_height = 512;
    const char *bgcolor = NULL;
    int is_queryable = 0;
    const char *getfeatureinfo_url = NULL;
    int cascaded = -1;
    double min_scale = -1.0;
    double max_scale = -1.0;
    sqlite3 *sqlite = sqlite3_context_db_handle (context);
    GAIA_UNUSED ();
    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT
	|| sqlite3_value_type (argv[1]) != SQLITE_TEXT
	|| sqlite3_value_type (argv[2]) != SQLITE_TEXT)
      {
	  sqlite3_result_int (context, -1);
................................................................................
	  else if (sqlite3_value_type (argv[17]) == SQLITE_TEXT)
	      getfeatureinfo_url = (const char *) sqlite3_value_text (argv[17]);
	  else
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
      }
    if (argc == 21)
      {
	  if (sqlite3_value_type (argv[0]) != SQLITE_TEXT
	      || sqlite3_value_type (argv[1]) != SQLITE_TEXT
	      || sqlite3_value_type (argv[2]) != SQLITE_TEXT
	      || sqlite3_value_type (argv[3]) != SQLITE_TEXT
	      || sqlite3_value_type (argv[4]) != SQLITE_TEXT ||
	      sqlite3_value_type (argv[5]) != SQLITE_TEXT ||
	      sqlite3_value_type (argv[6]) != SQLITE_TEXT ||
	      sqlite3_value_type (argv[7]) != SQLITE_TEXT ||
	      sqlite3_value_type (argv[8]) != SQLITE_TEXT)
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
	  getcapabilities_url = (const char *) sqlite3_value_text (argv[0]);
	  getmap_url = (const char *) sqlite3_value_text (argv[1]);
	  layer_name = (const char *) sqlite3_value_text (argv[2]);
	  title = (const char *) sqlite3_value_text (argv[3]);
	  abstract = (const char *) sqlite3_value_text (argv[4]);
	  version = (const char *) sqlite3_value_text (argv[5]);
	  ref_sys = (const char *) sqlite3_value_text (argv[6]);
	  image_format = (const char *) sqlite3_value_text (argv[7]);
	  style = (const char *) sqlite3_value_text (argv[8]);
	  if (sqlite3_value_type (argv[9]) != SQLITE_INTEGER ||
	      sqlite3_value_type (argv[10]) != SQLITE_INTEGER ||
	      sqlite3_value_type (argv[11]) != SQLITE_INTEGER ||
	      sqlite3_value_type (argv[12]) != SQLITE_INTEGER ||
	      sqlite3_value_type (argv[13]) != SQLITE_INTEGER ||
	      sqlite3_value_type (argv[14]) != SQLITE_INTEGER ||
	      sqlite3_value_type (argv[16]) != SQLITE_INTEGER ||
	      (sqlite3_value_type (argv[18]) != SQLITE_INTEGER && sqlite3_value_type(argv[18]) != SQLITE_NULL))
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
	  transparent = sqlite3_value_int (argv[9]);
	  flip_axes = sqlite3_value_int (argv[10]);
	  tiled = sqlite3_value_int (argv[11]);
	  cached = sqlite3_value_int (argv[12]);
	  tile_width = sqlite3_value_int (argv[13]);
	  tile_height = sqlite3_value_int (argv[14]);
	  is_queryable = sqlite3_value_int (argv[16]);
	  if (sqlite3_value_type (argv[15]) == SQLITE_NULL)
	      bgcolor = NULL;
	  else if (sqlite3_value_type (argv[15]) == SQLITE_TEXT)
	    {
		bgcolor = (const char *) sqlite3_value_text (argv[15]);
		if (!validate_wms_bgcolor (bgcolor))
		  {
		      sqlite3_result_int (context, -1);
		      return;
		  }
	    }
	  else
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
	  if (sqlite3_value_type (argv[17]) == SQLITE_NULL)
	      getfeatureinfo_url = NULL;
	  else if (sqlite3_value_type (argv[17]) == SQLITE_TEXT)
	      getfeatureinfo_url = (const char *) sqlite3_value_text (argv[17]);
	  else
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
	    if (sqlite3_value_type(argv[18]) == SQLITE_INTEGER)
	  cascaded = sqlite3_value_int (argv[18]);
	  if (sqlite3_value_type (argv[19]) == SQLITE_NULL)
	      ;
	  else if (sqlite3_value_type (argv[19]) == SQLITE_INTEGER)
	    {
		int val = sqlite3_value_int (argv[19]);
		min_scale = val;
	    }
	  else if (sqlite3_value_type (argv[19]) == SQLITE_FLOAT)
	      min_scale = sqlite3_value_double (argv[19]);
	  else
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
	  if (sqlite3_value_type (argv[20]) == SQLITE_NULL)
	      ;
	  else if (sqlite3_value_type (argv[20]) == SQLITE_INTEGER)
	    {
		int val = sqlite3_value_int (argv[20]);
		max_scale = val;
	    }
	  else if (sqlite3_value_type (argv[20]) == SQLITE_FLOAT)
	      max_scale = sqlite3_value_double (argv[20]);
	  else
	    {
		sqlite3_result_int (context, -1);
		return;
	    }
      }
    ret =
	register_wms_getmap (sqlite, getcapabilities_url, getmap_url,
			     layer_name, title, abstract, version, ref_sys,
			     image_format, style, transparent, flip_axes,
			     tiled, cached, tile_width, tile_height, bgcolor,
			     is_queryable, getfeatureinfo_url, cascaded,
			     min_scale, max_scale);
    sqlite3_result_int (context, ret);
}

static void
fnct_UnregisterWMSGetMap (sqlite3_context * context, int argc,
			  sqlite3_value ** argv)
{
................................................................................
				  line = geo->FirstLinestring;
				  while (line)
				    {
					/* Linestrings */
					l = gaiaGeodesicTotalLength (a,
								     b,
								     rf,
								     line->DimensionModel,
								     line->

								     Coords,
								     line->
								     Points);
					if (l < 0.0)
					  {
					      length = -1.0;
					      break;
					  }
					length += l;
					line = line->Next;
................................................................................
					while (polyg)
					  {
					      /* exterior Ring */
					      ring = polyg->Exterior;
					      l = gaiaGeodesicTotalLength (a,
									   b,
									   rf,
									   ring->
									   DimensionModel,
									   ring->
									   Coords,
									   ring->
									   Points);
					      if (l < 0.0)
						{
						    length = -1.0;
						    break;
						}
					      length += l;
					      for (ib = 0;
................................................................................
		      break;
		  }

		if (use_ellipsoid >= 0)
		  {
#ifdef ENABLE_RTTOPO		/* only if RTTOPO is enabled */
		      perimeter = gaiaGeodesicTotalLength (a, b, rf,
							   pg->Exterior->
							   DimensionModel,
							   pg->Exterior->Coords,
							   pg->Exterior->
							   Points);
		      if (perimeter < 0.0)
			  ret = 0;
		      else
			  ret = 1;
#else
		      ret = 0;
#endif /* end RTTOPO conditional */
................................................................................
			      }
			    length += l;
			    for (ib = 0; ib < polyg->NumInteriors; ib++)
			      {
				  /* interior Rings */
				  ring = polyg->Interiors + ib;
				  l = gaiaGeodesicTotalLength (a, b, rf,
							       ring->
							       DimensionModel,
							       ring->Coords,
							       ring->Points);
				  if (l < 0.0)
				    {
					length = -1.0;
					break;
				    }
................................................................................
		      polyg = geo->FirstPolygon;
		      while (polyg)
			{
			    /* exterior Ring */
			    ring = polyg->Exterior;
			    length +=
				gaiaGreatCircleTotalLength (a, b,
							    ring->
							    DimensionModel,
							    ring->Coords,
							    ring->Points);
			    for (ib = 0; ib < polyg->NumInteriors; ib++)
			      {
				  /* interior Rings */
				  ring = polyg->Interiors + ib;
				  length +=
				      gaiaGreatCircleTotalLength (a, b,
								  ring->
								  DimensionModel,
								  ring->Coords,
								  ring->Points);
			      }
			    polyg = polyg->Next;
			}
		  }
		sqlite3_result_double (context, length);
................................................................................
	    }
      }
    ret =
	set_vector_coverage_copyright (sqlite, coverage_name, copyright,
				       license);
    sqlite3_result_int (context, ret);
}

static void
fnct_SetVectorCoverageVisibilityRange (sqlite3_context * context, int argc,
				       sqlite3_value ** argv)
{
/* SQL function:
/ SetVectorCoverageVisibilityRange(Text coverage_name, Double min_scale,
/                            Double max_scale)
/
/ updates the Visibility Scale Range supporting a Vector Coverage
/ returns 1 on success
/ 0 on failure, -1 on invalid arguments
*/
    int ret;
    const char *coverage_name;
    double min_scale = -1.0;
    double max_scale = -1.0;
    sqlite3 *sqlite = sqlite3_context_db_handle (context);
    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
    if (sqlite3_value_type (argv[0]) != SQLITE_TEXT)
      {
	  sqlite3_result_int (context, -1);
	  return;
      }
    coverage_name = (const char *) sqlite3_value_text (argv[0]);
    if (sqlite3_value_type (argv[1]) == SQLITE_NULL)
	;
    else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER)
      {
	  int val = sqlite3_value_int (argv[1]);
	  min_scale = val;
      }
    else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT)
	min_scale = sqlite3_value_double (argv[1]);
    else
      {
	  sqlite3_result_int (context, -1);
	  return;
      }
    if (sqlite3_value_type (argv[2]) == SQLITE_NULL)
	;
    else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER)
      {
	  int val = sqlite3_value_int (argv[2]);
	  max_scale = val;
      }
    else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT)
	max_scale = sqlite3_value_double (argv[2]);
    else
      {
	  sqlite3_result_int (context, -1);
	  return;
      }
    ret =
	set_vector_coverage_visibility_range (sqlite, coverage_name, min_scale,
					      max_scale);
    sqlite3_result_int (context, ret);
}

static void
fnct_RegisterVectorCoverageSrid (sqlite3_context * context, int argc,
				 sqlite3_value ** argv)
{
/* SQL function:
/ RegisterVectorCoverageSrid(Text coverage_name, Integer srid)
................................................................................
    GAIA_UNUSED ();		/* LCOV_EXCL_LINE */
    ret = count_map_configurations (sqlite);
    sqlite3_result_int (context, ret);
}

static void
fnct_MapConfigurationNameN (sqlite3_context * context, int argc,
			    sqlite3_value ** argv)
{
/* SQL function:
/ MapConfigurationNameN(Integer ind)
/
/ returns the Name of the Nth  Map Configuration (first Index is ZERO)
/ NULL on failure or on invalid arguments
*/
................................................................................
	sqlite3_result_null (context);
    else
	sqlite3_result_text (context, name, strlen (name), free);
}

static void
fnct_MapConfigurationTitleN (sqlite3_context * context, int argc,
			     sqlite3_value ** argv)
{
/* SQL function:
/ MapConfigurationTitleN(Integer ind)
/
/ returns the Title of the Nth  Map Configuration (first Index is ZERO)
/ NULL on failure or on invalid arguments
*/
................................................................................
	sqlite3_result_null (context);
    else
	sqlite3_result_text (context, name, strlen (name), free);
}

static void
fnct_MapConfigurationAbstractN (sqlite3_context * context, int argc,
				sqlite3_value ** argv)
{
/* SQL function:
/ MapConfigurationAbstractN(Integer ind)
/
/ returns the Name of the Nth  Map Configuration (first Index is ZERO)
/ NULL on failure or on invalid arguments
*/
................................................................................
      }
    cache->buffer_end_cap_style = GEOSBUF_CAP_ROUND;
    cache->buffer_join_style = GEOSBUF_JOIN_ROUND;
    cache->buffer_mitre_limit = 5.0;
    cache->buffer_quadrant_segments = 30;
    sqlite3_result_int (context, 1);
#else /* GEOS is disabled */
    sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_endcap (sqlite3_context * context, int argc,
			       sqlite3_value ** argv)
{
................................................................................
      {
	  cache->buffer_end_cap_style = val;
	  sqlite3_result_int (context, 1);
      }
    else
	sqlite3_result_int (context, 0);
#else /* GEOS is disabled */
    sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_join (sqlite3_context * context, int argc,
			     sqlite3_value ** argv)
{
................................................................................
      {
	  cache->buffer_join_style = val;
	  sqlite3_result_int (context, 1);
      }
    else
	sqlite3_result_int (context, 0);
#else /* GEOS is disabled */
    sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_mitrelimit (sqlite3_context * context, int argc,
				   sqlite3_value ** argv)
{
................................................................................
      {
	  sqlite3_result_int (context, 0);
	  return;
      }
    cache->buffer_mitre_limit = value;
    sqlite3_result_int (context, 1);
#else /* GEOS is disabled */
    sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_set_quadsegs (sqlite3_context * context, int argc,
				 sqlite3_value ** argv)
{
................................................................................
	  return;
      }
    if (value <= 0)
	value = 1;
    cache->buffer_quadrant_segments = value;
    sqlite3_result_int (context, 1);
#else /* GEOS is disabled */
    sqlite3_result_int (context, 0);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_endcap (sqlite3_context * context, int argc,
			       sqlite3_value ** argv)
{
................................................................................
	  sqlite3_result_text (context, "SQUARE", strlen ("SQUARE"),
			       SQLITE_TRANSIENT);
	  break;
      default:
	  sqlite3_result_null (context);
      };
#else /* GEOS is disabled */
    sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_join (sqlite3_context * context, int argc,
			     sqlite3_value ** argv)
{
................................................................................
	  sqlite3_result_text (context, "BEVEL", strlen ("BEVEL"),
			       SQLITE_TRANSIENT);
	  break;
      default:
	  sqlite3_result_null (context);
      };
#else /* GEOS is disabled */
    sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_mitrelimit (sqlite3_context * context, int argc,
				   sqlite3_value ** argv)
{
................................................................................
    if (cache == NULL)
      {
	  sqlite3_result_null (context);
	  return;
      }
    sqlite3_result_double (context, cache->buffer_mitre_limit);
#else /* GEOS is disabled */
    sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_bufferoptions_get_quadsegs (sqlite3_context * context, int argc,
				 sqlite3_value ** argv)
{
................................................................................
    if (cache == NULL)
      {
	  sqlite3_result_null (context);
	  return;
      }
    sqlite3_result_int (context, cache->buffer_quadrant_segments);
#else /* GEOS is disabled */
    sqlite3_result_null (context);
#endif /* end including GEOS */
}

static void
fnct_addVirtualTableExtent (sqlite3_context * context, int argc,
			    sqlite3_value ** argv)
{
................................................................................
				fnct_createMissingSystemTables, 0, 0, 0);
    sqlite3_create_function_v2 (db, "CreateMissingSystemTables", 1,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache,
				fnct_createMissingSystemTables, 0, 0, 0);
    sqlite3_create_function_v2 (db, "CreateMissingSystemTables", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache,
				fnct_createMissingSystemTables, 0, 0, 0);
    sqlite3_create_function_v2 (db, "CreateMissingRasterlite2Columns", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache,
				fnct_createMissingRasterlite2Columns, 0, 0, 0);

    sqlite3_create_function_v2 (db, "spatialite_target_cpu", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_spatialite_target_cpu, 0, 0, 0);
    sqlite3_create_function_v2 (db, "check_strict_sql_quoting", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_check_strict_sql_quoting, 0, 0, 0);
................................................................................
    sqlite3_create_function (db, "WMS_SetGetCapabilitiesInfos", 3, SQLITE_ANY,
			     0, fnct_SetWMSGetCapabilitiesInfos, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 9, SQLITE_ANY, 0,
			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 13, SQLITE_ANY, 0,
			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 18, SQLITE_ANY, 0,
			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_RegisterGetMap", 21, SQLITE_ANY, 0,
			     fnct_RegisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_UnRegisterGetMap", 2, SQLITE_ANY, 0,
			     fnct_UnregisterWMSGetMap, 0, 0);
    sqlite3_create_function (db, "WMS_SetGetMapInfos", 4, SQLITE_ANY, 0,
			     fnct_SetWMSGetMapInfos, 0, 0);
    sqlite3_create_function (db, "WMS_SetGetMapCopyright", 3, SQLITE_ANY, 0,
			     fnct_SetWMSGetMapCopyright, 0, 0);
................................................................................
			     0, fnct_SetVectorCoverageInfos, 0, 0);
    sqlite3_create_function (db, "SE_SetVectorCoverageCopyright", 2,
			     SQLITE_ANY, 0, fnct_SetVectorCoverageCopyright,
			     0, 0);
    sqlite3_create_function (db, "SE_SetVectorCoverageCopyright", 3,
			     SQLITE_ANY, 0, fnct_SetVectorCoverageCopyright,
			     0, 0);
    sqlite3_create_function (db, "SE_SetVectorCoverageVisibilityRange", 3,
			     SQLITE_ANY, 0,
			     fnct_SetVectorCoverageVisibilityRange, 0, 0);
    sqlite3_create_function (db, "SE_RegisterVectorCoverageSrid", 2, SQLITE_ANY,
			     0, fnct_RegisterVectorCoverageSrid, 0, 0);

    sqlite3_create_function (db, "SE_UnRegisterVectorCoverageSrid", 2,
			     SQLITE_ANY, 0, fnct_UnregisterVectorCoverageSrid,
			     0, 0);
    sqlite3_create_function (db, "SE_RegisterVectorCoverageKeyword", 2,
			     SQLITE_ANY, 0, fnct_RegisterVectorCoverageKeyword,
			     0, 0);
    sqlite3_create_function (db, "SE_UnRegisterVectorCoverageKeyword", 2,
			     SQLITE_ANY, 0,
			     fnct_UnregisterVectorCoverageKeyword, 0, 0);
    sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 0, SQLITE_ANY,
			     0, fnct_UpdateVectorCoverageExtent, 0, 0);

    sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 1, SQLITE_ANY,
			     0, fnct_UpdateVectorCoverageExtent, 0, 0);

    sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 2, SQLITE_ANY,
			     0, fnct_UpdateVectorCoverageExtent, 0, 0);

    sqlite3_create_function_v2 (db, "SE_AutoRegisterStandardBrushes", 0,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_AutoRegisterStandardBrushes, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_RegisterExternalGraphic, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 5,
................................................................................
				fnct_ReloadRasterStyle, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_RegisterRasterStyledLayer", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_RegisterRasterStyledLayer, 0, 0, 0);
    sqlite3_create_function_v2 (db, "SE_UnRegisterRasterStyledLayer", 2,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_UnRegisterRasterStyledLayer, 0, 0, 0);
    sqlite3_create_function (db, "SE_RegisterRasterCoverageSrid", 2, SQLITE_ANY,
			     0, fnct_RegisterRasterCoverageSrid, 0, 0);

    sqlite3_create_function (db, "SE_UnRegisterRasterCoverageSrid", 2,
			     SQLITE_ANY, 0, fnct_UnregisterRasterCoverageSrid,
			     0, 0);
    sqlite3_create_function (db, "SE_RegisterRasterCoverageKeyword", 2,
			     SQLITE_ANY, 0, fnct_RegisterRasterCoverageKeyword,
			     0, 0);
    sqlite3_create_function (db, "SE_UnRegisterRasterCoverageKeyword", 2,
			     SQLITE_ANY, 0,
			     fnct_UnregisterRasterCoverageKeyword, 0, 0);
    sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 0, SQLITE_ANY,
			     0, fnct_UpdateRasterCoverageExtent, 0, 0);

    sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 1, SQLITE_ANY,
			     0, fnct_UpdateRasterCoverageExtent, 0, 0);

    sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 2, SQLITE_ANY,
			     0, fnct_UpdateRasterCoverageExtent, 0, 0);


    sqlite3_create_function_v2 (db, "RL2_RegisterMapConfiguration", 1,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_RegisterMapConfiguration, 0, 0, 0);
    sqlite3_create_function_v2 (db, "RL2_UnRegisterMapConfiguration", 1,
				SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0,
				fnct_UnRegisterMapConfiguration, 0, 0, 0);

Changes to test/Makefile.am.

235
236
237
238
239
240
241
242
243
244
	sql_stmt_gpkgnocache_tests sql_stmt_sequence_tests \
	sql_stmt_routing_tests sql_stmt_logfile_tests \
	sql_stmt_iconv_tests sql_stmt_point_geom \
	sql_stmt_tiny_point sql_stmt_postgres_tests \
	sql_stmt_proc_tests sql_stmt_geos370_tests \
	sql_stmt_renamenew_tests sql_stmt_renameold_tests \
	sql_stmt_bufoptsnew_tests sql_stmt_bufoptsold_tests \
	sql_stmt_geos_390 sql_stmt_geos_non390 \
	sql_stmt_rtgeom_390 sql_stmt_rtgeom_non390 \
	sql_stmt_voronoj_390 sql_stmt_voronoj_non390







|


235
236
237
238
239
240
241
242
243
244
	sql_stmt_gpkgnocache_tests sql_stmt_sequence_tests \
	sql_stmt_routing_tests sql_stmt_logfile_tests \
	sql_stmt_iconv_tests sql_stmt_point_geom \
	sql_stmt_tiny_point sql_stmt_postgres_tests \
	sql_stmt_proc_tests sql_stmt_geos370_tests \
	sql_stmt_renamenew_tests sql_stmt_renameold_tests \
	sql_stmt_bufoptsnew_tests sql_stmt_bufoptsold_tests \
	sql_stmt_geos_390 sql_stmt_geos_391 sql_stmt_geos_non390 \
	sql_stmt_rtgeom_390 sql_stmt_rtgeom_non390 \
	sql_stmt_voronoj_390 sql_stmt_voronoj_non390

Changes to test/Makefile.in.

1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
	sql_stmt_gpkgnocache_tests sql_stmt_sequence_tests \
	sql_stmt_routing_tests sql_stmt_logfile_tests \
	sql_stmt_iconv_tests sql_stmt_point_geom \
	sql_stmt_tiny_point sql_stmt_postgres_tests \
	sql_stmt_proc_tests sql_stmt_geos370_tests \
	sql_stmt_renamenew_tests sql_stmt_renameold_tests \
	sql_stmt_bufoptsnew_tests sql_stmt_bufoptsold_tests \
	sql_stmt_geos_390 sql_stmt_geos_non390 \
	sql_stmt_rtgeom_390 sql_stmt_rtgeom_non390 \
	sql_stmt_voronoj_390 sql_stmt_voronoj_non390

all: all-recursive

.SUFFIXES:
.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs







|







1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
	sql_stmt_gpkgnocache_tests sql_stmt_sequence_tests \
	sql_stmt_routing_tests sql_stmt_logfile_tests \
	sql_stmt_iconv_tests sql_stmt_point_geom \
	sql_stmt_tiny_point sql_stmt_postgres_tests \
	sql_stmt_proc_tests sql_stmt_geos370_tests \
	sql_stmt_renamenew_tests sql_stmt_renameold_tests \
	sql_stmt_bufoptsnew_tests sql_stmt_bufoptsold_tests \
	sql_stmt_geos_390 sql_stmt_geos_391 sql_stmt_geos_non390 \
	sql_stmt_rtgeom_390 sql_stmt_rtgeom_non390 \
	sql_stmt_voronoj_390 sql_stmt_voronoj_non390

all: all-recursive

.SUFFIXES:
.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs

Changes to test/check_sql_stmt.h.

766
767
768
769
770
771
772






773
774
775
776
777
778
779
780
      {
	  /* older versions supporting historical beheviour for some tests */
	  result =
	      run_subdir_test ("sql_stmt_geos_non380", conn, load_extension, 0);
      }
    if (result != 0)
	return result;






    if (strcmp (GEOSversion (), "3.9") >= 0)
      {
	  /* GEOS 3.9.0 changed historical beheviour for some tests */
	  result =
	      run_subdir_test ("sql_stmt_geos_390", conn, load_extension, 0);
      }
    else
      {







>
>
>
>
>
>
|







766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
      {
	  /* older versions supporting historical beheviour for some tests */
	  result =
	      run_subdir_test ("sql_stmt_geos_non380", conn, load_extension, 0);
      }
    if (result != 0)
	return result;
    if (strcmp (GEOSversion (), "3.9.1") >= 0)
      {
	  /* GEOS 3.9.1 changed historical beheviour for some tests */
	  result =
	      run_subdir_test ("sql_stmt_geos_391", conn, load_extension, 0);
      }
    else if (strcmp (GEOSversion (), "3.9") >= 0)
      {
	  /* GEOS 3.9.0 changed historical beheviour for some tests */
	  result =
	      run_subdir_test ("sql_stmt_geos_390", conn, load_extension, 0);
      }
    else
      {

Added test/sql_stmt_geos_391/Makefile.am.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11

EXTRA_DIST =  buffer7.testcase \
	geoserror8.testcase \
	intersection7.testcase \
	intersection8.testcase \
	union12.testcase \
	union13.testcase \
	union17.testcase \
	union18.testcase \
	union19.testcase \
	union20.testcase

Added test/sql_stmt_geos_391/Makefile.in.





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
# Makefile.in generated by automake 1.16.2 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2020 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = test/sql_stmt_geos_391
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./fakeconfig.h \
	$(top_builddir)/./config.h \
	$(top_builddir)/./src/headers/spatialite/gaiaconfig.h \
	$(top_builddir)/./config-msvc.h \
	$(top_builddir)/./src/headers/spatialite/gaiaconfig-msvc.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GEOSCONFIG = @GEOSCONFIG@
GEOS_CFLAGS = @GEOS_CFLAGS@
GEOS_LDFLAGS = @GEOS_LDFLAGS@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
LIBXML2_LIBS = @LIBXML2_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = buffer7.testcase \
	geoserror8.testcase \
	intersection7.testcase \
	intersection8.testcase \
	union12.testcase \
	union13.testcase \
	union17.testcase \
	union18.testcase \
	union19.testcase \
	union20.testcase

all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geos_391/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign test/sql_stmt_geos_391/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
tags TAGS:

ctags CTAGS:

cscope cscopelist:


distdir: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) distdir-am

distdir-am: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic clean-libtool mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic mostlyclean-libtool

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

.MAKE: install-am install-strip

.PHONY: all all-am check check-am clean clean-generic clean-libtool \
	cscopelist-am ctags-am distclean distclean-generic \
	distclean-libtool distdir dvi dvi-am html html-am info info-am \
	install install-am install-data install-data-am install-dvi \
	install-dvi-am install-exec install-exec-am install-html \
	install-html-am install-info install-info-am install-man \
	install-pdf install-pdf-am install-ps install-ps-am \
	install-strip installcheck installcheck-am installdirs \
	maintainer-clean maintainer-clean-generic mostlyclean \
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
	tags-am uninstall uninstall-am

.PRECIOUS: Makefile


# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

Added test/sql_stmt_geos_391/buffer7.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
buffer7
:memory: #use in-memory database
SELECT AsText(ST_ForceLHR(Buffer(GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))'), 1)));
1 # rows (not including the header row)
1 # columns
AsText(ST_ForceLHR(Buffer(GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))'), 1)))
POLYGON((136.529999 -34.152002, 136.574402 -34.181426, 136.617174 -34.213174, 136.658196 -34.247153, 136.69735 -34.283269, 136.734525 -34.321419, 136.769617 -34.361494, 136.802524 -34.40338, 136.833155 -34.44696, 136.861421 -34.492109, 136.887243 -34.538698, 136.910548 -34.586597, 136.931269 -34.635669, 136.949348 -34.685774, 136.964733 -34.736771, 136.977381 -34.788515, 136.987256 -34.840859, 136.994329 -34.893654, 136.998581 -34.946752, 137 -35, 137 -35.2, 136.998646 -35.252013, 136.994589 -35.303886, 136.987839 -35.355478, 136.978415 -35.406648, 136.966342 -35.457259, 136.951653 -35.507174, 136.934388 -35.556257, 136.914593 -35.604375, 136.892322 -35.651399, 136.867635 -35.697201, 136.8406 -35.741657, 136.811289 -35.784646, 136.779781 -35.826052, 136.746162 -35.865764, 136.710524 -35.903673, 136.672961 -35.939678, 136.633577 -35.97368, 136.592478 -36.005587, 136.549774 -36.035313, 136.505583 -36.062778, 136.460022 -36.087907, 136.413216 -36.110633, 136.365292 -36.130893, 136.316378 -36.148633, 136.266608 -36.163805, 136.216117 -36.176368, 136.16504 -36.186287, 136.113516 -36.193536, 136.061685 -36.198096, 136.009687 -36.199953, 135.957663 -36.199103, 135.905754 -36.195549, 135.854099 -36.189299, 135.80284 -36.180371, 135.752114 -36.168789, 135.70206 -36.154584, 135.652812 -36.137795, 135.604504 -36.118468, 135.557266 -36.096653, 135.511228 -36.072411, 135.466512 -36.045808, 135.423241 -36.016914, 135.381531 -35.985809, 135.341495 -35.952577, 134.541495 -35.252577, 134.503051 -35.21712, 134.466512 -35.179703, 134.43198 -35.140426, 134.399548 -35.099397, 134.369306 -35.056729, 134.341336 -35.012539, 134.315714 -34.966946, 134.292511 -34.920076, 134.27179 -34.872058, 134.253608 -34.823021, 134.238015 -34.773102, 134.225052 -34.722435, 134.214757 -34.67116, 134.207156 -34.619416, 134.20227 -34.567346, 134.200114 -34.515092, 134.200692 -34.462797, 134.204004 -34.410603, 134.21004 -34.358654, 134.218783 -34.307091, 134.230211 -34.256056, 134.24429 -34.205689, 134.260984 -34.156126, 134.280246 -34.107504, 134.302024 -34.059955, 134.326258 -34.01361, 134.352882 -33.968595, 134.381823 -33.925034, 134.413001 -33.883046, 134.446332 -33.842744, 134.481725 -33.804241, 134.519082 -33.76764, 134.558301 -33.733043, 134.599276 -33.700543, 134.641894 -33.670231, 134.686038 -33.642187, 134.731588 -33.61649, 134.778419 -33.593209, 134.826403 -33.572409, 134.875409 -33.554145, 134.925303 -33.538469, 134.975949 -33.525423, 135.027207 -33.515042, 135.078937 -33.507355, 135.130999 -33.502383, 135.18325 -33.50014, 135.235546 -33.500632, 135.287745 -33.503857, 135.339704 -33.509807, 135.391281 -33.518465, 135.442335 -33.529807, 135.492726 -33.543804, 135.542316 -33.560415, 135.59097 -33.579597, 135.638555 -33.601296, 135.68494 -33.625453, 135.729999 -33.652002, 136.529999 -34.152002), (135.132863 -35.497419, 135.165007 -35.499388, 135.217358 -35.499849, 135.269663 -35.497571, 135.321776 -35.492558, 135.373556 -35.484824, 135.42486 -35.474391, 135.475547 -35.461288, 135.525479 -35.445549, 135.574519 -35.427219, 135.622533 -35.406347, 135.669389 -35.382992, 135.714958 -35.357216, 135.759115 -35.32909, 135.80174 -35.298692, 135.842716 -35.266105, 135.88193 -35.231418, 135.919275 -35.194726, 135.954648 -35.15613, 135.987953 -35.115736, 136.019098 -35.073653, 136.047998 -35.029999, 136.074574 -34.984892, 136.098753 -34.938456, 136.120468 -34.890818, 136.13966 -34.842108, 136.156277 -34.792462, 136.170273 -34.742013, 136.181609 -34.690901, 136.190255 -34.639266, 136.196187 -34.587249, 136.199388 -34.534993, 136.199849 -34.482642, 136.197571 -34.430337, 136.192558 -34.378224, 136.184824 -34.326444, 136.174391 -34.27514, 136.161288 -34.224453, 136.145549 -34.174521, 136.127219 -34.125481, 136.106347 -34.077467, 136.082992 -34.030611, 136.067137 -34.002581, 136.034993 -34.000612, 135.982642 -34.000151, 135.930337 -34.002429, 135.878224 -34.007442, 135.826444 -34.015176, 135.77514 -34.025609, 135.724453 -34.038712, 135.674521 -34.054451, 135.625481 -34.072781, 135.577467 -34.093653, 135.530611 -34.117008, 135.485042 -34.142784, 135.440885 -34.17091, 135.39826 -34.201308, 135.357284 -34.233895, 135.31807 -34.268582, 135.280725 -34.305274, 135.245352 -34.34387, 135.212047 -34.384264, 135.180902 -34.426347, 135.152002 -34.470001, 135.125426 -34.515108, 135.101247 -34.561544, 135.079532 -34.609182, 135.06034 -34.657892, 135.043723 -34.707538, 135.029727 -34.757987, 135.018391 -34.809099, 135.009745 -34.860734, 135.003813 -34.912751, 135.000612 -34.965007, 135.000151 -35.017358, 135.002429 -35.069663, 135.007442 -35.121776, 135.015176 -35.173556, 135.025609 -35.22486, 135.038712 -35.275547, 135.054451 -35.325479, 135.072781 -35.374519, 135.093653 -35.422533, 135.117008 -35.469389, 135.132863 -35.497419))

Added test/sql_stmt_geos_391/geoserror8.testcase.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
GEOS_Error - topology exception 
:memory: #use in-memory database
SELECT ST_Difference(MakePoint(136,-35), GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))')), GEOS_GetLastWarningMsg(), Length(GEOS_GetLastErrorMsg()) > 1 AS test;
1 # rows (not including the header row)
3 # columns
ST_Difference(MakePoint(136,-35), GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))'))
GEOS_GetLastWarningMsg()
test
(NULL)
(NULL)
(NULL)

Added test/sql_stmt_geos_391/intersection7.testcase.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
intersection - toxic first point
:memory: #use in-memory database
SELECT AsText(Intersection(GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))'), MakePoint(136,-35)));
1 # rows (not including the header row)
1 # columns
AsText(Intersection(GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))'), MakePoint(136,-35)))
POINT(136 -35)

Added test/sql_stmt_geos_391/intersection8.testcase.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
intersection - toxic second point
:memory: #use in-memory database
SELECT AsText(Intersection(MakePoint(136,-35), GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))')));
1 # rows (not including the header row)
1 # columns
AsText(Intersection(MakePoint(136,-35), GeomFromText('POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))')))
POINT(136 -35)

Added test/sql_stmt_geos_391/union12.testcase.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
union - POLYGON and POINT
:memory: #use in-memory database
SELECT AsText(GUnion(GeomFromText('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'),GeomFromText('POINT(0 0)')))
1 # rows (not including the header row)
1 # columns
AsText(GUnion(GeomFromText('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'),GeomFromText('POINT(0 0)')))
POLYGON((0 2, 2 2, 2 0, 0 0, 0 2))

Added test/sql_stmt_geos_391/union13.testcase.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
union - MULTIPOLYGON and POINT
:memory: #use in-memory database
SELECT AsText(GUnion(GeomFromText('MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)))'),GeomFromText('POINT(0 0)')))
1 # rows (not including the header row)
1 # columns
AsText(GUnion(GeomFromText('MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)))'),GeomFromText('POINT(0 0)')))
MULTIPOLYGON(((0 2, 2 2, 2 0, 0 0, 0 2)))

Added test/sql_stmt_geos_391/union17.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
union - POLYGON with hole
:memory: #use in-memory database
SELECT AsText(GUnion(GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))'), GeomFromText('POLYGON((15 10, 16 10, 16 15, 10 15, 15 10))')));
1 # rows (not including the header row)
1 # columns
AsText(GUnion(GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))'), GeomFromText('POLYGON((15 10, 16 10, 16 15, 10 15, 15 10))')))
POLYGON((10 10, 10 15, 15 15, 16 15, 16 10, 15 10, 10 10), (12 11, 12 12, 11 12, 11 11, 12 11))

Added test/sql_stmt_geos_391/union18.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
union - POLYGON Z with hole
:memory: #use in-memory database
SELECT AsText(GUnion(GeomFromText('POLYGONZ((10 10 100, 15 10 100, 15 15 100, 10 15 100, 10 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102))'), GeomFromText('POLYGONZ((15 10 100, 16 10 100, 16 15 100, 10 15 100, 15 10 100))')));
1 # rows (not including the header row)
1 # columns
AsText(GUnion(GeomFromText('POLYGONZ((10 10 100, 15 10 100, 15 15 100, 10 15 100, 10 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102))'), GeomFromText('POLYGONZ((15 10 100, 16 10 100, 16 15 100, 10 15 100, 15 10 100))')))
POLYGON Z((10 10 100, 10 15 100, 15 15 100, 16 15 100, 16 10 100, 15 10 100, 10 10 100), (12 11 102, 12 12 102, 11 12 102, 11 11 102, 12 11 102))

Added test/sql_stmt_geos_391/union19.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
union - POLYGON M with hole
:memory: #use in-memory database
SELECT AsText(GUnion(GeomFromText('POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))'), GeomFromText('POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2))')));
1 # rows (not including the header row)
1 # columns
AsText(GUnion(GeomFromText('POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))'), GeomFromText('POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2))')))
POLYGON M((10 10 0, 10 15 0, 15 15 0, 16 15 0, 16 10 0, 15 10 0, 10 10 0), (12 11 0, 12 12 0, 11 12 0, 11 11 0, 12 11 0))

Added test/sql_stmt_geos_391/union20.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
union - POLYGON ZM with hole
:memory: #use in-memory database
SELECT AsText(GUnion(GeomFromText('POLYGONZM((10 10 100 1, 15 10 100 2, 15 15 100 3, 10 15 100 4, 10 10 100 1), (11 11 102 1, 12 11 102 2, 12 12 102 3, 11 12 102 4, 11 11 102 1))'), GeomFromText('POLYGONZM((15 10 100 2, 16 10 100 1, 16 15 100 3, 10 15 100 4, 15 10 100 2))')));
1 # rows (not including the header row)
1 # columns
AsText(GUnion(GeomFromText('POLYGONZM((10 10 100 1, 15 10 100 2, 15 15 100 3, 10 15 100 4, 10 10 100 1), (11 11 102 1, 12 11 102 2, 12 12 102 3, 11 12 102 4, 11 11 102 1))'), GeomFromText('POLYGONZM((15 10 100 2, 16 10 100 1, 16 15 100 3, 10 15 100 4, 15 10 100 2))')))
POLYGON ZM((10 10 100 0, 10 15 100 0, 15 15 100 0, 16 15 100 0, 16 10 100 0, 15 10 100 0, 10 10 100 0), (12 11 102 0, 12 12 102 0, 11 12 102 0, 11 11 102 0, 12 11 102 0))

Changes to test/sql_stmt_libxml2_tests/Makefile.am.

442
443
444
445
446
447
448










449
450
451
452
453
454
455
	setvectorinfos16.testcase \
	setvectorinfos17.testcase \
	setvectorinfos18.testcase \
	setvectorinfos19.testcase \
	setvectorinfos20.testcase \
	setvectorinfos21.testcase \
	setvectorinfos22.testcase \










	unregisterGraphic1.testcase \
	unregisterGraphic2.testcase \
	unregisterGraphic3.testcase \
	unregisterGraphic4.testcase \
	unregisterGraphic5.testcase \
	unregisterMapConfig1.testcase \
	unregisterMapConfig2.testcase \







>
>
>
>
>
>
>
>
>
>







442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
	setvectorinfos16.testcase \
	setvectorinfos17.testcase \
	setvectorinfos18.testcase \
	setvectorinfos19.testcase \
	setvectorinfos20.testcase \
	setvectorinfos21.testcase \
	setvectorinfos22.testcase \
	setvectorvisrange1.testcase \
	setvectorvisrange2.testcase \
	setvectorvisrange3.testcase \
	setvectorvisrange4.testcase \
	setvectorvisrange5.testcase \
	setvectorvisrange6.testcase \
	setvectorvisrange7.testcase \
	setvectorvisrange8.testcase \
	setvectorvisrange9.testcase \
	setvectorvisrange10.testcase \
	unregisterGraphic1.testcase \
	unregisterGraphic2.testcase \
	unregisterGraphic3.testcase \
	unregisterGraphic4.testcase \
	unregisterGraphic5.testcase \
	unregisterMapConfig1.testcase \
	unregisterMapConfig2.testcase \

Changes to test/sql_stmt_libxml2_tests/Makefile.in.

698
699
700
701
702
703
704










705
706
707
708
709
710
711
	setvectorinfos16.testcase \
	setvectorinfos17.testcase \
	setvectorinfos18.testcase \
	setvectorinfos19.testcase \
	setvectorinfos20.testcase \
	setvectorinfos21.testcase \
	setvectorinfos22.testcase \










	unregisterGraphic1.testcase \
	unregisterGraphic2.testcase \
	unregisterGraphic3.testcase \
	unregisterGraphic4.testcase \
	unregisterGraphic5.testcase \
	unregisterMapConfig1.testcase \
	unregisterMapConfig2.testcase \







>
>
>
>
>
>
>
>
>
>







698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
	setvectorinfos16.testcase \
	setvectorinfos17.testcase \
	setvectorinfos18.testcase \
	setvectorinfos19.testcase \
	setvectorinfos20.testcase \
	setvectorinfos21.testcase \
	setvectorinfos22.testcase \
	setvectorvisrange1.testcase \
	setvectorvisrange2.testcase \
	setvectorvisrange3.testcase \
	setvectorvisrange4.testcase \
	setvectorvisrange5.testcase \
	setvectorvisrange6.testcase \
	setvectorvisrange7.testcase \
	setvectorvisrange8.testcase \
	setvectorvisrange9.testcase \
	setvectorvisrange10.testcase \
	unregisterGraphic1.testcase \
	unregisterGraphic2.testcase \
	unregisterGraphic3.testcase \
	unregisterGraphic4.testcase \
	unregisterGraphic5.testcase \
	unregisterMapConfig1.testcase \
	unregisterMapConfig2.testcase \

Added test/sql_stmt_libxml2_tests/setvectorvisrange1.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - NULL coverage
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange(NULL, NULL, NULL);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange(NULL, NULL, NULL)
-1

Added test/sql_stmt_libxml2_tests/setvectorvisrange10.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - BLOB MaxScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', NULL, zeroblob(4));
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', NULL, zeroblob(4))
-1

Added test/sql_stmt_libxml2_tests/setvectorvisrange2.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - NULL MinScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', NULL, NULL);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', NULL, NULL)
0

Added test/sql_stmt_libxml2_tests/setvectorvisrange3.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - Int MinScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', 1000, NULL);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', 1000, NULL)
0

Added test/sql_stmt_libxml2_tests/setvectorvisrange4.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - Double MinScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', 1000.5, NULL);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', 1000.5, NULL)
0

Added test/sql_stmt_libxml2_tests/setvectorvisrange5.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - Text MinScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', 'min', NULL);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', 'min', NULL)
-1

Added test/sql_stmt_libxml2_tests/setvectorvisrange6.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - BLOB MinScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', zeroblob(4), NULL);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', zeroblob(4), NULL)
-1

Added test/sql_stmt_libxml2_tests/setvectorvisrange7.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - Int MaxScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', NULL, 1000000);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', NULL, 1000000)
0

Added test/sql_stmt_libxml2_tests/setvectorvisrange8.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - Double MaxScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', NULL, 1000000.5);
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', NULL, 1000000.5)
0

Added test/sql_stmt_libxml2_tests/setvectorvisrange9.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
SetVectorCoverageVisibilityRange - Text MaxScale
:memory: #use in-memory database
SELECT SE_SetVectorCoverageVisibilityRange('coverage', NULL, 'max');
1 # rows (not including the header row)
1 # columns
SE_SetVectorCoverageVisibilityRange('coverage', NULL, 'max')
-1

Changes to test/sql_stmt_tests/Makefile.

184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
....
3162
3163
3164
3165
3166
3167
3168













3169
3170
3171
3172
3173
3174
3175
OBJDUMP = objdump
OBJEXT = o
OTOOL = 
OTOOL64 = 
PACKAGE = libspatialite
PACKAGE_BUGREPORT = a.furieri@lqt.it
PACKAGE_NAME = libspatialite
PACKAGE_STRING = libspatialite 5.0.1
PACKAGE_TARNAME = libspatialite
PACKAGE_URL = 
PACKAGE_VERSION = 5.0.1
PATH_SEPARATOR = :
PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = 
PKG_CONFIG_PATH = 
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE = 
SHELL = /bin/sh
STRIP = strip
VERSION = 5.0.1
abs_builddir = /home/sandro/fossil/libspatialite/test/sql_stmt_tests
abs_srcdir = /home/sandro/fossil/libspatialite/test/sql_stmt_tests
abs_top_builddir = /home/sandro/fossil/libspatialite
abs_top_srcdir = /home/sandro/fossil/libspatialite
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
................................................................................
	wms_registergetmap80.testcase \
	wms_registergetmap81.testcase \
	wms_registergetmap82.testcase \
	wms_registergetmap83.testcase \
	wms_registergetmap84.testcase \
	wms_registergetmap85.testcase \
	wms_registergetmap86.testcase \













	wms_registersetting1.testcase \
	wms_registersetting2.testcase \
	wms_registersetting3.testcase \
	wms_registersetting4.testcase \
	wms_registersetting5.testcase \
	wms_registersetting6.testcase \
	wms_registersetting7.testcase \







|


|









|







 







>
>
>
>
>
>
>
>
>
>
>
>
>







184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
....
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
OBJDUMP = objdump
OBJEXT = o
OTOOL = 
OTOOL64 = 
PACKAGE = libspatialite
PACKAGE_BUGREPORT = a.furieri@lqt.it
PACKAGE_NAME = libspatialite
PACKAGE_STRING = libspatialite 5.1.0-devel
PACKAGE_TARNAME = libspatialite
PACKAGE_URL = 
PACKAGE_VERSION = 5.1.0-devel
PATH_SEPARATOR = :
PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = 
PKG_CONFIG_PATH = 
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE = 
SHELL = /bin/sh
STRIP = strip
VERSION = 5.1.0-devel
abs_builddir = /home/sandro/fossil/libspatialite/test/sql_stmt_tests
abs_srcdir = /home/sandro/fossil/libspatialite/test/sql_stmt_tests
abs_top_builddir = /home/sandro/fossil/libspatialite
abs_top_srcdir = /home/sandro/fossil/libspatialite
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
................................................................................
	wms_registergetmap80.testcase \
	wms_registergetmap81.testcase \
	wms_registergetmap82.testcase \
	wms_registergetmap83.testcase \
	wms_registergetmap84.testcase \
	wms_registergetmap85.testcase \
	wms_registergetmap86.testcase \
	wms_registergetmap87.testcase \
	wms_registergetmap88.testcase \
	wms_registergetmap89.testcase \
	wms_registergetmap90.testcase \
	wms_registergetmap91.testcase \
	wms_registergetmap92.testcase \
	wms_registergetmap93.testcase \
	wms_registergetmap94.testcase \
	wms_registergetmap95.testcase \
	wms_registergetmap96.testcase \
	wms_registergetmap97.testcase \
	wms_registergetmap98.testcase \
	wms_registergetmap99.testcase \
	wms_registersetting1.testcase \
	wms_registersetting2.testcase \
	wms_registersetting3.testcase \
	wms_registersetting4.testcase \
	wms_registersetting5.testcase \
	wms_registersetting6.testcase \
	wms_registersetting7.testcase \

Changes to test/sql_stmt_tests/Makefile.am.

2906
2907
2908
2909
2910
2911
2912













2913
2914
2915
2916
2917
2918
2919
	wms_registergetmap80.testcase \
	wms_registergetmap81.testcase \
	wms_registergetmap82.testcase \
	wms_registergetmap83.testcase \
	wms_registergetmap84.testcase \
	wms_registergetmap85.testcase \
	wms_registergetmap86.testcase \













	wms_registersetting1.testcase \
	wms_registersetting2.testcase \
	wms_registersetting3.testcase \
	wms_registersetting4.testcase \
	wms_registersetting5.testcase \
	wms_registersetting6.testcase \
	wms_registersetting7.testcase \







>
>
>
>
>
>
>
>
>
>
>
>
>







2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
	wms_registergetmap80.testcase \
	wms_registergetmap81.testcase \
	wms_registergetmap82.testcase \
	wms_registergetmap83.testcase \
	wms_registergetmap84.testcase \
	wms_registergetmap85.testcase \
	wms_registergetmap86.testcase \
	wms_registergetmap87.testcase \
	wms_registergetmap88.testcase \
	wms_registergetmap89.testcase \
	wms_registergetmap90.testcase \
	wms_registergetmap91.testcase \
	wms_registergetmap92.testcase \
	wms_registergetmap93.testcase \
	wms_registergetmap94.testcase \
	wms_registergetmap95.testcase \
	wms_registergetmap96.testcase \
	wms_registergetmap97.testcase \
	wms_registergetmap98.testcase \
	wms_registergetmap99.testcase \
	wms_registersetting1.testcase \
	wms_registersetting2.testcase \
	wms_registersetting3.testcase \
	wms_registersetting4.testcase \
	wms_registersetting5.testcase \
	wms_registersetting6.testcase \
	wms_registersetting7.testcase \

Changes to test/sql_stmt_tests/Makefile.in.

3162
3163
3164
3165
3166
3167
3168













3169
3170
3171
3172
3173
3174
3175
	wms_registergetmap80.testcase \
	wms_registergetmap81.testcase \
	wms_registergetmap82.testcase \
	wms_registergetmap83.testcase \
	wms_registergetmap84.testcase \
	wms_registergetmap85.testcase \
	wms_registergetmap86.testcase \













	wms_registersetting1.testcase \
	wms_registersetting2.testcase \
	wms_registersetting3.testcase \
	wms_registersetting4.testcase \
	wms_registersetting5.testcase \
	wms_registersetting6.testcase \
	wms_registersetting7.testcase \







>
>
>
>
>
>
>
>
>
>
>
>
>







3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
	wms_registergetmap80.testcase \
	wms_registergetmap81.testcase \
	wms_registergetmap82.testcase \
	wms_registergetmap83.testcase \
	wms_registergetmap84.testcase \
	wms_registergetmap85.testcase \
	wms_registergetmap86.testcase \
	wms_registergetmap87.testcase \
	wms_registergetmap88.testcase \
	wms_registergetmap89.testcase \
	wms_registergetmap90.testcase \
	wms_registergetmap91.testcase \
	wms_registergetmap92.testcase \
	wms_registergetmap93.testcase \
	wms_registergetmap94.testcase \
	wms_registergetmap95.testcase \
	wms_registergetmap96.testcase \
	wms_registergetmap97.testcase \
	wms_registergetmap98.testcase \
	wms_registergetmap99.testcase \
	wms_registersetting1.testcase \
	wms_registersetting2.testcase \
	wms_registersetting3.testcase \
	wms_registersetting4.testcase \
	wms_registersetting5.testcase \
	wms_registersetting6.testcase \
	wms_registersetting7.testcase \

Added test/sql_stmt_tests/wms_registergetmap87.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - NULL MinScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 0, NULL, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 0, NULL, NULL):0
0

Added test/sql_stmt_tests/wms_registergetmap88.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Int MinScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, NULL, 1000, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, NULL, 1000, NULL):0
0

Added test/sql_stmt_tests/wms_registergetmap89.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Double MinScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, 'ffffff', 0, 'somevalue', NULL, 1000.5, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, 'ffffff', 0, 'somevalue', NULL, 1000.5, NULL):0
0

Added test/sql_stmt_tests/wms_registergetmap90.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Text MinScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 1, 'alpha', NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 1, 'alpha', NULL):0
-1

Added test/sql_stmt_tests/wms_registergetmap91.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - BLOB MinScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 1, zeroblob(0), NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 1, zeroblob(0), NULL):0
-1

Added test/sql_stmt_tests/wms_registergetmap92.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - NULL MaxScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 1, NULL, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 1, NULL, NULL):0
0

Added test/sql_stmt_tests/wms_registergetmap93.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Int MaxScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 0, NULL, 1000000)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 0, NULL, 1000000):0
0

Added test/sql_stmt_tests/wms_registergetmap94.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Double MaxScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, 'ffffff', 0, 'somevalue', NULL, 1000.5, 1000000.5)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, 'ffffff', 0, 'somevalue', NULL, 1000.5, 1000000.5):0
0

Added test/sql_stmt_tests/wms_registergetmap95.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Text MaxScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 1, NULL, 'alpha')
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, 0, NULL, 1, NULL, 'alpha'):0
-1

Added test/sql_stmt_tests/wms_registergetmap96.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - BLOB MaxScaleDenominator
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 0, NULL, zeroblob(0))
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 0, NULL, zeroblob(0)):0
-1

Added test/sql_stmt_tests/wms_registergetmap97.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - BLOB Cascaded
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, zeroblob(4), NULL, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, zeroblob(4), NULL, NULL):0
-1

Added test/sql_stmt_tests/wms_registergetmap98.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Text Cascaded
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 'cascaded', NULL, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 'cascaded', NULL, NULL):0
-1

Added test/sql_stmt_tests/wms_registergetmap99.testcase.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
WMS_RegisterGetMap() - Double Cascaded
:memory: #use in-memory database
SELECT WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 0.5, NULL, NULL)
1 # rows (not including the header row)
1 # columns
WMS_RegisterGetMap('getcapabilities_url', 'getmap_url', 'layer', 'title', 'abstract', '1.3.0', 'EPSG:3003', 'image/png', 'default', 1, 0, 1, 0, 512, 512, NULL, zeroblob(4), 0, 0.5, NULL, NULL):0
-1