~ubuntu-branches/ubuntu/wily/spatialite/wily-proposed

« back to all changes in this revision

Viewing changes to test/check_virtualtable1.c

  • Committer: Package Import Robot
  • Author(s): Bas Couwenberg
  • Date: 2015-07-14 11:57:46 UTC
  • mfrom: (16.1.1 sid)
  • Revision ID: package-import@ubuntu.com-20150714115746-e2iljfmb5sq7o5hh
Tags: 4.3.0-1
Move from experimental to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
#include "asprintf4win.h"
57
57
#endif
58
58
 
59
 
int main (int argc, char *argv[])
 
59
int
 
60
main (int argc, char *argv[])
60
61
{
61
 
#ifndef OMIT_ICONV      /* only if ICONV is supported */
 
62
#ifndef OMIT_ICONV              /* only if ICONV is supported */
62
63
    sqlite3 *db_handle = NULL;
63
64
    char *sql_statement;
64
65
    int ret;
66
67
    char **results;
67
68
    int rows;
68
69
    int columns;
69
 
    void *cache = spatialite_alloc_connection();
 
70
    void *cache = spatialite_alloc_connection ();
70
71
 
71
72
    if (argc > 1 || argv[0] == NULL)
72
73
        argc = 1;               /* silencing stupid compiler warnings */
73
74
 
74
 
    ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
75
 
    if (ret != SQLITE_OK) {
76
 
        fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle));
77
 
        sqlite3_close (db_handle);
78
 
        db_handle = NULL;
79
 
        return -1;
80
 
    }
 
75
    ret =
 
76
        sqlite3_open_v2 (":memory:", &db_handle,
 
77
                         SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
 
78
    if (ret != SQLITE_OK)
 
79
      {
 
80
          fprintf (stderr, "cannot open in-memory db: %s\n",
 
81
                   sqlite3_errmsg (db_handle));
 
82
          sqlite3_close (db_handle);
 
83
          db_handle = NULL;
 
84
          return -1;
 
85
      }
81
86
 
82
87
    spatialite_init_ex (db_handle, cache, 0);
83
 
    
84
 
    ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);", NULL, NULL, &err_msg);
85
 
    if (ret != SQLITE_OK) {
86
 
        fprintf (stderr, "VirtualText error: %s\n", err_msg);
87
 
        sqlite3_free (err_msg);
88
 
        return -2;
89
 
    }
90
 
    
91
 
    asprintf(&sql_statement, "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";");
92
 
    ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg);
93
 
    free(sql_statement);
94
 
    if (ret != SQLITE_OK) {
95
 
        fprintf (stderr, "Error: %s\n", err_msg);
96
 
        sqlite3_free (err_msg);
97
 
        return -10;
98
 
    }
99
 
    if ((rows != 2) || (columns != 4)) {
100
 
        fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns);
101
 
        return  -11;
102
 
    }
103
 
    if (strcmp(results[0], "COL003") != 0) {
104
 
        fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]);
105
 
        return  -12;
106
 
    }
107
 
    if (strcmp(results[4], "Canal Creek") != 0) {
108
 
        fprintf (stderr, "Unexpected error: name4() bad result: %s.\n", results[4]);
109
 
        return  -13;
110
 
    }
111
 
    if (strncmp(results[5], "-27.86667", 9) != 0) {
112
 
        fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[5]);
113
 
        return  -14;
114
 
    }
115
 
    if (strncmp(results[6], "151.51667", 9) != 0) {
116
 
        fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[6]);
117
 
        return  -15;
118
 
    }
119
 
    if (strcmp(results[8], "Canal Creek") != 0) {
120
 
        fprintf (stderr, "Unexpected error: name8() bad result: %s.\n", results[8]);
121
 
        return  -16;
122
 
    }
 
88
 
 
89
    ret =
 
90
        sqlite3_exec (db_handle,
 
91
                      "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);",
 
92
                      NULL, NULL, &err_msg);
 
93
    if (ret != SQLITE_OK)
 
94
      {
 
95
          fprintf (stderr, "VirtualText error: %s\n", err_msg);
 
96
          sqlite3_free (err_msg);
 
97
          return -2;
 
98
      }
 
99
 
 
100
    asprintf (&sql_statement,
 
101
              "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";");
 
102
    ret =
 
103
        sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns,
 
104
                           &err_msg);
 
105
    free (sql_statement);
 
106
    if (ret != SQLITE_OK)
 
107
      {
 
108
          fprintf (stderr, "Error: %s\n", err_msg);
 
109
          sqlite3_free (err_msg);
 
110
          return -10;
 
111
      }
 
112
    if ((rows != 2) || (columns != 4))
 
113
      {
 
114
          fprintf (stderr,
 
115
                   "Unexpected error: select columns bad result: %i/%i.\n",
 
116
                   rows, columns);
 
117
          return -11;
 
118
      }
 
119
    if (strcmp (results[0], "COL003") != 0)
 
120
      {
 
121
          fprintf (stderr, "Unexpected error: header() bad result: %s.\n",
 
122
                   results[0]);
 
123
          return -12;
 
124
      }
 
125
    if (strcmp (results[4], "Canal Creek") != 0)
 
126
      {
 
127
          fprintf (stderr, "Unexpected error: name4() bad result: %s.\n",
 
128
                   results[4]);
 
129
          return -13;
 
130
      }
 
131
    if (strncmp (results[5], "-27.86667", 9) != 0)
 
132
      {
 
133
          fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n",
 
134
                   results[5]);
 
135
          return -14;
 
136
      }
 
137
    if (strncmp (results[6], "151.51667", 9) != 0)
 
138
      {
 
139
          fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n",
 
140
                   results[6]);
 
141
          return -15;
 
142
      }
 
143
    if (strcmp (results[8], "Canal Creek") != 0)
 
144
      {
 
145
          fprintf (stderr, "Unexpected error: name8() bad result: %s.\n",
 
146
                   results[8]);
 
147
          return -16;
 
148
      }
123
149
    sqlite3_free_table (results);
124
150
 
125
151
    ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg);
126
 
    if (ret != SQLITE_OK) {
127
 
        fprintf (stderr, "BEGIN error: %s\n", err_msg);
128
 
        sqlite3_free (err_msg);
129
 
        return -21;
130
 
    }
 
152
    if (ret != SQLITE_OK)
 
153
      {
 
154
          fprintf (stderr, "BEGIN error: %s\n", err_msg);
 
155
          sqlite3_free (err_msg);
 
156
          return -21;
 
157
      }
131
158
 
132
 
    ret = sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;", NULL, NULL, &err_msg);
133
 
    if (ret != SQLITE_READONLY) {
134
 
        fprintf (stderr, "UPDATE error: %s\n", err_msg);
135
 
        sqlite3_free (err_msg);
136
 
        return -21;
137
 
    }
 
159
    ret =
 
160
        sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;",
 
161
                      NULL, NULL, &err_msg);
 
162
    if (ret != SQLITE_READONLY)
 
163
      {
 
164
          fprintf (stderr, "UPDATE error: %s\n", err_msg);
 
165
          sqlite3_free (err_msg);
 
166
          return -21;
 
167
      }
138
168
    sqlite3_free (err_msg);
139
169
 
140
170
    ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg);
141
 
    if (ret != SQLITE_OK) {
142
 
        fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
143
 
        sqlite3_free (err_msg);
144
 
        return -22;
145
 
    }
146
 
    ret = sqlite3_get_table (db_handle, "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000", &results, &rows, &columns, &err_msg);
147
 
    if (ret != SQLITE_OK) {
148
 
        fprintf (stderr, "Error: %s\n", err_msg);
149
 
        sqlite3_free (err_msg);
150
 
        return -23;
151
 
    }
152
 
    if ((rows != 1) || (columns != 3)) {
153
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
154
 
        return  -24;
155
 
    }
156
 
    sqlite3_free_table (results);
157
 
 
158
 
    ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519", &results, &rows, &columns, &err_msg);
159
 
    if (ret != SQLITE_OK) {
160
 
        fprintf (stderr, "Error: %s\n", err_msg);
161
 
        sqlite3_free (err_msg);
162
 
        return -25;
163
 
    }
164
 
    if ((rows != 2) || (columns != 1)) {
165
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
166
 
        return  -26;
167
 
    }
168
 
    sqlite3_free_table (results);
169
 
 
170
 
    ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519", &results, &rows, &columns, &err_msg);
171
 
    if (ret != SQLITE_OK) {
172
 
        fprintf (stderr, "Error: %s\n", err_msg);
173
 
        sqlite3_free (err_msg);
174
 
        return -27;
175
 
    }
176
 
    if ((rows != 2) || (columns != 1)) {
177
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
178
 
        return  -28;
179
 
    }
180
 
    sqlite3_free_table (results);
181
 
 
182
 
    ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 = 2172517", &results, &rows, &columns, &err_msg);
