Thread: varchar (no 'N') vs. text

varchar (no 'N') vs. text

From
Jon Nelson
Date:
Let's say I have a database with two tables, a and b.
Each has one column.  'a' has a column 't' of type text.  'b' has a
column 'v' of type 'varchar' (no length specified).
If I join the two tables, I see in the plan something that looks like this:

Merge Cond: (a.t = (b.v)::text)

I thought 'character varying' (aka varchar) sans length was an alias
for text. Is it not?


--
Jon

Re: varchar (no 'N') vs. text

From
Tom Lane
Date:
Jon Nelson <jnelson+pgsql@jamponi.net> writes:
> I thought 'character varying' (aka varchar) sans length was an alias
> for text. Is it not?

It has the same behavior, but it is a distinct type, so dummy coercions
are needed.

            regards, tom lane

Re: varchar (no 'N') vs. text

From
Jon Nelson
Date:
On Fri, Feb 4, 2011 at 1:18 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Jon Nelson <jnelson+pgsql@jamponi.net> writes:
>> I thought 'character varying' (aka varchar) sans length was an alias
>> for text. Is it not?
>
> It has the same behavior, but it is a distinct type, so dummy coercions
> are needed.

Are there any performance implications for this dummy coercion?
Especially in joins.


--
Jon