CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw; ERROR: required option 'url' is missing CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url ''); ERROR: empty value in option 'url' CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'bar'); ERROR: invalid url: 'bar' CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://proxy.im'); /* * The statement above is the only one in this block that succeeds. Drop the * server again, otherwise every CREATE SERVER below fails with 'server "foo" * already exists' before the option validator is ever reached - which would * silently turn all of the option checks that follow into no-ops. */ DROP SERVER foo; CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout ''); ERROR: empty value in option 'connect_timeout' CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '-1'); ERROR: invalid connect_timeout: '-1' DETAIL: Expected values are non-negative integers (timeout in seconds) CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout 'abc'); ERROR: invalid connect_timeout: 'abc' DETAIL: Expected values are non-negative integers (timeout in seconds) CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', request_timeout ''); ERROR: empty value in option 'request_timeout' CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', request_timeout '-1'); ERROR: invalid request_timeout: '-1' DETAIL: Expected values are non-negative integers (timeout in seconds, 0 = disabled) CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', request_timeout 'abc'); ERROR: invalid request_timeout: 'abc' DETAIL: Expected values are non-negative integers (timeout in seconds, 0 = disabled) CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', request_timeout '42 '); ERROR: invalid request_timeout: '42 ' DETAIL: Expected values are non-negative integers (timeout in seconds, 0 = disabled) CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '42', max_connect_retry ''); ERROR: empty value in option 'max_connect_retry' CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '42', max_connect_retry '-1'); ERROR: invalid max_connect_retry: '-1' DETAIL: Expected values are non-negative integers CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '42', max_connect_retry '73', max_connect_redirect ''); ERROR: empty value in option 'max_connect_redirect' CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '42', max_connect_retry '73', max_connect_redirect '-1'); ERROR: invalid max_connect_redirect: '-1' DETAIL: Expected values are non-negative integers /* valid timeout values - '0' disables the request timeout */ CREATE SERVER foo FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '42', request_timeout '0'); SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'foo'; srvoptions ------------------------------------------------------------- {url=http://server.im,connect_timeout=42,request_timeout=0} (1 row) ALTER SERVER foo OPTIONS (SET request_timeout '30'); SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'foo'; srvoptions -------------------------------------------------------------- {url=http://server.im,connect_timeout=42,request_timeout=30} (1 row) /* invalid values must be rejected by ALTER SERVER as well */ ALTER SERVER foo OPTIONS (SET request_timeout '-1'); ERROR: invalid request_timeout: '-1' DETAIL: Expected values are non-negative integers (timeout in seconds, 0 = disabled) ALTER SERVER foo OPTIONS (SET request_timeout ''); ERROR: empty value in option 'request_timeout' ALTER SERVER foo OPTIONS (DROP request_timeout); SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'foo'; srvoptions ------------------------------------------- {url=http://server.im,connect_timeout=42} (1 row) DROP SERVER foo; /* invalid URL - retrying as set in 'max_connect_retry' */ CREATE SERVER srv FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', max_connect_retry '2', connect_timeout '15'); SELECT * FROM nominatim_search(server_name => 'srv', q => 'foo'); ERROR: ParseNominatimSearchData -> request failed: 'http://server.im' /* no retry! */ ALTER SERVER srv OPTIONS (SET max_connect_retry '0'); SELECT * FROM nominatim_search(server_name => 'srv', q => 'foo'); ERROR: ParseNominatimSearchData -> request failed: 'http://server.im' DROP SERVER srv; /* server does not exist */ SELECT * FROM nominatim_search(server_name => 'srv', q => 'bar'); ERROR: FOREIGN SERVER does not exist: 'srv' SELECT * FROM nominatim_search(server_name => 'srv', city => 'bar'); ERROR: FOREIGN SERVER does not exist: 'srv' SELECT * FROM nominatim_reverse(server_name => 'srv',lon => '1', lat => '2'); ERROR: FOREIGN SERVER does not exist: 'srv' SELECT * FROM nominatim_lookup(server_name => 'srv', osm_ids => 'W1'); ERROR: FOREIGN SERVER does not exist: 'srv' CREATE SERVER srv FOREIGN DATA WRAPPER nominatim_fdw OPTIONS (url 'http://server.im', connect_timeout '15', max_connect_retry '0'); /* bad request: 'q' and 'amenity' cannot be combined */ SELECT * FROM nominatim_search(server_name => 'srv', q => 'foo', amenity => 'bar'); ERROR: bad request => structured query parameters (amenity, street, city, county, state, postalcode, country) cannot be used together with 'q' parameter /* bad request: nothing to search for */ SELECT * FROM nominatim_search(server_name => 'srv'); ERROR: bad request => nothing to search for. HINT: A Nominatim Search request requires either a 'q' (free form parameter) or one of the structured query parameteres (amenity, street, city, county, state, postalcode, country) /* bad request: invalid layer */ SELECT * FROM nominatim_search(server_name => 'srv', q => 'foo', layer => 'bar'); WARNING: unrecognised layer 'bar' DETAIL: Known values are: address, poi, railway, natural, manmade ERROR: ParseNominatimSearchData -> request failed: 'http://server.im' /* FOREIGN TABLE not supported */ CREATE FOREIGN TABLE t (osm_id bigint OPTIONS (foo 'bar')) SERVER srv OPTIONS (foo 'bar'); ERROR: FOREIGN TABLE not supported DETAIL: The nominatim_fdw does not support FOREIGN TABLE mapping. Use the query functions instead. /* invalid user mapping options */ CREATE USER MAPPING FOR postgres SERVER srv OPTIONS (foo 'bar'); ERROR: invalid nominatim_fdw option 'foo' CREATE USER MAPPING FOR postgres SERVER srv OPTIONS (proxy_user 'u1', proxy_password ''); ERROR: empty value in option 'proxy_password' CREATE USER MAPPING FOR postgres SERVER srv OPTIONS (proxy_user '', proxy_password 'pw1'); ERROR: empty value in option 'proxy_user' CREATE USER MAPPING FOR postgres SERVER srv OPTIONS (proxy_user '', proxy_password ''); ERROR: empty value in option 'proxy_user'