| -- test quoting functions |
| CREATE FUNCTION quote(t text, how text) RETURNS text AS $$ |
| if how == "literal": |
| return plpy.quote_literal(t) |
| elif how == "nullable": |
| return plpy.quote_nullable(t) |
| elif how == "ident": |
| return plpy.quote_ident(t) |
| else: |
| raise plpy.Error("unrecognized quote type %s" % how) |
| $$ LANGUAGE plpythonu; |
| SELECT quote(t, 'literal') FROM (VALUES |
| ('abc'), |
| ('a''bc'), |
| ('''abc'''), |
| (''), |
| (''''), |
| ('xyzv')) AS v(t); |
| quote |
| ----------- |
| 'abc' |
| 'a''bc' |
| '''abc''' |
| '' |
| '''' |
| 'xyzv' |
| (6 rows) |
| |
| SELECT quote(t, 'nullable') FROM (VALUES |
| ('abc'), |
| ('a''bc'), |
| ('''abc'''), |
| (''), |
| (''''), |
| (NULL)) AS v(t); |
| quote |
| ----------- |
| 'abc' |
| 'a''bc' |
| '''abc''' |
| '' |
| '''' |
| NULL |
| (6 rows) |
| |
| SELECT quote(t, 'ident') FROM (VALUES |
| ('abc'), |
| ('a b c'), |
| ('a " ''abc''')) AS v(t); |
| quote |
| -------------- |
| abc |
| "a b c" |
| "a "" 'abc'" |
| (3 rows) |
| |