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
11 years ago
|
-- 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;
|