Thread

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Unify some more messages

  2. Add MODE option to CHECKPOINT command.

  3. Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.

  1. unifying error messages

    Álvaro Herrera <alvherre@kurilemu.de> — 2025-12-08T15:47:17Z

    Hello,
    
    Commit 2f698d7f4b7b introduced a message that's a bit different from
    others of the same ilk,
    
    +CHECKPOINT (MODE WRONG);
    +ERROR:  unrecognized MODE option "wrong"
    +LINE 1: CHECKPOINT (MODE WRONG);
    +                    ^
    
    I'd rather this said
      unrecognized value for CHECKPOINT option "mode": "wrong"
    
    This would be in line with what we use for EXPLAIN and
    CREATE_REPLICATION_SLOT.
    
    I also found that REFRESH has a related one, apparently in commit
    cc1965a99bf8 (by Kevin Grittner in July 2013), which I'm also changing
    here.
    
    Any objections to these changes?
    
    
    diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c
    index ef7c0d624f1..a5c579ce112 100644
    --- a/src/backend/commands/matview.c
    +++ b/src/backend/commands/matview.c
    @@ -210,8 +210,8 @@ RefreshMatViewByOid(Oid matviewOid, bool is_create, bool skipData,
     	if (concurrent && skipData)
     		ereport(ERROR,
     				(errcode(ERRCODE_SYNTAX_ERROR),
    -				 errmsg("%s and %s options cannot be used together",
    -						"CONCURRENTLY", "WITH NO DATA")));
    +				 errmsg("%s options %s and %s cannot be used together",
    +						"REFRESH", "CONCURRENTLY", "WITH NO DATA")));
     
     	/*
     	 * Check that everything is correct for a refresh. Problems at this point
    diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c
    index fa4d7438442..afb3d6d8630 100644
    --- a/src/backend/postmaster/checkpointer.c
    +++ b/src/backend/postmaster/checkpointer.c
    @@ -1019,7 +1019,8 @@ ExecCheckpoint(ParseState *pstate, CheckPointStmt *stmt)
     			else if (strcmp(mode, "fast") != 0)
     				ereport(ERROR,
     						(errcode(ERRCODE_SYNTAX_ERROR),
    -						 errmsg("unrecognized MODE option \"%s\"", mode),
    +						 errmsg("unrecognized value for %s option \"%s\": \"%s\"",
    +								"CHECKPOINT", "mode", mode),
     						 parser_errposition(pstate, opt->location)));
     		}
     		else if (strcmp(opt->defname, "flush_unlogged") == 0)
    diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out
    index d2b7c88657d..0355720dfc6 100644
    --- a/src/test/regress/expected/matview.out
    +++ b/src/test/regress/expected/matview.out
    @@ -294,7 +294,7 @@ DROP MATERIALIZED VIEW IF EXISTS no_such_mv;
     NOTICE:  materialized view "no_such_mv" does not exist, skipping
     -- make sure invalid combination of options is prohibited
     REFRESH MATERIALIZED VIEW CONCURRENTLY mvtest_tvmm WITH NO DATA;
    -ERROR:  CONCURRENTLY and WITH NO DATA options cannot be used together
    +ERROR:  REFRESH options CONCURRENTLY and WITH NO DATA cannot be used together
     -- no tuple locks on materialized views
     SELECT * FROM mvtest_tvvm FOR SHARE;
     ERROR:  cannot lock rows in materialized view "mvtest_tvvm"
    diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out
    index 67e1860e984..cd00f35bf7a 100644
    --- a/src/test/regress/expected/stats.out
    +++ b/src/test/regress/expected/stats.out
    @@ -965,7 +965,7 @@ ERROR:  unrecognized CHECKPOINT option "wrong"
     LINE 1: CHECKPOINT (WRONG);
                         ^
     CHECKPOINT (MODE WRONG);
    -ERROR:  unrecognized MODE option "wrong"
    +ERROR:  unrecognized value for CHECKPOINT option "mode": "wrong"
     LINE 1: CHECKPOINT (MODE WRONG);
                         ^
     CHECKPOINT (MODE FAST, FLUSH_UNLOGGED FALSE);
    
    -- 
    Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
    Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
    No dijo "Hello New Jersey\n", ni "Hello USA\n".
    
    
    
    
  2. Re: unifying error messages

    Nathan Bossart <nathandbossart@gmail.com> — 2025-12-08T15:53:40Z

    On Mon, Dec 08, 2025 at 04:47:17PM +0100, Álvaro Herrera wrote:
    > Any objections to these changes?
    
    Nope, LGTM
    
    -- 
    nathan
    
    
    
    
  3. Re: unifying error messages

    Álvaro Herrera <alvherre@kurilemu.de> — 2025-12-08T18:33:44Z

    On 2025-Dec-08, Nathan Bossart wrote:
    
    > On Mon, Dec 08, 2025 at 04:47:17PM +0100, Álvaro Herrera wrote:
    > > Any objections to these changes?
    > 
    > Nope, LGTM
    
    Thanks, pushed.
    
    -- 
    Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
    "La virtud es el justo medio entre dos defectos" (Aristóteles)