AW: Error in pgAdmin4 when cast is created

From: ascara Software GmbH - Jürgen Spatz <juergen(dot)spatz(at)ascara(dot)de>
To: ascara Software GmbH - Jürgen Spatz <juergen(dot)spatz(at)ascara(dot)de>, Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
Cc: pgAdmin Support <pgadmin-support(at)postgresql(dot)org>
Subject: AW: Error in pgAdmin4 when cast is created
Date: 2018-11-08 12:22:33
Message-ID: 7B2B90C84C0CA34580F506E47B6AB7215C751ADD@WIN-KT2KF0OK29P.ascara.mobi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Hi,

I tested the Statement and only a small correction is needed
SELECT
i.indexrelid,
CASE i.indoption[i.attnum - 1]
WHEN 0 THEN ARRAY['ASC', 'NULLS LAST']
WHEN 1 THEN ARRAY['DESC', 'NULLS FIRST']
WHEN 2 THEN ARRAY['ASC', 'NULLS FIRST']
WHEN 3 THEN ARRAY['DESC', 'NULLS ']
ELSE ARRAY['UNKNOWN OPTION' || (i.indoption[i.attnum - 1])::text, ''] <== Cast to text then it runs
END::text[] AS options,
i.attnum,
pg_get_indexdef(i.indexrelid, i.attnum, true) as attdef,
CASE WHEN (o.opcdefault = FALSE) THEN o.opcname ELSE null END AS opcname,
op.oprname AS oprname,
CASE WHEN length(nspc.nspname) > 0 AND length(coll.collname) > 0 THEN
concat(quote_ident(nspc.nspname), '.', quote_ident(coll.collname))
ELSE '' END AS collnspname
FROM (
SELECT
indexrelid, i.indoption, i.indclass,
unnest(ARRAY(SELECT generate_series(1, i.indnatts) AS n)) AS attnum
FROM
pg_index i
WHERE i.indexrelid = 1293689::OID
) i
LEFT JOIN pg_opclass o ON (o.oid = i.indclass[i.attnum - 1])
LEFT OUTER JOIN pg_constraint c ON (c.conindid = i.indexrelid)
LEFT OUTER JOIN pg_operator op ON (op.oid = c.conexclop[i.attnum])
LEFT JOIN pg_attribute a ON (a.attrelid = i.indexrelid AND a.attnum = i.attnum)
LEFT OUTER JOIN pg_collation coll ON a.attcollation=coll.oid
LEFT OUTER JOIN pg_namespace nspc ON coll.collnamespace=nspc.oid
ORDER BY i.attnum;

Greetings
Jürgen Spatz

Von: ascara Software GmbH - Jürgen Spatz [mailto:juergen(dot)spatz(at)ascara(dot)de]
Gesendet: Donnerstag, 8. November 2018 13:18
An: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
Cc: pgAdmin Support <pgadmin-support(at)postgresql(dot)org>
Betreff: AW: Error in pgAdmin4 when cast is created

HI,

I inserted the Bug in the Bug-Tracker also with the correct SQL code, which comes, when I delete the cast

Regards

Jürgen Spatz

Von: Murtuza Zabuawala [mailto:murtuza(dot)zabuawala(at)enterprisedb(dot)com]
Gesendet: Donnerstag, 8. November 2018 13:08
An: ascara Software GmbH - Jürgen Spatz <juergen(dot)spatz(at)ascara(dot)de<mailto:juergen(dot)spatz(at)ascara(dot)de>>
Cc: pgAdmin Support <pgadmin-support(at)postgresql(dot)org<mailto:pgadmin-support(at)postgresql(dot)org>>
Betreff: Re: Error in pgAdmin4 when cast is created

Hi,

Could you please report a bug on https://redmine.postgresql.org/projects/pgadmin4

