Bug in AdjustIntervalForTypmod function

Поиск
Список
Период
Сортировка
От Donald Fraser
Тема Bug in AdjustIntervalForTypmod function
Дата
Msg-id 005d01c31970$790295f0$1664a8c0@DEMOLITION
обсуждение исходный текст
Ответы Re: Bug in AdjustIntervalForTypmod function  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
PostgreSQL 7.3.2 on i686-pc-linux-gnu, compiled by GCC 2.96

The following function definition:

extern Datum testDate(PG_FUNCTION_ARGS);
PG_FUNCTION_INFO_V1(testDate);

Datum
testDate(PG_FUNCTION_ARGS)
{
 Datum tnow =3D DirectFunctionCall3(timestamp_in,
    CStringGetDatum("now"),
    ObjectIdGetDatum(InvalidOid),
    Int32GetDatum(0));
=20=20=20=20
 Datum interv =3D DirectFunctionCall3(interval_in,
    CStringGetDatum("7 Days"),
    ObjectIdGetDatum(InvalidOid),
    Int32GetDatum(0));
=20=20=20=20
 Datum tnow_pl_interval =3D DirectFunctionCall2(timestamp_pl_span,
    tnow,
    interv);
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
 text *ptext =3D DatumGetTextP(DirectFunctionCall1(textin, DirectFunctionCa=
ll1(timestamp_out,tnow_pl_interval)));

 if (ptext =3D=3D NULL)
     PG_RETURN_NULL();
 PG_RETURN_TEXT_P(ptext);
}

When called such as:
Bugs=3D> SELECT "testDate"();

Produces this error message:
ERROR:  AdjustIntervalForTypmod(): internal coding error

Yet when I call the equivalent SQL it reports no error, such as:
Bugs=3D> SELECT timestamp_pl_span('now'::timestamp(0), '7 Days'::interval(0=
));
  timestamp_pl_span
---------------------
 2003-05-20 17:35:21
(1 row)

I searched through the code and found that the failure was occuring in the =
function:=20
"static void AdjustIntervalForTypmod(Interval *interval, int32 typmod)"

To get around the problem I set the type modifier for the "Interval" as "-1=
".

Regards
Donald Fraser

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: failed compile csv version PostgreSQL
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Bug in AdjustIntervalForTypmod function