SET timezone TO 'Etc/UTC';
SELECT sparql.add_context('testctx', 'test context');
SELECT sparql.add_prefix('testctx', 'foo', 'http://example.org/foo#');
SELECT sparql.add_prefix('testctx', 'bar', 'http://example.org/bar#');
CREATE SERVER wikidata
FOREIGN DATA WRAPPER rdf_fdw
OPTIONS (
endpoint 'https://query.wikidata.org/sparql',
prefix_context 'testctx');
CREATE FOREIGN TABLE rdbms (
p rdfnode OPTIONS (variable '?l'),
o rdfnode OPTIONS (variable '?cr')
)
SERVER wikidata OPTIONS (
log_sparql 'true',
sparql '
prefix wd: PreFiX skos:
PREFIX wdt:
SELECT * {
?s skos:altLabel ?l .
?s wdt:P6216 ?cr
FILTER (?s = wd:Q192490)
FILTER (LANG(?l) ="en")
}');
-- Prefixes configured in the default context added
-- and existing prefixes formatted
SELECT p, o FROM rdbms ORDER BY p::text COLLATE "C";
ALTER SERVER wikidata OPTIONS (SET prefix_context 'foo');
-- Prefix context does not exist. Issuing a WARNING.
SELECT p, o FROM rdbms ORDER BY p::text COLLATE "C";
-- No prefix context set. Using only prefixes from the
-- SPARQL query.
ALTER SERVER wikidata OPTIONS (DROP prefix_context);
SELECT p, o FROM rdbms ORDER BY p::text COLLATE "C";
\set VERBOSITY terse
-- Add existing context and prefix (must fail)
SELECT sparql.add_context('testctx', 'test context');
SELECT sparql.add_prefix('testctx', 'foo', 'http://example.org/foo#');
-- Add existing context and prefix forcing overwrite
SELECT sparql.add_context('testctx', 'test context - updated', true);
SELECT sparql.add_prefix('testctx', 'foo', 'http://example.org/foo-updated#', true);
-- Check the prefix context and prefixes
SELECT context, description FROM sparql.prefix_contexts ORDER BY context COLLATE "C";
SELECT context, prefix, uri FROM sparql.prefixes ORDER BY context, prefix COLLATE "C";
-- Drop prefix
SELECT sparql.drop_prefix('testctx', 'foo');
SELECT context, prefix, uri FROM sparql.prefixes WHERE context = 'testctx' ORDER BY prefix COLLATE "C";
-- Drop context forcing cascade
SELECT sparql.drop_context('testctx', true);
SELECT context, description FROM sparql.prefix_contexts ORDER BY context COLLATE "C";
SELECT context, prefix, uri FROM sparql.prefixes ORDER BY context, prefix COLLATE "C";
DROP SERVER wikidata CASCADE;