It would be very helpful if you include the sample SQL definition to reproduce the issue on the developer's machine.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com<http://www.enterprisedb.com/>
The Enterprise PostgreSQL Company
[https://drive.google.com/a/enterprisedb.com/uc?id=0B6jGeB3BfKRMV0t4MEp0YnZCTTA&export=download]

On Thu, Nov 8, 2018 at 5:05 PM ascara Software GmbH - Jürgen Spatz <juergen(dot)spatz(at)ascara(dot)de<mailto:juergen(dot)spatz(at)ascara(dot)de>> wrote:
HI,

the Error comes with all PostgreSQL Versions since 9.6

Greetings
Jürgen Spatz

Von: Murtuza Zabuawala [mailto:murtuza(dot)zabuawala(at)enterprisedb(dot)com<mailto:murtuza(dot)zabuawala(at)enterprisedb(dot)com>]
Gesendet: Donnerstag, 8. November 2018 11:35
An: ascara Software GmbH - Jürgen Spatz <juergen(dot)spatz(at)ascara(dot)de<mailto:juergen(dot)spatz(at)ascara(dot)de>>
Cc: pgAdmin Support <pgadmin-support(at)postgresql(dot)org<mailto:pgadmin-support(at)postgresql(dot)org>>
Betreff: Re: Error in pgAdmin4 when cast is created

Hi,

What version of PostgreSQL are you using?

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com<http://www.enterprisedb.com/>
The Enterprise PostgreSQL Company
[https://drive.google.com/a/enterprisedb.com/uc?id=0B6jGeB3BfKRMV0t4MEp0YnZCTTA&export=download]

On Thu, Nov 8, 2018 at 2:40 PM ascara Software GmbH - Jürgen Spatz <juergen(dot)spatz(at)ascara(dot)de<mailto:juergen(dot)spatz(at)ascara(dot)de>> wrote:
Hi All,

I found this error in all versions of pgadmin4 on windows. When I create a cast like this:

CREATE FUNCTION public.text(smallint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int2out($1));';
CREATE CAST (smallint AS text) WITH FUNCTION public.text(smallint) AS IMPLICIT;

Which I need for backward compatibility in our programm then I get the following error when I click on a some tables with the „SQL“ TAB open.

Error retrieving the information - INTERNAL SERVER ERROR

ERROR: operator is not unique: unknown || smallint
LINE 8: ELSE ARRAY['UNKNOWN OPTION' || i.indoption[i.attnum - 1]...
^
HINT: Could not choose a best candidate operator. You might need to add explicit type casts.

Here the complete statement from the pglog-file

2018-11-08 09:33:14 CET [516]: [1-1] user=,db=,app=pgAdmin 4 - DB:ascarabmpg,client=::1 ERROR: operator is not unique: unknown || smallint at character 266
2018-11-08 09:33:14 CET [516]: [2-1] user=,db=,app=pgAdmin 4 - DB:ascarabmpg,client=::1 HINT: Could not choose a best candidate operator. You might need to add explicit type casts.
2018-11-08 09:33:14 CET [516]: [3-1] user=,db=,app=pgAdmin 4 - DB:ascarabmpg,client=::1 STATEMENT:
SELECT
i.indexrelid,
CASE i.indoption[i.attnum - 1]
WHEN 0 THEN ARRAY['ASC', 'NULLS LAST']
WHEN 1 THEN ARRAY['DESC', 'NULLS FIRST']
WHEN 2 THEN ARRAY['ASC', 'NULLS FIRST']
WHEN 3 THEN ARRAY['DESC', 'NULLS ']
ELSE ARRAY['UNKNOWN OPTION' || i.indoption[i.attnum - 1], '']
END::text[] AS options,
i.attnum,
pg_get_indexdef(i.indexrelid, i.attnum, true) as attdef,
CASE WHEN (o.opcdefault = FALSE) THEN o.opcname ELSE null END AS opcname,
op.oprname AS oprname,
CASE WHEN length(nspc.nspname) > 0 AND length(coll.collname) > 0 THEN
concat(quote_ident(nspc.nspname), '.', quote_ident(coll.collname))
ELSE '' END AS collnspname
FROM (
SELECT
indexrelid, i.indoption, i.indclass,
unnest(ARRAY(SELECT generate_series(1, i.indnatts) AS n)) AS attnum
FROM
pg_index i
WHERE i.indexrelid = 1293689::OID
) i
LEFT JOIN pg_opclass o ON (o.oid = i.indclass[i.attnum - 1])
LEFT OUTER JOIN pg_constraint c ON (c.conindid = i.indexrelid)
LEFT OUTER JOIN pg_operator op ON (op.oid = c.conexclop[i.attnum])
LEFT JOIN pg_attribute a ON (a.attrelid = i.indexrelid AND a.attnum = i.attnum)
LEFT OUTER JOIN pg_collation coll ON a.attcollation=coll.oid
LEFT OUTER JOIN pg_namespace nspc ON coll.collnamespace=nspc.oid
ORDER BY i.attnum;

Greetings

Jürgen Spatz

In response to

Responses

Browse pgadmin-support by date

  From Date Subject
Next Message Murtuza Zabuawala 2018-11-08 12:35:44 Re: Error in pgAdmin4 when cast is created
Previous Message ascara Software GmbH - Jürgen Spatz 2018-11-08 12:18:05 AW: Error in pgAdmin4 when cast is created