Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE POLICY test_data_pol ON test_data FOR ALL USING ('conc' = get_pol())
- CREATE OR REPLACE FUNCTION public.set_pol(foo_val integer)
- RETURNS void AS
- $BODY$
- BEGIN
- EXECUTE format('SET SESSION my.foo TO %I', foo_val) ;
- END;
- $BODY$
- CREATE OR REPLACE FUNCTION public.get_pol()
- RETURNS character varying AS
- $BODY$
- DECLARE
- foo_val character varying;
- BEGIN
- SHOW my.foo INTO foo_val;
- RETURN foo_val;
- END;
- $BODY$
- import psycopg2
- conn = psycopg2.connect(host=DATABASE['host'],
- database=DATABASE['dbname'],
- user=DATABASE['user'],
- password=DATABASE['password'],
- port=DATABASE['port'])
- cursor = conn.cursor()
- cursor.execute("SELECT set_pol(%s)" % conc_value)
- cursor.execute("""SELECT * from test_data""")
- data = cursor.fetchall()
- uri = QgsDataSourceURI()
- uri.setConnection(host,
- port,
- dbname,
- user,
- pasword)
- uri.setParam('my.foo', 'conc_value')
- uri.setDataSource('public', 'test_data', None, None, 'id')
- lyr = QgsVectorLayer(uri.uri(), 'test_data', 'postgres')
- ERROR: unrecognized configuration parameter "my.foo"
- CONTEXT: SQL statement "SHOW my.foo"
- PL/pgSQL function get_pol() line 5 at SQL statement
- .
- SQL : SELECT * FROM "public"."test_data" LIMIT 1
Add Comment
Please, Sign In to add comment