dbTalk Databases Forums  

[BUGS] BUG #1164: Informix compatibility ecpg

mailing.database.pgsql-bugs mailing.database.pgsql-bugs


Discuss [BUGS] BUG #1164: Informix compatibility ecpg in the mailing.database.pgsql-bugs forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
PostgreSQL Bugs List
 
Posts: n/a

Default [BUGS] BUG #1164: Informix compatibility ecpg - 06-14-2004 , 06:21 PM







The following bug has been logged online:

Bug reference: 1164
Logged by: John Smith

Email address: john (AT) roundel (DOT) net

PostgreSQL version: 7.4

Operating system: Linux 2.4 [Fedora core 1]

Description: Informix compatibility ecpg

Details:

O/S: Linux 2.4 [Fedora core 1]
PostgreSQL 7.4.2
command line:
ecpg -t prog.pgc -C INFORMIX -o prog.c

I'm Converting a project from Informix to PostgreSQL, and intended to make
use of Informix compatibility mode to speed the process. I understand that
some core differences (error handling for example) cannot easily be
automated.

I've found some incompatibles though that seem to me could be catered for:

In Informix ESQL/C, columns can be defined using the same string that's used
to describe the field when describing the table. Hence "integer" will work
in esql, but not in ecpg.

Informix treats the single and double quote as synonyms in SELECT
statements. Thus
.... WHERE countries.country_code = "UK"
is valid in Informix, but in PostgreSQL needs to be re-written as
.... WHERE countries.country_code = 'UK'.
The error message for this is not obvious to a programmer brought up on
informix, as it refers to a column called "UK" that does not exist.

A SELECT from a NULL field in Informix is trapped using the Informix call
"risnull()". Although this function is provided with ecpg, null values were
not successfully trapped, and I had to resort to using the PostgreSQL
standard indicator variables. I can supply more details on this one on
request, as it's C code that probably doesn't belong here.


Generally though, I've been unable to find any documentation on the
Informix-compatibility mode.


Regards,


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo (AT) postgresql (DOT) org

Reply With Quote
  #2  
Old   
Michael Meskes
 
Posts: n/a

Default Re: [BUGS] BUG #1164: Informix compatibility ecpg - 06-22-2004 , 01:48 AM






On Mon, Jun 14, 2004 at 08:08:37PM -0300, PostgreSQL Bugs List wrote:
Quote:
In Informix ESQL/C, columns can be defined using the same string that's used
to describe the field when describing the table. Hence "integer" will work
in esql, but not in ecpg.
I'm not sure I understand you correctly. You mean you cannot use
something like this:

create table test (integer integer);

in ecpg?

Well that one works for me.

Quote:
Informix treats the single and double quote as synonyms in SELECT
statements. Thus
... WHERE countries.country_code = "UK"
is valid in Informix, but in PostgreSQL needs to be re-written as
... WHERE countries.country_code = 'UK'.
The error message for this is not obvious to a programmer brought up on
informix, as it refers to a column called "UK" that does not exist.
Virtually no chance here. Changing this would mean some major work on
the lexer to not break SQL compatibility in non-compatibility mode.

Quote:
A SELECT from a NULL field in Informix is trapped using the Informix call
"risnull()". Although this function is provided with ecpg, null values were
not successfully trapped, and I had to resort to using the PostgreSQL
standard indicator variables. I can supply more details on this one on
request, as it's C code that probably doesn't belong here.
This seems to be a bug. Could you please send me a test case? I have no
Informix myself so I need to know how Informix reacts to this test case.

Also, you know that you hve to specify "-r no_indicator" for this to
work I assume.

Quote:
Generally though, I've been unable to find any documentation on the
Informix-compatibility mode.
Unfortunately this is so very true.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes (AT) jabber (DOT) org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.