branch: elpa/pg
commit cd211863720ad765659d053239abee8218deb789
Author: Eric Marsden <[email protected]>
Commit: Eric Marsden <[email protected]>

    Tests: add test workarounds for Yandex YDB
---
 test/test-pg.el | 51 +++++++++++++++++++++++++++------------------------
 1 file changed, 27 insertions(+), 24 deletions(-)

diff --git a/test/test-pg.el b/test/test-pg.el
index 588f8b3489a..53790c5c602 100755
--- a/test/test-pg.el
+++ b/test/test-pg.el
@@ -812,8 +812,10 @@
 (defun pg-test-edge-cases (con)
   (cl-labels ((row (sql) (pg-result (pg-exec con sql) :tuple 0))
               (scalar (sql) (cl-first (pg-result (pg-exec con sql) :tuple 0))))
-    (let ((res (pg-exec con "")))
-      (should (string-equal-ignore-case (pg-result res :status) "EMPTY")))
+    ;; YDB hangs on this empty query.
+    (unless (member (pgcon-server-variant con) '(ydb))
+      (let ((res (pg-exec con "")))
+        (should (string-equal-ignore-case (pg-result res :status) "EMPTY"))))
     (unless (member (pgcon-server-variant con) '(cratedb clickhouse))
       (should (eql t (scalar "SELECT bool 'f' < bool 't' AS true")))
       (should (eql t (scalar "SELECT bool 'f' <= bool 't' AS true"))))
@@ -922,28 +924,29 @@ bar$$"))))
       (let ((res (pg-exec con "SELECT * FROM w")))
         (should (eql 3 (length (pg-result res :tuples)))))
       (pg-exec con "DROP TABLE w"))
-    ;; Testing insert via UNNEST
-    (when-let* ((sql (pgtest-massage con "CREATE TABLE measurement(
-       id SERIAL PRIMARY KEY,
-       sensorid TEXT,
-       value FLOAT8,
-       ts TIMESTAMPTZ DEFAULT current_timestamp)")))
-      (pg-exec con "DROP TABLE IF EXISTS measurement")
-      (pg-exec con sql)
-      (let* ((size 39)
-             (sensors (make-vector size nil))
-             (values (make-vector size 0.0))
-             (sql "INSERT INTO measurement(sensorid,value) SELECT * FROM 
unnest($1::text[], $2::float8[])"))
-        (dotimes (i size)
-          (setf (aref sensors i) (random-word))
-          (setf (aref values i) (cl-random 1000.0)))
-        (pg-exec-prepared con sql
-                          `((,sensors . "_text") (,values . "_float8")))
-        (pgtest-flush-table con "measurement")
-        (let* ((res (pg-exec con "SELECT COUNT(*) FROM measurement"))
-               (row (pg-result res :tuple 0)))
-          (should (eql size (cl-first row))))
-        (pg-exec con "DROP TABLE measurement")))))
+    ;; Testing insert via UNNEST. YDB does not support unnest on _text,_float. 
+    (unless (member (pgcon-server-variant con) '(ydb))
+      (when-let* ((sql (pgtest-massage con "CREATE TABLE measurement(
+         id SERIAL PRIMARY KEY,
+         sensorid TEXT,
+         value FLOAT8,
+         ts TIMESTAMP DEFAULT current_timestamp)")))
+        (pg-exec con "DROP TABLE IF EXISTS measurement")
+        (pg-exec con sql)
+        (let* ((size 39)
+               (sensors (make-vector size nil))
+               (values (make-vector size 0.0))
+               (sql "INSERT INTO measurement(sensorid,value) SELECT * FROM 
unnest($1::text[], $2::float8[])"))
+          (dotimes (i size)
+            (setf (aref sensors i) (random-word))
+            (setf (aref values i) (cl-random 1000.0)))
+          (pg-exec-prepared con sql
+                            `((,sensors . "_text") (,values . "_float8")))
+          (pgtest-flush-table con "measurement")
+          (let* ((res (pg-exec con "SELECT COUNT(*) FROM measurement"))
+                 (row (pg-result res :tuple 0)))
+            (should (eql size (cl-first row))))
+          (pg-exec con "DROP TABLE measurement"))))))
 
 (defun pg-test-insert/prepared (con)
   (cl-flet ((scalar (sql) (cl-first (pg-result (pg-exec con sql) :tuple 0))))

Reply via email to