51
51
#include "sqlite3.h"
52
52
#include "spatialite.h"
54
#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */
55
#include <libxml/parser.h>
55
execute_check (sqlite3 * sqlite, const char *sql, char **error)
57
/* executing an SQL statement returning True/False */
64
ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL);
68
*error = sqlite3_mprintf ("%s", sqlite3_errmsg (sqlite));
71
ret = sqlite3_step (stmt);
72
if (ret == SQLITE_DONE || ret == SQLITE_ROW)
74
if (sqlite3_column_int (stmt, 0) == 1)
77
sqlite3_finalize (stmt);
58
83
static unsigned char *
59
load_blob(const char *path, int *blob_len)
84
load_blob (const char *path, int *blob_len)
61
86
/* loading an external image */
62
87
unsigned char *blob;
65
FILE *fl = fopen(path, "rb");
67
fprintf (stderr, "cannot open \"%s\"\n", path);
70
if (fseek(fl, 0, SEEK_END) == 0)
72
blob = (unsigned char *) malloc(sz);
90
FILE *fl = fopen (path, "rb");
93
fprintf (stderr, "cannot open \"%s\"\n", path);
96
if (fseek (fl, 0, SEEK_END) == 0)
98
blob = (unsigned char *) malloc (sz);
75
rd = fread(blob, 1, sz, fl);
77
fprintf (stderr, "read error \"%s\"\n", path);
101
rd = fread (blob, 1, sz, fl);
104
fprintf (stderr, "read error \"%s\"\n", path);
84
111
static unsigned char *
85
load_xml(const char *path, int *len)
112
load_xml (const char *path, int *len)
87
114
/* loading an external XML */
88
115
unsigned char *xml;
91
FILE *fl = fopen(path, "rb");
93
fprintf (stderr, "cannot open \"%s\"\n", path);
96
if (fseek(fl, 0, SEEK_END) == 0)
118
FILE *fl = fopen (path, "rb");
121
fprintf (stderr, "cannot open \"%s\"\n", path);
124
if (fseek (fl, 0, SEEK_END) == 0)
126
xml = malloc (sz + 1);
101
rd = fread(xml, 1, sz, fl);
103
fprintf (stderr, "read error \"%s\"\n", path);
129
rd = fread (xml, 1, sz, fl);
132
fprintf (stderr, "read error \"%s\"\n", path);
112
build_hex_blob(const unsigned char *blob, int blob_len)
141
build_hex_blob (const unsigned char *blob, int blob_len)
114
143
/* building an HEX blob */
116
145
const unsigned char *p_in = blob;
117
char *hex = malloc((blob_len * 2) + 1);
146
char *hex = malloc ((blob_len * 2) + 1);
118
147
char *p_out = hex;
119
148
for (i = 0; i < blob_len; i++)
121
sprintf(p_out, "%02x", *p_in);
150
sprintf (p_out, "%02x", *p_in);
128
int main (int argc, char *argv[])
158
check_vector (sqlite3 * handle, void *cache)
160
/* testing Vector Styles */
132
162
char *err_msg = NULL;
136
164
unsigned char *blob;
139
167
unsigned char *xml;
142
void *cache = spatialite_alloc_connection();
144
if (argc > 1 || argv[0] == NULL)
145
argc = 1; /* silencing stupid compiler warnings */
147
ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
148
if (ret != SQLITE_OK) {
149
fprintf(stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle));
150
sqlite3_close(handle);
154
spatialite_init_ex (handle, cache, 0);
156
ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg);
157
if (ret != SQLITE_OK) {
158
fprintf(stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg);
159
sqlite3_free (err_msg);
163
#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */
165
ret = sqlite3_get_table (handle, "SELECT CreateStylingTables(1)", &results, &rows, &columns, &err_msg);
166
if (ret != SQLITE_OK) {
167
fprintf (stderr, "Error CreateStylingTables: %s\n", err_msg);
168
sqlite3_free (err_msg);
171
if ((rows != 1) || (columns != 1))
173
sqlite3_free_table(results);
174
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
170
/* testing External Graphic */
171
blob = load_blob ("empty.png", &blob_len);
177
if (strcmp(results[1 * columns + 0], "1") != 0)
179
fprintf (stderr, "Unexpected #0 result (got %s, expected 1)", results[1 * columns + 0]);
180
sqlite3_free_table(results);
174
hexBlob = build_hex_blob (blob, blob_len);
183
sqlite3_free_table(results);
185
blob = load_blob("empty.png", &blob_len);
188
hexBlob = build_hex_blob(blob, blob_len);
179
sqlite3_mprintf ("SELECT SE_RegisterExternalGraphic('url-A', x%Q)",
181
ret = execute_check (handle, sql, &err_msg);
183
if (ret != SQLITE_OK)
185
fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n\n", err_msg);
186
sqlite3_free (err_msg);
192
("SELECT SE_RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')",
195
ret = execute_check (handle, sql, &err_msg);
197
if (ret != SQLITE_OK)
199
fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n\n", err_msg);
200
sqlite3_free (err_msg);
204
xml = load_xml ("thunderstorm_mild.svg", &len);
207
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
209
hexBlob = build_hex_blob (blob, blob_len);
190
211
if (hexBlob == NULL)
192
sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-A', x%Q)", hexBlob);
193
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
195
if (ret != SQLITE_OK) {
196
fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n", err_msg);
197
sqlite3_free (err_msg);
200
if ((rows != 1) || (columns != 1))
202
sqlite3_free_table(results);
203
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
206
if (strcmp(results[1 * columns + 0], "1") != 0)
208
fprintf (stderr, "Unexpected #1 result (got %s, expected 1)", results[1 * columns + 0]);
209
sqlite3_free_table(results);
214
sqlite3_mprintf ("SELECT SE_RegisterExternalGraphic('url-A', x%Q)",
216
ret = execute_check (handle, sql, &err_msg);
218
if (ret != SQLITE_OK)
220
fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n\n", err_msg);
221
sqlite3_free (err_msg);
227
("SELECT SE_RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')",
230
ret = execute_check (handle, sql, &err_msg);
232
if (ret != SQLITE_OK)
234
fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n\n", err_msg);
235
sqlite3_free (err_msg);
239
/* creating two vector Tables */
240
sql = "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)";
241
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
242
if (ret != SQLITE_OK)
244
fprintf (stderr, "Error Create Table table1: %s\n\n", err_msg);
245
sqlite3_free (err_msg);
248
sql = "CREATE TABLE table2 (id INTEGER PRIMARY KEY AUTOINCREMENT)";
249
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
250
if (ret != SQLITE_OK)
252
fprintf (stderr, "Error Create Table table2: %s\n\n", err_msg);
253
sqlite3_free (err_msg);
256
sql = "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')";
257
ret = execute_check (handle, sql, &err_msg);
258
if (ret != SQLITE_OK)
260
fprintf (stderr, "Error AddGeometryColumn table1: %s\n\n", err_msg);
261
sqlite3_free (err_msg);
264
sql = "SELECT AddGeometryColumn('table2', 'geom', 32632, 'POINT', 'XY')";
265
ret = execute_check (handle, sql, &err_msg);
266
if (ret != SQLITE_OK)
268
fprintf (stderr, "Error AddGeometryColumn table2: %s\n\n", err_msg);
269
sqlite3_free (err_msg);
273
/* registering two Vector Coverages */
274
sql = "SELECT SE_RegisterVectorCoverage('table1', 'table1', 'geom')";
275
ret = execute_check (handle, sql, &err_msg);
276
if (ret != SQLITE_OK)
278
fprintf (stderr, "Error RegisterVectorCoverage table1: %s\n\n",
280
sqlite3_free (err_msg);
284
"SELECT SE_RegisterVectorCoverage('table2', 'table2', 'geom', 'title-2', 'abstract-2')";
285
ret = execute_check (handle, sql, &err_msg);
286
if (ret != SQLITE_OK)
288
fprintf (stderr, "Error RegisterVectorCoverage table2: %s\n\n",
290
sqlite3_free (err_msg);
293
sql = "SELECT SE_SetVectorCoverageInfos('table1', 'title-1', 'abstract-1')";
294
ret = execute_check (handle, sql, &err_msg);
295
if (ret != SQLITE_OK)
297
fprintf (stderr, "Error RegisterVectorCoverage table1: %s\n\n",
299
sqlite3_free (err_msg);
303
/* testing Vector Styles */
304
xml = load_xml ("stazioni_se.xml", &len);
307
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
311
fprintf (stderr, "this is not a well-formed XML !!!\n");
314
hexBlob = build_hex_blob (blob, blob_len);
319
/* Register Vector Styled Layer */
320
sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob);
321
ret = execute_check (handle, sql, &err_msg);
323
if (ret != SQLITE_OK)
325
fprintf (stderr, "Error RegisterVectorStyle #1: %s\n\n", err_msg);
326
sqlite3_free (err_msg);
330
sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyledLayer('table1', 1)");
331
ret = execute_check (handle, sql, &err_msg);
333
if (ret != SQLITE_OK)
335
fprintf (stderr, "Error RegisterVectorStyledLayer #1: %s\n\n",
337
sqlite3_free (err_msg);
343
("SELECT SE_RegisterVectorStyledLayer('table2', 'Railway Stations')");
344
ret = execute_check (handle, sql, &err_msg);
346
if (ret != SQLITE_OK)
348
fprintf (stderr, "Error RegisterVectorStyledLayer #2: %s\n\n",
350
sqlite3_free (err_msg);
355
xml = load_xml ("stazioni2_se.xml", &len);
358
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
362
fprintf (stderr, "this is not a well-formed XML !!!\n");
365
hexBlob = build_hex_blob (blob, blob_len);
370
sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob);
371
ret = execute_check (handle, sql, &err_msg);
373
if (ret != SQLITE_OK)
375
fprintf (stderr, "Error RegisterVectorStyle #2: %s\n\n", err_msg);
376
sqlite3_free (err_msg);
380
sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyledLayer('table2', 2)");
381
ret = execute_check (handle, sql, &err_msg);
383
if (ret != SQLITE_OK)
385
fprintf (stderr, "Error RegisterVectorStyledLayer #3: %s\n\n",
387
sqlite3_free (err_msg);
391
sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob);
392
ret = execute_check (handle, sql, NULL);
394
if (ret == SQLITE_OK)
396
fprintf (stderr, "Error RegisterVectorStyle #3: %s\n\n",
401
/* Reload Vector Style */
402
sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle(12, x%Q)", hexBlob);
403
ret = execute_check (handle, sql, NULL);
405
if (ret == SQLITE_OK)
407
fprintf (stderr, "Error ReloadVectorStyle #1: %s\n\n",
412
sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle(1, x%Q)", hexBlob);
413
ret = execute_check (handle, sql, NULL);
415
if (ret == SQLITE_OK)
417
fprintf (stderr, "Error ReloadVectorStyle #2: %s\n\n",
424
("SELECT SE_ReloadVectorStyle('Railway Stations', x%Q)", hexBlob);
425
ret = execute_check (handle, sql, NULL);
427
if (ret == SQLITE_OK)
429
fprintf (stderr, "Error ReloadVectorStyle #4: %s\n\n",
436
("SELECT SE_ReloadVectorStyle('Railway Stations', x%Q)", hexBlob);
437
ret = execute_check (handle, sql, NULL);
439
if (ret == SQLITE_OK)
441
fprintf (stderr, "Error ReloadVectorStyle #5: %s\n\n",
447
xml = load_xml ("stazioni_se.xml", &len);
450
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
454
fprintf (stderr, "this is not a well-formed XML !!!\n");
457
hexBlob = build_hex_blob (blob, blob_len);
461
sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle(1, x%Q)", hexBlob);
462
ret = execute_check (handle, sql, &err_msg);
464
if (ret != SQLITE_OK)
466
fprintf (stderr, "Error ReloadVectorStyle #7: %s\n\n", err_msg);
467
sqlite3_free (err_msg);
473
("SELECT SE_ReloadVectorStyle('Railway Stations 2', x%Q)", hexBlob);
474
ret = execute_check (handle, sql, NULL);
476
if (ret == SQLITE_OK)
478
fprintf (stderr, "Error ReloadVectorStyle #8: %s\n\n",
484
/* Unregister Vector Style */
485
sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle(5)");
486
ret = execute_check (handle, sql, NULL);
488
if (ret == SQLITE_OK)
490
fprintf (stderr, "Error UnRegisterVectorStyle #1: %s\n\n",
495
sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle('alpha')");
496
ret = execute_check (handle, sql, NULL);
498
if (ret == SQLITE_OK)
500
fprintf (stderr, "Error UnRegisterVectorStyle #2: %s\n\n",
507
("SELECT SE_UnRegisterVectorStyle('Railway Stations 2')");
508
ret = execute_check (handle, sql, NULL);
510
if (ret == SQLITE_OK)
512
fprintf (stderr, "Error UnRegisterVectorStyle #3: %s\n\n",
519
("SELECT SE_UnRegisterVectorStyle('Railway Stations 2', 1)");
520
ret = execute_check (handle, sql, &err_msg);
522
if (ret != SQLITE_OK)
524
fprintf (stderr, "Error UnRegisterVectorStyle #5: %s\n\n", err_msg);
525
sqlite3_free (err_msg);
529
/* Register Vector Styled Layer: again */
530
xml = load_xml ("stazioni2_se.xml", &len);
533
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
537
fprintf (stderr, "this is not a well-formed XML !!!\n");
540
hexBlob = build_hex_blob (blob, blob_len);
545
sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob);
546
ret = execute_check (handle, sql, &err_msg);
548
if (ret != SQLITE_OK)
550
fprintf (stderr, "Error RegisterVectorStyle #3: %s\n\n", err_msg);
551
sqlite3_free (err_msg);
558
("SELECT SE_RegisterVectorStyledLayer('table1', 'Railway Stations 2')");
559
ret = execute_check (handle, sql, &err_msg);
561
if (ret != SQLITE_OK)
563
fprintf (stderr, "Error RegisterVectorStyledLayer #5: %s\n\n",
565
sqlite3_free (err_msg);
569
/* Unregister Vector Style Layer */
572
("SELECT SE_UnRegisterVectorStyledLayer('table1', 'Railway Stations 2')");
573
ret = execute_check (handle, sql, &err_msg);
575
if (ret != SQLITE_OK)
577
fprintf (stderr, "Error UnregisterVectorStyledLayer #1: %s\n\n",
579
sqlite3_free (err_msg);
584
sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyledLayer('table1', 1)");
585
ret = execute_check (handle, sql, &err_msg);
587
if (ret != SQLITE_OK)
589
fprintf (stderr, "Error UnregisterVectorStyledLayer #2: %s\n\n",
591
sqlite3_free (err_msg);
595
/* unregister External Graphic */
596
sql = sqlite3_mprintf ("SELECT SE_UnRegisterExternalGraphic('url-A')");
597
ret = execute_check (handle, sql, &err_msg);
599
if (ret != SQLITE_OK)
601
fprintf (stderr, "Error UnRegisterExternalGraphic #1: %s\n\n",
603
sqlite3_free (err_msg);
606
sql = sqlite3_mprintf ("SELECT SE_UnRegisterExternalGraphic('jeroboam')");
607
ret = execute_check (handle, sql, NULL);
609
if (ret == SQLITE_OK)
611
fprintf (stderr, "Error UnRegisterExternalGraphic #2: %s\n\n",
620
check_raster (sqlite3 * handle, void *cache)
622
/* testing Raster Styles */
624
char *err_msg = NULL;
632
/* testing Raster Styles */
633
xml = load_xml ("raster_se.xml", &len);
636
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
640
fprintf (stderr, "this is not a well-formed XML !!!\n");
643
hexBlob = build_hex_blob (blob, blob_len);
648
/* Register Raster Styled Layer */
649
sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob);
650
ret = execute_check (handle, sql, &err_msg);
652
if (ret != SQLITE_OK)
654
fprintf (stderr, "Error RegisterRasterStyle #1: %s\n\n", err_msg);
655
sqlite3_free (err_msg);
661
("SELECT SE_RegisterRasterStyledLayer('coverage_srtm1', 1)");
662
ret = execute_check (handle, sql, &err_msg);
664
if (ret != SQLITE_OK)
666
fprintf (stderr, "Error RegisterRasterStyledLayer #1: %s\n\n",
668
sqlite3_free (err_msg);
674
("SELECT SE_RegisterRasterStyledLayer('coverage_srtm2', 'srtm_style')");
675
ret = execute_check (handle, sql, &err_msg);
677
if (ret != SQLITE_OK)
679
fprintf (stderr, "Error RegisterRasterStyledLayer #2: %s\n\n",
681
sqlite3_free (err_msg);
686
xml = load_xml ("raster2_se.xml", &len);
212
sqlite3_free_table(results);
214
sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')", hexBlob);
215
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
218
if (ret != SQLITE_OK) {
219
fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n", err_msg);
220
sqlite3_free (err_msg);
223
if ((rows != 1) || (columns != 1))
225
sqlite3_free_table(results);
226
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
689
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
693
fprintf (stderr, "this is not a well-formed XML !!!\n");
696
hexBlob = build_hex_blob (blob, blob_len);
229
if (strcmp(results[1 * columns + 0], "1") != 0)
231
fprintf (stderr, "Unexpected #2 result (got %s, expected 1)", results[1 * columns + 0]);
232
sqlite3_free_table(results);
235
sqlite3_free_table(results);
237
xml = load_xml("thunderstorm_mild.svg", &len);
240
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
243
fprintf (stderr, "this is not a well-formed XML !!!\n");
246
hexBlob = build_hex_blob(blob, blob_len);
250
sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')", hexBlob);
251
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
253
if (ret != SQLITE_OK) {
254
fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n", err_msg);
255
sqlite3_free (err_msg);
258
if ((rows != 1) || (columns != 1))
260
sqlite3_free_table(results);
261
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
264
if (strcmp(results[1 * columns + 0], "1") != 0)
266
fprintf (stderr, "Unexpected #3 result (got %s, expected 1)", results[1 * columns + 0]);
267
sqlite3_free_table(results);
270
sqlite3_free_table(results);
272
sql = sqlite3_mprintf("SELECT RegisterExternalGraphic('url-B', x%Q)", hexBlob);
273
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
276
if (ret != SQLITE_OK) {
277
fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n", err_msg);
278
sqlite3_free (err_msg);
281
if ((rows != 1) || (columns != 1))
283
sqlite3_free_table(results);
284
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
287
if (strcmp(results[1 * columns + 0], "1") != 0)
289
fprintf (stderr, "Unexpected #4 result (got %s, expected 1)", results[1 * columns + 0]);
290
sqlite3_free_table(results);
701
sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob);
702
ret = execute_check (handle, sql, &err_msg);
704
if (ret != SQLITE_OK)
706
fprintf (stderr, "Error RegisterRasterStyle #2: %s\n\n", err_msg);
707
sqlite3_free (err_msg);
713
("SELECT SE_RegisterRasterStyledLayer('srtm2_style', 2)");
714
ret = execute_check (handle, sql, &err_msg);
716
if (ret != SQLITE_OK)
718
fprintf (stderr, "Error RegisterRasterStyledLayer #3: %s\n\n",
720
sqlite3_free (err_msg);
724
sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob);
725
ret = execute_check (handle, sql, NULL);
727
if (ret == SQLITE_OK)
729
fprintf (stderr, "Error RegisterRasterStyle #3: %s\n\n",
734
/* Reload Raster Style */
735
sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle(12, x%Q)", hexBlob);
736
ret = execute_check (handle, sql, NULL);
738
if (ret == SQLITE_OK)
740
fprintf (stderr, "Error ReloadRasterStyle #1: %s\n\n",
745
sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle(1, x%Q)", hexBlob);
746
ret = execute_check (handle, sql, NULL);
748
if (ret == SQLITE_OK)
750
fprintf (stderr, "Error ReloadRasterStyle #2: %s\n\n",
756
sqlite3_mprintf ("SELECT SE_ReloadRasterStyle('srtm_style', x%Q)",
758
ret = execute_check (handle, sql, NULL);
760
if (ret == SQLITE_OK)
762
fprintf (stderr, "Error ReloadRasterStyle #4: %s\n\n",
768
xml = load_xml ("raster_se.xml", &len);
293
sqlite3_free_table(results);
295
ret = sqlite3_exec (handle, "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg);
296
if (ret != SQLITE_OK) {
297
fprintf (stderr, "Error Create Table table1: %s\n", err_msg);
298
sqlite3_free (err_msg);
301
ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg);
302
if (ret != SQLITE_OK) {
303
fprintf (stderr, "Error AddGeometryColumn: %s\n", err_msg);
304
sqlite3_free (err_msg);
307
if ((rows != 1) || (columns != 1))
309
sqlite3_free_table(results);
310
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
313
if (strcmp(results[1 * columns + 0], "1") != 0)
315
fprintf (stderr, "Unexpected #5 result (got %s, expected 1)", results[1 * columns + 0]);
316
sqlite3_free_table(results);
319
sqlite3_free_table(results);
321
xml = load_xml("stazioni_se.xml", &len);
324
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
327
fprintf (stderr, "this is not a well-formed XML !!!\n");
330
hexBlob = build_hex_blob(blob, blob_len);
771
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
775
fprintf (stderr, "this is not a well-formed XML !!!\n");
778
hexBlob = build_hex_blob (blob, blob_len);
332
780
if (hexBlob == NULL)
334
sql = sqlite3_mprintf("SELECT RegisterVectorStyledLayer('table1', 'geom', x%Q)", hexBlob);
335
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
337
if (ret != SQLITE_OK) {
338
fprintf (stderr, "Error RegisterVectorStyledLayer #6: %s\n", err_msg);
339
sqlite3_free (err_msg);
342
if ((rows != 1) || (columns != 1))
344
sqlite3_free_table(results);
345
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
348
if (strcmp(results[1 * columns + 0], "1") != 0)
350
fprintf (stderr, "Unexpected #6 result (got %s, expected 1)", results[1 * columns + 0]);
351
sqlite3_free_table(results);
782
sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle(1, x%Q)", hexBlob);
783
ret = execute_check (handle, sql, &err_msg);
785
if (ret != SQLITE_OK)
787
fprintf (stderr, "Error ReloadRasterStyle #6: %s\n\n", err_msg);
788
sqlite3_free (err_msg);
794
("SELECT SE_ReloadRasterrStyle('Railway Stations 2', x%Q)", hexBlob);
795
ret = execute_check (handle, sql, NULL);
797
if (ret == SQLITE_OK)
799
fprintf (stderr, "Error ReloadVRasterStyle #4: %s\n\n",
805
/* Unregister Raster Style */
806
sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle(5)");
807
ret = execute_check (handle, sql, NULL);
809
if (ret == SQLITE_OK)
811
fprintf (stderr, "Error UnRegisterRasterStyle #1: %s\n\n",
816
sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle('alpha')");
817
ret = execute_check (handle, sql, &err_msg);
819
if (ret == SQLITE_OK)
821
fprintf (stderr, "Error UnRegisterRasterStyle #2: %s\n\n",
826
sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle('srtm2_style')");
827
ret = execute_check (handle, sql, NULL);
829
if (ret == SQLITE_OK)
831
fprintf (stderr, "Error UnRegisterRasterStyle #3: %s\n\n",
836
sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle('srtm2_style', 1)");
837
ret = execute_check (handle, sql, &err_msg);
839
if (ret != SQLITE_OK)
841
fprintf (stderr, "Error UnRegisterRasterStyle #4: %s\n\n", err_msg);
842
sqlite3_free (err_msg);
846
/* Register Raster Styled Layer: again */
847
xml = load_xml ("raster2_se.xml", &len);
354
sqlite3_free_table(results);
356
sql = sqlite3_mprintf("SELECT RegisterVectorStyledLayer('table1', 'geom', 0, x%Q)", hexBlob);
358
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
360
if (ret != SQLITE_OK) {
361
fprintf (stderr, "Error RegisterVectorStyledLayer #7: %s\n", err_msg);
362
sqlite3_free (err_msg);
365
if ((rows != 1) || (columns != 1))
367
sqlite3_free_table(results);
368
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
850
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
854
fprintf (stderr, "this is not a well-formed XML !!!\n");
857
hexBlob = build_hex_blob (blob, blob_len);
371
if (strcmp(results[1 * columns + 0], "1") != 0)
373
fprintf (stderr, "Unexpected #7 result (got %s, expected 1)", results[1 * columns + 0]);
374
sqlite3_free_table(results);
862
sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob);
863
ret = execute_check (handle, sql, &err_msg);
865
if (ret != SQLITE_OK)
867
fprintf (stderr, "Error RegisterRasterStyle #5: %s\n\n", err_msg);
868
sqlite3_free (err_msg);
875
("SELECT SE_RegisterRasterStyledLayer('coverage_srtm1', 'srtm2_style')");
876
ret = execute_check (handle, sql, &err_msg);
878
if (ret != SQLITE_OK)
880
fprintf (stderr, "Error RegisterRasterStyledLayer #5: %s\n\n",
882
sqlite3_free (err_msg);
886
/* Unregister Raster Style Layer */
889
("SELECT SE_UnRegisterRasterStyledLayer('coverage_srtm1', 'srtm2_style')");
890
ret = execute_check (handle, sql, &err_msg);
892
if (ret != SQLITE_OK)
894
fprintf (stderr, "Error UnregisterRasterStyledLayer #1: %s\n\n",
896
sqlite3_free (err_msg);
902
("SELECT SE_UnRegisterRasterStyledLayer('coverage_srtm1', 1)");
903
ret = execute_check (handle, sql, &err_msg);
905
if (ret != SQLITE_OK)
907
fprintf (stderr, "Error UnregisterRasterStyledLayer #2: %s\n\n",
909
sqlite3_free (err_msg);
917
check_group (sqlite3 * handle, void *cache)
919
/* testing Group Styles */
921
char *err_msg = NULL;
932
("SELECT SE_RegisterStyledGroupRaster('group1', 'coverage_srtm1')");
933
ret = execute_check (handle, sql, &err_msg);
935
if (ret != SQLITE_OK)
937
fprintf (stderr, "Error RegisterStyledGroupRaster #1: %s\n\n",
939
sqlite3_free (err_msg);
945
("SELECT SE_SetStyledGroupInfos('group1', 'title', 'abstract')");
946
ret = execute_check (handle, sql, &err_msg);
948
if (ret != SQLITE_OK)
950
fprintf (stderr, "Error SetStyledGroupInfos #1: %s\n\n", err_msg);
951
sqlite3_free (err_msg);
957
("SELECT SE_RegisterStyledGroupVector('group1', 'table1')");
958
ret = execute_check (handle, sql, &err_msg);
960
if (ret != SQLITE_OK)
962
fprintf (stderr, "Error RegisterStyledGroupVector #1: %s\n\n",
964
sqlite3_free (err_msg);
970
("SELECT SE_RegisterStyledGroupVector('group1', 'table2')");
971
ret = execute_check (handle, sql, &err_msg);
973
if (ret != SQLITE_OK)
975
fprintf (stderr, "Error RegisterStyledGroupVector #2: %s\n\n",
977
sqlite3_free (err_msg);
983
("SELECT SE_SetStyledGroupInfos('group1', 'changed title', 'changed abstract')");
984
ret = execute_check (handle, sql, &err_msg);
986
if (ret != SQLITE_OK)
988
fprintf (stderr, "Error SetStyledGroupInfos #2: %s\n\n", err_msg);
989
sqlite3_free (err_msg);
995
("SELECT SE_SetStyledGroupInfos('group2', 'title2', 'abstract2')");
996
ret = execute_check (handle, sql, &err_msg);
998
if (ret != SQLITE_OK)
1000
fprintf (stderr, "Error SetStyledGroupInfos #3: %s\n\n", err_msg);
1001
sqlite3_free (err_msg);
1007
("SELECT SE_RegisterStyledGroupRaster('group2', 'coverage_srtm2')");
1008
ret = execute_check (handle, sql, &err_msg);
1010
if (ret != SQLITE_OK)
1012
fprintf (stderr, "Error RegisterStyledGroupRaster #2: %s\n\n",
1014
sqlite3_free (err_msg);
1020
("SELECT SE_RegisterStyledGroupVector('group2', 'table1')");
1021
ret = execute_check (handle, sql, &err_msg);
1023
if (ret != SQLITE_OK)
1025
fprintf (stderr, "Error RegisterStyledGroupVector #3: %s\n\n",
1027
sqlite3_free (err_msg);
1033
("SELECT SE_UnregisterStyledGroupVector('group2', 'table1')");
1034
ret = execute_check (handle, sql, &err_msg);
1036
if (ret != SQLITE_OK)
1038
fprintf (stderr, "Error UnregisterStyledGroupVector #1: %s\n\n",
1040
sqlite3_free (err_msg);
1046
("SELECT SE_RegisterStyledGroupVector('group2', 'table2')");
1047
ret = execute_check (handle, sql, &err_msg);
1049
if (ret != SQLITE_OK)
1051
fprintf (stderr, "Error RegisterStyledGroupVector #4: %s\n\n",
1053
sqlite3_free (err_msg);
1059
("SELECT SE_RegisterStyledGroupVector('group2', 'table1')");
1060
ret = execute_check (handle, sql, &err_msg);
1062
if (ret != SQLITE_OK)
1064
fprintf (stderr, "Error RegisterStyledGroupVector #5: %s\n\n",
1066
sqlite3_free (err_msg);
1072
("SELECT SE_UnregisterStyledGroupRaster('group2', 'coverage_srtm2')");
1073
ret = execute_check (handle, sql, &err_msg);
1075
if (ret != SQLITE_OK)
1077
fprintf (stderr, "Error UnregisterStyledGroupRaster #2: %s\n\n",
1079
sqlite3_free (err_msg);
1085
("SELECT SE_RegisterStyledGroupRaster('group2', 'coverage_srtm1')");
1086
ret = execute_check (handle, sql, &err_msg);
1088
if (ret != SQLITE_OK)
1090
fprintf (stderr, "Error RegisterStyledGroupRaster #3: %s\n\n",
1092
sqlite3_free (err_msg);
1098
("SELECT SE_RegisterStyledGroupRaster('group2', 'coverage_srtm2')");
1099
ret = execute_check (handle, sql, &err_msg);
1101
if (ret != SQLITE_OK)
1103
fprintf (stderr, "Error RegisterStyledGroupRaster #4: %s\n\n",
1105
sqlite3_free (err_msg);
1109
sql = sqlite3_mprintf ("SELECT SE_UnregisterStyledGroupLayer(8)");
1110
ret = execute_check (handle, sql, &err_msg);
1112
if (ret != SQLITE_OK)
1114
fprintf (stderr, "Error UnregisterStyledGroupLayer #3: %s\n\n",
1116
sqlite3_free (err_msg);
1122
("SELECT SE_SetStyledGroupInfos('group3', 'title', 'abstract')");
1123
ret = execute_check (handle, sql, &err_msg);
1125
if (ret != SQLITE_OK)
1127
fprintf (stderr, "Error SetStyledGroupInfos #4: %s\n\n", err_msg);
1128
sqlite3_free (err_msg);
1134
("SELECT SE_RegisterStyledGroupRaster('group3', 'coverage_srtm1')");
1135
ret = execute_check (handle, sql, &err_msg);
1137
if (ret != SQLITE_OK)
1139
fprintf (stderr, "Error RegisterStyledGroup #10: %s\n\n", err_msg);
1140
sqlite3_free (err_msg);
1144
/* testing Paint Order */
1145
sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupLayerPaintOrder(7, 11)");
1146
ret = execute_check (handle, sql, &err_msg);
1148
if (ret != SQLITE_OK)
1150
fprintf (stderr, "Error SetStyledGroupLayerPaintOrder #1: %s\n\n",
1152
sqlite3_free (err_msg);
1158
("SELECT SE_SetStyledGroupVectorPaintOrder('group2', 'table2', 12)");
1159
ret = execute_check (handle, sql, &err_msg);
1161
if (ret != SQLITE_OK)
1163
fprintf (stderr, "Error SetStyledGroupVectorPaintOrder #1: %s\n\n",
1165
sqlite3_free (err_msg);
1171
("SELECT SE_SetStyledGroupRasterPaintOrder('group2', 'coverage_srtm2', 10)");
1172
ret = execute_check (handle, sql, &err_msg);
1174
if (ret != SQLITE_OK)
1176
fprintf (stderr, "Error SetStyledGroupRasterPaintOrder #1: %s\n\n",
1178
sqlite3_free (err_msg);
1182
sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupLayerPaintOrder(3, -1)");
1183
ret = execute_check (handle, sql, &err_msg);
1185
if (ret != SQLITE_OK)
1187
fprintf (stderr, "Error SetStyledGroupLayerPaintOrder #2: %s\n\n",
1189
sqlite3_free (err_msg);
1195
("SELECT SE_SetStyledGroupVectorPaintOrder('group1', 'table1', -1)");
1196
ret = execute_check (handle, sql, &err_msg);
1198
if (ret != SQLITE_OK)
1200
fprintf (stderr, "Error SetStyledGroupLayerPaintOrder #3: %s\n\n",
1202
sqlite3_free (err_msg);
1208
("SELECT SE_SetStyledGroupRasterPaintOrder('group1', 'coverage_srtm1', -1)");
1209
ret = execute_check (handle, sql, &err_msg);
1211
if (ret != SQLITE_OK)
1213
fprintf (stderr, "Error SetStyledGroupRasterPaintOrder #2: %s\n\n",
1215
sqlite3_free (err_msg);
1219
sql = sqlite3_mprintf ("SELECT SE_UnregisterStyledGroup('group2')");
1220
ret = execute_check (handle, sql, &err_msg);
1222
if (ret != SQLITE_OK)
1224
fprintf (stderr, "Error UnregisterStyledGroup #1: %s\n\n", err_msg);
1225
sqlite3_free (err_msg);
1229
xml = load_xml ("sld_sample.xml", &len);
1232
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
1236
fprintf (stderr, "this is not a well-formed XML !!!\n");
1239
hexBlob = build_hex_blob (blob, blob_len);
1241
if (hexBlob == NULL)
1244
/* Register Styled Group Style */
1245
sql = sqlite3_mprintf ("SELECT SE_RegisterGroupStyle(x%Q)", hexBlob);
1246
ret = execute_check (handle, sql, &err_msg);
1248
if (ret != SQLITE_OK)
1250
fprintf (stderr, "Error RegisterGroupStyle #1: %s\n\n", err_msg);
1251
sqlite3_free (err_msg);
1256
xml = load_xml ("sld_sample2.xml", &len);
1259
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
1263
fprintf (stderr, "this is not a well-formed XML !!!\n");
1266
hexBlob = build_hex_blob (blob, blob_len);
1268
if (hexBlob == NULL)
377
sqlite3_free_table(results);
379
xml = load_xml("raster_se.xml", &len);
382
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
385
fprintf (stderr, "this is not a well-formed XML !!!\n");
388
hexBlob = build_hex_blob(blob, blob_len);
1271
sql = sqlite3_mprintf ("SELECT SE_RegisterGroupStyle(x%Q)", hexBlob);
1272
ret = execute_check (handle, sql, &err_msg);
1274
if (ret != SQLITE_OK)
1276
fprintf (stderr, "Error RegisterGroupStyle #2: %s\n\n", err_msg);
1277
sqlite3_free (err_msg);
1281
sql = sqlite3_mprintf ("SELECT SE_ReloadGroupStyle(1, x%Q)", hexBlob);
1282
ret = execute_check (handle, sql, NULL);
1284
if (ret == SQLITE_OK)
1286
fprintf (stderr, "Error ReloadGroupStyle #1: %s\n\n",
1287
"expected failure");
1292
sqlite3_mprintf ("SELECT SE_ReloadGroupStyle('group style 1', x%Q)",
1294
ret = execute_check (handle, sql, NULL);
1296
if (ret == SQLITE_OK)
1298
fprintf (stderr, "Error ReloadGroupStyle #2: %s\n\n",
1299
"expected failure");
1304
sqlite3_mprintf ("SELECT SE_ReloadGroupStyle('group style 2', x%Q)",
1306
ret = execute_check (handle, sql, &err_msg);
1308
if (ret != SQLITE_OK)
1310
fprintf (stderr, "Error ReloadGroupStyle #3: %s\n\n", err_msg);
1311
sqlite3_free (err_msg);
1316
xml = load_xml ("sld_sample.xml", &len);
1319
gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL);
1323
fprintf (stderr, "this is not a well-formed XML !!!\n");
1326
hexBlob = build_hex_blob (blob, blob_len);
390
1328
if (hexBlob == NULL)
392
sql = sqlite3_mprintf("SELECT RegisterRasterStyledLayer('srtm', x%Q)", hexBlob);
393
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
395
if (ret != SQLITE_OK) {
396
fprintf (stderr, "Error RegisterRasterStyledLayer #8: %s\n", err_msg);
397
sqlite3_free (err_msg);
400
if ((rows != 1) || (columns != 1))
402
sqlite3_free_table(results);
403
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
406
if (strcmp(results[1 * columns + 0], "1") != 0)
408
fprintf (stderr, "Unexpected #8 result (got %s, expected 1)", results[1 * columns + 0]);
409
sqlite3_free_table(results);
412
sqlite3_free_table(results);
414
sql = sqlite3_mprintf("SELECT RegisterRasterStyledLayer('srtm', 0, x%Q)", hexBlob);
416
ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg);
418
if (ret != SQLITE_OK) {
419
fprintf (stderr, "Error RegisterRasterStyledLayer #9: %s\n", err_msg);
420
sqlite3_free (err_msg);
423
if ((rows != 1) || (columns != 1))
425
sqlite3_free_table(results);
426
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
429
if (strcmp(results[1 * columns + 0], "1") != 0)
431
fprintf (stderr, "Unexpected #9 result (got %s, expected 1)", results[1 * columns + 0]);
432
sqlite3_free_table(results);
435
sqlite3_free_table(results);
437
ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'srtm', 0)", &results, &rows, &columns, &err_msg);
438
if (ret != SQLITE_OK) {
439
fprintf (stderr, "Error RegisterStyledGroup #10: %s\n", err_msg);
440
sqlite3_free (err_msg);
443
if ((rows != 1) || (columns != 1))
445
sqlite3_free_table(results);
446
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
449
if (strcmp(results[1 * columns + 0], "1") != 0)
451
fprintf (stderr, "Unexpected #10 result (got %s, expected 1)", results[1 * columns + 0]);
452
sqlite3_free_table(results);
455
sqlite3_free_table(results);
457
ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'table1', 'geom', 0)", &results, &rows, &columns, &err_msg);
458
if (ret != SQLITE_OK) {
459
fprintf (stderr, "Error RegisterStyledGroup #11: %s\n", err_msg);
460
sqlite3_free (err_msg);
463
if ((rows != 1) || (columns != 1))
465
sqlite3_free_table(results);
466
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
469
if (strcmp(results[1 * columns + 0], "1") != 0)
471
fprintf (stderr, "Unexpected #12 result (got %s, expected 1)", results[1 * columns + 0]);
472
sqlite3_free_table(results);
475
sqlite3_free_table(results);
477
ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'srtm', 0, 4)", &results, &rows, &columns, &err_msg);
478
if (ret != SQLITE_OK) {
479
fprintf (stderr, "Error RegisterStyledGroup #13: %s\n", err_msg);
480
sqlite3_free (err_msg);
483
if ((rows != 1) || (columns != 1))
485
sqlite3_free_table(results);
486
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
489
if (strcmp(results[1 * columns + 0], "0") != 0)
491
fprintf (stderr, "Unexpected #13 result (got %s, expected 1)", results[1 * columns + 0]);
492
sqlite3_free_table(results);
495
sqlite3_free_table(results);
497
ret = sqlite3_get_table (handle, "SELECT RegisterStyledGroup('group', 'table1', 'geom', 0, 1)", &results, &rows, &columns, &err_msg);
498
if (ret != SQLITE_OK) {
499
fprintf (stderr, "Error RegisterStyledGroup #14: %s\n", err_msg);
500
sqlite3_free (err_msg);
503
if ((rows != 1) || (columns != 1))
505
sqlite3_free_table(results);
506
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
509
if (strcmp(results[1 * columns + 0], "1") != 0)
511
fprintf (stderr, "Unexpected #14 result (got %s, expected 1)", results[1 * columns + 0]);
512
sqlite3_free_table(results);
515
sqlite3_free_table(results);
517
ret = sqlite3_get_table (handle, "SELECT SetStyledGroupInfos('group', 'title', 'abstract')", &results, &rows, &columns, &err_msg);
518
if (ret != SQLITE_OK) {
519
fprintf (stderr, "Error RegisterStyledGroup #15: %s\n", err_msg);
520
sqlite3_free (err_msg);
523
if ((rows != 1) || (columns != 1))
525
sqlite3_free_table(results);
526
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
529
if (strcmp(results[1 * columns + 0], "1") != 0)
531
fprintf (stderr, "Unexpected #15 result (got %s, expected 1)", results[1 * columns + 0]);
532
sqlite3_free_table(results);
535
sqlite3_free_table(results);
537
ret = sqlite3_get_table (handle, "SELECT SetStyledGroupInfos('group-bis', 'title', 'abstract')", &results, &rows, &columns, &err_msg);
538
if (ret != SQLITE_OK) {
539
fprintf (stderr, "Error RegisterStyledGroup #16: %s\n", err_msg);
540
sqlite3_free (err_msg);
543
if ((rows != 1) || (columns != 1))
545
sqlite3_free_table(results);
546
fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns);
549
if (strcmp(results[1 * columns + 0], "1") != 0)
551
fprintf (stderr, "Unexpected #16 result (got %s, expected 1)", results[1 * columns + 0]);
552
sqlite3_free_table(results);
555
sqlite3_free_table(results);
1331
sql = sqlite3_mprintf ("SELECT SE_UnregisterGroupStyle('group style 1')");
1332
ret = execute_check (handle, sql, &err_msg);
1334
if (ret != SQLITE_OK)
1336
fprintf (stderr, "Error UnregisterGroupStyle #2: %s\n\n", err_msg);
1337
sqlite3_free (err_msg);
1341
sql = sqlite3_mprintf ("SELECT SE_RegisterGroupStyle(x%Q)", hexBlob);
1342
ret = execute_check (handle, sql, &err_msg);
1344
if (ret != SQLITE_OK)
1346
fprintf (stderr, "Error RegisterGroupStyle #4: %s\n\n", err_msg);
1347
sqlite3_free (err_msg);
1352
/* testing Styled Group Styles */
1353
sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupStyle('group1', 2)");
1354
ret = execute_check (handle, sql, &err_msg);
1356
if (ret != SQLITE_OK)
1358
fprintf (stderr, "Error RegisterStyledGroupStyle #2: %s\n\n",
1360
sqlite3_free (err_msg);
1366
("SELECT SE_RegisterStyledGroupStyle('group1', 'group style 1')");
1367
ret = execute_check (handle, sql, &err_msg);
1369
if (ret != SQLITE_OK)
1371
fprintf (stderr, "Error RegisterStyledGroupStyle #3: %s\n\n",
1373
sqlite3_free (err_msg);
1379
("SELECT SE_RegisterStyledGroupStyle('group2', 'group style 1')");
1380
ret = execute_check (handle, sql, &err_msg);
1382
if (ret != SQLITE_OK)
1384
fprintf (stderr, "Error RegisterStyledGroupStyle #3: %s\n\n",
1386
sqlite3_free (err_msg);
1390
sql = sqlite3_mprintf ("SELECT SE_UnRegisterStyledGroupStyle('group1', 3)");
1391
ret = execute_check (handle, sql, &err_msg);
1393
if (ret != SQLITE_OK)
1395
fprintf (stderr, "Error UnRegisterStyledGroupStyle #1: %s\n\n",
1397
sqlite3_free (err_msg);
1403
("SELECT SE_UnRegisterStyledGroupStyle('group2', 'group style 1')");
1404
ret = execute_check (handle, sql, &err_msg);
1406
if (ret != SQLITE_OK)
1408
fprintf (stderr, "Error UnRegisterStyledGroupStyle #2: %s\n\n",
1410
sqlite3_free (err_msg);
1414
sql = sqlite3_mprintf ("SELECT SE_UnRegisterGroupStyle(2, 1)");
1415
ret = execute_check (handle, sql, &err_msg);
1417
if (ret != SQLITE_OK)
1419
fprintf (stderr, "Error UnRegisterGroupStyle #3: %s\n\n", err_msg);
1420
sqlite3_free (err_msg);
1425
sqlite3_mprintf ("SELECT SE_UnRegisterGroupStyle('group style 1', 1)");
1426
ret = execute_check (handle, sql, &err_msg);
1428
if (ret != SQLITE_OK)
1430
fprintf (stderr, "Error UnRegisterGroupStyle #4: %s\n\n", err_msg);
1431
sqlite3_free (err_msg);
1435
sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle(1, 1)");
1436
ret = execute_check (handle, sql, &err_msg);
1438
if (ret != SQLITE_OK)
1440
fprintf (stderr, "Error UnregisterVectorStyle #6: %s\n\n", err_msg);
1441
sqlite3_free (err_msg);
1445
sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle(1)");
1446
ret = execute_check (handle, sql, NULL);
1448
if (ret == SQLITE_OK)
1450
fprintf (stderr, "Error UnregisterRasterStyle #5: %s\n\n",
1451
"expected failure");
1459
check_extent (sqlite3 * handle)
1461
/* testing Vector Coverage Extents */
1463
char *err_msg = NULL;
1466
/* inserting more alternative SRIDs */
1469
("SELECT SE_RegisterVectorCoverageSrid('table1', 32632)");
1470
ret = execute_check (handle, sql, &err_msg);
1472
if (ret != SQLITE_OK)
1474
fprintf (stderr, "Error RegisterVectorCoverageSrid #1 %s\n\n",
1476
sqlite3_free (err_msg);
1482
("SELECT SE_RegisterVectorCoverageSrid('table2', 4326)");
1483
ret = execute_check (handle, sql, &err_msg);
1485
if (ret != SQLITE_OK)
1487
fprintf (stderr, "Error RegisterVectorCoverageSrid #2 %s\n\n",
1489
sqlite3_free (err_msg);
1495
("SELECT SE_RegisterVectorCoverageSrid('table2', 32633)");
1496
ret = execute_check (handle, sql, &err_msg);
1498
if (ret != SQLITE_OK)
1500
fprintf (stderr, "Error RegisterVectorCoverageSrid #3 %s\n\n",
1502
sqlite3_free (err_msg);
1508
("SELECT SE_RegisterVectorCoverageSrid('table2', 32632)");
1509
ret = execute_check (handle, sql, NULL);
1511
if (ret == SQLITE_OK)
1513
fprintf (stderr, "Error RegisterVectorCoverageSrid #4 %s\n\n",
1514
"expected failure");
1520
("SELECT SE_RegisterVectorCoverageSrid('table99', 4326)");
1521
ret = execute_check (handle, sql, NULL);
1523
if (ret == SQLITE_OK)
1525
fprintf (stderr, "Error RegisterVectorCoverageSrid #5 %s\n\n",
1526
"expected failure");
1532
("SELECT SE_RegisterVectorCoverageSrid('table99', 4326)");
1533
ret = execute_check (handle, sql, NULL);
1535
if (ret == SQLITE_OK)
1537
fprintf (stderr, "Error RegisterVectorCoverageSrid #6 %s\n\n",
1538
"expected failure");
1542
/* inserting few Points just to set an Extent */
1545
("INSERT INTO table1 (id, geom) VALUES (NULL, MakePoint(11.4, 42.3, 4326))");
1546
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1548
if (ret != SQLITE_OK)
1550
fprintf (stderr, "Error Insert Point #1 %s\n\n", err_msg);
1551
sqlite3_free (err_msg);
1557
("INSERT INTO table1 (id, geom) VALUES (NULL, MakePoint(11.8, 42.3, 4326))");
1558
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1560
if (ret != SQLITE_OK)
1562
fprintf (stderr, "Error Insert Point #2 %s\n\n", err_msg);
1563
sqlite3_free (err_msg);
1569
("INSERT INTO table1 (id, geom) VALUES (NULL, MakePoint(11.8, 43.2, 4326))");
1570
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1572
if (ret != SQLITE_OK)
1574
fprintf (stderr, "Error Insert Point #3 %s\n\n", err_msg);
1575
sqlite3_free (err_msg);
1581
("INSERT INTO table2 (id, geom) VALUES (NULL, MakePoint(697831.5121, 4685875.1570, 32632))");
1582
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1584
if (ret != SQLITE_OK)
1586
fprintf (stderr, "Error Insert Point #4 %s\n\n", err_msg);
1587
sqlite3_free (err_msg);
1593
("INSERT INTO table2 (id, geom) VALUES (NULL, MakePoint(696831.123, 4685875.456, 32632))");
1594
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1596
if (ret != SQLITE_OK)
1598
fprintf (stderr, "Error Insert Point #5 %s\n\n", err_msg);
1599
sqlite3_free (err_msg);
1605
("INSERT INTO table2 (id, geom) VALUES (NULL, MakePoint(696531.9876, 4688875.4321, 32632))");
1606
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1608
if (ret != SQLITE_OK)
1610
fprintf (stderr, "Error Insert Point #6 %s\n\n", err_msg);
1611
sqlite3_free (err_msg);
1615
sql = sqlite3_mprintf ("SELECT SE_UpdateVectorCoverageExtent(1)");
1616
ret = execute_check (handle, sql, &err_msg);
1618
if (ret != SQLITE_OK)
1620
fprintf (stderr, "Error UpdateVectorCoverageExtent #1 %s\n\n",
1622
sqlite3_free (err_msg);
1628
("SELECT SE_UnRegisterVectorCoverageSrid('table2', 4326)");
1629
ret = execute_check (handle, sql, &err_msg);
1631
if (ret != SQLITE_OK)
1633
fprintf (stderr, "Error UnRegisterVectorCoverageSrid #1 %s\n\n",
1635
sqlite3_free (err_msg);
1641
("SELECT SE_UnRegisterVectorCoverageSrid('table2', 32632)");
1642
ret = execute_check (handle, sql, NULL);
1644
if (ret == SQLITE_OK)
1646
fprintf (stderr, "Error UnRegisterVectorCoverageSrid #2 %s\n\n",
1647
"expected failure");
1653
("SELECT SE_UnRegisterVectorCoverageSrid('table99', 4326)");
1654
ret = execute_check (handle, sql, NULL);
1656
if (ret == SQLITE_OK)
1658
fprintf (stderr, "Error UnRegisterVectorCoverageSrid #3 %s\n\n",
1659
"expected failure");
1663
sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverage('table1')");
1664
ret = execute_check (handle, sql, &err_msg);
1666
if (ret != SQLITE_OK)
1668
fprintf (stderr, "Error UnRegisterVectorCoverage #1 %s\n\n", err_msg);
1669
sqlite3_free (err_msg);
1673
sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverage('table99')");
1674
ret = execute_check (handle, sql, NULL);
1676
if (ret == SQLITE_OK)
1678
fprintf (stderr, "Error UnRegisterVectorCoverage #2 %s\n\n",
1679
"expected failure");
1683
sql = sqlite3_mprintf ("SELECT SE_UpdateVectorCoverageExtent('table2', 1)");
1684
ret = execute_check (handle, sql, &err_msg);
1686
if (ret != SQLITE_OK)
1688
fprintf (stderr, "Error UpdateVectorCoverageExtent #2 %s\n\n",
1690
sqlite3_free (err_msg);
1694
sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverage('table1')");
1695
ret = execute_check (handle, sql, NULL);
1697
if (ret == SQLITE_OK)
1699
fprintf (stderr, "Error UnRegisterVectorCoverage #3 %s\n\n",
1700
"expected failure");
1704
/* creating a furher vector Tables */
1705
sql = "CREATE TABLE tablex (id INTEGER PRIMARY KEY AUTOINCREMENT)";
1706
ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg);
1707
if (ret != SQLITE_OK)
1709
fprintf (stderr, "Error Create Table table3: %s\n\n", err_msg);
1710
sqlite3_free (err_msg);
1713
sql = "SELECT AddGeometryColumn('tablex', 'geom', 4326, 'POINT', 'XY')";
1714
ret = execute_check (handle, sql, &err_msg);
1715
if (ret != SQLITE_OK)
1717
fprintf (stderr, "Error AddGeometryColumn tablex: %s\n\n", err_msg);
1718
sqlite3_free (err_msg);
1721
sql = "SELECT SE_RegisterVectorCoverage('tablex', 'tablex', 'geom')";
1722
ret = execute_check (handle, sql, &err_msg);
1723
if (ret != SQLITE_OK)
1725
fprintf (stderr, "Error RegisterVectorCoverage tablex: %s\n\n",
1727
sqlite3_free (err_msg);
1732
("SELECT SE_RegisterVectorCoverageSrid('tablex', 32632)");
1733
ret = execute_check (handle, sql, &err_msg);
1735
if (ret != SQLITE_OK)
1737
fprintf (stderr, "Error RegisterVectorCoverageSrid #7 %s\n\n",
1739
sqlite3_free (err_msg);
1742
sql = sqlite3_mprintf ("SELECT SE_UpdateVectorCoverageExtent('tablex')");
1743
ret = execute_check (handle, sql, &err_msg);
1745
if (ret != SQLITE_OK)
1747
fprintf (stderr, "Error UpdateVectorCoverageExtent #3 %s\n\n",
1749
sqlite3_free (err_msg);
1757
main (int argc, char *argv[])
1761
char *err_msg = NULL;
1763
void *cache = spatialite_alloc_connection ();
1765
if (argc > 1 || argv[0] == NULL)
1766
argc = 1; /* silencing stupid compiler warnings */
1769
sqlite3_open_v2 (":memory:", &handle,
1770
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
1771
if (ret != SQLITE_OK)
1773
fprintf (stderr, "cannot open in-memory db: %s\n",
1774
sqlite3_errmsg (handle));
1775
sqlite3_close (handle);
1779
spatialite_init_ex (handle, cache, 0);
1781
sql = "SELECT InitSpatialMetadata(1, 'WGS84')";
1782
ret = execute_check (handle, sql, &err_msg);
1783
if (ret != SQLITE_OK)
1786
"Unexpected InitSpatialMetadata result: %i, (%s)\n", ret,
1788
sqlite3_free (err_msg);
1792
#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */
1794
/* creating the Styling Tables */
1795
sql = "SELECT CreateStylingTables(1)";
1796
ret = execute_check (handle, sql, &err_msg);
1797
if (ret != SQLITE_OK)
1799
fprintf (stderr, "Error CreateStylingTables %s\n\n", err_msg);
1800
sqlite3_free (err_msg);
1804
ret = check_vector (handle, cache);
1808
ret = check_raster (handle, cache);
1812
ret = check_group (handle, cache);
1816
ret = check_extent (handle);
560
1822
ret = sqlite3_close (handle);
561
if (ret != SQLITE_OK) {
562
fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle));
1823
if (ret != SQLITE_OK)
1825
fprintf (stderr, "sqlite3_close() error: %s\n",
1826
sqlite3_errmsg (handle));
566
1830
spatialite_cleanup_ex (cache);
568
#ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */
1832
spatialite_shutdown ();