Skip to content

Commit 476e750

Browse files
committed
fix XTQL return format
1 parent ad4028f commit 476e750

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

src/clj/xt_play/transactions.clj

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -160,17 +160,26 @@
160160
(let [result (if query
161161
(xtdb/query node txs)
162162
(xtdb/submit! node txs {:system-time system-time}))
163-
elapsed-ms (Math/round (/ (- (System/nanoTime) start-time) 1000000.0))]
164-
(if query
165-
(assoc {} :result result :timing-ms elapsed-ms)
166-
(assoc result :timing-ms elapsed-ms)))
163+
elapsed-ms (Math/round (/ (- (System/nanoTime) start-time) 1000000.0))
164+
formatted-result (if query
165+
(if (and (= "xtql" tx-type) (every? map? result))
166+
(if (empty? result)
167+
[[]]
168+
(let [ks (keys (apply merge result))]
169+
(into [(vec ks)]
170+
(mapv (fn [row]
171+
(mapv #(util/transform-dates-to-sql (get row %)) ks))
172+
result))))
173+
result)
174+
[[]])]
175+
[{:result formatted-result :timing-ms elapsed-ms}])
167176
(catch Throwable ex
168177
(let [elapsed-ms (Math/round (/ (- (System/nanoTime) start-time) 1000000.0))]
169178
(log/error "Exception while running transaction" (ex-message ex))
170-
{:error {:message (ex-message ex)
171-
:exception (.getClass ex)
172-
:data (ex-data ex)}
173-
:timing-ms elapsed-ms})))))
179+
[{:error {:message (ex-message ex)
180+
:exception (.getClass ex)
181+
:data (ex-data ex)}
182+
:timing-ms elapsed-ms}])))))
174183
tx-batches))]
175184
(log/info "run!-tx-res" tx-results)
176185
tx-results))
@@ -215,12 +224,13 @@
215224
(reset! tx-in-progress? true))
216225
(try
217226
(let [[rs warnings] (xtdb/jdbc-execute! conn statement)
218-
res (xform-result rs)]
227+
is-dml? (dml? (first statement))
228+
res (if is-dml? [[]] (xform-result rs))]
219229
(when is-commit?
220230
(reset! tx-in-progress? false))
221231
(log/info :run-with-jdbc-conn-warnings warnings)
222232
(if skip-result?
223-
nil ;; Return nil for auto-added BEGIN/COMMIT
233+
nil
224234
{:result res
225235
:warnings warnings}))
226236
(catch Exception ex
@@ -252,9 +262,7 @@
252262
(fn [node]
253263
(if (#{"sql-v2" "sql"} tx-type)
254264
(run!-with-jdbc-conn node tx-batches)
255-
(let [res (run!-tx node tx-type tx-batches)]
256-
(log/debug "run!!" res)
257-
(mapv util/map-results->rows res))))))
265+
(run!-tx node tx-type tx-batches)))))
258266

259267
(defn docs-run!!
260268
"Given transaction batches and a query from the docs, will return the query

src/cljs/xt_play/view.cljs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@
244244
statements (second (get tx-batches position))
245245
loading? (rf/subscribe [::run/loading?])
246246
show-results? (rf/subscribe [::run/show-results?])
247-
results-or-failure (rf/subscribe [::run/results-or-failure])]
247+
results-or-failure (rf/subscribe [::run/results-or-failure])
248+
tx-type (rf/subscribe [:get-type])]
248249
(when (or @loading?
249250
@show-results?)
250251
^{:key position}
@@ -273,7 +274,9 @@
273274
(= [[]] result)) no-results-message
274275
(and (not (:query statements))
275276
(= [[]] result)) [:div {:class "pl-2 pt-2"}
276-
"Statement succeeded."]
277+
(if (= @tx-type :xtql)
278+
"Transaction succeeded."
279+
"Statement succeeded.")]
277280
(every? empty? result) (empty-rows-message result)
278281
(seq result) [display-table result (str position "-" idx)]
279282
:else no-results-message)

0 commit comments

Comments
 (0)