183
 
    if (ret != SQLITE_OK) {
184
 
        fprintf (stderr, "Error: %s\n", err_msg);
185
 
        sqlite3_free (err_msg);
186
 
        return -29;
187
 
    }
188
 
    if ((rows != 1) || (columns != 1)) {
189
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
190
 
        return  -30;
191
 
    }
192
 
    sqlite3_free_table (results);
193
 
 
194
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'", &results, &rows, &columns, &err_msg);
195
 
    if (ret != SQLITE_OK) {
196
 
        fprintf (stderr, "Error: %s\n", err_msg);
197
 
        sqlite3_free (err_msg);
198
 
        return -31;
199
 
    }
200
 
    if ((rows != 1) || (columns != 1)) {
201
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
202
 
        return  -32;
203
 
    }
204
 
    sqlite3_free_table (results);
205
 
 
206
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'", &results, &rows, &columns, &err_msg);
207
 
    if (ret != SQLITE_OK) {
208
 
        fprintf (stderr, "Error: %s\n", err_msg);
209
 
        sqlite3_free (err_msg);
210
 
        return -33;
211
 
    }
212
 
    if ((rows != 2) || (columns != 1)) {
213
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
214
 
        return  -34;
215
 
    }
216
 
    sqlite3_free_table (results);
217
 
 
218
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 = 'Canbrae'", &results, &rows, &columns, &err_msg);
219
 
    if (ret != SQLITE_OK) {
220
 
        fprintf (stderr, "Error: %s\n", err_msg);
221
 
        sqlite3_free (err_msg);
222
 
        return -29;
223
 
    }
224
 
    if ((rows != 1) || (columns != 1)) {
225
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
226
 
        return  -30;
227
 
    }
228
 
    sqlite3_free_table (results);
229
 
 
230
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE ROWNO = 5", &results, &rows, &columns, &err_msg);
231
 
    if (ret != SQLITE_OK) {
232
 
        fprintf (stderr, "Error: %s\n", err_msg);
233
 
        sqlite3_free (err_msg);
234
 
        return -31;
235
 
    }
236
 
    if ((rows != 1) || (columns != 1)) {
237
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
238
 
        return  -32;
239
 
    }
240
 
    sqlite3_free_table (results);
241
 
 
242
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1", &results, &rows, &columns, &err_msg);
243
 
    if (ret != SQLITE_OK) {
244
 
        fprintf (stderr, "Error: %s\n", err_msg);
245
 
        sqlite3_free (err_msg);
246
 
        return -33;
247
 
    }
248
 
    if ((rows != 1) || (columns != 1)) {
249
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
250
 
        return  -34;
251
 
    }
252
 
    sqlite3_free_table (results);
253
 
 
254
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2", &results, &rows, &columns, &err_msg);
255
 
    if (ret != SQLITE_OK) {
256
 
        fprintf (stderr, "Error: %s\n", err_msg);
257
 
        sqlite3_free (err_msg);
258
 
        return -35;
259
 
    }
260
 
    if ((rows != 2) || (columns != 1)) {
261
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
262
 
        return  -36;
263
 
    }
264
 
    sqlite3_free_table (results);
265
 
 
266
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 = 149.1", &results, &rows, &columns, &err_msg);
267
 
    if (ret != SQLITE_OK) {
268
 
        fprintf (stderr, "Error: %s\n", err_msg);
269
 
        sqlite3_free (err_msg);
270
 
        return -37;
271
 
    }
272
 
    if ((rows != 1) || (columns != 1)) {
273
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
274
 
        return  -38;
275
 
    }
276
 
    sqlite3_free_table (results);
277
 
 
278
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150", &results, &rows, &columns, &err_msg);
279
 
    if (ret != SQLITE_OK) {
280
 
        fprintf (stderr, "Error: %s\n", err_msg);
281
 
        sqlite3_free (err_msg);
282
 
        return -39;
283
 
    }
284
 
    if ((rows != 4) || (columns != 1)) {
285
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
286
 
        return  -40;
287
 
    }
288
 
    sqlite3_free_table (results);
289
 
 
290
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150", &results, &rows, &columns, &err_msg);
291
 
    if (ret != SQLITE_OK) {
292
 
        fprintf (stderr, "Error: %s\n", err_msg);
293
 
        sqlite3_free (err_msg);
294
 
        return -41;
295
 
    }
296
 
    if ((rows != 4) || (columns != 1)) {
297
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
298
 
        return  -42;
299
 
    }
300
 
    sqlite3_free_table (results);
