On Sun, Jan 13, 2013 at 07:54:11AM +0100, Pavel Stehule wrote: > related to > http://www.postgresql.org/message-id/cafj8prdtavfnrazwet+ewmfrbdzffva8w17kk_e12fb6t-z...@mail.gmail.com > > boolean domains is serialised to string different than boolean > > postgres=# CREATE DOMAIN booldomain as bool; > CREATE DOMAIN > > -- fully expected behave > postgres=# select true, true::booldomain; > bool | booldomain > ------+------------ > t | t > (1 row) > > postgres=# select true::text, true::booldomain::text; > text | text > ------+------ > true | true > (1 row) > > -- unexpected behave > postgres=# select xmlforest(true as bool, true::booldomain as booldomain); > xmlforest > --------------------------------------------- > <bool>true</bool><booldomain>t</booldomain> > (1 row) > > is it expected behave?
There is a bug here. map_sql_type_to_xmlschema_type() has special treatment for domains, but map_sql_value_to_xml_value() and its callers have no corresponding logic. In the same vein, this yields a schema that does not validate its corresponding document: set datestyle = 'sql, dmy'; create domain datedom as date; create table t as select current_date AS a, current_date::datedom AS b; select table_to_xml('t', true, true, ''); select table_to_xmlschema('t', true, true, ''); One could debate whether the schema generation or the data generation should be the one to change, but I tentatively vote for the latter. Thanks, nm -- Noah Misch EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers