Andrus wrote: > How to create string concatenation operator which preserves trailing spaces > on CHAR(n) type columns ? > > I tried code below, but it returns AB (without spaces). > How to force it to return A B (keep space after A) ? > > Andrus. > > CREATE OR REPLACE FUNCTION public.stringconcat(left text, right text) > RETURNS text > LANGUAGE sql IMMUTABLE > AS $BODY$ > SELECT concat($1, $2) ; > $BODY$; > > CREATE OPERATOR public.+ ( > leftarg = text, > rightarg = text, > procedure = public.stringconcat > ); > > create temp table test (col1 char(2)) on commit drop; > insert into test values ('A'); > select col1 + 'B' > from test; > > > I posted similar question also in > > http://stackoverflow.com/questions/24975118/how-to-create-string-concatenation-operator-which- > preserves-trailing-spaces-in-c
Use "bpchar" instead of "text" in the definition of function and operator. Otherwise col1 gets cast to "text" and loses its trailing spaces. Yours, Laurenz Albe -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general