That is entertaining.  The text->geometry cast is implicit, but so are
the casts text->character, text->character varying, text->name,
text->regclass. The issue seems to be that the only cast defined on bytea is to bytea->geometry. With no implicit casts for text->bytea or bytea->text, the only way the equality can be evaluated is through the geometry type.

This is just another case of needing to be explicit in what you ask for. Try select 'abc'::text = decode('YWJj', 'base64')::text or select 'abc'::bytea = decode('YWJj', 'base64') to avoid the automatic geometry castings.

Mark Leslie
Geospatial Software Architect
LISAsoft

-------------------------------------------------------------
Ph: +61 2 8570 5000 Fax: +61 2 8570 5099 Mob: +61
Suite 112, Jones Bay Wharf 19-21 Pirrama Rd Pyrmont NSW 2009
-------------------------------------------------------------

LISAsoft is part of the A2end Group of Companies
http://www.ardec.com.au
http://www.lisasoft.com
http://www.terrapages.com


Charlie Savage wrote:
Install postgis and make sure it is on your search path.

Then run this query:

select 'abc'::text = decode('YWJj', 'base64')

Its results in this:

ERROR:  parse error - invalid geometry

********** Error **********

ERROR: parse error - invalid geometry
SQL state: XX000


I see that postgis defines the = operator between two geometries. Which seems to mean that the text on the left side is converted automatically to a geometry and the bytea on the right side to a geometry automatically. That's surprising to say the least...

Charlie


------------------------------------------------------------------------

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to