I've tried on PostgreSQL 11 and 15 with no luck to replicate this problem.
Is it possible for you to debug it and send more information?
Dave Cramer
www.postgres.rocks
On Thu, 22 Feb 2024 at 01:29, Andrey Sukhanov <siwenter@gmail.com> wrote:
Dear pgsql-odbc developers,
Windows 10, psqlodbc 16 (psqlodbc35w.dll), postgresql 11. Getting certain amount of diagnostic records with SQLGetDiagRecW crashes the application with memory access violation.
Steps to reproduce: 1. Create procedure: CREATE OR REPLACE PROCEDURE crashme() LANGUAGE plpgsql AS $$ BEGIN FOR i IN 1..841 LOOP RAISE NOTICE 'msgmsgmsgmsg (%)', i; END LOOP; END; $$;
2. Use example code in attachments. 3. Application crashes with memory access violation after calling SQLGetDiagRecW function, with iRecord = 332. Application doesn't crash if number of iterations in procedure's for loop is changed. Expected outcome: SQLGetDiagRecW would return SQL_NO_DATA when there's no more diagnostic records.