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
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) |