Fixed docker test, safer add points call, update test select
authorJeroen van der Heijden <jeroen@transceptor.technology>
Mon, 19 Oct 2020 12:18:07 +0000 (14:18 +0200)
committerJeroen van der Heijden <jeroen@transceptor.technology>
Mon, 19 Oct 2020 12:18:07 +0000 (14:18 +0200)
include/siri/version.h
itest/Dockerfile
itest/requirements.txt
itest/test_select.py
src/siri/db/points.c

index 0687728b00345b3c912b0377ee6c7ec25a86da56..375840789204286ac0ea5456be6e3c83d0e68de4 100644 (file)
@@ -6,7 +6,7 @@
 
 #define SIRIDB_VERSION_MAJOR 2
 #define SIRIDB_VERSION_MINOR 0
-#define SIRIDB_VERSION_PATCH 40
+#define SIRIDB_VERSION_PATCH 41
 
 /*
  * Use SIRIDB_VERSION_PRE_RELEASE for alpha release versions.
@@ -15,7 +15,7 @@
  * Note that debian alpha packages should use versions like this:
  *   2.0.34-0alpha0
  */
-#define SIRIDB_VERSION_PRE_RELEASE ""
+#define SIRIDB_VERSION_PRE_RELEASE "-alpha-0"
 
 #ifndef NDEBUG
 #define SIRIDB_VERSION_BUILD_RELEASE "+debug"
index 0c13d9999a6d856c0ffddac8ce8086ee26c8dc66..688cfa02360354e6656791b27302544d9fff7fbd 100644 (file)
@@ -27,6 +27,9 @@ RUN apt-get update && \
 COPY --from=builder ./Release/siridb-server /Release/siridb-server
 COPY --from=builder /usr/lib/x86_64-linux-gnu/libcleri* /usr/lib/x86_64-linux-gnu/
 COPY ./itest/ /itest/
+COPY ./help/ /help/
+COPY ./grammar/grammar.py /grammar/grammar.py
+COPY ./grammar/siridbhelp.py /grammar/siridbhelp.py
 WORKDIR /itest
 RUN pip install -r requirements.txt
 CMD [ "python", "run_all.py", "-m", "-b=Release" ]
index cb2da8ef1425daa290f803b70504e4fd2f49d4a5..fb2fc0c2f9aaf1971d26405109b32f3a9c2f8566 100644 (file)
@@ -1,3 +1,4 @@
 siridb-connector
 psutil
 requests
+pyleri
index 130f464fd2196437c48051ce2c4ab2c7f33ab73a..275953b4afa23ae01bde02b7611cf8452076c135 100644 (file)
@@ -24,31 +24,31 @@ from testing import parse_args
 LENPOINTS = 70
 DATA = {
     'series-001 float': [
-        [1471254705, 1.5],
         [1471254707, -3.5],
+        [1471254705, 1.5],
         [1471254710, -7.3]],
     'series-001 integer': [
         [1471254705, 5],
-        [1471254708, -3],
-        [1471254710, -7]],
+        [1471254710, -7],
+        [1471254708, -3]],
     'series-002 float': [
+        [1471254710, -8.3],
         [1471254705, 3.5],
-        [1471254707, -2.5],
-        [1471254710, -8.3]],
+        [1471254707, -2.5]],
     'series-002 integer': [
         [1471254705, 4],
         [1471254708, -1],
         [1471254710, -8]],
     'aggr': [
+        [1447250868, 530], [1447251168, 520],
         [1447249033, 531], [1447249337, 534],
         [1447249633, 535], [1447249937, 531],
         [1447250249, 532], [1447250549, 537],
-        [1447250868, 530], [1447251168, 520],
         [1447251449, 54], [1447251749, 54],
         [1447252049, 513], [1447252349, 537],
-        [1447252649, 528], [1447252968, 531],
         [1447253244, 533], [1447253549, 538],
         [1447253849, 534], [1447254149, 532],
+        [1447252649, 528], [1447252968, 531],
         [1447254449, 533], [1447254748, 537]],
     'huge': [
         [1471254705, 9223372036854775807],
@@ -105,6 +105,9 @@ class TestSelect(TestBase):
             {'success_msg': 'Successfully inserted {} point(s).'.format(
                 LENPOINTS)})
 
+        for name in DATA:
+            DATA[name] = sorted(DATA[name])
+
         self.assertEqual(
             await self.client0.query(
                 'select difference() from "series-001 integer"'),
index 6a2ecc0dabc6c421a836d371e71b4ff585158157..96ad0e64ec16bc3d4b788a12a8d0fd63c0bbc485 100644 (file)
@@ -171,17 +171,18 @@ void siridb_points_add_point(
         uint64_t * ts,
         qp_via_t * val)
 {
-    size_t i;
-    siridb_point_t * point;
-
-    for (   i = points->len;
-            i-- > 0 && (points->data + i)->ts > *ts;
-            *(points->data + i + 1) = *(points->data + i));
-
-    points->len++;
+    siridb_point_t * first = points->data;
+    siridb_point_t * point = points->data + points->len;
+    siridb_point_t * prev = point - 1;
 
-    point = points->data + i + 1;
+    while (prev >= first && prev->ts > *ts)
+    {
+        *point = *prev;
+        --point;
+        --prev;
+    }
 
+    ++points->len;
     point->ts = *ts;
     point->val = *val;
 }