Skip to content

Commit

Permalink
additional docs for cte
Browse files Browse the repository at this point in the history
a small example was added to illustrate how to specify a Common Table Expression (CTE) as materialized or not materialized.
  • Loading branch information
jodleif committed Sep 12, 2024
1 parent 7fceefb commit 37fe8b2
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions doc/clause-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -476,6 +476,16 @@ user=> (sql/format {:with [[[:stuff {:columns [:id :name]}]

> Note: you must use the vector-of-vectors format for `:values` here -- if you try to use the vector-of-maps format, `VALUES` will be preceded by the column names (keys from the maps) and the resultant SQL will be invalid.
You can specify `MATERIALIZED`, `NOT MATERIALIZED` for the CTE:

```clojure
user=> (sql/format {:with [[:stuff {:select :*
:from :table} :not-materialized]]
:select :*
:from :stuff})
["WITH stuff AS NOT MATERIALIZED (SELECT * FROM table) SELECT * FROM stuff"]
```

`:with-recursive` follows the same rules as `:with` and produces `WITH RECURSIVE` instead of just `WITH`.

## intersect, union, union-all, except, except-all
Expand Down

0 comments on commit 37fe8b2

Please sign in to comment.