Ein Leser namens Codemonkey fand eine produktiv laufende SQL-Abfrage, deren WHERE-Klausel eigene Debugging-Schalter enthält: (some conditions) AND (1 = 0 OR (1 = 1 AND (other conditions))).
WHERE (some conditions)
AND (1 = 0 OR (1 = 1 AND (other conditions)))Der Mechanismus ist auf düstere Weise elegant. Dreht man die erste Gleichung um, liefert die Abfrage unabhängig von den eigentlichen Bedingungen alles zurück. Dreht man die zweite, liefert sie gar nichts. Der praktische Nutzen der zweiten Option bleibt fraglich.
Die wahrscheinliche Entstehungsgeschichte ist bekannt: Die Ad-hoc-Abfrage eines Analysten wurde zu einer Stored Procedure befördert, die nun regelmäßig läuft. Die Flags wurden seit dem Release nie angefasst und sind nirgendwo dokumentiert. Remy Porter merkt an, dass solche Konstrukte meist auf ein tieferliegendes Observability-Problem im Code hindeuten.
Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.