Skip to content

Commit 4fb6d0f

Browse files
feature: support interval type
Support interval type checks [1] (added in Tarantool 2.10.0). 1. tarantool/tarantool#5941 Part of tarantool/tarantool#7726
1 parent db78726 commit 4fb6d0f

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1010

1111
- "error" type supported.
1212
- "datetime" type supported.
13+
- "interval" type supported.
1314

1415
### Fixed
1516

checks.lua

+2
Original file line numberDiff line numberDiff line change
@@ -349,4 +349,6 @@ if has_datetime then
349349
checkers.datetime = datetime.is_datetime
350350
end
351351

352+
add_ffi_type_checker('interval', 'struct interval')
353+
352354
return checks

test.lua

+36
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,12 @@ if has_datetime then
633633
testdata.datetime = datetime
634634
end
635635

636+
function testdata.fn_interval(arg) -- luacheck: no unused args
637+
checks('interval')
638+
end
639+
640+
local has_interval = has_datetime and datetime.interval ~= nil
641+
636642
local ret_cases = {
637643
-- fn_int64
638644
{
@@ -1037,6 +1043,36 @@ local ret_cases = {
10371043
code = 'fn_datetime({year=2023, month=1,day=11})',
10381044
ok = false,
10391045
},
1046+
1047+
-- fn_interval
1048+
{
1049+
skip = not has_interval,
1050+
code = 'fn_interval(datetime.interval.new())',
1051+
ok = true,
1052+
additional_data = {'datetime'},
1053+
},
1054+
{
1055+
skip = not has_interval,
1056+
code = 'fn_interval(datetime.interval.new{day=1})',
1057+
ok = true,
1058+
additional_data = {'datetime'},
1059+
},
1060+
{
1061+
skip = not has_interval,
1062+
code = 'fn_interval(datetime.interval.new{month=1, adjust="last"})',
1063+
ok = true,
1064+
additional_data = {'datetime'},
1065+
},
1066+
{
1067+
skip = not has_interval,
1068+
code = 'fn_interval()',
1069+
ok = false,
1070+
},
1071+
{
1072+
skip = not has_interval,
1073+
code = 'fn_interval({month=1, adjust="last"})',
1074+
ok = false,
1075+
},
10401076
}
10411077

10421078
for _, case in pairs(ret_cases) do

0 commit comments

Comments
 (0)