Re: binding 64-bit integer

Поиск
Список
Период
Сортировка
От Martin Gainty
Тема Re: binding 64-bit integer
Дата
Msg-id BAY133-DAV253A80B7AB5ABDE6D7B62AE560@phx.gbl
обсуждение исходный текст
Ответ на binding 64-bit integer  ("flying2001us@yahoo.com" <flying2001us@yahoo.com>)
Список pgsql-general
Flying-
reading the source displays
http://doxygen.postgresql.org/postgres_8c-source.html

       /* Trouble if it didn't eat the whole buffer */
                 if (!isNull && pbuf.cursor != pbuf.len)
                     ereport(ERROR,
                             (errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
                              errmsg("incorrect binary data format in bind
parameter %d",
                                     paramno + 1)));

the test is
  StringInfoData pbuf;

http://doxygen.postgresql.org/structStringInfoData.html#42669853a3faef1df41850bfd686cb24

pbuf.cursor (plain 32 bit int) != pbuf.len(64)

i think you found a bug....

M-
This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed.  If you have received this email message in error, please notify
the sender immediately by telephone or email and destroy the original
message without making a copy.  Thank you.

----- Original Message -----
From: <flying2001us@yahoo.com>
To: <pgsql-general@postgresql.org>
Sent: Thursday, April 19, 2007 9:02 PM
Subject: [GENERAL] binding 64-bit integer


> Hi all,
>
> I'm using Solaris 10 with 64-bit libpq library.
>
> I wanted to bind a 64-bit integer, but it failed:
> "ERROR:  incorrect binary data format in bind
> parameter 1".
>
> The code would succeed if the type of "val" is
> uint32_t.
>
> Doe anyone know how to fix this?  Thanks a lot!
>
> -------------------------------------------------------------------------------------------------
> uint64_t  val;
> const char      *paramValues[1];
> int  paramLengths[1];
> int  paramFormats[1];
> const char *sql_clause = "SELECT * FROM mytable  WHERE
> mykey = $1";
>
> paramValues[0] = (char *) &val;
> paramLengths[0] = sizeof(val);
> paramFormats[0] = 1;
>
> res = PQexecParams(conn, sql_clause, 1, NULL,
>          paramValues, paramLengths, paramFormats, 1);
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>


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

Предыдущее
От: "flying2001us@yahoo.com"
Дата:
Сообщение: binding 64-bit integer
Следующее
От: John DeSoi
Дата:
Сообщение: Re: dollar-quoting trouble