Die 'COALESCE' Funktion führt Funktionen in einigen RDBMS doppelt aus, denn sie ist implementiert als
Code:
function Coalesce (a,b,...)
if invoke(a) != null then return invoke(a)
else if ...
Nur so als Hinweis. Ich kann mir auch vorstellen, das bei einem "SELECT Foo" zuerst das Format abgefragt wird: 'Wat is dat denn für eine Datentyp'?. Normale SELECT werden natürlich nicht ausgeführt, aber vielleicht so eine Funktion. Das wäre die Erklärung, weshalb das 'unprepared' doppelt ausgeführt wird: 1x zum Ermitteln des Datentyps und 1x bei der Ausführung.
Vielleicht kannst Du das mit einem 'SELECT 0 union SELECT pg_Sleep(15)' umgehen, denn dann wird vielleicht nur das 1.Select bei der Datentypermittlung ausgewertet.