Обсуждение: AW: [HACKERS] Re: atttypmod of 0

Поиск
Список
Период
Сортировка

AW: [HACKERS] Re: atttypmod of 0

От
Zeugswetter Andreas DBT
Дата:
Yes, I think to change atttypmod to default to -1 would be the right
thing,
since the empty string '' really has a length of 0,
We could think of -1 as: We don't know how long this field will be.
0 would mean the field has 0 bytes.

Andreas

> >
> >    This  time  it's during the parser (gdb told me). varcharin()
> >     is called with a atttypmod of  0  causing  a  palloc()  of  0
> >     bytes.  How should a VARCHAR type whithout a specified length
> >     behave? Is this type 1 character or a  variable  size  up  to
> >     4096?
> >
> > I thought we fixed this on Feb 3. look at
> > parse_expr.c line 104: it should read:
> >                                 if (con->typename != NULL)
> > !                                       result =
> parser_typecast(val,
> > con->typename, -1);
> >                                 else
> >
> > I think all funcs calling with atttypmod = 0 are allways wrong,
> should
> > be -1.
> > or a number > 0 (or 4 if atttypmod includes the VARHDRSZ don't know)
>
> >
> > Andreas
> >
> >
>
> Yes, we did, but now I fixed varcharin, and bpcharin to test for
> atttypmod of 0 and do the right thing, I think.  If we need to make
> the
> default atttypmod value -1, then we can change it back.  Let me know
> if
> the current fix does not work.
>
> Should I make atttypmod default to -1?
>
> --
> Bruce Momjian
> maillist@candle.pha.pa.us
>
>

Re: AW: [HACKERS] Re: atttypmod of 0

От
Bruce Momjian
Дата:
>
> Yes, I think to change atttypmod to default to -1 would be the right
> thing,
> since the empty string '' really has a length of 0,
> We could think of -1 as: We don't know how long this field will be.
> 0 would mean the field has 0 bytes.

Field has varlena == 4, so zero is not possible, but I could still
change to -1 for clarity.

--
Bruce Momjian
maillist@candle.pha.pa.us

Re: AW: [HACKERS] Re: atttypmod of 0

От
Bruce Momjian
Дата:
>
> Yes, I think to change atttypmod to default to -1 would be the right
> thing,
> since the empty string '' really has a length of 0,
> We could think of -1 as: We don't know how long this field will be.
> 0 would mean the field has 0 bytes.

Do people want atttypmod at -1 at this time?  It will require a
dump/reload.


--
Bruce Momjian
maillist@candle.pha.pa.us

Re: AW: [HACKERS] Re: atttypmod of 0

От
"Thomas G. Lockhart"
Дата:
> > Yes, I think to change atttypmod to default to -1 would be the right
> > thing,
> > since the empty string '' really has a length of 0,
> > We could think of -1 as: We don't know how long this field will be.
> > 0 would mean the field has 0 bytes.
>
> Do people want atttypmod at -1 at this time?  It will require a
> dump/reload.

If it fixes problems, now is the time :)


Re: AW: [HACKERS] Re: atttypmod of 0

От
Bruce Momjian
Дата:
>
> > > Yes, I think to change atttypmod to default to -1 would be the right
> > > thing,
> > > since the empty string '' really has a length of 0,
> > > We could think of -1 as: We don't know how long this field will be.
> > > 0 would mean the field has 0 bytes.
> >
> > Do people want atttypmod at -1 at this time?  It will require a
> > dump/reload.
>
> If it fixes problems, now is the time :)

Well, right now, since it is not being used from anything by char() and
varchar(), it is not a problem.  But it will have to be changed when we
use it for other types.

So do we change it now?

--
Bruce Momjian
maillist@candle.pha.pa.us

Re: AW: [HACKERS] Re: atttypmod of 0

От
"Thomas G. Lockhart"
Дата:
> > > > Yes, I think to change atttypmod to default to -1 would be the right
> > > > thing,
> > > > since the empty string '' really has a length of 0,
> > > > We could think of -1 as: We don't know how long this field will be.
> > > > 0 would mean the field has 0 bytes.
> > >
> > > Do people want atttypmod at -1 at this time?  It will require a
> > > dump/reload.
> >
> > If it fixes problems, now is the time :)
>
> Well, right now, since it is not being used from anything by char() and
> varchar(), it is not a problem.  But it will have to be changed when we
> use it for other types.
>
> So do we change it now?

If it make things more self-consistant, now is the time :)

I would consider all of this related to or a followup on the char/varchar
work done earlier.

                                        - Tom


Re: AW: [HACKERS] Re: atttypmod of 0

От
Bruce Momjian
Дата:
> > So do we change it now?
>
> If it make things more self-consistant, now is the time :)
>
> I would consider all of this related to or a followup on the char/varchar
> work done earlier.

OK

--
Bruce Momjian
maillist@candle.pha.pa.us

Re: AW: [HACKERS] Re: atttypmod of 0

От
Bruce Momjian
Дата:
>
> >
> > Yes, I think to change atttypmod to default to -1 would be the right
> > thing,
> > since the empty string '' really has a length of 0,
> > We could think of -1 as: We don't know how long this field will be.
> > 0 would mean the field has 0 bytes.
>
> Do people want atttypmod at -1 at this time?  It will require a
> dump/reload.

OK, atttypmod now defaults to -1.   Initdb everyone.

--
Bruce Momjian
maillist@candle.pha.pa.us