ecpg issue - not sending datatype to the backend - Mailing list pgsql-hackers

From Mike Aubury
Subject ecpg issue - not sending datatype to the backend
Date
Msg-id 200805021428.31432.mike.aubury@aubit.com
Whole thread Raw
Responses Re: ecpg issue - not sending datatype to the backend  (Michael Meskes <meskes@postgresql.org>)
List pgsql-hackers
This is a little complex to explain - so its probably better with an example..

I don't know if theres some inbuilt function to tell you what datatype a value 
is - so 'kludged' this together : 

 CREATE OR REPLACE FUNCTION rval_type(m date) RETURNS text AS $$ BEGIN               RETURN 'it was a date'; END; $$
LANGUAGEplpgsql;
 
 CREATE OR REPLACE FUNCTION rval_type(m text) RETURNS text AS $$ BEGIN               RETURN 'it was a text'; END; $$
LANGUAGEplpgsql;
 
 CREATE OR REPLACE FUNCTION rval_type(m int) RETURNS text AS $$ BEGIN               RETURN 'it was a int'; END; $$
LANGUAGEplpgsql;
 




Now - if I have a cpc containing : 
  main() {  exec sql begin declare section;  date d;  int i;  char a[200];  char lv_out[200];  exec sql end declare
section;
  exec sql database test1;
  d=0;  i=0;  strcpy(a,"-");  memset(lv_out,0,sizeof(lv_out));

  exec sql select rval_type(:d) into :lv_out;  if (sqlca.sqlcode<0) sqlprint();  else printf("%s\n",lv_out);

  exec sql select rval_type(:i) into :lv_out;  if (sqlca.sqlcode<0) sqlprint();  else printf("%s\n",lv_out);
  exec sql select rval_type(:a) into :lv_out;  if (sqlca.sqlcode<0) sqlprint();  else printf("%s\n",lv_out);
  }



You can see I'm passing in a date, then an integer, then a character string. 
However - when you run the code you get : 

it was a text
it was a text
it was a text



This to me looks 'wrong', especially when previous versions of ecpg (<8.0?) 
gave the correct :

it was a date
it was a int
it was a text




Any thoughts ? 
(This is manifesting itself as arithmetic errors when I'm using dates in my 
application)





-- 
Mike Aubury

Aubit Computing Ltd is registered in England and Wales, Number: 3112827
Registered Address : Clayton House,59 Piccadilly,Manchester,M1 2AQ




pgsql-hackers by date:

Previous
From: "Heikki Linnakangas"
Date:
Subject: Re: Patch to add objetct size on "\d+" verbose output
Next
From: Andrew Sullivan
Date:
Subject: Re: Odd timezone backend output