apache / apache/answer

It seems that PostgreSQL transactional pool mode is not supported yet.

Offen
#1,195 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Go
Sterne
15.7k
Forks
1.4k
Ø Merge
3 T. 8 Std.
Gemergte PRs (30 T.)
7

Beschreibung

## Describe the bug

Problem:
Using pgbouncer's transaction mode (port 6543) instead of session mode causes critical issues:

Parameter Binding Error

Error message "bind message supplies 4 parameters, but prepared statement requires 1" typically occurs when pgbouncer creates new connections for each query.

This breaks XORM's parameter binding mechanism, causing a mismatch in the number of parameters expected by the query statement. (It seems session states are being used and lost.)

Example error:

> bind message supplies 4 parameters, but prepared statement requires 1

For the Query: "SELECT \"id\", \"created_at\", \"updated_at\", \"user_id\", \"invite_user_id\", \"last_edit_user_id\", \"title\", \"original_text\", \"parsed_text\", \"pin\", \"show\", \"status\", \"view_count\", \"unique_view_count\", \"vote_count\", \"answer_count\", \"hot_score\", \"collection_count\", \"follow_count\", \"accepted_answer_id\", \"last_answer_id\", \"post_update_time\", \"revision_id\" FROM \"question\" WHERE \"question\".\"status\" IN ($1,$2) AND (question.show = $3) AND (question.created_at > $4) ORDER BY question.pin desc,question.hot_score DESC LIMIT 6"

### To Reproduce

Steps to reproduce the behavior:

1. With a brand new system being set up with an transaction mode postgresdb, you can get the error everytime.

### Expected behavior

5xx error report

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Reproduziere den Fehler mit PostgreSQL hinter pgbouncer im Transaktionsmodus auf Port 6543 und verwende dabei die Abfrage und den Fehler bei der Parameterbindung aus dem Report. Verfolge, wie der Zustand der Verbindung und der vorbereiteten Anweisung behandelt wird; fertig ist die Untersuchung, wenn die Abfrage im Transaktionsmodus nicht mehr mit einem Fehler wegen einer abweichenden Parameteranzahl fehlschlägt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
go, postgresql
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.