math.randomseed(os.time())
local s = "_e2e_ts_" .. tostring(os.time()) .. "_" .. tostring(math.random(1000, 9999))
std.ts.append(s, 42, {task = "A"}, 1000)
std.ts.append(s, {x = 1, y = "ok"}, {task = "A"}, 2000)
local raw = std.ts.query(s, {from = 0, to = 9999, tags = {task = "A"}})
print("raw_count=" .. tostring(#raw))
print("num_value=" .. tostring(raw[1].value))
print("tbl_value_x=" .. tostring(raw[2].value.x))
std.ts.append(s, 1, {task = "B", phase = "p1"}, 3000)
std.ts.append(s, 2, {task = "B", phase = "p2"}, 4000)
std.ts.append(s, 3, {task = "B", phase = "p1"}, 5000)
local filtered = std.ts.query(s, {from = 0, to = 9999, tags = {task = "B", phase = "p1"}, agg = "count"})
print("and_filter_count=" .. tostring(filtered[1].value))
local cnt = std.ts.query(s, {from = 0, to = 9999, tags = {task = "B"}, agg = "count"})
print("agg_count=" .. tostring(cnt[1].value))
local sum_r = std.ts.query(s, {from = 0, to = 9999, tags = {task = "B"}, agg = "sum"})
print("agg_sum=" .. tostring(sum_r[1].value))
local lst = std.ts.query(s, {from = 0, to = 9999, tags = {task = "B"}, agg = "last"})
print("agg_last=" .. tostring(lst[1].value))
local sb = s .. "_b"
std.ts.append(sb, 10, {}, 0)
std.ts.append(sb, 20, {}, 2000)
std.ts.append(sb, 30, {}, 4000)
local bucketed = std.ts.query(sb, {from = 0, to = 9999, agg = "avg", bucket_ms = 2000})
print("bucket_count=" .. tostring(#bucketed))
local sp = s .. "_p"
std.ts.append(sp, 1, {}, 1000)
std.ts.append(sp, 2, {}, 2000)
std.ts.append(sp, 3, {}, 3000)
std.ts.append(sp, 4, {}, 4000)
std.ts.append(sp, 5, {}, 5000)
local limited = std.ts.query(sp, {from = 0, to = 9999, limit = 2})
print("limited_count=" .. tostring(#limited))
local offset_rows = std.ts.query(sp, {from = 0, to = 9999, limit = 2, offset = 1})
print("offset_count=" .. tostring(#offset_rows))
print("offset_first_value=" .. tostring(offset_rows[1].value))