pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Eugene E. <sad@bankir.ru>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: Achilleus Mantzios <achill@matrix.gatewaynet.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: have you feel anything when you read this ?
Date: Fri, 31 Mar 2006 10:17:00 +0400
Message-ID: <442CC95C.1030700@bankir.ru> (raw)
In-Reply-To: <200603201415.30719.peter_e@gmx.net>
References: <Pine.LNX.4.44.0603201522410.22894-100000@matrix.gatewaynet.com>
	<441EA0A7.8030601@bankir.ru>
	<200603201415.30719.peter_e@gmx.net>

Peter Eisentraut wrote:
> Eugene E. wrote:
> 
>>the problem is: you'll get this four byte sequence '\000' _instead_
>>of NUL-byte anyway.
> 
> 
> What you seem to be missing is that PostgreSQL data can be represented 
> in textual and in binary form.  What you in psql is the textual form.  
> If you want the binary form you need to select it.  Then you can pass 
> the exact bytes back and forth.

your sentence is not true.
I can not select exact bytes even if i use BYTEA type

the folloiwing tiny C-program shows this pretty clear

#include <stdlib.h>
#include <stdio.h>
#include "libpq-fe.h"



int
main (void)
  {
   PGconn   * conn;
   PGresult * res;
   char     * val;
   char     *   l;
   int        len;



   conn = PQconnectdb("user=scott password=tiger dbname=test_db");

   PQexec(conn, "CREATE TABLE t (a BYTEA)");
   PQexec(conn, "INSERT INTO t VALUES ('ab\\\\000cd')");


   res = PQexec(conn, "SELECT a,length(a) FROM t");
   val = PQgetvalue(res,0,0);
   l   = PQgetvalue(res,0,1);
   len = PQgetlength(res,0,0);
   printf("what_we_retrive='%s' its_value_length=%i but 
orig_length=%s\n",val,len,l);

   PQclear(res);
   PQfinish(conn);

   return 0;
  }



view thread (47+ messages)  latest in thread

Message-ID: <442CC95C.1030700@bankir.ru>
Permalink:  ../442CC95C.1030700@bankir.ru/
Also on:    postgresql.org/message-id/442CC95C.1030700@bankir.ru

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: sad@bankir.ru, peter_e@gmx.net, achill@matrix.gatewaynet.com
  Subject: Re: have you feel anything when you read this ?
  In-Reply-To: <442CC95C.1030700@bankir.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox