Re: [PATCH] Add pretty-printed XML output option

Поиск
Список
Период
Сортировка
От Jim Jones
Тема Re: [PATCH] Add pretty-printed XML output option
Дата
Msg-id 5e56143f-63bf-beb2-6912-35aff6594e4c@uni-muenster.de
обсуждение исходный текст
Ответ на Re: [PATCH] Add pretty-printed XML output option  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [PATCH] Add pretty-printed XML output option  (Peter Smith <smithpb2250@gmail.com>)
Список pgsql-hackers
On 09.02.23 08:23, Tom Lane wrote:
> Um ... why are you using PG_TRY here at all?  It seems like
> you have full control of the actually likely error cases.
> The only plausible error out of the StringInfo calls is OOM,
> and you probably don't want to trap that at all.

My intention was to catch any unexpected error from 
xmlDocDumpFormatMemory and handle it properly. But I guess you're right, 
I can control the likely error cases by checking doc and nbytes.

You suggest something along these lines?

     xmlDocPtr  doc;
     xmlChar    *xmlbuf = NULL;
     text       *arg = PG_GETARG_TEXT_PP(0);
     StringInfoData buf;
     int nbytes;

     doc = xml_parse(arg, XMLOPTION_DOCUMENT, false, 
GetDatabaseEncoding(), NULL);

     if(!doc)
         elog(ERROR, "could not parse the given XML document");

     xmlDocDumpFormatMemory(doc, &xmlbuf, &nbytes, 1);

     xmlFreeDoc(doc);

     if(!nbytes)
         elog(ERROR, "could not indent the given XML document");

     initStringInfo(&buf);
     appendStringInfoString(&buf, (const char *)xmlbuf);

     xmlFree(xmlbuf);

     PG_RETURN_XML_P(stringinfo_to_xmltype(&buf));


Thanks!

Best, Jim


Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Time delayed LR (WAS Re: logical replication restrictions)
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: Time delayed LR (WAS Re: logical replication restrictions)