BUG #15881: \d name_of_any_table_in_any_database produces ERROR

Started by PG Bug reporting formalmost 7 years ago7 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 15881
Logged by: Cliff Campo
Email address: cc@cj3.cc
PostgreSQL version: 12beta2
Operating system: Mac OS X 10.13.6
Description:

Using the 12beta2 version of postgres, the following error occurs:
LocalWeather=# \dS+ pg_stats
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...

^
OR
LocalWeather=# \d+ pg_stats
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...

^
OR
LocalWeather=# \d pg_stats
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...

^
OR
LocalWeather=# \dS pg_stats
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...

^
HOWEVER,
\d without specifying a table name works as expected.

AND, this problem does NOT occur on any of the previous versions (Postgres
10.4, 9.5.17, and 9.6.10) of postgres on my Mac OS X system.

Cliff Campo
cc@cj3.cc
610-389-4972 (cell)

In reply to: PG Bug reporting form (#1)
Re: BUG #15881: \d name_of_any_table_in_any_database produces ERROR

Hello

Thank you for report. Can you verify you using psql version 12beta2? You see message like this:

./psql
psql (12beta2)
Type "help" for help.

postgres=#

For example "\d pg_stats" works for me in this case

Or something like:

psql (11.4 (Debian 11.4-1.pgdg100+1), server 12beta2)
WARNING: psql major version 11, server major version 12.
Some psql features might not work.
Type "help" for help.

postgres=#

Older psql version should give such error, this is expected and we write warning about it.

regards, Sergei

#3c Campo
cc@cj3.cc
In reply to: Sergei Kornilov (#2)
Re: BUG #15881: \d name_of_any_table_in_any_database produces ERROR

Sergei Kornilov,
Here is how I configured 12beta2:

LocalWeather=# SELECT * FROM pg_config;
name | setting
-------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BINDIR | /usr/local/pgsql12beta2/pgsql12beta2/bin
DOCDIR | /usr/local/pgsql12beta2/pgsql12beta2/share/doc
HTMLDIR | /usr/local/pgsql12beta2/pgsql12beta2/share/doc
INCLUDEDIR | /usr/local/pgsql12beta2/pgsql12beta2/include
PKGINCLUDEDIR | /usr/local/pgsql12beta2/pgsql12beta2/include
INCLUDEDIR-SERVER | /usr/local/pgsql12beta2/pgsql12beta2/include/server
LIBDIR | /usr/local/pgsql12beta2/pgsql12beta2/lib
PKGLIBDIR | /usr/local/pgsql12beta2/pgsql12beta2/lib
LOCALEDIR | /usr/local/pgsql12beta2/pgsql12beta2/share/locale
MANDIR | /usr/local/pgsql12beta2/pgsql12beta2/share/man
SHAREDIR | /usr/local/pgsql12beta2/pgsql12beta2/share
SYSCONFDIR | /usr/local/pgsql12beta2/pgsql12beta2/etc
PGXS | /usr/local/pgsql12beta2/pgsql12beta2/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE | '--prefix=/usr/local/pgsql12beta2/pgsql12beta2' '--exec-prefix=/usr/local/pgsql12beta2/pgsql12beta2' '--with-perl' '--with-python' '--with-pgport=5442' '--with-bonjour' '--enable-debug' '--with-tcl' '--with-tclconfig=/Library/Frameworks/Tcl.framework/Versions/8.6' '--with-openssl' '--with-includes=/usr/local/include/openssl' '--with-libraries=/usr/libssl.dylib:/usr/lib/libapple_crypto.dylib:/usr/local/lib/libcrypto.a' 'LDFLAGS=-L/usr/local/opt/openssl/lib' 'CPPFLAGS=-I/usr/local/opt/openssl/include'
CC | gcc
CPPFLAGS | -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -I/usr/local/opt/openssl/include -I/usr/local/include/openssl
CFLAGS | -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -g -O2
CFLAGS_SL |
LDFLAGS | -L/usr/local/opt/openssl/lib -Wl,-dead_strip_dylibs
LDFLAGS_EX |
LDFLAGS_SL |
LIBS | -lpgcommon -lpgport -lssl -lcrypto -lz -lreadline -lm
VERSION | PostgreSQL 12beta2
(23 rows)

Note the VERSION is PostgreSQL 12beta2.
Regards,
Cliff Campo

Show quoted text

On June 28, 2019 at 7:38 AM Sergei Kornilov <sk@zsrv.org> wrote:

Hello

Thank you for report. Can you verify you using psql version 12beta2? You see message like this:

./psql
psql (12beta2)
Type "help" for help.

postgres=#

For example "\d pg_stats" works for me in this case

Or something like:

psql (11.4 (Debian 11.4-1.pgdg100+1), server 12beta2)
WARNING: psql major version 11, server major version 12.
Some psql features might not work.
Type "help" for help.

postgres=#

Older psql version should give such error, this is expected and we write warning about it.

regards, Sergei

In reply to: c Campo (#3)
Re: BUG #15881: \d name_of_any_table_in_any_database produces ERROR

Hi

I am not asking about the postgresql server. I am asking about the psql version (client). Do you run psql from /usr/local/pgsql12beta2/pgsql12beta2/bin/psql ?

regards, Sergei

#5c Campo
cc@cj3.cc
In reply to: Sergei Kornilov (#2)
Re: BUG #15881: \d name_of_any_table_in_any_database produces ERROR

Also, Sergei,
This problem seems related to connecting using an older version (9.6.10) of PostgreSQL, then doing a connect to 12beta2 via \c - - - 5442

wren:~ cjc$ psql -U cjc -p 5436 LocalWeather
psql (9.6.10)
Type "help" for help.

LocalWeather=# \c - - - 5442
psql (9.6.10, server 12beta2)
WARNING: psql major version 9.6, server major version 12.
Some psql features might not work.
You are now connected to database "LocalWeather" as user "cjc" via socket in "/tmp" at port "5442".
LocalWeather=# \dS+ pg_config
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...

When I use the 12beta2 version of psql the problem doesn't seem occur:

wren:~ cjc$ /usr/local/pgsql12beta2/pgsql12beta2/bin/psql -U cjc -p 5442 LocalWeather
psql (12beta2)
Type "help" for help.

LocalWeather=# \dS+ pg_config
View "pg_catalog.pg_config"
Column | Type | Collation | Nullable | Default | Storage | Description
---------+------+-----------+----------+---------+----------+-------------
name | text | | | | extended |
setting | text | | | | extended |
View definition:
SELECT pg_config.name,
pg_config.setting
FROM pg_config() pg_config(name, setting);

I don't know what postgres intends to use older versions of psql to connect to version 12; if postgres intends with RELEASE version 12 to only use version 12 of psql to connect to the version 12 postgres, then postgres is ok; if not, then there is a problem. If the intension is the former, then documentation should state so.
Best,
cjc

Show quoted text

On June 28, 2019 at 7:38 AM Sergei Kornilov <sk@zsrv.org> wrote:

Hello

Thank you for report. Can you verify you using psql version 12beta2? You see message like this:

./psql
psql (12beta2)
Type "help" for help.

postgres=#

For example "\d pg_stats" works for me in this case

Or something like:

psql (11.4 (Debian 11.4-1.pgdg100+1), server 12beta2)
WARNING: psql major version 11, server major version 12.
Some psql features might not work.
Type "help" for help.

postgres=#

Older psql version should give such error, this is expected and we write warning about it.

regards, Sergei

#6Daniel Gustafsson
daniel@yesql.se
In reply to: c Campo (#5)
Re: BUG #15881: \d name_of_any_table_in_any_database produces ERROR

On 28 Jun 2019, at 14:55, c Campo <cc@cj3.cc> wrote:

I don't know what postgres intends to use older versions of psql to connect to version 12; if postgres intends with RELEASE version 12 to only use version 12 of psql to connect to the version 12 postgres, then postgres is ok; if not, then there is a problem. If the intension is the former, then documentation should state so.

The documentation states this in Notes section for psql:

"psql works best with servers of the same or an older major version.
Backslash commands are particularly likely to fail if the server is of
a newer version than psql itself. However, backslash commands of the
\d family should work with servers of versions back to 7.4, though not
necessarily with servers newer than psql itself."

See https://www.postgresql.org/docs/12/app-psql.html for reference.

cheers ./daniel

#7Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: c Campo (#5)
Re: BUG #15881: \d name_of_any_table_in_any_database produces ERROR

On 2019-Jun-28, c Campo wrote:

I don't know what postgres intends to use older versions of psql to
connect to version 12; if postgres intends with RELEASE version 12 to
only use version 12 of psql to connect to the version 12 postgres,

Older versions work, but some specific features don't. This is
expected, known, and the only way to allow things to move forward.

then postgres is ok; if not, then there is a problem. If the intension
is the former, then documentation should state so.

It seems okay. This is what psql says that when you connect:

WARNING: psql major version 9.6, server major version 12.
Some psql features might not work.

It seems very clear to me, but maybe I'm just too used to it.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services