You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
14 lines
454 B
14 lines
454 B
-- Return an array of statements found in the given query text
|
|
--
|
|
-- Curtesy of Hubert Lubaczewski (depesz)
|
|
--
|
|
CREATE OR REPLACE FUNCTION CDB_QueryStatements(query text)
|
|
RETURNS SETOF TEXT AS $$
|
|
SELECT stmt FROM (
|
|
SELECT btrim(q[1], E' \n\t\r;') as stmt FROM (
|
|
SELECT regexp_matches( $1, $REG$((?:[^'"$;]+|"[^"]*"|'(?:[^']*|'')*'|(\$[^$]*\$).*?\2)+)$REG$, 'g' ) as q
|
|
) i
|
|
) j
|
|
WHERE stmt <> '';
|
|
$$ language sql IMMUTABLE STRICT;
|