"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
(write-string " ON " *sql-stream*)
(output-sql on database))
(when where
(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)
(when group-by
(write-string " GROUP BY " *sql-stream*)
(if (listp group-by)