Skip to content

Commit 73afa4c

Browse files
committed
fixes
1 parent 2815621 commit 73afa4c

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

src/query_farm_server_base/duckdb_serialized_expression.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import base64
22
import codecs
33
import uuid
4+
from datetime import date, timedelta
45
from typing import Any
56

67

@@ -50,6 +51,15 @@ def decode_uuid(value: dict[str, int]) -> str:
5051
return str(u)
5152

5253

54+
def decode_date(days: int) -> str:
55+
if days == -2_147_483_648:
56+
return "'-infinity'"
57+
elif days == 2_147_483_647:
58+
return "'infinity'"
59+
formatted_date = (date(1970, 1, 1) + timedelta(days=days)).isoformat()
60+
return f"'{formatted_date}'"
61+
62+
5363
def varint_get_byte_array(blob: bytes) -> tuple[list[int], bool]:
5464
if len(blob) < 4:
5565
raise ValueError("Invalid blob size.")
@@ -253,8 +263,9 @@ def e_to_s(expr: dict[str, Any]) -> str:
253263
return "True" if expression["value"]["value"] else "False"
254264
elif expression["value"]["type"]["id"] == "NULL":
255265
return "null"
266+
elif expression["value"]["type"]["id"] == "DATE":
267+
return decode_date(expression["value"]["value"])
256268
elif expression["value"]["type"]["id"] in (
257-
"DATE",
258269
"DECIMAL",
259270
"BIGINT",
260271
"INTEGER",

0 commit comments

Comments
 (0)