Subject: [postgresql-interfaces/psqlodbc] issue #191: catalogfunctions test exits with code 1 (no output) with UseServerSidePrepare=0 + Protocol=7.4-1 on EL10 / Rocky Linux 10

From: "RamaTripathi (@RamaTripathi)" <[email-masked]>
Date: Fri, 12 Jun 2026 09:08:05 +0000

## Bug Summary

The `catalogfunctions` regression test crashes (exits code 1, no TAP output)
when run under `make installcheck-all` with the specific combination:

- `UseServerSidePrepare=0`
- `Protocol=7.4-1`

on **Rocky Linux 10 (EL10)** with **PostgreSQL 16.14/18.4 Latest Postgres Patch versions**.

All other 50 tests in the same run pass. The same `catalogfunctions` test
passes with every other config combination.

---

## Environment

| | |
|---|---|
| **psqlodbc** | REL-18_00_0001 |
| **PostgreSQL** | 16.14 |
| **OS** | Rocky Linux 10 (EL10), x86_64 |
| **Compiler** | GCC 14 (redhat hardened flags) |
| **unixODBC** | system-provided |

---

## How to Reproduce

```sh
# Inside psqlodbc-REL-18_00_0001/test/
make installcheck odbc_ini_extras="UseDeclareFetch=0 UseServerSidePrepare=0 Protocol=7.4-1"

The failure is only at the intersection of UseServerSidePrepare=0 and Protocol=7.4-1. Both conditions must be present.

The catalogfunctions test binary exits code 1 with no output:

catalogfunctions ........... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
Test Summary Report
-------------------
catalogfunctions  (Wstat: 256 (exited 1) Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
make[1]: *** [Makefile:33: installcheck] Error 1
make: *** [Makefile:71: installcheck-all] Error 2

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Mon, 15 Jun 2026 15:30:55 +0000

I tried this on macos and was not able to replicate the issue. I will try on rocky linux.

Question for you. Why would you want protocol 7.4.1 ?

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Mon, 15 Jun 2026 17:05:14 +0000

I ran the tests against a postgres server runnning on 
NAME="Rocky Linux"
    VERSION="10.1 (Red Quartz)"
    ID="rocky"
    ID_LIKE="rhel centos fedora"
    VERSION_ID="10.1"
    ...+17 lines (ctrl+o to toggle)

  Rocky Linux 10.1 (Red Quartz)

  - Kernel: 6.12.0-124.8.1.el10_1.x86_64
With no issues. 

If you can send me more information I can look into it, otherwise I can't do much

---

From: "RamaTripathi (@RamaTripathi)" <[email-masked]>
Date: Wed, 17 Jun 2026 07:56:21 +0000

Hi @davecramer Thanks for the response. 
This issue occurs when we run the install check for psqlodbc after compiling the source code of psqlodbc on Rocky10 linux.

make installcheck-all -C source/psqlodbc-REL-18_00_0001/test

Below are the logs 

2026-06-06T18:12:50.6037801Z rm -f odbc.ini odbcinst.ini
2026-06-06T18:12:50.6068031Z make installcheck odbc_ini_extras="UseDeclareFetch=0 UseServerSidePrepare=0 Protocol=7.4-1"
2026-06-06T18:12:50.6198120Z make[1]: Entering directory '/home/postgres/source/psqlodbc-REL-18_00_0001/test'
2026-06-06T18:12:50.6200175Z ./odbcini-gen.sh UseDeclareFetch=0 UseServerSidePrepare=0 Protocol=7.4-1
2026-06-06T18:12:50.6216140Z creating odbcinst.ini
2026-06-06T18:12:50.6255038Z creating odbc.ini: UseDeclareFetch=0 UseServerSidePrepare=0 Protocol=7.4-1
2026-06-06T18:12:50.6374296Z rm -f regression.diffs
2026-06-06T18:12:50.6445434Z ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini ./reset-db < ./sampletables.sql
2026-06-06T18:12:50.6719061Z connected to DSN=psqlodbc_test_dsn;Database=postgres
2026-06-06T18:12:50.6720650Z Dropping and creating database contrib_regression...
2026-06-06T18:12:50.8024732Z connected to DSN=psqlodbc_test_dsn;Database=contrib_regression
2026-06-06T18:12:50.8028165Z Running initialization script...
2026-06-06T18:12:50.8871487Z Done!
2026-06-06T18:12:50.8901039Z prove -e ./runsuite connect stmthandles select update commands multistmt getresult colattribute result-conversions prepare premature params param-conversions parse identity notice arraybinding insertreturning dataatexecution boolsaschar cvtnulldate alter async-enable quotes cursors cursor-movement cursor-scrollable cursor-commit cursor-name cursor-block-delete bookmark declare-fetch-commit declare-fetch-block positioned-update bulkoperations catalogfunctions bindcol lfconversion cte errors error-rollback diagnostic numeric large-object large-object-data-at-exec odbc-escapes odbc-conformance wchar-char params-batch-exec fetch-refcursors descrec :: --inputdir=. 
2026-06-06T18:12:51.0467954Z connect .................... 
2026-06-06T18:12:51.0469158Z connect .................... 1/? 
2026-06-06T18:12:51.0470165Z                                   
2026-06-06T18:12:51.0471847Z connect .................... [32mok
2026-06-06T18:12:51.0940325Z [0mstmthandles ................ 
2026-06-06T18:12:51.0941983Z stmthandles ................ 1/? 
2026-06-06T18:12:51.0943038Z                                   
2026-06-06T18:12:51.0944492Z stmthandles ................ [32mok
2026-06-06T18:12:51.1383857Z [0mselect ..................... 
2026-06-06T18:12:51.1385069Z select ..................... 1/? 
2026-06-06T18:12:51.1386394Z                                   
2026-06-06T18:12:51.1388079Z select ..................... [32mok
2026-06-06T18:12:51.1854154Z [0mupdate ..................... 
2026-06-06T18:12:51.1857209Z update ..................... 1/? 
2026-06-06T18:12:51.1858213Z                                   
2026-06-06T18:12:51.1859495Z update ..................... [32mok
2026-06-06T18:12:51.2379691Z [0mcommands ................... 
2026-06-06T18:12:51.2381357Z commands ................... 1/? 
2026-06-06T18:12:51.2382797Z                                   
2026-06-06T18:12:51.2384491Z commands ................... [32mok
2026-06-06T18:12:51.2830856Z [0mmultistmt .................. 
2026-06-06T18:12:51.2833771Z multistmt .................. 1/? 
2026-06-06T18:12:51.2834850Z                                   
2026-06-06T18:12:51.2836465Z multistmt .................. [32mok
2026-06-06T18:12:51.3236556Z [0mgetresult .................. 
2026-06-06T18:12:51.3237792Z getresult .................. 1/? 
2026-06-06T18:12:51.3238779Z                                   
2026-06-06T18:12:51.3239956Z getresult .................. [32mok
2026-06-06T18:12:51.3841149Z [0mcolattribute ............... 
2026-06-06T18:12:51.3843021Z colattribute ............... 1/? 
2026-06-06T18:12:51.3844004Z                                   
2026-06-06T18:12:51.3845555Z colattribute ............... [32mok
2026-06-06T18:12:51.4908621Z [0mresult-conversions ......... 
2026-06-06T18:12:51.4909891Z result-conversions ......... 1/? 
2026-06-06T18:12:51.4910883Z                                   
2026-06-06T18:12:51.4912078Z result-conversions ......... [32mok
2026-06-06T18:12:51.5672014Z [0mprepare .................... 
2026-06-06T18:12:51.5673251Z prepare .................... 1/? 
2026-06-06T18:12:51.5674316Z                                   
2026-06-06T18:12:51.5676299Z prepare .................... [32mok
2026-06-06T18:12:51.6159140Z [0mpremature .................. 
2026-06-06T18:12:51.6160893Z premature .................. 1/? 
2026-06-06T18:12:51.6162408Z                                   
2026-06-06T18:12:51.6163617Z premature .................. [32mok
2026-06-06T18:12:51.6620124Z [0mparams ..................... 
2026-06-06T18:12:51.6621638Z params ..................... 1/? 
2026-06-06T18:12:51.6622638Z                                   
2026-06-06T18:12:51.6623839Z params ..................... [32mok
2026-06-06T18:12:51.7037372Z [0mparam-conversions .......... 
2026-06-06T18:12:51.7038736Z param-conversions .......... 1/? 
2026-06-06T18:12:51.7039789Z                                   
2026-06-06T18:12:51.7041641Z param-conversions .......... [32mok
2026-06-06T18:12:51.7514805Z [0mparse ...................... 
2026-06-06T18:12:51.7516401Z parse ...................... 1/? 
2026-06-06T18:12:51.7518323Z                                   
2026-06-06T18:12:51.7519566Z parse ...................... [32mok
2026-06-06T18:12:51.8175895Z [0midentity ................... 
2026-06-06T18:12:51.8176468Z identity ................... 1/? 
2026-06-06T18:12:51.8176858Z                                   
2026-06-06T18:12:51.8177313Z identity ................... [32mok
2026-06-06T18:12:51.8586247Z [0mnotice ..................... 
2026-06-06T18:12:51.8587757Z notice ..................... 1/? 
2026-06-06T18:12:51.8588757Z                                   
2026-06-06T18:12:51.8589975Z notice ..................... [32mok
2026-06-06T18:12:52.0398324Z [0marraybinding ............... 
2026-06-06T18:12:52.0399587Z arraybinding ............... 1/? 
2026-06-06T18:12:52.0400565Z                                   
2026-06-06T18:12:52.0401767Z arraybinding ............... [32mok
2026-06-06T18:12:52.1658134Z [0minsertreturning ............ 
2026-06-06T18:12:52.1659436Z insertreturning ............ 1/? 
2026-06-06T18:12:52.1660963Z                                   
2026-06-06T18:12:52.1662368Z insertreturning ............ [32mok
2026-06-06T18:12:52.2074229Z [0mdataatexecution ............ 
2026-06-06T18:12:52.2074778Z dataatexecution ............ 1/? 
2026-06-06T18:12:52.2075308Z                                   
2026-06-06T18:12:52.2075766Z dataatexecution ............ [32mok
2026-06-06T18:12:52.2549094Z [0mboolsaschar ................ 
2026-06-06T18:12:52.2550365Z boolsaschar ................ 1/? 
2026-06-06T18:12:52.2551361Z                                   
2026-06-06T18:12:52.2552549Z boolsaschar ................ [32mok
2026-06-06T18:12:52.2997343Z [0mcvtnulldate ................ 
2026-06-06T18:12:52.3000211Z cvtnulldate ................ 1/? 
2026-06-06T18:12:52.3001390Z                                   
2026-06-06T18:12:52.3003059Z cvtnulldate ................ [32mok
2026-06-06T18:12:52.3478231Z [0malter ...................... 
2026-06-06T18:12:52.3479537Z alter ...................... 1/? 
2026-06-06T18:12:52.3480728Z                                   
2026-06-06T18:12:52.3482056Z alter ...................... [32mok
2026-06-06T18:12:52.3870589Z [0masync-enable ............... 
2026-06-06T18:12:52.3872424Z async-enable ............... 1/? 
2026-06-06T18:12:52.3873893Z                                   
2026-06-06T18:12:52.4247435Z async-enable ............... [32mok
2026-06-06T18:12:52.4248854Z [0mquotes ..................... 
2026-06-06T18:12:52.4249871Z quotes ..................... 1/? 
2026-06-06T18:12:52.4250820Z                                   
2026-06-06T18:12:52.4252282Z quotes ..................... [32mok
2026-06-06T18:12:52.4695717Z [0mcursors .................... 
2026-06-06T18:12:52.4697089Z cursors .................... 1/? 
2026-06-06T18:12:52.4698080Z                                   
2026-06-06T18:12:52.4699253Z cursors .................... [32mok
2026-06-06T18:12:52.5109192Z [0mcursor-movement ............ 
2026-06-06T18:12:52.5110675Z cursor-movement ............ 1/? 
2026-06-06T18:12:52.5111859Z                                   
2026-06-06T18:12:52.5113340Z cursor-movement ............ [32mok
2026-06-06T18:12:52.5497009Z [0mcursor-scrollable .......... 
2026-06-06T18:12:52.5498272Z cursor-scrollable .......... 1/? 
2026-06-06T18:12:52.5499267Z                                   
2026-06-06T18:12:52.5500448Z cursor-scrollable .......... [32mok
2026-06-06T18:12:52.5917456Z [0mcursor-commit .............. 
2026-06-06T18:12:52.5918834Z cursor-commit .............. 1/? 
2026-06-06T18:12:52.5919817Z                                   
2026-06-06T18:12:52.5921036Z cursor-commit .............. [32mok
2026-06-06T18:12:52.6379345Z [0mcursor-name ................ 
2026-06-06T18:12:52.6380598Z cursor-name ................ 1/? 
2026-06-06T18:12:52.6381561Z                                   
2026-06-06T18:12:52.6382737Z cursor-name ................ [32mok
2026-06-06T18:12:52.8516279Z [0mcursor-block-delete ........ 
2026-06-06T18:12:52.8517573Z cursor-block-delete ........ 1/? 
2026-06-06T18:12:52.8519423Z                                   
2026-06-06T18:12:52.8520683Z cursor-block-delete ........ [32mok
2026-06-06T18:12:52.8916554Z [0mbookmark ................... 
2026-06-06T18:12:52.8917790Z bookmark ................... 1/? 
2026-06-06T18:12:52.8918770Z                                   
2026-06-06T18:12:52.8919960Z bookmark ................... [32mok
2026-06-06T18:12:52.9319676Z [0mdeclare-fetch-commit ....... 
2026-06-06T18:12:52.9322235Z declare-fetch-commit ....... 1/? 
2026-06-06T18:12:52.9323466Z                                   
2026-06-06T18:12:52.9325866Z declare-fetch-commit ....... [32mok
2026-06-06T18:12:52.9963665Z [0mdeclare-fetch-block ........ 
2026-06-06T18:12:52.9965014Z declare-fetch-block ........ 1/? 
2026-06-06T18:12:52.9966440Z                                   
2026-06-06T18:12:52.9967692Z declare-fetch-block ........ [32mok
2026-06-06T18:12:53.0602436Z [0mpositioned-update .......... 
2026-06-06T18:12:53.0603706Z positioned-update .......... 1/? 
2026-06-06T18:12:53.0604805Z                                   
2026-06-06T18:12:53.0606382Z positioned-update .......... [32mok
2026-06-06T18:12:53.1126298Z [0mbulkoperations ............. 
2026-06-06T18:12:53.1127574Z bulkoperations ............. 1/? 
2026-06-06T18:12:53.1128564Z                                   
2026-06-06T18:12:53.1129755Z bulkoperations ............. [32mok
2026-06-06T18:12:53.2500544Z [0mcatalogfunctions ........... [31m
2026-06-06T18:12:53.2503021Z catalogfunctions ........... 1/? [0m[31m
2026-06-06T18:12:53.2504342Z                                   [0m[31m
2026-06-06T18:12:53.2506820Z catalogfunctions ........... [0m[31mDubious, test returned 1 (wstat 256, 0x100)[0m
2026-06-06T18:12:53.2508537Z [31mFailed 1/1 subtests [0m
2026-06-06T18:12:53.2922591Z bindcol .................... 
2026-06-06T18:12:53.2923769Z bindcol .................... 1/? 
2026-06-06T18:12:53.2925500Z                                   
2026-06-06T18:12:53.2927205Z bindcol .................... [32mok
2026-06-06T18:12:53.3290476Z [0mlfconversion ............... 
2026-06-06T18:12:53.3291707Z lfconversion ............... 1/? 
2026-06-06T18:12:53.3292671Z                                   
2026-06-06T18:12:53.3293825Z lfconversion ............... [32mok
2026-06-06T18:12:53.3781149Z [0mcte ........................ 
2026-06-06T18:12:53.3782356Z cte ........................ 1/? 
2026-06-06T18:12:53.3783320Z                                   
2026-06-06T18:12:53.3784474Z cte ........................ [32mok
2026-06-06T18:12:53.4185720Z [0merrors ..................... 
2026-06-06T18:12:53.4186928Z errors ..................... 1/? 
2026-06-06T18:12:53.4187895Z                                   
2026-06-06T18:12:53.4189061Z errors ..................... [32mok
2026-06-06T18:12:53.4879098Z [0merror-rollback ............. 
2026-06-06T18:12:53.4879892Z error-rollback ............. 1/? 
2026-06-06T18:12:53.4880565Z      
2026-06-06T18:12:53.4880565Z                                   
2026-06-06T18:12:53.4881344Z error-rollback ............. [32mok
2026-06-06T18:12:53.5304746Z [0mdiagnostic ................. 
2026-06-06T18:12:53.5306186Z diagnostic ................. 1/? 
2026-06-06T18:12:53.5307063Z                                   
2026-06-06T18:12:53.5308129Z diagnostic ................. [32mok
2026-06-06T18:12:53.5717084Z [0mnumeric .................... 
2026-06-06T18:12:53.5718298Z numeric .................... 1/? 
2026-06-06T18:12:53.5719268Z                                   
2026-06-06T18:12:53.5720424Z numeric .................... [32mok
2026-06-06T18:12:53.6206304Z [0mlarge-object ............... 
2026-06-06T18:12:53.6206819Z large-object ............... 1/? 
2026-06-06T18:12:53.6207142Z                                   
2026-06-06T18:12:53.6207536Z large-object ............... [32mok
2026-06-06T18:12:53.6694363Z [0mlarge-object-data-at-exec .. 
2026-06-06T18:12:53.6696777Z large-object-data-at-exec .. 1/? 
2026-06-06T18:12:53.6697911Z                                   
2026-06-06T18:12:53.6699317Z large-object-data-at-exec .. [32mok
2026-06-06T18:12:53.7173082Z [0modbc-escapes ............... 
2026-06-06T18:12:53.7174366Z odbc-escapes ............... 1/? 
2026-06-06T18:12:53.7175873Z                                   
2026-06-06T18:12:53.7177115Z odbc-escapes ............... [32mok
2026-06-06T18:12:53.7503974Z [0modbc-conformance ........... 
2026-06-06T18:12:53.7505620Z odbc-conformance ........... 1/? 
2026-06-06T18:12:53.7506654Z                                   
2026-06-06T18:12:53.7507863Z odbc-conformance ........... [32mok
2026-06-06T18:12:53.7874386Z [0mwchar-char ................. 
2026-06-06T18:12:53.7876000Z wchar-char ................. 1/? 
2026-06-06T18:12:53.7876997Z                                   
2026-06-06T18:12:53.7878175Z wchar-char ................. [32mok
2026-06-06T18:12:53.8462264Z [0mparams-batch-exec .......... 
2026-06-06T18:12:53.8463612Z params-batch-exec .......... 1/? 
2026-06-06T18:12:53.8466565Z                                   
2026-06-06T18:12:53.8467860Z params-batch-exec .......... [32mok
2026-06-06T18:12:53.9695727Z [0mfetch-refcursors ........... 
2026-06-06T18:12:53.9697167Z fetch-refcursors ........... 1/? 
2026-06-06T18:12:53.9698176Z                                   
2026-06-06T18:12:53.9699409Z fetch-refcursors ........... [32mok
2026-06-06T18:12:54.0149443Z [0mdescrec .................... 
2026-06-06T18:12:54.0150682Z descrec .................... 1/? 
2026-06-06T18:12:54.0151659Z                                   
2026-06-06T18:12:54.0152875Z descrec .................... [32mok
2026-06-06T18:12:54.0157409Z [0m
2026-06-06T18:12:54.0158218Z Test Summary Report
2026-06-06T18:12:54.0160212Z -------------------
2026-06-06T18:12:54.0162364Z [31mcatalogfunctions         (Wstat: 256 (exited 1) Tests: 1 Failed: 1)[0m
2026-06-06T18:12:54.0164450Z [31m  Failed test:  [0m[31m1[0m
2026-06-06T18:12:54.0166072Z [31m  Non-zero exit status: 1[0m
2026-06-06T18:12:54.0167962Z Files=51, Tests=51,  4 wallclock secs ( 0.25 usr  0.16 sys +  0.61 cusr  0.91 csys =  1.93 CPU)
2026-06-06T18:12:54.0169614Z Result: FAIL
2026-06-06T18:12:54.0233744Z make[1]: *** [Makefile:33: installcheck] Error 1
2026-06-06T18:12:54.0235925Z make[1]: Leaving directory '/home/postgres/source/psqlodbc-REL-18_00_0001/test'
2026-06-06T18:12:54.0238279Z make: *** [Makefile:71: installcheck-all] Error 2
2026-06-06T18:12:54.0239897Z make: Leaving directory '/home/postgres/source/psqlodbc-REL-18_00_0001/test'

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Thu, 18 Jun 2026 09:40:40 +0000

Ugh, that's not particularly helpful. Is there any way you can get the server logs for the same run. I guess I will have to actually try running it on RL

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Thu, 18 Jun 2026 14:28:51 +0000

I can't replicate this
All 51 tests pass — clean run with freshly generated odbc.ini/odbcinst.ini containing UseDeclareFetch=0
  UseServerSidePrepare=0 Protocol=7.4-1.

▸ Credits: 0.83 • Time: 11s
────────────────────────────────────────────────────────────────────────────────────────────────────────────
  what version of psql odbc and postgres are being used for this test

● Shell ssh -i ~/Downloads/davecr.pem -o StrictHostKeyChecking=no [email-masked] 'cd ~/psqlodbc && git
  describe --tags 2>/dev/null || git log --oneline -1; echo "---"; /usr/local/pgsql/bin/psql --version'
    REL-18_00_0001
    ---
    psql (PostgreSQL) 18.4

  - psqlODBC: REL-18_00_0001
  - PostgreSQL: 18.4 (built from REL_18_STABLE with --with-libxml)