postgres.git / summary / log / commit / refs

commit    4aa640a395cab42012fd26570dafca1001a6debd
Author:   Fujii Masao <fujii@postgresql.org>
Date:     Tue Sep 01 13:46:10 2026 +0000
First released in: 14.25, 15.20, 16.16, 17.12, 18.7

    doc: clarify aliasing of VALUES in FROM clauses
    
    The VALUES reference page said that an AS clause was required when
    VALUES is used in a FROM clause. This was imprecise because AS is
    optional when specifying an alias.
    
    In v14 and v15, a table alias is still required in this case, so state
    that explicitly instead. In v16 and later, commit bcedd8f5fce made table
    aliases for subqueries in FROM clauses optional, so state that the
    table alias is optional there. In all branches, continue to recommend
    explicit column aliases as good practice.
    
    Backpatch to all supported versions.
    
    Author: Ian Barwick <barwick@gmail.com>
    Reviewed-by: Laurenz Albe <laurenz.albe@cybertec.at>
    Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
    Discussion: https://postgr.es/m/CAB8KJ=jrvZdNLLhYSiCgbjLTz2LKEjYw+-HVQkaF+kgk61KtHA@mail.gmail.com
    Backpatch-through: 14


doc/src/sgml/ref/values.sgml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/src/sgml/ref/values.sgml b/doc/src/sgml/ref/values.sgml index 4bf7bfdffee..8536d065aad 100644 --- a/doc/src/sgml/ref/values.sgml +++ b/doc/src/sgml/ref/values.sgml @@ -198,10 +198,9 @@ UPDATE employees SET salary = salary * v.increase WHERE employees.depno = v.depno AND employees.sales &gt;= v.target; </programlisting> - Note that an <literal>AS</literal> clause is required when <command>VALUES</command> - is used in a <literal>FROM</literal> clause, just as is true for - <command>SELECT</command>. It is not required that the <literal>AS</literal> clause - specify names for all the columns, but it's good practice to do so. + Note that if <command>VALUES</command> is used in a <literal>FROM</literal> + clause, a table alias is optional. Assigning alias names to the columns + of the <command>VALUES</command> list is optional, but is good practice. (The default column names for <command>VALUES</command> are <literal>column1</literal>, <literal>column2</literal>, etc. in <productname>PostgreSQL</productname>, but these names might be different in other database systems.) [parent: bfb08d0946e9]