apache / apache/answer

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

Aperta
#1,195 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Go
Stelle
15.7k
Fork
1.4k
Merge medio
3g 8h
PR unite (30g)
7

Descrizione

## 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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Riproduci il malfunzionamento con PostgreSQL dietro pgbouncer in modalità transazione sulla porta 6543, utilizzando la query e l’errore di associazione dei parametri riportati nel report. Traccia la gestione dello stato della connessione e dell’istruzione preparata; il lavoro è completato quando la query non fallisce più con un errore di mancata corrispondenza del numero di parametri in modalità transazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
go, postgresql
Ambito
databases
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.