pglast.printers.sfuncs — Special function printers¶
The PostgreSQL parser translates some SQL constructs into function calls, for example the
expression EXTRACT(YEAR FROM date_column) is represented the same as
pg_catalog.date_part('year', date_column).
This module declares some of those equivalences, implementing alternative printers that will be
used when the option special_functions of the output stream is
set to True.
- pglast.printers.sfuncs.btrim(node, output)¶
Emit function
pg_catalog.btrim(' abc ')astrim(BOTH FROM ' abc ')andpg_catalog.btrim('xxabcxx', 'x')astrim(BOTH 'x' FROM 'xxabcxx').
- pglast.printers.sfuncs.extract(node, output)¶
Emit function
pg_catalog.extract(field, timestamp)asEXTRACT(field FROM timestamp)..
- pglast.printers.sfuncs.ltrim(node, output)¶
Emit function
pg_catalog.ltrim(' abc ')astrim(LEADING FROM ' abc ')andpg_catalog.ltrim('xxabcxx', 'x')astrim(LEADING 'x' FROM 'xxabcxx').
- pglast.printers.sfuncs.normalize(node, output)¶
Emit function
pg_catalog.normalize(a)asnormalize(x)and functionpg_catalog.normalize('a','b')asnormalize('a', b).
- pglast.printers.sfuncs.overlaps(node, output)¶
Emit function
pg_catalog.overlaps(a, b, c, d)as(a, b) OVERLAPS (c, d).
- pglast.printers.sfuncs.overlay(node, output)¶
Emit function
pg_catalog.overlay('Txxxxas','hom', 2, 4)asoverlay('Txxxxas' PLACING 'hom' FROM 2 FOR 4).”
- pglast.printers.sfuncs.pg_collation_for(node, output)¶
Emit function
pg_catalog.pg_collation_for(x)asCOLLATION FOR (x).
- pglast.printers.sfuncs.position(node, output)¶
Emit function
pg_catalog.position('abcd', 'a')asposition('a' IN 'abcd').
- pglast.printers.sfuncs.rtrim(node, output)¶
Emit function
pg_catalog.rtrim(' abc ')astrim(TRAILING FROM ' abc ')andpg_catalog.rtrim('xxabcxx', 'x')astrim(TRAILING 'x' FROM 'xxabcxx')
- pglast.printers.sfuncs.substring(node, output)¶
Emit function
pg_catalog.substring('Txxxxas', 2, 4)assubstring('Txxxxas' FROM 2 FOR 4)andpg_catalog.substring('blabla', 2)assubstring('blabla' FROM 2).
- pglast.printers.sfuncs.timezone(node, output)¶
Emit function
pg_catalog.timezone(tz, timestamp)astimestamp AT TIME ZONE tz.
- pglast.printers.sfuncs.xmlexists(node, output)¶
Emit function
pg_catalog.xmlexists(x, y)asxmlexists(x PASSING BY REF y).