-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathhoney_spec.edn
147 lines (114 loc) · 4.98 KB
/
honey_spec.edn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
[[{:select :* :from :patient}
["SELECT * FROM patient"]]
[{:select :id :from :patient}
["SELECT id FROM patient"]]
[{:select [(raw "*")]
:from (alias (q :schema :patient) "pt")}
["SELECT * FROM \"schema\".\"patient\" pt"]]
[{:select (array 1 2 3)}
["SELECT ARRAY[ $1 , $2 , $3 ]" 1 2 3]]
[{:select :* :from :users :where (in :id [1 2 3])}
["SELECT * FROM users WHERE id IN ( $1 , $2 , $3 )" 1 2 3]]
[{:select (raw "count(*)")
:from (q :schema :patient)}
["SELECT count(*) FROM \"schema\".\"patient\""]]
[{:select (as (cast (count :*) :integer) :cnt)
:from :patient}
["SELECT ( count( * ) )::integer AS cnt FROM patient"]]
[{:select (count :*)
:from :patient
:where (lt (to_json :current_timestamp) "1980-01-01")}
["SELECT count( * ) FROM patient WHERE to_json( current_timestamp ) < $1" "1980-01-01"]]
[{:select :*
:from :patient
:where (and (or (eq :a 1) (eq :b 2))
(or (eq :c 3) (eq :d 4)))}
["SELECT * FROM patient WHERE ( ( a = $1 OR b = $2 ) AND ( c = $3 OR d = $4 ) )" 1 2 3 4]]
[{:select :*
:from [:patient, :group]
:where (and (eq :patient.id 1) (eq :patient.id :group.patient_id))}
["SELECT * FROM patient , group WHERE ( patient.id = $1 AND patient.id = group.patient_id )", 1]]
[{:select :*
:from :patient
:join [[(alias :group :g) (eq :patient.id :g.user_id)]]}
["SELECT * FROM patient JOIN group g ON patient.id = g.user_id"]]
[{:select :*
:from :patient
:join [[(alias :group :g) (eq :patient.id :g.user_id)]
[:user_settings (eq :patient.id :user_settings.user_id)]]}
["SELECT * FROM patient JOIN group g ON patient.id = g.user_id JOIN user_settings ON patient.id = user_settings.user_id"]]
[{:select :*
:from :patient
:join [[(alias :group :g) (and (eq :patient.id :g.user_id) (eq :g.name "ups"))]]}
["SELECT * FROM patient JOIN group g ON ( patient.id = g.user_id AND g.name = $1 )" "ups"]]
[{:create :extension
:name :plv8
:safe true}
["CREATE EXTENSION IF NOT EXISTS plv8 WITH SCHEMA pg_catalog"]]
[{:create :table
:name :users
:inherits :resource}
["CREATE TABLE users ( ) INHERITS ( resource )"]]
[{:create :table
:name :users
:inherits [:resource]}
["CREATE TABLE users ( ) INHERITS ( resource )"]]
[{:create :table
:name :users
:inherits :resource
:columns [[:content :jsonb :PK]
[:logical_id :text]
[:published (raw "timestamp with time zone")]]}
["CREATE TABLE users ( content jsonb PK , logical_id text , published timestamp with time zone ) INHERITS ( resource )"]]
[{:insert :users
:values {:name "nicola" :updated :CURRENT_TIMESTAMP}
:returning :id}
["INSERT INTO users ( name , updated ) VALUES ( $1 , CURRENT_TIMESTAMP ) RETURNING id" "nicola"]]
[{:insert :users
:values {:obj (json {:a 1})}}
["INSERT INTO users ( obj ) VALUES ( ( $1 )::json )" "{\"a\":1}"]]
[{:insert :users
:values {:obj (jsonb {:a 1})}}
["INSERT INTO users ( obj ) VALUES ( ( $1 )::jsonb )" "{\"a\":1}"]]
[{:update :users
:values {:name "nicola" :updated :CURRENT_TIMESTAMP}
:where (eq :id 2)}
["UPDATE users SET name = $1 , updated = CURRENT_TIMESTAMP WHERE id = $2", "nicola", 2]]
[{:update :users
:values {:name "nicola" :updated :CURRENT_TIMESTAMP}
:where {:id 2 :version_id 3}}
["UPDATE users SET name = $1 , updated = CURRENT_TIMESTAMP WHERE ( id = $2 AND version_id = $3 )", "nicola", 2, 3]]
[{:delete :users
:where {:id 2 :version_id 3}}
["DELETE FROM users WHERE ( id = $1 AND version_id = $2 )", 2, 3]]
[{:delete :users
:where (and (eq :id 2) (eq :version_id 3))}
["DELETE FROM users WHERE ( id = $1 AND version_id = $2 )", 2, 3]]
[{:truncate :users
:restart true
:cascade true}
["TRUNCATE users RESTART IDENTITY CASCADE"]]
[{:drop :table :name :users :safe true :cascade true}
["DROP TABLE IF EXISTS users CASCADE"]]
[{:drop :extension :name :plv8 :safe true}
["DROP EXTENSION IF EXISTS plv8"]]
[{:alter :table
:name :users
:action [[:ADD :PRIMARY :KEY :id]
[:ALTER :COLUMN :created_at :SET :NOT :NULL]
[:ALTER :COLUMN :resource_type :SET :DEFAULT "User"]]}
["ALTER TABLE users ADD PRIMARY KEY id , ALTER COLUMN created_at SET NOT NULL , ALTER COLUMN resource_type SET DEFAULT $1", "User"]]
[{:create :index
:name :patient_name
:on :patient
:using :GIN
:opclass :gin_trgm_ops
:expression [(extract_as_string
(cast (q :patient :resource) :json)
(cast (quote "[\"Patient\",\"name\"]") :json)
(quote "HumanName"))
(extract_as_string
(cast (q :patient :resource) :json)
(cast (quote "[\"Patient\",\"alias\"]") :json)
(quote "HumanName"))]}
["CREATE INDEX patient_name ON patient USING GIN ( extract_as_string( ( \"patient\".\"resource\" )::json , ( '[\"Patient\",\"name\"]' )::json , 'HumanName' ) gin_trgm_ops , extract_as_string( ( \"patient\".\"resource\" )::json , ( '[\"Patient\",\"alias\"]' )::json , 'HumanName' ) gin_trgm_ops )"]]]