File: file.source

package info (click to toggle)
pgsql-ogr-fdw 1.1.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 696 kB
  • sloc: ansic: 4,114; makefile: 62; sql: 36; sh: 15
file content (195 lines) | stat: -rw-r--r-- 5,201 bytes parent folder | download | duplicates (4)
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
CREATE EXTENSION ogr_fdw;
CREATE SERVER myserver
  FOREIGN DATA WRAPPER ogr_fdw
  OPTIONS (
    datasource '@abs_srcdir@/data',
    format 'ESRI Shapefile' );
------------------------------------------------
CREATE FOREIGN TABLE pt_1 (
  fid integer,
  geom bytea,
  name varchar,
  age integer,
  height double precision,
  birthdate date )
  SERVER myserver
  OPTIONS ( layer 'pt_two' );
SELECT * FROM pt_1 WHERE fid = 1;
 fid |                     geom                     | name | age | height | birthdate  
-----+----------------------------------------------+------+-----+--------+------------
   1 | \x010100000054e943acd697e2bfc0895ee54a46cf3f | Paul |  33 |   5.84 | 03-25-1971
(1 row)

------------------------------------------------
CREATE FOREIGN TABLE pt_2 (
  fid integer,
  name varchar )
  SERVER myserver
  OPTIONS ( layer 'pt_two' );
SELECT * FROM pt_2 ORDER BY name;
 fid | name  
-----+-------
   1 | Paul
   0 | Peter
(2 rows)

------------------------------------------------
CREATE FOREIGN TABLE pt_3 (
  geom bytea,
  name varchar )
  SERVER myserver
  OPTIONS ( layer 'pt_two' );
SELECT * FROM pt_3 ORDER BY name;
                     geom                     | name  
----------------------------------------------+-------
 \x010100000054e943acd697e2bfc0895ee54a46cf3f | Paul
 \x0101000000c00497d1162cb93f8cbaef08a080e63f | Peter
(2 rows)

------------------------------------------------
CREATE FOREIGN TABLE poly_1 (
  fid bigint,
  geom bytea,
  id double precision,
  name varchar(5)
) SERVER myserver
OPTIONS (layer 'poly');
SELECT length(geom) FROM poly_1 WHERE name = 'Three';
 length 
--------
    307
(1 row)

------------------------------------------------
-- Laundering and explicit column naming test
CREATE FOREIGN TABLE column_name_test (
 fid integer,
 name varchar OPTIONS (column_name '2ame'),
 theage integer OPTIONS (column_name 'age'),
 height real OPTIONS (column_name 'Height'),
 birthdate date OPTIONS (column_name 'b-rthdate')
) SERVER myserver
OPTIONS (layer '2launder');
SELECT * FROM column_name_test ORDER BY fid;
 fid | name  | theage | height | birthdate  
-----+-------+--------+--------+------------
   0 | Peter |     45 |    5.6 | 04-12-1965
   1 | Paul  |     33 |   5.84 | 03-25-1971
(2 rows)

-- Check that columns are reverse-laundered when generating
-- OGR SQL filters
SET client_min_messages = debug1;
SELECT name FROM column_name_test WHERE name = 'Paul';
DEBUG:  OGR SQL: ("2ame" = 'Paul')
 name 
------
 Paul
(1 row)

SET client_min_messages = notice;
------------------------------------------------
-- GDAL options passing tests
CREATE SERVER myserver_latin1
  FOREIGN DATA WRAPPER ogr_fdw
  OPTIONS (
    datasource '@abs_srcdir@/data',
    format 'ESRI Shapefile',
    config_options 'SHAPE_ENCODING=LATIN1' );
CREATE FOREIGN TABLE e_1 (
  fid integer,
  name varchar )
  SERVER myserver_latin1
  OPTIONS ( layer 'enc' );
SET client_min_messages = debug1;
SELECT fid, name FROM e_1 WHERE fid = 1;
DEBUG:  GDAL config option 'SHAPE_ENCODING' set to 'LATIN1'
DEBUG:  OGR SQL: (fid = 1)
DEBUG:  GDAL config option 'SHAPE_ENCODING' set to 'LATIN1'
 fid | name 
-----+------
   1 | Pàul
(1 row)

SET client_min_messages = notice;
------------------------------------------------
-- Using encoding option directly
CREATE SERVER myserver_latin1_direct
  FOREIGN DATA WRAPPER ogr_fdw
  OPTIONS (
    datasource '@abs_srcdir@/data',
    format 'ESRI Shapefile',
    character_encoding 'LATIN1'
    );
CREATE FOREIGN TABLE e_2 (
  fid integer,
  name varchar )
  SERVER myserver_latin1_direct
  OPTIONS ( layer 'enc' );
SELECT fid, name FROM e_2 WHERE fid = 1;
 fid | name 
-----+------
   1 | Pàul
(1 row)

------------------------------------------------
-- Geometryless test
CREATE SERVER csvserver
  FOREIGN DATA WRAPPER ogr_fdw
  OPTIONS (
    datasource '@abs_srcdir@/data/no_geom.csv',
    format 'CSV' );
CREATE FOREIGN TABLE no_geom (
  fid bigint,
  name varchar,
  age varchar,
  value varchar
) SERVER csvserver
OPTIONS (layer 'no_geom');
SELECT c.*
  FROM generate_series(1,4) g
  JOIN no_geom c
  ON (c.fid = g.g);
 fid |  name   | age | value 
-----+---------+-----+-------
   1 | Peter   | 34  | 10.2
   2 | John    | 77  | 3.4
   3 | Paul    | 45  | 19.2
   4 | Matthew | 35  | 18.2
(4 rows)

------------------------------------------------
-- FGDB test
CREATE SERVER fgdbserver
  FOREIGN DATA WRAPPER ogr_fdw
  OPTIONS (
    datasource '/vsizip/@abs_srcdir@/data/Querying.zip/Querying.gdb',
    format 'OpenFileGDB' );
CREATE FOREIGN TABLE cities (
  fid bigint,
  shape bytea,
  city_fips varchar(5),
  city_name varchar(40),
  state_fips varchar(2),
  state_name varchar(25),
  state_city varchar(7),
  type varchar(25),
  capital varchar(1),
  elevation integer,
  pop1990 integer,
  popcat integer
) SERVER "fgdbserver"
OPTIONS (layer 'Cities');
SET client_min_messages = LOG;
SELECT fid, city_name, pop1990 FROM cities WHERE pop1990 = 17710;
 fid |  city_name   | pop1990 
-----+--------------+---------
   9 | Port Angeles |   17710
(1 row)

SELECT fid, city_name, pop1990 FROM cities WHERE city_name = 'Williston';
 fid | city_name | pop1990 
-----+-----------+---------
   8 | Williston |   13131
(1 row)