Обсуждение: Syntax incorrect for psql 9.6

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

Syntax incorrect for psql 9.6

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.4/sql-reindex.html
Description:

For the REINDEX DATABASE command, the documentation suggests REINDEX
DATABASE databaseName, however my experience suggests this does not work;
the database name must be quoted:

sonarDB=# \c sonarDB;
You are now connected to database "sonarDB" as user "sonarUser".
sonarDB=# REINDEX DATABASE sonarDB;
ERROR:  can only reindex the currently open database
sonarDB=# REINDEX DATABASE "sonarDB";
REINDEX

Re: Syntax incorrect for psql 9.6

От
Tom Lane
Дата:
PG Doc comments form <noreply@postgresql.org> writes:
> For the REINDEX DATABASE command, the documentation suggests REINDEX
> DATABASE databaseName, however my experience suggests this does not work;
> the database name must be quoted:

> sonarDB=# \c sonarDB;
> You are now connected to database "sonarDB" as user "sonarUser".
> sonarDB=# REINDEX DATABASE sonarDB;
> ERROR:  can only reindex the currently open database
> sonarDB=# REINDEX DATABASE "sonarDB";
> REINDEX

There's nothing wrong with REINDEX; this is just the generic problem
that non-lower-case identifiers have to be double-quoted anywhere
in SQL.  See

https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

particularly the last para in 4.1.1.

            regards, tom lane