-- 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 plpython3u;
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)

