Re: [HACKERS] Re: varchar() troubles (fwd)

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: vadim(at)sable(dot)krasnoyarsk(dot)su (Vadim B(dot) Mikheev)
Cc: hackers(at)postgreSQL(dot)org (PostgreSQL-development)
Subject: Re: [HACKERS] Re: varchar() troubles (fwd)
Date: 1998-01-13 05:42:08
Message-ID: 199801130542.AAA20669@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Forwarded message:
> > The problem was that some things were copied using VARSIZE rather than
> > subtracting out VARHDRSZ first (actually, I think it might have use
> > sizeof(int) and other dangers too). I patched that near the end of the year
> > and my 980101.d tree and 980106.d tree do not exhibit the symptom:
> >
> > postgres=> create table t (v varchar(80),i int);
> > CREATE
> > postgres=> insert into t values ('hi', 1);
> > INSERT 643562 1
> > postgres=> select * from t;
> > v |i
> > --+-
> > hi|1
> > (1 row)
>
> I have found that ExecEvalVar() uses a descriptor that has the attr
> length set to the maximum, instead of -1. The ExecTypeFromTL() comment
> says:
>
> /* ----------------------------------------------------------------
> * ExecTypeFromTL
> *
> * Currently there are about 4 different places where we create
> * TupleDescriptors. They should all be merged, or perhaps
> * be rewritten to call BuildDesc().
> *
>
> Clearly stating that the tuple descriptors in the system are created in
> several places. Some places have the length set wrong. I am going to
> have to take a look at all those places, and make sure they have
> consistent behaviour.

Vadim, can you look at this for me. If you set a break at ExecEvalVar
before executing the SELECT, you will see its
tupledescriptor->attrs[0].attlen is the max length, and not -1 as it
should be.

I can't figure out where that is getting set. Can you also check the
other tupledescriptor initializations to see they have the -1 for
varchar too. I am stumped.

--
Bruce Momjian
maillist(at)candle(dot)pha(dot)pa(dot)us

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Vadim B. Mikheev 1998-01-13 08:54:09 Re: [HACKERS] Storing rows bigger than one block
Previous Message neil d. quiogue 1998-01-13 04:38:56 for the development team (fwd)