Thread: pgxml & xpath_table

pgxml & xpath_table

From
"Philippe Lang"
Date:
Hi,

I'm playing with the contrib/pgxml library under PG 8.1.4, and I'm not sure if what I found with pgxml is a feature of
abug:
 

I've got the following table:

--------------------
CREATE TABLE test
( id int4 NOT NULL, xml varchar(200), CONSTRAINT pk PRIMARY KEY (id)
) 
WITHOUT OIDS;

INSERT INTO test VALUES (1, '<doc num="C1"><line num="L1"><a>1</a><b>2</b><c>3</c></line><line
num="L2"><a>11</a><b>22</b><c>33</c></line></doc>');

INSERT INTO test VALUES (2, '<doc num="C2"><line num="L1"><a>111</a><b>222</b><c>333</c></line><line
num="L2"><a>111</a><b>222</b><c>333</c></line></doc>');
--------------------


If I launch this query:

--------------------
select * from

xpath_table('id','xml','test', '/doc/@num|/doc/line/@num|/doc/line/a|/doc/line/b|/doc/line/c','1=1') AS t(id int4,
doc_numvarchar(10), line_num varchar(10), val1 int4, val2 int4, val3 int4)
 

where id = 1

order by doc_num, line_num
--------------------

I get:

--------------------
id    doc_num     line_num    val1    val2    val3
1     C1          L1          1       2       3
1                 L2          11      22      33
--------------------

I was expecting doc_num would receive twice the C1 value, just like with a normal sql join.

Regards,

----------------------------------
Philippe Lang, Ing. Dipl. EPFL
Attik System
rte de la Fonderie 2
1700 Fribourg
Switzerland
http://www.attiksystem.ch

Tel:  +41 (26) 422 13 75
Fax:  +41 (26) 422 13 76

Re: pgxml & xpath_table

From
"Jim C. Nasby"
Date:
There's a good chance the author isn't on this list. You'd be better off
on pgsql-general, or just emailing the author of pgxml directly.

On Thu, Jun 08, 2006 at 06:00:42PM +0200, Philippe Lang wrote:
> Hi,
> 
> I'm playing with the contrib/pgxml library under PG 8.1.4, and I'm not sure if what I found with pgxml is a feature
ofa bug:
 
> 
> I've got the following table:
> 
> --------------------
> CREATE TABLE test
> (
>   id int4 NOT NULL,
>   xml varchar(200),
>   CONSTRAINT pk PRIMARY KEY (id)
> ) 
> WITHOUT OIDS;
> 
> INSERT INTO test VALUES (1, '<doc num="C1"><line num="L1"><a>1</a><b>2</b><c>3</c></line><line
num="L2"><a>11</a><b>22</b><c>33</c></line></doc>');
> 
> INSERT INTO test VALUES (2, '<doc num="C2"><line num="L1"><a>111</a><b>222</b><c>333</c></line><line
num="L2"><a>111</a><b>222</b><c>333</c></line></doc>');
> --------------------
> 
> 
> If I launch this query:
> 
> --------------------
> select * from
> 
> xpath_table('id','xml','test', '/doc/@num|/doc/line/@num|/doc/line/a|/doc/line/b|/doc/line/c','1=1') AS t(id int4,
doc_numvarchar(10), line_num varchar(10), val1 int4, val2 int4, val3 int4)
 
> 
> where id = 1
> 
> order by doc_num, line_num
> --------------------
> 
> I get:
> 
> --------------------
> id    doc_num     line_num    val1    val2    val3
> 1     C1          L1          1       2       3
> 1                 L2          11      22      33
> --------------------
> 
> I was expecting doc_num would receive twice the C1 value, just like with a normal sql join.
> 
> Regards,
> 
> ----------------------------------
> Philippe Lang, Ing. Dipl. EPFL
> Attik System
> rte de la Fonderie 2
> 1700 Fribourg
> Switzerland
> http://www.attiksystem.ch
> 
> Tel:  +41 (26) 422 13 75
> Fax:  +41 (26) 422 13 76 



-- 
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461