Skip to content

Commit

Permalink
feat(hog): bytecode versions (#24584)
Browse files Browse the repository at this point in the history
  • Loading branch information
mariusandra authored Aug 27, 2024
1 parent b09b469 commit b7105b6
Show file tree
Hide file tree
Showing 57 changed files with 862 additions and 743 deletions.
6 changes: 4 additions & 2 deletions ee/api/test/test_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from ee.api.hooks import valid_domain
from ee.api.test.base import APILicensedTest
from ee.models.hook import Hook
from hogvm.python.operation import HOGQL_BYTECODE_VERSION
from posthog.models.action.action import Action
from posthog.models.hog_functions.hog_function import HogFunction
from posthog.test.base import ClickhouseTestMixin
Expand Down Expand Up @@ -113,7 +114,7 @@ def test_create_hog_function_via_hook(self):

assert hog_function.filters == {
"actions": [{"id": str(self.action.id), "name": "", "type": "actions", "order": 0}],
"bytecode": ["_h", 32, "$pageview", 32, "event", 1, 1, 11, 3, 1, 4, 1],
"bytecode": ["_H", HOGQL_BYTECODE_VERSION, 32, "$pageview", 32, "event", 1, 1, 11, 3, 1, 4, 1],
}

assert hog_function.inputs == {
Expand Down Expand Up @@ -142,7 +143,8 @@ def test_create_hog_function_via_hook(self):
"debug": {},
"hook": {
"bytecode": [
"_h",
"_H",
HOGQL_BYTECODE_VERSION,
32,
"hooks/standard/1234/abcd",
],
Expand Down
21 changes: 11 additions & 10 deletions ee/clickhouse/models/test/test_action.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
_create_event,
_create_person,
)
from hogvm.python.operation import Operation as op, HOGQL_BYTECODE_IDENTIFIER as _H
from hogvm.python.operation import Operation as op, HOGQL_BYTECODE_IDENTIFIER as _H, HOGQL_BYTECODE_VERSION


@dataclasses.dataclass
Expand Down Expand Up @@ -289,6 +289,15 @@ def test_filter_with_hogql(self):
action1.bytecode,
[
_H,
HOGQL_BYTECODE_VERSION,
# event = 'insight viewed'
op.STRING,
"insight viewed",
op.STRING,
"event",
op.GET_GLOBAL,
1,
op.EQ,
# toInt(properties.filters_count) > 10
op.INTEGER,
10,
Expand All @@ -298,18 +307,10 @@ def test_filter_with_hogql(self):
"properties",
op.GET_GLOBAL,
2,
op.CALL,
op.CALL_GLOBAL,
"toInt",
1,
op.GT,
# event = 'insight viewed'
op.STRING,
"insight viewed",
op.STRING,
"event",
op.GET_GLOBAL,
1,
op.EQ,
# and
op.AND,
2,
Expand Down
2 changes: 1 addition & 1 deletion hogvm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ HogQL Bytecode is a compact representation of a subset of the HogQL AST nodes. I
1 or 2 # [_H, op.INTEGER, 2, op.INTEGER, 1, op.OR, 2]
not true # [_H, op.TRUE, op.NOT]
properties.bla # [_H, op.STRING, "bla", op.STRING, "properties", op.GET_GLOBAL, 2]
call('arg', 'another') # [_H, op.STRING, "another", op.STRING, "arg", op.CALL, "call", 2]
call('arg', 'another') # [_H, op.STRING, "another", op.STRING, "arg", op.CALL_GLOBAL, "call", 2]
1 = 2 # [_H, op.INTEGER, 2, op.INTEGER, 1, op.EQ]
'bla' !~ 'a' # [_H, op.STRING, 'a', op.STRING, 'bla', op.NOT_REGEX]
```
Expand Down
26 changes: 13 additions & 13 deletions hogvm/__tests__/__snapshots__/arrays.hoge
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
["_h", 43, 0, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 2, "print", 1, 35, 33, 1, 32, "2", 33, 3, 43, 3, 2,
["_H", 1, 43, 0, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 2, "print", 1, 35, 33, 1, 32, "2", 33, 3, 43, 3, 2,
"print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 2, 33, 4, 43, 3, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 33, 4, 43, 2, 43, 2,
33, 5, 43, 3, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 36, 0, 33, 2, 45, 2, "print", 1, 35, 36, 0, 33, 2, 48, 2,
"print", 1, 35, 36, 0, 33, 2, 48, 2, "print", 1, 35, 36, 0, 33, 7, 48, 2, "print", 1, 35, 36, 0, 33, 7, 48, 2, "print",
Expand All @@ -11,17 +11,17 @@
35, 33, 1, 33, 2, 33, 3, 33, 4, 43, 2, 43, 2, 33, 5, 43, 3, 33, 2, 45, 33, 2, 45, 33, 2, 45, 2, "print", 1, 35, 32,
"------", 2, "print", 1, 35, 33, 1, 33, 2, 33, 1, 33, 2, 33, 3, 43, 3, 43, 3, 36, 1, 33, 2, 33, 4, 46, 36, 1, 33, 1, 45,
2, "print", 1, 35, 36, 1, 33, 2, 45, 2, "print", 1, 35, 36, 1, 33, 3, 45, 2, "print", 1, 35, 36, 1, 33, 3, 45, 33, 3,
33, 8, 46, 36, 1, 2, "print", 1, 35, 32, "------", 2, "print", 1, 35, 33, 4, 33, 1, 33, 2, 33, 3, 43, 3, 2,
"arrayPushBack", 2, 2, "print", 1, 35, 33, 0, 33, 1, 33, 2, 33, 3, 43, 3, 2, "arrayPushFront", 2, 2, "print", 1, 35, 33,
33, 8, 46, 36, 1, 2, "print", 1, 35, 32, "------", 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 33, 4, 2,
"arrayPushBack", 2, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 33, 0, 2, "arrayPushFront", 2, 2, "print", 1, 35, 33,
1, 33, 2, 33, 3, 43, 3, 2, "arrayPopBack", 1, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 2, "arrayPopFront", 1, 2,
"print", 1, 35, 33, 3, 33, 2, 33, 1, 43, 3, 2, "arraySort", 1, 2, "print", 1, 35, 33, 1, 33, 2, 33, 3, 43, 3, 2,
"arrayReverse", 1, 2, "print", 1, 35, 33, 3, 33, 2, 33, 1, 43, 3, 2, "arrayReverseSort", 1, 2, "print", 1, 35, 32, ",",
33, 1, 33, 2, 33, 3, 43, 3, 2, "arrayStringConcat", 2, 2, "print", 1, 35, 32, "-----", 2, "print", 1, 35, 33, 1, 33, 2,
33, 3, 33, 4, 43, 4, 36, 2, 2, "print", 1, 35, 33, 5, 36, 2, 2, "arrayPushBack", 2, 35, 36, 2, 2, "print", 1, 35, 33, 0,
36, 2, 2, "arrayPushFront", 2, 35, 36, 2, 2, "print", 1, 35, 36, 2, 2, "arrayPopBack", 1, 35, 36, 2, 2, "print", 1, 35,
36, 2, 2, "arrayPopFront", 1, 35, 36, 2, 2, "print", 1, 35, 36, 2, 2, "arraySort", 1, 35, 36, 2, 2, "print", 1, 35, 36,
2, 2, "arrayReverse", 1, 35, 36, 2, 2, "print", 1, 35, 36, 2, 2, "arrayReverseSort", 1, 35, 36, 2, 2, "print", 1, 35,
32, "------", 2, "print", 1, 35, 33, 0, 36, 2, 2, "has", 2, 2, "print", 1, 35, 33, 2, 36, 2, 2, "has", 2, 2, "print", 1,
35, 32, "banana", 36, 2, 2, "has", 2, 2, "print", 1, 35, 32, "banana", 32, "banananas", 2, "has", 2, 2, "print", 1, 35,
32, "foo", 32, "banananas", 2, "has", 2, 2, "print", 1, 35, 32, "1", 32, "1", 32, "2", 43, 2, 2, "has", 2, 2, "print",
1, 35, 35, 35, 35]
"arrayReverse", 1, 2, "print", 1, 35, 33, 3, 33, 2, 33, 1, 43, 3, 2, "arrayReverseSort", 1, 2, "print", 1, 35, 33, 1,
33, 2, 33, 3, 43, 3, 32, ",", 2, "arrayStringConcat", 2, 2, "print", 1, 35, 32, "-----", 2, "print", 1, 35, 33, 1, 33,
2, 33, 3, 33, 4, 43, 4, 36, 2, 2, "print", 1, 35, 36, 2, 33, 5, 2, "arrayPushBack", 2, 35, 36, 2, 2, "print", 1, 35, 36,
2, 33, 0, 2, "arrayPushFront", 2, 35, 36, 2, 2, "print", 1, 35, 36, 2, 2, "arrayPopBack", 1, 35, 36, 2, 2, "print", 1,
35, 36, 2, 2, "arrayPopFront", 1, 35, 36, 2, 2, "print", 1, 35, 36, 2, 2, "arraySort", 1, 35, 36, 2, 2, "print", 1, 35,
36, 2, 2, "arrayReverse", 1, 35, 36, 2, 2, "print", 1, 35, 36, 2, 2, "arrayReverseSort", 1, 35, 36, 2, 2, "print", 1,
35, 32, "------", 2, "print", 1, 35, 36, 2, 33, 0, 2, "has", 2, 2, "print", 1, 35, 36, 2, 33, 2, 2, "has", 2, 2,
"print", 1, 35, 36, 2, 32, "banana", 2, "has", 2, 2, "print", 1, 35, 32, "banananas", 32, "banana", 2, "has", 2, 2,
"print", 1, 35, 32, "banananas", 32, "foo", 2, "has", 2, 2, "print", 1, 35, 32, "1", 32, "2", 43, 2, 32, "1", 2, "has",
2, 2, "print", 1, 35, 35, 35, 35]
22 changes: 11 additions & 11 deletions hogvm/__tests__/__snapshots__/catch.hoge
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
["_h", 41, "FishError", 1, 9, 31, 36, 0, 32, "FishError", 2, "HogError", 3, 38, 41, "FoodError", 1, 9, 31, 36, 0, 32,
"FoodError", 2, "HogError", 3, 38, 50, 10, 32, "You forgot to feed your fish", 2, "FishError", 1, 49, 51, 39, 55, 36, 0,
32, "type", 45, 32, "FoodError", 36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32, "Problem with your food: ", 2,
"concat", 2, 2, "print", 1, 35, 39, 25, 32, "FishError", 36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32,
"Problem with your fish: ", 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 50, 10, 32,
"Your fish are hungry", 2, "FoodError", 1, 49, 51, 39, 55, 36, 0, 32, "type", 45, 32, "FoodError", 36, 1, 11, 40, 16,
36, 0, 32, "message", 45, 32, "Problem with your food: ", 2, "concat", 2, 2, "print", 1, 35, 39, 25, 32, "FishError",
36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32, "Problem with your fish: ", 2, "concat", 2, 2, "print", 1, 35, 39, 2,
35, 49, 35, 35, 50, 11, 31, 32, "Your fish are hungry", 2, "NotImplementedError", 2, 49, 51, 39, 45, 36, 0, 32, "type",
45, 32, "FoodError", 36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32, "Problem with your food: ", 2, "concat", 2, 2,
"print", 1, 35, 39, 15, 36, 0, 32, "Unknown problem: ", 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35]
["_H", 1, 41, "FishError", 1, 9, 32, "FishError", 36, 0, 31, 2, "HogError", 3, 38, 41, "FoodError", 1, 9, 32,
"FoodError", 36, 0, 31, 2, "HogError", 3, 38, 50, 10, 32, "You forgot to feed your fish", 2, "FishError", 1, 49, 51, 39,
55, 36, 0, 32, "type", 45, 32, "FoodError", 36, 1, 11, 40, 16, 32, "Problem with your food: ", 36, 0, 32, "message", 45,
2, "concat", 2, 2, "print", 1, 35, 39, 25, 32, "FishError", 36, 1, 11, 40, 16, 32, "Problem with your fish: ", 36, 0,
32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 50, 10, 32, "Your fish are hungry", 2,
"FoodError", 1, 49, 51, 39, 55, 36, 0, 32, "type", 45, 32, "FoodError", 36, 1, 11, 40, 16, 32,
"Problem with your food: ", 36, 0, 32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 25, 32, "FishError", 36, 1,
11, 40, 16, 32, "Problem with your fish: ", 36, 0, 32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49,
35, 35, 50, 11, 32, "Your fish are hungry", 31, 2, "NotImplementedError", 2, 49, 51, 39, 45, 36, 0, 32, "type", 45, 32,
"FoodError", 36, 1, 11, 40, 16, 32, "Problem with your food: ", 36, 0, 32, "message", 45, 2, "concat", 2, 2, "print", 1,
35, 39, 15, 32, "Unknown problem: ", 36, 0, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35]
28 changes: 14 additions & 14 deletions hogvm/__tests__/__snapshots__/catch2.hoge
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
["_h", 50, 50, 50, 13, 31, 32, "You forgot to feed your fish", 32, "FishError", 2, "HogError", 3, 49, 51, 39, 32, 36, 0,
32, "type", 45, 32, "FoodError", 36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32, "Problem with your food: ", 2,
["_H", 1, 50, 50, 50, 13, 32, "FishError", 32, "You forgot to feed your fish", 31, 2, "HogError", 3, 49, 51, 39, 32, 36,
0, 32, "type", 45, 32, "FoodError", 36, 1, 11, 40, 16, 32, "Problem with your food: ", 36, 0, 32, "message", 45, 2,
"concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 51, 39, 48, 36, 0, 32, "type", 45, 32, "FishError", 36, 1, 11,
40, 16, 36, 0, 32, "message", 45, 32, "FishError: ", 2, "concat", 2, 2, "print", 1, 35, 39, 18, 36, 0, 32, "message",
45, 32, "Error: ", 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 50, 50, 50, 13, 31, 32,
"You forgot to feed your fish", 32, "FunkyError", 2, "HogError", 3, 49, 51, 39, 32, 36, 0, 32, "type", 45, 32,
"FoodError", 36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32, "Problem with your food: ", 2, "concat", 2, 2, "print", 1,
35, 39, 2, 35, 49, 35, 35, 51, 39, 55, 36, 0, 32, "type", 45, 32, "FishError", 36, 1, 11, 40, 16, 36, 0, 32, "message",
45, 32, "FishError: ", 2, "concat", 2, 2, "print", 1, 35, 39, 25, 36, 0, 32, "message", 45, 32, ": ", 36, 0, 32, "name",
45, 32, "Error of type ", 2, "concat", 4, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 50, 50, 50, 13, 31, 32,
"You forgot to feed your fish", 32, "FishError", 2, "HogError", 3, 49, 51, 39, 32, 36, 0, 32, "type", 45, 32,
"FoodError", 36, 1, 11, 40, 16, 36, 0, 32, "message", 45, 32, "Problem with your food: ", 2, "concat", 2, 2, "print", 1,
35, 39, 2, 35, 49, 35, 35, 51, 39, 55, 36, 0, 32, "type", 45, 36, 0, 32, "message", 45, 32, ": ", 36, 0, 32, "name", 45,
32, "Error of type ", 2, "concat", 4, 2, "print", 1, 35, 39, 25, 32, "FishError", 36, 1, 11, 40, 16, 36, 0, 32,
"message", 45, 32, "FishError: ", 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35]
40, 16, 32, "FishError: ", 36, 0, 32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 18, 32, "Error: ", 36, 0,
32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 50, 50, 50, 13, 32, "FunkyError", 32,
"You forgot to feed your fish", 31, 2, "HogError", 3, 49, 51, 39, 32, 36, 0, 32, "type", 45, 32, "FoodError", 36, 1, 11,
40, 16, 32, "Problem with your food: ", 36, 0, 32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35,
35, 51, 39, 55, 36, 0, 32, "type", 45, 32, "FishError", 36, 1, 11, 40, 16, 32, "FishError: ", 36, 0, 32, "message", 45,
2, "concat", 2, 2, "print", 1, 35, 39, 25, 32, "Error of type ", 36, 0, 32, "name", 45, 32, ": ", 36, 0, 32, "message",
45, 2, "concat", 4, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35, 50, 50, 50, 13, 32, "FishError", 32,
"You forgot to feed your fish", 31, 2, "HogError", 3, 49, 51, 39, 32, 36, 0, 32, "type", 45, 32, "FoodError", 36, 1, 11,
40, 16, 32, "Problem with your food: ", 36, 0, 32, "message", 45, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35,
35, 51, 39, 55, 36, 0, 32, "type", 45, 32, "Error of type ", 36, 0, 32, "name", 45, 32, ": ", 36, 0, 32, "message", 45,
2, "concat", 4, 2, "print", 1, 35, 39, 25, 32, "FishError", 36, 1, 11, 40, 16, 32, "FishError: ", 36, 0, 32, "message",
45, 2, "concat", 2, 2, "print", 1, 35, 39, 2, 35, 49, 35, 35]
8 changes: 4 additions & 4 deletions hogvm/__tests__/__snapshots__/crypto.hoge
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
["_h", 32, "this is a secure string", 36, 0, 32, "string:", 2, "print", 2, 35, 36, 0, 2, "md5Hex", 1, 32,
"md5Hex(string):", 2, "print", 2, 35, 36, 0, 2, "sha256Hex", 1, 32, "sha256Hex(string):", 2, "print", 2, 35, 32, "1",
32, "string", 32, "more", 32, "keys", 43, 4, 36, 1, 32, "data:", 2, "print", 2, 35, 36, 1, 2, "sha256HmacChainHex", 1,
32, "sha256HmacChainHex(data):", 2, "print", 2, 35, 35, 35]
["_H", 1, 32, "this is a secure string", 32, "string:", 36, 0, 2, "print", 2, 35, 32, "md5Hex(string):", 36, 0, 2,
"md5Hex", 1, 2, "print", 2, 35, 32, "sha256Hex(string):", 36, 0, 2, "sha256Hex", 1, 2, "print", 2, 35, 32, "1", 32,
"string", 32, "more", 32, "keys", 43, 4, 32, "data:", 36, 1, 2, "print", 2, 35, 32, "sha256HmacChainHex(data):", 36, 1,
2, "sha256HmacChainHex", 1, 2, "print", 2, 35, 35, 35]
50 changes: 25 additions & 25 deletions hogvm/__tests__/__snapshots__/date.hoge
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
["_h", 33, 1234334543, 2, "fromUnixTimestamp", 1, 36, 0, 2, "print", 1, 35, 36, 0, 2, "toString", 1, 2, "print", 1, 35,
36, 0, 2, "toUnixTimestamp", 1, 2, "toInt", 1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 32, "2024-05-03", 2,
["_H", 1, 33, 1234334543, 2, "fromUnixTimestamp", 1, 36, 0, 2, "print", 1, 35, 36, 0, 2, "toString", 1, 2, "print", 1,
35, 36, 0, 2, "toUnixTimestamp", 1, 2, "toInt", 1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 32, "2024-05-03", 2,
"toDate", 1, 36, 1, 2, "print", 1, 35, 36, 1, 2, "toString", 1, 2, "print", 1, 35, 36, 1, 2, "toUnixTimestamp", 1, 2,
"toInt", 1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 32, "2024-05-03T12:34:56Z", 2, "toDateTime", 1, 36, 2, 2,
"print", 1, 35, 36, 2, 2, "toString", 1, 2, "print", 1, 35, 36, 2, 2, "toUnixTimestamp", 1, 2, "toInt", 1, 2, "print",
1, 35, 32, "------", 2, "print", 1, 35, 32, "Europe/Brussels", 36, 2, 2, "toTimeZone", 2, 2, "print", 1, 35, 32,
"Europe/Brussels", 36, 2, 2, "toTimeZone", 2, 2, "toString", 1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 32,
"Europe/Tallinn", 36, 2, 2, "toTimeZone", 2, 2, "print", 1, 35, 32, "Europe/Tallinn", 36, 2, 2, "toTimeZone", 2, 2,
"toString", 1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 32, "America/New_York", 36, 2, 2, "toTimeZone", 2, 2,
"print", 1, 35, 32, "America/New_York", 36, 2, 2, "toTimeZone", 2, 2, "toString", 1, 2, "print", 1, 35, 32, "------", 2,
"print", 1, 35, 34, 1234334543.123, 2, "fromUnixTimestamp", 1, 36, 3, 32, "timestamp: ",
2, "print", 2, 35, 36, 3, 2, "toString", 1, 32, "toString(timestamp): ", 2, "print", 2, 35, 36, 3,
2, "toInt", 1, 32, "toInt(timestamp): ", 2, "print", 2, 35, 36, 3, 2, "toInt", 1, 2,
"toDateTime", 1, 32, "toDateTime(toInt(timestamp)): ", 2, "print", 2, 35, 36, 3, 2, "toInt", 1, 2,
"toDateTime", 1, 2, "toInt", 1, 32, "toInt(toDateTime(toInt(timestamp))): ", 2, "print", 2, 35, 36, 3, 2, "toInt",
1, 2, "toDateTime", 1, 2, "toString", 1, 32, "toString(toDateTime(toInt(timestamp))): ", 2, "print", 2, 35, 36, 3, 2,
"toFloat", 1, 32, "toFloat(timestamp): ", 2, "print", 2, 35, 36, 3, 2, "toFloat", 1, 2,
"toDateTime", 1, 32, "toDateTime(toFloat(timestamp)): ", 2, "print", 2, 35, 36, 3, 2, "toFloat", 1, 2,
"toDateTime", 1, 2, "toFloat", 1, 32, "toFloat(toDateTime(toFloat(timestamp))): ", 2, "print", 2, 35, 36, 3, 2,
"toFloat", 1, 2, "toDateTime", 1, 2, "toString", 1, 32, "toString(toDateTime(toFloat(timestamp))): ", 2, "print", 2, 35,
32, "------", 2, "print", 1, 35, 33, 1234334543123, 2, "fromUnixTimestampMilli", 1, 36, 4, 2, "toString", 1, 32,
"millisTs: ", 2, "print", 2, 35, 36, 4, 2, "toString", 1, 32,
"toString(millisTs): ", 2, "print", 2, 35, 36, 4, 2, "toInt", 1, 32,
"toInt(millisTs): ", 2, "print", 2, 35, 36, 4, 2, "toFloat", 1, 32,
"toFloat(millisTs): ", 2, "print", 2, 35, 36, 4, 2, "toUnixTimestampMilli", 1, 32,
"toUnixTimestampMilli(millisTs): ", 2, "print", 2, 35, 32, "------", 2, "print", 1, 35, 32, "2024-05-03", 2,
"toDate", 1, 36, 5, 2, "print", 1, 35, 36, 5, 2, "toString", 1, 2, "print", 1, 35, 36, 5, 2, "toInt", 1, 2, "print", 1,
35, 35, 35, 35, 35, 35, 35]
1, 35, 32, "------", 2, "print", 1, 35, 36, 2, 32, "Europe/Brussels", 2, "toTimeZone", 2, 2, "print", 1, 35, 36, 2, 32,
"Europe/Brussels", 2, "toTimeZone", 2, 2, "toString", 1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 36, 2, 32,
"Europe/Tallinn", 2, "toTimeZone", 2, 2, "print", 1, 35, 36, 2, 32, "Europe/Tallinn", 2, "toTimeZone", 2, 2, "toString",
1, 2, "print", 1, 35, 32, "-", 2, "print", 1, 35, 36, 2, 32, "America/New_York", 2, "toTimeZone", 2, 2, "print", 1, 35,
36, 2, 32, "America/New_York", 2, "toTimeZone", 2, 2, "toString", 1, 2, "print", 1, 35, 32, "------", 2, "print", 1, 35,
34, 1234334543.123, 2, "fromUnixTimestamp", 1, 32, "timestamp: ", 36, 3, 2, "print", 2,
35, 32, "toString(timestamp): ", 36, 3, 2, "toString", 1, 2, "print", 2, 35, 32,
"toInt(timestamp): ", 36, 3, 2, "toInt", 1, 2, "print", 2, 35, 32,
"toDateTime(toInt(timestamp)): ", 36, 3, 2, "toInt", 1, 2, "toDateTime", 1, 2, "print", 2, 35, 32,
"toInt(toDateTime(toInt(timestamp))): ", 36, 3, 2, "toInt", 1, 2, "toDateTime", 1, 2, "toInt", 1, 2, "print", 2,
35, 32, "toString(toDateTime(toInt(timestamp))): ", 36, 3, 2, "toInt", 1, 2, "toDateTime", 1, 2, "toString", 1, 2,
"print", 2, 35, 32, "toFloat(timestamp): ", 36, 3, 2, "toFloat", 1, 2, "print", 2, 35, 32,
"toDateTime(toFloat(timestamp)): ", 36, 3, 2, "toFloat", 1, 2, "toDateTime", 1, 2, "print", 2, 35, 32,
"toFloat(toDateTime(toFloat(timestamp))): ", 36, 3, 2, "toFloat", 1, 2, "toDateTime", 1, 2, "toFloat", 1, 2, "print",
2, 35, 32, "toString(toDateTime(toFloat(timestamp))): ", 36, 3, 2, "toFloat", 1, 2, "toDateTime", 1, 2, "toString", 1,
2, "print", 2, 35, 32, "------", 2, "print", 1, 35, 33, 1234334543123, 2, "fromUnixTimestampMilli", 1, 32,
"millisTs: ", 36, 4, 2, "toString", 1, 2, "print", 2, 35, 32,
"toString(millisTs): ", 36, 4, 2, "toString", 1, 2, "print", 2, 35, 32,
"toInt(millisTs): ", 36, 4, 2, "toInt", 1, 2, "print", 2, 35, 32,
"toFloat(millisTs): ", 36, 4, 2, "toFloat", 1, 2, "print", 2, 35, 32,
"toUnixTimestampMilli(millisTs): ", 36, 4, 2, "toUnixTimestampMilli", 1, 2, "print", 2, 35, 32, "------", 2,
"print", 1, 35, 32, "2024-05-03", 2, "toDate", 1, 36, 5, 2, "print", 1, 35, 36, 5, 2, "toString", 1, 2, "print", 1, 35,
36, 5, 2, "toInt", 1, 2, "print", 1, 35, 35, 35, 35, 35, 35, 35]
Loading

0 comments on commit b7105b6

Please sign in to comment.