[SQL] Porting problem from Informix to Postgres...

2004-09-22 Thread Marco Gaiarin

On our organization we are porting an old, internally developed app,
that use Informix (SE 7.XX, on a sun box) as database backend and Gupta
Centura Team Developer 1.5.1 as development environment.

Centura uses Informix via a native driver, for postgres we pass along
odbc. Our postgres environment are a set of intel box, loaded with
debian woody, so postgres 7.2.1.

We have solved many problem, i've also make a little perl script that
convert a informix's dbexport dump into a set of file suitable to
import into postgres.


Now we are moving the app... we was happy, because seems that the only
modification needed was to alter some of the more complex query,
because of the difference on informix and postgres sql dialects.


But a big problem now arise: at the very beginning of this app, there
was a bug in handling of date in centura, so the guys circumvent this
converting all date in strings, and handle ``manually''.
Not sufficient, they don't do this with a wrapper function around date
field, but with ``casting'' data in varchar in the selects (with select
... into ...) and only local computation.
It's dumb, i know. ;(


So now, on informix, a set of centura statement like:

Call SqlPrepareAndExecute(hsql,'select dt_fatt from fatture into :una')
Call SqlFetchNext(hsql,err)

make on string/variable :una a date like:

'01-08-2001'

for january 8, 2001, but on postgres we got:

'2001-01-08'


There's a way to alter globally the date format (apart PGDATESTYLE
variable, just tried with no luck), or there's a way to setup query to have
the correct date format?

I've tried to use the mailing list search robots, but looking for
informix on this list (and on -general) make nothing. ;(


Many thanks.

-- 
dott. Marco Gaiarin GNUPG Key ID: 240A3D66
  Associazione ``La Nostra Famiglia''http://www.sv.lnf.it/
  Polo FVG  -  Via della Bontà, 7 - 33078  -  San Vito al Tagliamento (PN)
  gaio(at)sv.lnf.it tel +39-0434-842711fax +39-0434-842797

Urbani, dimissioni please
http://punto-informatico.it/p.asp?i=49171

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [SQL] Porting problem from Informix to Postgres...

2004-09-22 Thread Michalis Kabrianis
Marco Gaiarin wrote:
On our organization we are porting an old, internally developed app,
that use Informix (SE 7.XX, on a sun box) as database backend and Gupta
Centura Team Developer 1.5.1 as development environment.
Centura uses Informix via a native driver, for postgres we pass along
odbc. Our postgres environment are a set of intel box, loaded with
debian woody, so postgres 7.2.1.
We have solved many problem, i've also make a little perl script that
convert a informix's dbexport dump into a set of file suitable to
import into postgres.
Now we are moving the app... we was happy, because seems that the only
modification needed was to alter some of the more complex query,
because of the difference on informix and postgres sql dialects.
But a big problem now arise: at the very beginning of this app, there
was a bug in handling of date in centura, so the guys circumvent this
converting all date in strings, and handle ``manually''.
Not sufficient, they don't do this with a wrapper function around date
field, but with ``casting'' data in varchar in the selects (with select
... into ...) and only local computation.
It's dumb, i know. ;(
So now, on informix, a set of centura statement like:
Call SqlPrepareAndExecute(hsql,'select dt_fatt from fatture into :una')
Call SqlFetchNext(hsql,err)
make on string/variable :una a date like:
'01-08-2001'
for january 8, 2001, but on postgres we got:
'2001-01-08'
There's a way to alter globally the date format (apart PGDATESTYLE
variable, just tried with no luck), or there's a way to setup query to have
the correct date format?
Wouldn't
set datestyle to postgres; (or something else, try iso,mdy, I think it 
depends on your locale) do the trick?
You can also try to put it in postgresql.conf if I'm not wrong

