Sweetohm

Michel Casabianca


J’ai eu du mal à trouver l’explication de l’erreur Erreur pq: unexpected Parse response 'C' se produisant avec le driver PostgreSQL pour Go, donc voici ici une brève description de sa cause et de la manière d’y remédier.

Cette erreur est due au fait que l’on exécute une requête dans une transaction avec laquelle on a procédé à la lecture incomplète d’un résultat. Donc on ne doit pas faire un code comme celui-ci :

rows, err := tx.Query(query)
for rows.Next() {
    row := tx.QueryRow(otherQuery)
}

Parce que le résultat de la première requête (avec le tx.Query()) n’a encore été totalement lu lorsqu’on fait la deuxième requête (avec le tx.QueryRow()).

Pour plus de précisions, vous pouvez consulter ce post : https://vyskocil.org/blog/correct-usage-of-sql-transaction-in-postgres-from-go/.

Enjoy!