Обсуждение: Problem with SQLGetTypeInfo

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

Problem with SQLGetTypeInfo

От
Zhou Han
Дата:

There's a missmatch in the following functions:

Int4
PGtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as)
{

 switch (type)
 {

  case PG_TYPE_CHAR:
   return 1;
...

}

char *
pgtype_create_params(StatementClass *stmt, Int4 type)
{
 switch (type)
 {
   case PG_TYPE_CHAR:   
   case PG_TYPE_VARCHAR:return "max. length";
  default:
   return NULL;
 }
}

"case PG_TYPE_CHAR" should be changed to "case PG_TYPE_BPCHAR", or there will be a error when use SQLGetTypeInfo. Because the precision of PG_TYPE_CHAR is 1, it should return NULL in function "pgtype_create_params" instead of "max. length"!!!

What do you think?

Re: Problem with SQLGetTypeInfo

От
Hiroshi Inoue
Дата:
> Zhou Han wrote:
>
> There's a missmatch in the following functions:
>
> Int4
> PGtype_precision(StatementClass *stmt, Int4 type, int col, int
>  handle_unknown_size_as)
> {
>
>  switch (type)
>  {
>
>   case PG_TYPE_CHAR:
>    return 1;
> ...
>
> }
>
> char *
> pgtype_create_params(StatementClass *stmt, Int4 type)
> {
>  switch (type)
>  {
>    case PG_TYPE_CHAR:
>    case PG_TYPE_VARCHAR:return "max. length";
>   default:
>    return NULL;
>  }
> }
>
> "case PG_TYPE_CHAR" should be changed to "case PG_TYPE_BPCHAR", or
> there will be a error when use SQLGetTypeInfo. Because the precision
> of PG_TYPE_CHAR is 1, it should return NULL in function
> "pgtype_create_params" instead of "max. length"!!!
>
> What do you think?

You seem to be right.
I would change PG_TYPE_CHAR to PG_TYPE_BPCHAR.

Thanks for your report.

Hiroshi Inoue
    http://w2422.nsk.ne.jp/~inoue/