Michalis
> I've tried to use the mailing list search robots, but looking for
> informix on this list (and on -general) make nothing. ;(
>
>
> Many thanks.
>
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [SQL] Porting problem from Informix to Postgres...

2004-09-22 Thread Achilleus Mantzios
O Marco Gaiarin έγραψε στις Sep 22, 2004 :

> 
> On our organization we are porting an old, internally developed app,
> that use Informix (SE 7.XX, on a sun box) as database backend and Gupta
> Centura Team Developer 1.5.1 as development environment.
> 
> Centura uses Informix via a native driver, for postgres we pass along
> odbc. Our postgres environment are a set of intel box, loaded with
> debian woody, so postgres 7.2.1.
> 
> We have solved many problem, i've also make a little perl script that
> convert a informix's dbexport dump into a set of file suitable to
> import into postgres.
> 
> 
> Now we are moving the app... we was happy, because seems that the only
> modification needed was to alter some of the more complex query,
> because of the difference on informix and postgres sql dialects.
> 
> 
> But a big problem now arise: at the very beginning of this app, there
> was a bug in handling of date in centura, so the guys circumvent this
> converting all date in strings, and handle ``manually''.
> Not sufficient, they don't do this with a wrapper function around date
> field, but with ``casting'' data in varchar in the selects (with select
> ... into ...) and only local computation.
> It's dumb, i know. ;(
> 
> 
> So now, on informix, a set of centura statement like:
> 
>   Call SqlPrepareAndExecute(hsql,'select dt_fatt from fatture into :una')
>   Call SqlFetchNext(hsql,err)
> 
> make on string/variable :una a date like:
> 
>   '01-08-2001'
> 
> for january 8, 2001, but on postgres we got:
> 
>   '2001-01-08'

Just a dummy workaround (i am sure you'll find something better),

dynacom=# SET DateStyle TO German ;
SET
dynacom=# SELECT replace(now()::date::text,'.','-');
  replace

 22-09-2004



> 
> 
> There's a way to alter globally the date format (apart PGDATESTYLE
> variable, just tried with no luck), or there's a way to setup query to have
> the correct date format?
> 
> I've tried to use the mailing list search robots, but looking for
> informix on this list (and on -general) make nothing. ;(
> 
> 
> Many thanks.
> 
> 

-- 
-Achilleus


---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [SQL] Porting problem from Informix to Postgres...

2004-09-22 Thread Josh Berkus
Marco,

> Centura uses Informix via a native driver, for postgres we pass along
> odbc. Our postgres environment are a set of intel box, loaded with
> debian woody, so postgres 7.2.1.

You do realize that this is a 2-year-old version of Postgresql, yes?  It seems 
to me that if you're going to take the trouble of porting an application, you 
should port it to something current -- Debian Stable or not.   Particularly 
since, in a year, you can expect that the PostgreSQL community will probably 
stop doing security/stability patches for 7.2.

-- 
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


[SQL] LIKE operator and string comparison

2004-09-22 Thread Wei Weng
I used the following SQL code to match '\foo\bar'
SELECT text FROM test WHERE text LIKE 'foo%'
But if I choose to use string comparison, instead of 4 escape characters, I 
only need 2.

SELECT text FROM test WHERE text = '\\foo\\bar'
Why is that?
I am using PostgreSQL 7.4, and the SQL code was entered through psql.
Thanks!
Wei
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [SQL] LIKE operator and string comparison

2004-09-22 Thread Tom Lane
Wei Weng <[EMAIL PROTECTED]> writes:
> But if I choose to use string comparison, instead of 4 escape characters, I 
> only need 2.

> Why is that?

Backslash is an escape character for LIKE.

regards, tom lane

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [SQL] LIKE operator and string comparison

2004-09-22 Thread Wei Weng
Tom Lane wrote:
Wei Weng <[EMAIL PROTECTED]> writes:
But if I choose to use string comparison, instead of 4 escape characters, I 
only need 2.

Why is that?

Backslash is an escape character for LIKE.
regards, tom lane

What about in regular strings? I do need to use backslash to escape the 
other backslash in order to get the '\'. Why isn't that the case in LIKE 
operation?

Thanks
Wei
---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [SQL] LIKE operator and string comparison

2004-09-22 Thread Tom Lane
Wei Weng <[EMAIL PROTECTED]> writes:
> What about in regular strings? I do need to use backslash to escape the 
> other backslash in order to get the '\'. Why isn't that the case in LIKE 
> operation?

It is.  You write four backslashes in order to describe a string
constant value containing two backslashes.  When the LIKE code sees
that, it interprets it as one quoted backslash.

See LIKE ... ESCAPE if you'd like to use a different escape character
in the LIKE pattern.

regards, tom lane

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly