Re: [PATCHES] libpq type system 0.9a

Поиск
Список
Период
Сортировка
От Andrew Chernow
Тема Re: [PATCHES] libpq type system 0.9a
Дата
Msg-id 47FE6CF7.8040502@esilo.com
обсуждение исходный текст
Ответ на Re: [PATCHES] libpq type system 0.9a  (Andrew Chernow <ac@esilo.com>)
Список pgsql-hackers
Andrew Chernow wrote:
> 
> For client_encoding and noticeHooks, the conn can be NULL.  Previously, 
> we copied this info from the source result when conn was NULL.
> 
> 

Looks like we don't need client_encoding.  My guess is, in our use case 
noticeHooks can probably be NULL for the created result, when makeresult 
is not provided a conn.
> ....something like below>> res = PQmakeResult(...);> for(ntups)> {>   PQresultAddEmptyTuple(res); // or
PQresultMakeEmptyTuple?>  for(nfields)>     PQresultSetFieldValue(res, tup_num, field_num, ....);> }>>
 

I think a better idea would be to make setfieldvalue more dynamic, 
removing the need for PQresultAddEmptyTuple.  Only allow tup_num to be 
<= res->ntups.  This will only allow adding one tuple at a time.  The 
other option would allow arbitray tup_nums to be passed in, like ntups 
is 1 but the provided tup_num is 67.  In this case, we would have to 
back fill.  It seems better to only grow by one tuple at a time.  We can 
get it working either way, we just prefer one tuple at a time allocation.

int PQresultSetFieldValue(  PGresult *res,  int tup_num,  int field_num,  char *value,  int len)
{  if(!check_field_value(res, field_num))    return FALSE;
  if(tup_num > res->ntups)    // error, tup_num must be <= res->ntups
  if(res->ntups >= res->tupArrSize)    // grow res->tuples
  if(tup_num == res->ntups && !res->tuples[tup_num])    // need to allocate tuples[tup_num]
  // blah ... blah ...
}


New PQmakeResult prototype:

PQmakeResult(  PGconn *conn,  const char *cmdStatus,  int binaryTuples,  int numAttributes,  PGresAttDesc *attDescs);

-- 
Andrew Chernow
eSilo, LLC
every bit counts
http://www.esilo.com/


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Commit fest queue
Следующее
От: "Marc G. Fournier"
Дата:
Сообщение: Re: Commit fest queue