301
 
 
302
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012  = 23940.0", &results, &rows, &columns, &err_msg);
303
 
    if (ret != SQLITE_OK) {
304
 
        fprintf (stderr, "Error: %s\n", err_msg);
305
 
        sqlite3_free (err_msg);
306
 
        return -43;
307
 
    }
308
 
    if ((rows != 2) || (columns != 1)) {
309
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
310
 
        return  -44;
311
 
    }
312
 
    sqlite3_free_table (results);
313
 
 
314
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012  >= 20000.0 AND col012 < 24000.0", &results, &rows, &columns, &err_msg);
315
 
    if (ret != SQLITE_OK) {
316
 
        fprintf (stderr, "Error: %s\n", err_msg);
317
 
        sqlite3_free (err_msg);
318
 
        return -45;
319
 
    }
320
 
    if ((rows != 2) || (columns != 1)) {
321
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
322
 
        return  -46;
323
 
    }
324
 
    sqlite3_free_table (results);
325
 
 
326
 
    ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012  > 20000.0 AND col012 <= 24000.0", &results, &rows, &columns, &err_msg);
327
 
    if (ret != SQLITE_OK) {
328
 
        fprintf (stderr, "Error: %s\n", err_msg);
329
 
        sqlite3_free (err_msg);
330
 
        return -45;
331
 
    }
332
 
    if ((rows != 2) || (columns != 1)) {
333
 
        fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns);
334
 
        return  -46;
335
 
    }
 
171
    if (ret != SQLITE_OK)
 
172
      {
 
173
          fprintf (stderr, "ROLLBACK error: %s\n", err_msg);
 
174
          sqlite3_free (err_msg);
 
175
          return -22;
 
176
      }
 
177
    ret =
 
178
        sqlite3_get_table (db_handle,
 
179
                           "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000",
 
180
                           &results, &rows, &columns, &err_msg);
 
181
    if (ret != SQLITE_OK)
 
182
      {
 
183
          fprintf (stderr, "Error: %s\n", err_msg);
 
184
          sqlite3_free (err_msg);
 
185
          return -23;
 
186
      }
 
187
    if ((rows != 1) || (columns != 3))
 
188
      {
 
189
          fprintf (stderr,
 
190
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
191
                   rows, columns);
 
192
          return -24;
 
193
      }
 
194
    sqlite3_free_table (results);
 
195
 
 
196
    ret =
 
197
        sqlite3_get_table (db_handle,
 
198
                           "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519",
 
199
                           &results, &rows, &columns, &err_msg);
 
200
    if (ret != SQLITE_OK)
 
201
      {
 
202
          fprintf (stderr, "Error: %s\n", err_msg);
 
203
          sqlite3_free (err_msg);
 
204
          return -25;
 
205
      }
 
206
    if ((rows != 2) || (columns != 1))
 
207
      {
 
208
          fprintf (stderr,
 
209
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
210
                   rows, columns);
 
211
          return -26;
 
212
      }
 
213
    sqlite3_free_table (results);
 
214
 
 
215
    ret =
 
216
        sqlite3_get_table (db_handle,
 
217
                           "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519",
 
218
                           &results, &rows, &columns, &err_msg);
 
219
    if (ret != SQLITE_OK)
 
220
      {
 
221
          fprintf (stderr, "Error: %s\n", err_msg);
 
222
          sqlite3_free (err_msg);
 
223
          return -27;
 
224
      }
 
225
    if ((rows != 2) || (columns != 1))
 
226
      {
 
227
          fprintf (stderr,
 
228
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
229
                   rows, columns);
 
230
          return -28;
 
231
      }
 
232
    sqlite3_free_table (results);
 
233
 
 
234
    ret =
 
235
        sqlite3_get_table (db_handle,
 
236
                           "SELECT col002 FROM places WHERE col001 = 2172517",
 
237
                           &results, &rows, &columns, &err_msg);
 
238
    if (ret != SQLITE_OK)
 
239
      {
 
240
          fprintf (stderr, "Error: %s\n", err_msg);
 
241
          sqlite3_free (err_msg);
 
242
          return -29;
 
243
      }
 
244
    if ((rows != 1) || (columns != 1))
 
245
      {
 
246
          fprintf (stderr,
 
247
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
248
                   rows, columns);
 
249
          return -30;
 
250
      }
 
251
    sqlite3_free_table (results);
 
252
 
 
253
    ret =
 
254
        sqlite3_get_table (db_handle,
 
255
                           "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'",
 
256
                           &results, &rows, &columns, &err_msg);
 
