diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b52d6a75adbfe562176c3dd07fe8a3ea4011aa19..8298d862f0529c9c8baf27239412d12fd0352a95 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -137,7 +137,9 @@ test:
       - time docker load < /image-cache/caosdb-pyint-testenv-${CI_COMMIT_REF_NAME}.tar || true
       - time docker load < /image-cache/caosdb-${REFTAG}.tar || time docker load < /image-cache/caosdb-dev.tar || true
       - time docker load < /image-cache/$MARIADBVERSION.tar || true
+      # Pull the server image.
       - docker pull $CI_REGISTRY/caosdb/src/caosdb-deploy:$CAOSDB_TAG || CAOSDB_TAG=dev
+      # Pull the image for the test runs.
       - docker pull $CI_REGISTRY_IMAGE
 
         # Here, the server and the mysql backend docker are being started
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a79e438e7d393a248e0ec23522f521a82a4ae196..e3de2cbf85eaede8621f616d3d6d878acce0275b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,6 +40,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Tests for caosdb-pylib#61
 * Test for [caosdb-server#136](https://gitlab.com/caosdb/caosdb-server/-/issues/136)
 * Test for [caosdb-server#141](https://gitlab.com/caosdb/caosdb-server/-/issues/141)
+* Test for [caosdb-server#145](https://gitlab.com/caosdb/caosdb-server/-/issues/145)
 
 ### Changed (for changes in existing functionality)
 
diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py
index 76f8d705a6c147749db7203926b7ea34d7e9eaf5..2de8ece365cb3c6eab2ae2fe9a51c40174b0d236 100644
--- a/tests/test_issues_server.py
+++ b/tests/test_issues_server.py
@@ -848,3 +848,98 @@ def test_141():
     # switch back to admin user
     db.configure_connection()
     assert db.execute_query("FIND TestRT", unique=True).description == "Desc2"
+
+
+def test_145():
+    """Searching for large numbers results in wrong results if integer values
+    are used.
+
+    https://gitlab.com/caosdb/caosdb-server/-/issues/145
+    """
+    db.Property("TestProp", datatype=db.TEXT).insert()
+    db.Property("TestPropInt", datatype=db.INTEGER).add_parent("TestProp").insert()
+    db.Property("TestPropDouble", datatype=db.DOUBLE).add_parent("TestProp").insert()
+
+    db.RecordType("TestRT").insert()
+    rec1 = db.Record("TestRec1").add_parent("TestRT").add_property(
+        "TestPropInt", 1_000_000_000).insert()
+    assert rec1.get_property("TestPropInt").value == 1_000_000_000
+    assert isinstance(rec1.get_property("TestPropInt").value, int)
+    rec2 = db.Record("TestRec2").add_parent("TestRT").add_property(
+        "TestPropDouble", 20_000_000_000).insert()
+    assert rec2.get_property("TestPropDouble").value == 20_000_000_000
+    assert isinstance(rec2.get_property("TestPropDouble").value, float)
+
+    assert db.execute_query("FIND TestRT WITH TestProp = 1000000000", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT WITH TestProp = 1000000000.0", unique=True).id == rec1.id
+
+    assert db.execute_query("FIND TestRT WITH TestProp > 1000000000", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT WITH TestProp > 1000000000.0", unique=True).id == rec2.id
+
+    assert db.execute_query("FIND TestRT WITH TestProp = 20000000000", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT WITH TestProp = 20000000000.0", unique=True).id == rec2.id
+
+    assert db.execute_query("FIND TestRT WITH TestProp < 20000000000", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT WITH TestProp < 20000000000.0", unique=True).id == rec1.id
+
+    assert db.execute_query(
+        "FIND TestRT WITH TestPropInt < 10000000000000000000000000000000000000000000000000000000000",
+        unique=True).id == rec1.id
+
+
+@pytest.mark.xfail(reason="Fix https://gitlab.com/caosdb/caosdb-server/-/issues/147")
+def test_147():
+    """Searching for integer numbers results in wrong results if floats are used.
+
+    https://gitlab.com/caosdb/caosdb-server/-/issues/147
+    """
+    db.Property("TestProp", datatype=db.TEXT).insert()
+    db.Property("TestPropInt", datatype=db.INTEGER).add_parent("TestProp").insert()
+
+    db.RecordType("TestRT1").insert()
+    db.RecordType("TestRT2").insert()
+    rec1 = db.Record("TestRec1").add_parent("TestRT1").add_property(
+        "TestPropInt", 1).insert()
+    assert rec1.get_property("TestPropInt").value == 1
+    assert isinstance(rec1.get_property("TestPropInt").value, int)
+    rec2 = db.Record("TestRec2").add_parent("TestRT2").add_property(
+        "TestPropInt", -2).insert()
+
+    # Find the records
+    assert db.execute_query("FIND TestRT1 WITH TestProp < 1.9", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp < 1.1", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp = 1.0", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp > 0.9", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp > 0.1", unique=True).id == rec1.id
+
+    assert db.execute_query("FIND TestRT1 WITH TestProp <= 1.9", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp <= 1.1", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp >= 0.9", unique=True).id == rec1.id
+    assert db.execute_query("FIND TestRT1 WITH TestProp >= 0.1", unique=True).id == rec1.id
+
+    assert db.execute_query("FIND TestRT2 WITH TestProp < -1.1", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp < -1.9", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp = -2.0", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp > -2.1", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp > 2.9", unique=True).id == rec2.id
+
+    assert db.execute_query("FIND TestRT2 WITH TestProp <= -1.1", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp <= -1.9", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp >= -2.1", unique=True).id == rec2.id
+    assert db.execute_query("FIND TestRT2 WITH TestProp >= 2.9", unique=True).id == rec2.id
+
+    # Don't find the records
+    assert len(db.execute_query("FIND TestRT1 WITH TestProp < 0.9")) == 0
+    assert len(db.execute_query("FIND TestRT1 WITH TestProp <= 0.9")) == 0
+    assert len(db.execute_query("FIND TestRT1 WITH TestProp > 1.1")) == 0
+    assert len(db.execute_query("FIND TestRT1 WITH TestProp >= 1.1")) == 0
+
+    assert len(db.execute_query("FIND TestRT2 WITH TestProp > -1.9")) == 0
+    assert len(db.execute_query("FIND TestRT2 WITH TestProp >= -1.9")) == 0
+    assert len(db.execute_query("FIND TestRT2 WITH TestProp < -2.1")) == 0
+    assert len(db.execute_query("FIND TestRT2 WITH TestProp <= -2.1")) == 0
+
+    # Smaller numbers, but querying across number types.
+    rec3 = db.Record("TestRec3").add_parent("TestRT").add_property("TestPropInt", 1).insert()
+    assert db.execute_query("FIND TestRT WITH TestPropInt < 2", unique=True).id == rec3.id
+    assert db.execute_query("FIND TestRT WITH TestPropInt < 2.5", unique=True).id == rec3.id