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?