Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

PostgreSQL 18 generated virtual columns require STORED

Aperta Adatta ai principianti
#2,407 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
73/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
postgresql, rust
Ambito
databases

Direzione di ricerca

Inizia dalla gestione delle colonne generate in PostgreSqlDialect e riproduci l’istruzione CREATE TABLE fornita con la modalità omessa. Assicurati che le colonne generate virtuali di PostgreSQL 18 siano accettate, quindi aggiungi o esegui una copertura di regressione che dimostri che l’istruzione viene analizzata correttamente senza richiedere STORED.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

PostgreSqlDialect rejects PostgreSQL 18 generated columns when the generated-column mode is omitted.

PostgreSQL 18 supports both stored and virtual generated columns. Per the PostgreSQL 18 docs, generated columns are virtual by default and VIRTUAL / STORED are optional explicit mode keywords:

https://www.postgresql.org/docs/current/ddl-generated-columns.html

Reproduction

Using sqlparser 0.62.0 with PostgreSqlDialect, parse:

CREATE TABLE users (
    first_name text NOT NULL,
    last_name text NOT NULL,
    name character varying(255)
        GENERATED ALWAYS AS (((first_name || ' '::text) || last_name))
        NOT NULL
);

Expected behavior

The statement parses successfully, with name represented as a generated virtual column. Since PostgreSQL 18 defaults generated columns to virtual, omitted mode should be accepted as virtual or at least accepted with no explicit mode.

Actual behavior

Parsing fails with:

sql parser error: Expected: STORED, found: NOT

This also affects PostgreSQL 18 pg_dump output, which emits generated virtual columns without an explicit VIRTUAL keyword, for example:

name character varying(255) GENERATED ALWAYS AS (((first_name || ' '::text) || last_name)) NOT NULL

Notes

GenericDialect can parse a variant when VIRTUAL is made explicit, but PostgreSqlDialect currently appears to require STORED after GENERATED ALWAYS AS (...).

Lingua principale
Rust
Stelle
3.5k
Fork
774
Merge medio
4g 2h
PR unite (30g)
54

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/datafusion-sqlparser-rs

Tutte le issue di apache/datafusion-sqlparser-rs

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.