Guest User

Untitled

a guest
Mar 19th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. CREATE POLICY test_data_pol ON test_data FOR ALL USING ('conc' = get_pol())
  2.  
  3. CREATE OR REPLACE FUNCTION public.set_pol(foo_val integer)
  4. RETURNS void AS
  5. $BODY$
  6. BEGIN
  7. EXECUTE format('SET SESSION my.foo TO %I', foo_val) ;
  8. END;
  9. $BODY$
  10.  
  11. CREATE OR REPLACE FUNCTION public.get_pol()
  12. RETURNS character varying AS
  13. $BODY$
  14. DECLARE
  15. foo_val character varying;
  16. BEGIN
  17. SHOW my.foo INTO foo_val;
  18. RETURN foo_val;
  19. END;
  20. $BODY$
  21.  
  22. import psycopg2
  23. conn = psycopg2.connect(host=DATABASE['host'],
  24. database=DATABASE['dbname'],
  25. user=DATABASE['user'],
  26. password=DATABASE['password'],
  27. port=DATABASE['port'])
  28. cursor = conn.cursor()
  29. cursor.execute("SELECT set_pol(%s)" % conc_value)
  30. cursor.execute("""SELECT * from test_data""")
  31. data = cursor.fetchall()
  32.  
  33. uri = QgsDataSourceURI()
  34. uri.setConnection(host,
  35. port,
  36. dbname,
  37. user,
  38. pasword)
  39. uri.setParam('my.foo', 'conc_value')
  40. uri.setDataSource('public', 'test_data', None, None, 'id')
  41. lyr = QgsVectorLayer(uri.uri(), 'test_data', 'postgres')
  42.  
  43. ERROR: unrecognized configuration parameter "my.foo"
  44. CONTEXT: SQL statement "SHOW my.foo"
  45. PL/pgSQL function get_pol() line 5 at SQL statement
  46. .
  47. SQL : SELECT * FROM "public"."test_data" LIMIT 1
Add Comment
Please, Sign In to add comment