Thread

Commits

  1. pg_stat_statements: fetch stmt location/length before it disappears.

  1. BUG #17663: Connect to the database through jdbc, call the stored procedure containing the rollback statement,

    The Post Office <noreply@postgresql.org> — 2022-10-26T08:59:52Z

    The following bug has been logged on the website:
    
    Bug reference:      17663
    Logged by:          zhaoqigui
    Email address:      402142054@qq.com
    PostgreSQL version: 13.8
    Operating system:   x86_64、arm
    Description:        
    
    Machine: arm, x86
    Version: pg13, pg14, pg15 (debug) version
    Tools: psql, vscode, IDEA, jdbc (postgresql-42.4.0.jar)
    
    Problem description: Connect to the database through jdbc, call the stored
    procedure containing the rollback statement, the database triggers an
    assertion, and the database is in recovery mode.
    
    Error log:
    STATEMENT: call mycommitproc($1)
    TRAP: FailedAssertion("query_location <= strlen(query)", File:
    "pg_stat_statements.c", Line: 1261)
    
    java code snippet:
    Statement stmt = conn.createStatement();
    stmt.execute("create temp table proc_test (some_val bigint)");
    stmt.execute(
                 "CREATE OR REPLACE PROCEDURE myrollbackproc(a INOUT bigint) AS
    'BEGIN INSERT INTO proc_test values(a); rollback; END;' LANGUAGE
    plpgsql");
    stmt.close();
    PreparedStatement cs = conn.prepareStatement("call myrollbackproc(?)");
    cs.setInt(1, 3);
    cs.execute();