Обсуждение: BUG #16055: pgAdmin 4 - ERROR: operator does not exist: - oid

Поиск
Список
Период
Сортировка

BUG #16055: pgAdmin 4 - ERROR: operator does not exist: - oid

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      16055
Logged by:          Павел
Email address:      holdenru@gmail.com
PostgreSQL version: 9.5.4
Operating system:   freebsd
Description:

http://joxi.net/V2VBGbDfdvLnO2

It works OK with pgAdmin 3.

ERROR:  operator does not exist: - oid
LINE 4: WHERE attrelid=-2016150721::oid
                       ^
HINT:  No operator matches the given name and argument type(s). You might
need to add explicit type casts.

PostgreSQL 9.5.4 on amd64-portbld-freebsd10.3, compiled by FreeBSD clang
version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512, 64-bit


Re: BUG #16055: pgAdmin 4 - ERROR: operator does not exist: - oid

От
Tom Lane
Дата:
PG Bug reporting form <noreply@postgresql.org> writes:
> It works OK with pgAdmin 3.

> ERROR:  operator does not exist: - oid
> LINE 4: WHERE attrelid=-2016150721::oid
>                        ^
> HINT:  No operator matches the given name and argument type(s). You might
> need to add explicit type casts.

This is a bug in whatever generated that query (if it was pgAdmin 4,
you should complain on the pgadmin lists).  Probably, it printed an
OID value as a signed integer when it should have printed it as an
unsigned integer.  That's an easy mistake that doesn't show up
until your database gets past 2^31 OIDs consumed :-(.

The server error message is correct as far as it goes: there's no minus
operator for the OID type.  Since OID is unsigned, it wouldn't make
a lot of sense to have one.

            regards, tom lane