257
    if (ret != SQLITE_OK)
 
258
      {
 
259
          fprintf (stderr, "Error: %s\n", err_msg);
 
260
          sqlite3_free (err_msg);
 
261
          return -31;
 
262
      }
 
263
    if ((rows != 1) || (columns != 1))
 
264
      {
 
265
          fprintf (stderr,
 
266
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
267
                   rows, columns);
 
268
          return -32;
 
269
      }
 
270
    sqlite3_free_table (results);
 
271
 
 
272
    ret =
 
273
        sqlite3_get_table (db_handle,
 
274
                           "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'",
 
275
                           &results, &rows, &columns, &err_msg);
 
276
    if (ret != SQLITE_OK)
 
277
      {
 
278
          fprintf (stderr, "Error: %s\n", err_msg);
 
279
          sqlite3_free (err_msg);
 
280
          return -33;
 
281
      }
 
282
    if ((rows != 2) || (columns != 1))
 
283
      {
 
284
          fprintf (stderr,
 
285
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
286
                   rows, columns);
 
287
          return -34;
 
288
      }
 
289
    sqlite3_free_table (results);
 
290
 
 
291
    ret =
 
292
        sqlite3_get_table (db_handle,
 
293
                           "SELECT col001 FROM places WHERE col002 = 'Canbrae'",
 
294
                           &results, &rows, &columns, &err_msg);
 
295
    if (ret != SQLITE_OK)
 
296
      {
 
297
          fprintf (stderr, "Error: %s\n", err_msg);
 
298
          sqlite3_free (err_msg);
 
299
          return -29;
 
300
      }
 
301
    if ((rows != 1) || (columns != 1))
 
302
      {
 
303
          fprintf (stderr,
 
304
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
305
                   rows, columns);
 
306
          return -30;
 
307
      }
 
308
    sqlite3_free_table (results);
 
309
 
 
310
    ret =
 
311
        sqlite3_get_table (db_handle,
 
312
                           "SELECT col001 FROM places WHERE ROWNO = 5",
 
313
                           &results, &rows, &columns, &err_msg);
 
314
    if (ret != SQLITE_OK)
 
315
      {
 
316
          fprintf (stderr, "Error: %s\n", err_msg);
 
317
          sqlite3_free (err_msg);
 
318
          return -31;
 
319
      }
 
320
    if ((rows != 1) || (columns != 1))
 
321
      {
 
322
          fprintf (stderr,
 
323
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
324
                   rows, columns);
 
325
          return -32;
 
326
      }
 
327
    sqlite3_free_table (results);
 
328
 
 
329
    ret =
 
330
        sqlite3_get_table (db_handle,
 
331
                           "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1",
 
332
                           &results, &rows, &columns, &err_msg);
 
333
    if (ret != SQLITE_OK)
 
334
      {
 
335
          fprintf (stderr, "Error: %s\n", err_msg);
 
336
          sqlite3_free (err_msg);
 
337
          return -33;
 
338
      }
 
339
    if ((rows != 1) || (columns != 1))
 
340
      {
 
341
          fprintf (stderr,
 
342
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
343
                   rows, columns);
 
344
          return -34;
 
345
      }
 
346
    sqlite3_free_table (results);
 
347
 
 
348
    ret =
 
349
        sqlite3_get_table (db_handle,
 
350
                           "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2",
 
351
                           &results, &rows, &columns, &err_msg);
 
352
    if (ret != SQLITE_OK)
 
353
      {
 
354
          fprintf (stderr, "Error: %s\n", err_msg);
 
355
          sqlite3_free (err_msg);
 
356
          return -35;
 
357
      }
 
358
    if ((rows != 2) || (columns != 1))
 
359
      {
 
360
          fprintf (stderr,
 
361
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
362
                   rows, columns);
 
363
          return -36;
 
364
      }
 
365
    sqlite3_free_table (results);
 
366
 
 
367
    ret =
 
368
        sqlite3_get_table (db_handle,
 
369
                           "SELECT col001 FROM places WHERE col006 = 149.1",
 
370
                           &results, &rows, &columns, &err_msg);
 
371
    if (ret != SQLITE_OK)
 
372
      {
 
373
          fprintf (stderr, "Error: %s\n", err_msg);
 
374
          sqlite3_free (err_msg);
 
375
          return -37;
 
376
      }
 
377
    if ((rows != 1) || (columns != 1))
 
378
      {
 
379
          fprintf (stderr,
 
380
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
381
                   rows, columns);
 
382
          return -38;
 
383
      }
 
