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