regexp_replace to remove sql comments

Поиск
Список
Период
Сортировка
От Mike
Тема regexp_replace to remove sql comments
Дата
Msg-id 56311C52.3000907@wolman.co.uk
обсуждение исходный текст
Ответы Re: regexp_replace to remove sql comments
Список pgsql-general
Hi,

I am trying to clean up the query field returned by the
pg_stat_statements extension and remove all comments.

Some of the queries in the query field contain comments like '-- some
comment' and also '/* c style comments */'

I have managed to strip off the '--' comments and also white space but
after trying numerous regex for this via google but I am stuck.

WITH to_clean AS (
   SELECT
     regexp_replace(
        regexp_replace(trim(query), '--[^\r\n]*', '')  --clear up
comments like this one <-- this is ok
     , '\s+', ' ', 'g') as q    --clear up white space  <-- this is ok
   FROM public.pg_stat_statements
   WHERE dbid IN (SELECT oid FROM pg_database WHERE datname =
current_database())
)

SELECT  regexp_replace(q,'/\*.*\*/','') as q  /* strip off comments like
this */ <-- cannot get a regex to do this
FROM to_clean ORDER BY q


Im now thinking it may be better to do in a pgsql function as I think if
the comments are in queries then they need to be ignored.

Has anyone done anything like this?

Thanks,

Mike.



В списке pgsql-general по дате отправления:

Предыдущее
От: Pavel Suderevsky
Дата:
Сообщение: Postgresql SSI: read/write dependencies
Следующее
От: anj patnaik
Дата:
Сообщение: Re: does pg_dump get delayed if I have a loop that does continuous insertions