384
    sqlite3_free_table (results);
 
385
 
 
386
    ret =
 
387
        sqlite3_get_table (db_handle,
 
388
                           "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150",
 
389
                           &results, &rows, &columns, &err_msg);
 
390
    if (ret != SQLITE_OK)
 
391
      {
 
392
          fprintf (stderr, "Error: %s\n", err_msg);
 
393
          sqlite3_free (err_msg);
 
394
          return -39;
 
395
      }
 
396
    if ((rows != 4) || (columns != 1))
 
397
      {
 
398
          fprintf (stderr,
 
399
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
400
                   rows, columns);
 
401
          return -40;
 
402
      }
 
403
    sqlite3_free_table (results);
 
404
 
 
405
    ret =
 
406
        sqlite3_get_table (db_handle,
 
407
                           "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150",
 
408
                           &results, &rows, &columns, &err_msg);
 
409
    if (ret != SQLITE_OK)
 
410
      {
 
411
          fprintf (stderr, "Error: %s\n", err_msg);
 
412
          sqlite3_free (err_msg);
 
413
          return -41;
 
414
      }
 
415
    if ((rows != 4) || (columns != 1))
 
416
      {
 
417
          fprintf (stderr,
 
418
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
419
                   rows, columns);
 
420
          return -42;
 
421
      }
 
422
    sqlite3_free_table (results);
 
423
 
 
424
    ret =
 
425
        sqlite3_get_table (db_handle,
 
426
                           "SELECT col001 FROM places WHERE col012  = 23940.0",
 
427
                           &results, &rows, &columns, &err_msg);
 
428
    if (ret != SQLITE_OK)
 
429
      {
 
430
          fprintf (stderr, "Error: %s\n", err_msg);
 
431
          sqlite3_free (err_msg);
 
432
          return -43;
 
433
      }
 
434
    if ((rows != 2) || (columns != 1))
 
435
      {
 
436
          fprintf (stderr,
 
437
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
438
                   rows, columns);
 
439
          return -44;
 
440
      }
 
441
    sqlite3_free_table (results);
 
442
 
 
443
    ret =
 
444
        sqlite3_get_table (db_handle,
 
445
                           "SELECT col001 FROM places WHERE col012  >= 20000.0 AND col012 < 24000.0",
 
446
                           &results, &rows, &columns, &err_msg);
 
447
    if (ret != SQLITE_OK)
 
448
      {
 
449
          fprintf (stderr, "Error: %s\n", err_msg);
 
450
          sqlite3_free (err_msg);
 
451
          return -45;
 
452
      }
 
453
    if ((rows != 2) || (columns != 1))
 
454
      {
 
455
          fprintf (stderr,
 
456
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
457
                   rows, columns);
 
458
          return -46;
 
459
      }
 
460
    sqlite3_free_table (results);
 
461
 
 
462
    ret =
 
463
        sqlite3_get_table (db_handle,
 
464
                           "SELECT col001 FROM places WHERE col012  > 20000.0 AND col012 <= 24000.0",
 
465
                           &results, &rows, &columns, &err_msg);
 
466
    if (ret != SQLITE_OK)
 
467
      {
 
468
          fprintf (stderr, "Error: %s\n", err_msg);
 
469
          sqlite3_free (err_msg);
 
470
          return -45;
 
471
      }
 
472
    if ((rows != 2) || (columns != 1))
 
473
      {
 
474
          fprintf (stderr,
 
475
                   "Unexpected error: select columns bad result2: %i/%i.\n",
 
476
                   rows, columns);
 
477
          return -46;
 
478
      }
336
479
    sqlite3_free_table (results);
337
480
 
338
481
    ret = sqlite3_exec (db_handle, "DROP TABLE places;", NULL, NULL, &err_msg);
339
 
    if (ret != SQLITE_OK) {
340
 
        fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
341
 
        sqlite3_free (err_msg);
342
 
        return -47;
343
 
    }
 
482
    if (ret != SQLITE_OK)
 
483
      {
 
484
          fprintf (stderr, "DROP TABLE error: %s\n", err_msg);
 
485
          sqlite3_free (err_msg);
 
486
          return -47;
 
487
      }
344
488
 
345
489
    sqlite3_close (db_handle);
346
490
    spatialite_cleanup_ex (cache);
347
 
#endif  /* end ICONV conditional */
 
491
#endif /* end ICONV conditional */
348
492
 
349
 
    
 
493
    spatialite_shutdown ();
350
494
    return 0;
351
495
}