From: Russ Tyndall Date: Mon, 5 Oct 2009 15:12:20 +0000 (-0400) Subject: changed how where clauses are output to ensure that we do not output a X-Git-Tag: v6.0.0~4^2~27 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=b06efa829274786139a8d410f09a0c3751b359e7 changed how where clauses are output to ensure that we do not output a "where" sql keyword when we will not output a clause. (Some expressions might produce an empty string in some cases (an and without any children comes to mind)). prev: 814ef0649edf23f0136d5cad2d7738ae72e79871 --- diff --git a/sql/expressions.lisp b/sql/expressions.lisp index c7fd033..efb54bb 100644 --- a/sql/expressions.lisp +++ b/sql/expressions.lisp @@ -625,9 +625,14 @@ uninclusive, and the args from that keyword to the end." (write-string " ON " *sql-stream*) (output-sql on database)) (when where - (write-string " WHERE " *sql-stream*) - (let ((*in-subselect* t)) - (output-sql where database))) + (let ((where-out (string-trim + '(#\newline #\space #\tab #\return) + (with-output-to-string (*sql-stream*) + (let ((*in-subselect* t)) + (output-sql where database)))))) + (when (> (length where-out) 0) + (write-string " WHERE " *sql-stream*) + (write-string where-out *sql-stream*)))) (when group-by (write-string " GROUP BY " *sql-stream*) (if (listp group-by)