Coverage report: /development/source/library/org/datagraph/spocq-shard/src/odbc/sql/sql-alias-exp.lisp

KindCoveredAll%
expression032 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;;
2
 ;;; http://osdir.com/ml/lisp.clsql.general/2008-09/msg00003.html
3
 
4
 (in-package :clsql-sys)
5
 
6
 (eval-when (:compile-toplevel :load-toplevel :execute)
7
   (export '(sql-alias)
8
           :clsql-sys)
9
   (import '(sql-alias)
10
           :clsql)
11
   (export '(sql-alias)
12
           :clsql))
13
 
14
 (defclass sql-alias-exp (CLSQL-SYS::%SQL-EXPRESSION)
15
   ((query :initarg :query)
16
    (as :initarg :as)))
17
 
18
 
19
 (defmethod make-load-form ((sql sql-join-exp) &optional environment)
20
   (declare (ignore environment))
21
   (with-slots (query as) sql
22
     `(make-instance 'sql-alias-exp :query ,query :as ,as)))
23
 
24
 (defmethod output-sql ((expr sql-alias-exp) database)
25
   (with-slots (query as) expr
26
     (write-char #\( *sql-stream*)
27
     (output-sql query database)
28
     (write-string ") AS " *sql-stream*)
29
     (output-sql as database)))
30
 
31
 
32
 (defsql sql-alias (:symbol "alias") (&rest rest)
33
   (let* ((as (member :as rest))
34
          (query (ldiff rest as)))
35
     (if as
36
         (make-instance 'sql-as-exp :query (apply #'sql-query query) :as (rest as))
37
         (apply #'sql-query rest))))
38