Thread: psql "\d" no longer working
Seems I've lost the table definition meta-command
riftehr=> \d actual_and_inf_rel_clean_finalwhile listing tables still works
ERROR: column c.relhasoids does not exist
LINE 1: ..., c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoi...
riftehr=> \dt act*
List of relations
Schema | Name | Type | Owner
--------+-------------------------------------------+-------+-------
cell | actual_and_inf_rel_clean_final | table | cell
cell | actual_and_inf_rel_clean_final_count_rels | table | cell
cell | actual_and_inf_rel_part1 | table | cell
cell | actual_and_inf_rel_part1_unique | table | cell
cell | actual_and_inf_rel_part1_unique_clean | table | cell
cell | actual_and_inf_rel_part2 | table | cell
cell | actual_and_inf_rel_part2_unique | table | cell
cell | actual_and_inf_rel_part2_unique_clean | table | cell
(8 rows)
riftehr=> select version();The server was restarted Friday morning (according to systemctl) and the log file has the complete sql statement:
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-16), 64-bit
(1 row)
2023-02-10 13:42:55.214 MST [524159] STATEMENT: SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoids, '', c.reltablespace, CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, c.relpersistencebut I don't see any other issue in the log file.
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)
WHERE c.oid = '219319';
2023-02-10 13:43:01.143 MST [524159] ERROR: column c.relhasoids does not exist at character 80
I have yet to find another broken meta-command and no sql of mine has failed along similar lines as had "\d"
Any pointers much appreciated.
Hello Rob,
Am 12.02.2023 um 10:02 schrieb Rob Sargent:
Check the version of your psql binary. I assume it's below v13.Seems I've lost the table definition meta-commandriftehr=> \d actual_and_inf_rel_clean_finalwhile listing tables still works
ERROR: column c.relhasoids does not exist
LINE 1: ..., c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoi...riftehr=> \dt act*
List of relations
Schema | Name | Type | Owner
--------+-------------------------------------------+-------+-------
cell | actual_and_inf_rel_clean_final | table | cell
cell | actual_and_inf_rel_clean_final_count_rels | table | cell
cell | actual_and_inf_rel_part1 | table | cell
cell | actual_and_inf_rel_part1_unique | table | cell
cell | actual_and_inf_rel_part1_unique_clean | table | cell
cell | actual_and_inf_rel_part2 | table | cell
cell | actual_and_inf_rel_part2_unique | table | cell
cell | actual_and_inf_rel_part2_unique_clean | table | cell
(8 rows)riftehr=> select version();The server was restarted Friday morning (according to systemctl) and the log file has the complete sql statement:
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-16), 64-bit
(1 row)2023-02-10 13:42:55.214 MST [524159] STATEMENT: SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoids, '', c.reltablespace, CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, c.relpersistencebut I don't see any other issue in the log file.
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)
WHERE c.oid = '219319';
2023-02-10 13:43:01.143 MST [524159] ERROR: column c.relhasoids does not exist at character 80
I have yet to find another broken meta-command and no sql of mine has failed along similar lines as had "\d"
Any pointers much appreciated.
There was a change in pg_catalog.
Clients below 13 assume, the column is still there.
kind regards
Georg
On 2/12/23 01:24, Georg H. wrote: > Hello Rob, > > Check the version of your psql binary. I assume it's below v13. > There was a change in pg_catalog. > > Clients below 13 assume, the column is still there. That would be 11 and below. > > > kind regards > > Georg > -- Adrian Klaver adrian.klaver@aklaver.com
On 2/12/23 03:02, Rob Sargent wrote:
What is your search_path set to?
Seems I've lost the table definition meta-commandriftehr=> \d actual_and_inf_rel_clean_finalwhile listing tables still works
ERROR: column c.relhasoids does not exist
LINE 1: ..., c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoi...riftehr=> \dt act*
List of relations
Schema | Name | Type | Owner
--------+-------------------------------------------+-------+-------
cell | actual_and_inf_rel_clean_final | table | cell
cell | actual_and_inf_rel_clean_final_count_rels | table | cell
cell | actual_and_inf_rel_part1 | table | cell
cell | actual_and_inf_rel_part1_unique | table | cell
cell | actual_and_inf_rel_part1_unique_clean | table | cell
cell | actual_and_inf_rel_part2 | table | cell
cell | actual_and_inf_rel_part2_unique | table | cell
cell | actual_and_inf_rel_part2_unique_clean | table | cell
(8 rows)riftehr=> select version();The server was restarted Friday morning (according to systemctl) and the log file has the complete sql statement:
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-16), 64-bit
(1 row)2023-02-10 13:42:55.214 MST [524159] STATEMENT: SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoids, '', c.reltablespace, CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, c.relpersistencebut I don't see any other issue in the log file.
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)
WHERE c.oid = '219319';
2023-02-10 13:43:01.143 MST [524159] ERROR: column c.relhasoids does not exist at character 80
I have yet to find another broken meta-command and no sql of mine has failed along similar lines as had "\d"
Any pointers much appreciated.
What is your search_path set to?
--
Born in Arizona, moved to Babylonia.
Born in Arizona, moved to Babylonia.
On 2/12/23 08:49, Ron wrote: > On 2/12/23 03:02, Rob Sargent wrote: >> >> >> 2023-02-10 13:42:55.214 MST [524159] STATEMENT: SELECT >> c.relchecks, c.relkind, c.relhasindex, c.relhasrules, >> c.relhastriggers, c.relhasoids, '', c.reltablespace, CASE WHEN >> c.reloftype = 0 THEN '' ELSE >> c.reloftype::pg_catalog.regtype::pg_catalog.text END, c.relpersistence >> FROM pg_catalog.pg_class c >> LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = >> tc.oid) >> WHERE c.oid = '219319'; >> 2023-02-10 13:43:01.143 MST [524159] ERROR: column c.relhasoids >> does not exist at character 80 >> >> but I don't see any other issue in the log file. >> >> I have yet to find another broken meta-command and no sql of mine has >> failed along similar lines as had "\d" >> >> Any pointers much appreciated. >> > > What is your search_path set to? I doubt that is the problem as the issue is the column in the table not finding the table. pg_class.relhasoids no longer exists 12+, so the post from Georg is probably pointing in the right direction. > > -- > Born in Arizona, moved to Babylonia. -- Adrian Klaver adrian.klaver@aklaver.com
> I doubt that is the problem as the issue is the column in the table > not finding the table. pg_class.relhasoids no longer exists 12+, so > the post from Georg is probably pointing in the right direction. > Ah, yes. My client machine at compute centre has to be told to put version 14 on the path. My session there got axed/restarted and I left that part out. Thanks a ton. rjs