Re: [INTERFACES] error message - Mailing list pgsql-hackers

From José Soares
Subject Re: [INTERFACES] error message
Date
Msg-id 372EEB13.3318B1E8@sferacarta.com
Whole thread Raw
List pgsql-hackers
JT Kirkpatrick ha scritto:

> hi, i'm using access97 linked to postgres(6.4.2) tables through the new
> v.6.4 odbc.  i can open a form, it shows me data for an initial record, and
> then bombs.  here is the message in the log file -- i can't figure out why
> it is bombing.  does anyone have a clue??  do those "-" or "/" in various
> "vinvnum" fields cause problems??  it shows valid data first, waits for a
> second, and then bombs!
>

I had a similar error when I tried to order retrieved data by a field not in
the table or a calculated field.
Seems that Access request an order by a field with an unknown type.
I can emulate a similar message as:

select 'AAAAAA' union select 'ZZZZZZ' order by 1 asc;
ERROR:  Unable to identify a binary operator '>' for types unknown and unknown

select 'aaaaaa' union select 'zzzzzz' order by 1;
ERROR:  Unable to identify a binary operator '<' for types unknown and unknown

May be we need a default for UNKNOWN types (what do you think Thomas, if we
make unknown type =  text type?)

Any way. Try these functions:

create function unknown_lt(unknown,unknown) returns bool as
'declare       i1 text;       i2 text;
begin       i1:= $1;       i2:= $2;       return (i1 < i2);
end; ' language 'plpgsql';
CREATE

create operator < (       leftarg=unknown,       rightarg=unknown,       procedure=unknown_lt,       commutator='<',
  negator='>=',       restrict=eqsel,       join=eqjoinsel       );
 
CREATE

create function unknown_gt(unknown,unknown) returns bool as
'declare       i1 text;       i2 text;
begin       i1:= $1;       i2:= $2;       return (i1 > i2);
end; ' language 'plpgsql';
CREATE
create operator > (       leftarg=unknown,       rightarg=unknown,       procedure=unknown_gt,       commutator='>',
  negator='<=',       restrict=eqsel,       join=eqjoinsel       );
 
CREATE

select 'AAAAAA' union select 'ZZZZZZ' order by 1 asc;
?column?
--------
AAAAAA
ZZZZZZ
(2 rows)

select 'aaaaaa' union select 'zzzzzz' order by 1 desc;
?column?
--------
zzzzzz
aaaaaa
(2 rows)

EOF

______________________________________________________________
PostgreSQL 6.5.0 on i586-pc-linux-gnu, compiled by gcc 2.7.2.3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jose'




pgsql-hackers by date:

Previous
From: Thomas Lockhart
Date:
Subject: [Fwd: Bug report.]
Next
From: Tom Lane
Date:
Subject: varchar-array.patch applied