pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: David G Johnston <david.g.johnston@gmail.com>
To: pgsql-admin@postgresql.org
Subject: Re: Postgres 9.2 - XML string functions ?
Date: Mon, 26 Jan 2015 22:21:17 -0700 (MST)
Message-ID: <1422336077879-5835589.post@n5.nabble.com> (raw)
In-Reply-To: <203fb35202e040e00d0d3ed514414a2a@mail.gmail.com>
References: <203fb35202e040e00d0d3ed514414a2a@mail.gmail.com>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-admin>

Khangelani Gama-2 wrote
> Hi
> 
> 
> 
> Please help, I have been asked why XML string functions do this, which is
> why does the second statement below return no rows. No matter what is on
> the select statement, they can select as many columns as they want but the
> XML function breaks it as soon as it is added.
> 
> 
> 
> 
> 
> 1)      select
> aud_id,act_typ,right(act_typ::text,1),fpp_cde,obo_aud_id,obo_aud_id||sku_cde
> as "Key" from sku_tran join audit using (aud_id) join action_typ using
> (act_typ) join branch using (br_cde) join sku using (sku_cde) where
> obo_aud_id=5252005 and audit.fpp_cde between '201408' and '201412' and
> (right(act_typ::text,1) = '5') and act_typ between 76000 and 76999;
> 
> aud_id  | act_typ | right | fpp_cde | obo_aud_id |       Key
> 
> 2585912 |   76005 | 5     | 201408  |    5252005 | 525200510053486
> 
> (1 row)
> 
> 2)      select
> aud_id,act_typ,right(act_typ::text,1),fpp_cde,obo_aud_id,(unnest(xpath('.//checksumBr/text()',
> aud_xml::xml)))::text||obo_aud_id||sku_cde as "Key" from sku_tran join
> audit using (aud_id) join action_typ using (act_typ) join branch using
> (br_cde) join sku using (sku_cde) where obo_aud_id=5252005 and
> audit.fpp_cde between '201408' and '201412' and (right(act_typ::text,1) =
> '5') and act_typ between 76000 and 76999;
> 
> aud_id | act_typ | right | fpp_cde | obo_aud_id | Key
> 
> (0 rows)

When you unnest an empty array it returns an empty set.  An empty set in the
select list causes the row it is sourced from to be excluded from the
output.

You can use a correlated subselect to instead have the result instead be
shown as NULL.

David J.




--
View this message in context: http://postgresql.nabble.com/Postgres-9-2-XML-string-functions-tp5835578p5835589.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.


-- 
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin



view thread (3+ messages)  latest in thread

Message-ID: <1422336077879-5835589.post@n5.nabble.com>
Permalink:  ../1422336077879-5835589.post@n5.nabble.com/
Also on:    postgresql.org/message-id/1422336077879-5835589.post@n5.nabble.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-admin@postgresql.org
  Cc: david.g.johnston@gmail.com
  Subject: Re: Postgres 9.2 - XML string functions ?
  In-Reply-To: <1422336077879-5835589.post@n5.nabble.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox