An obigen Fall kann ich mich auch erinnern, da der Optimizer einfach anders arbeitet.
In der vorherigen Version wurde die Konstante an den Typ des Verlgeichsfeldes angepasst, also automatisch '1234' genommen.
In der neuen Version wird das Vergleichsfeld auf den Typ der Konstante gecastet und wenn das Feld dann, wie in diesem Fall, nicht numerisch ist, fliegt der SQL um die Ohren.
Dies sieht man im Debugger dann im Joblog, da der Feldname als Cast-Ausdruck geoutet wird, den man ja gar nicht eingegeben hatte.
Ansonsten merkt man da auch nichts, außer, dass ein Index nicht verwendet wird und der SQL ggf. erheblich länger benötigt.
Aufgefallen ist das halt bei User-SQL's, die z.B. einen Mandanten (Infor) gerne mit
TEFIRM = 1
abfragen obwohl das Feld ja vom Typ char(1) ist. Als dann eine Firma "A" angelegt wurde, liefen viele Abfragen nicht mehr.