> 1) When a row is retrieved, and then a SQL_FETCH_FIRST is issued, the

check
> in convert.c
> does not consider the fact that the value in the field has been altered to
> be a '1' if the
> backend handed it a 't'.  The net result being that the first row on any
> subsequent queries
> has all it's boolean set to 0.

Aidan Mountford
This commit is contained in:
Bruce Momjian 2001-08-04 19:33:49 +00:00
parent 184505bbfc
commit f8683e8a9c
1 changed files with 18 additions and 2 deletions

View File

@ -292,10 +292,23 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
{ /* change T/F to 1/0 */
char *s = (char *) value;
if (s[0] == 'T' || s[0] == 't')
/* Aidan Mountford (aidan@oz.to) 1/08/2001:
>> if (s[0] == 'T' || s[0] == 't') <<< This wont work...
When MoveFirst is called twice on one set of tuples,
this will have the effect of setting s[0] to 1 on the
first pass, and s[0] on the second.
This is bad ;)
*/
if (s[0] == 'T' || s[0] == 't' || s[0] == '1')
s[0] = '1';
else
s[0] = '0';
s[0] = '0';
}
break;
@ -1158,7 +1171,10 @@ copy_statement_with_parameters(StatementClass *stmt)
}
else
{
used = stmt->parameters[param_number].used ? *stmt->parameters[param_number].used : SQL_NTS;
buffer = stmt->parameters[param_number].buffer;
}