| From: | Peter Eisentraut <peter_e(at)gmx(dot)net> | 
|---|---|
| To: | "Nikolay Samokhvalov" <nikolay(at)samokhvalov(dot)com> | 
| Cc: | pgsql-patches(at)postgresql(dot)org, "Bruce Momjian" <bruce(at)momjian(dot)us> | 
| Subject: | Re: xpath_array with namespaces support | 
| Date: | 2007-04-04 13:44:42 | 
| Message-ID: | 200704041544.43371.peter_e@gmx.net | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers pgsql-patches | 
Am Mittwoch, 4. April 2007 15:20 schrieb Nikolay Samokhvalov:
> > To determine if an XML datum is a document, call xml_is_document().  The
> > implementation of that function is probably not the best possible one,
> > but what the xpath() code does it totally wrong nevertheless.
>
> You are proposing 2-3 (depends on the case) parsing times for the one XML
> value instead of current 1-2
I know it's bad, and something like adding a bit (byte) to mark this in the 
value would be good, but that doesn't change the fact that
(xmlStrncmp((xmlChar *) VARDATA(data), (xmlChar *) "<?xml", 5) == 0)
is not a valid method to tell apart a document from a fragment. Proof:
pei=# select xml '<?xml version="1.0"?><foo>bar</foo>' IS DOCUMENT;
 ?column?
----------
 t
(1 row)
pei=# select xml '<?xml version="1.0"?><foo>bar</foo><foo>bar</foo>' IS 
DOCUMENT;
 ?column?
----------
 f
(1 row)
pei=# select xml '<foo>bar</foo>' IS DOCUMENT;
 ?column?
----------
 t
(1 row)
pei=# select xml '<foo>bar</foo><foo>bar</foo>' IS DOCUMENT;
 ?column?
----------
 f
(1 row)
-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew - Supernews | 2007-04-04 13:45:28 | Re: Bug in UTF8-Validation Code? | 
| Previous Message | Nikolay Samokhvalov | 2007-04-04 13:43:11 | Re: [PATCHES] xpath_array with namespaces support | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Gregory Stark | 2007-04-04 14:03:51 | Re: Auto Partitioning | 
| Previous Message | Nikolay Samokhvalov | 2007-04-04 13:43:11 | Re: [PATCHES] xpath_array with namespaces support |