Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 168 additions & 0 deletions partiql-tests-data/eval/primitives/cast.ion
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,99 @@
},
]

'cast-to-datetime'::[
{
name:"cast to date valid cases{value:\"'2024-02-29'\"}",
statement:"cast('2024-02-29' as DATE)",
assert:{
result:EvaluationSuccess,
evalMode:[
EvalModeCoerce,
EvalModeError
],
output:$date::{
year:2024,
month:2,
day:29,
}
}
},
{
name: "cast to time valid cases{value:\"'12:34:56'\"}",
statement: "cast('12:34:56' as TIME)",
assert: {
result: EvaluationSuccess,
evalMode: [
EvalModeCoerce,
EvalModeError
],
output: $time::{
hour: 12,
minute: 34,
second: 56.0,
offset: null.int
}
}
},
{
name: "cast to time with time zone valid cases{value:\"'12:34:56.789+05:30'\"}",
statement: "cast('12:34:56.789+05:30' as TIME WITH TIME ZONE)",
assert: {
result: EvaluationSuccess,
evalMode: [
EvalModeCoerce,
EvalModeError
],
output: $time::{
hour: 12,
minute: 34,
second: 56.789,
offset: 330
}
}
},
{
name: "cast to timestamp valid cases{value:\"'2024-02-29 12:34:56'\"}",
statement: "cast('2024-02-29 12:34:56' as TIMESTAMP)",
assert: {
result: EvaluationSuccess,
evalMode: [
EvalModeCoerce,
EvalModeError
],
output: $timestamp::{
year:2024,
month:2,
day:29,
hour: 12,
minute: 34,
second: 56.0,
offset: null.int
}
}
},
{
name: "cast to timestamp with time zone valid cases{value:\"'2024-02-29 12:34:56.789+05:30'\"}",
statement: "cast('2024-02-29 12:34:56.789+05:30' as TIMESTAMP WITH TIME ZONE)",
assert: {
result: EvaluationSuccess,
evalMode: [
EvalModeCoerce,
EvalModeError
],
output: $timestamp::{
year:2024,
month:2,
day:29,
hour: 12,
minute: 34,
second: 56.789,
offset: 330
}
}
},
]

'cast-to-null'::[
{
name:"cast to NULL valid cases{value:\"NULL\"}",
Expand Down Expand Up @@ -681,5 +774,80 @@ cast_invalid::[
output:$missing::null
}
],
},
{
name:"cast to int invalid target type{value:\"'2024-02-29'\",target:\"DATE\"}",
statement:"cast('2024-02-29' as INT)",
assert:[
{
evalMode:EvalModeError,
result:EvaluationFail
},
{
result:EvaluationSuccess,
evalMode:EvalModeCoerce,
output:$missing::null
}
],
},
{
name:"cast to int invalid target type{value:\"'12:34:56'\",target:\"TIME\"}",
statement:"cast('12:34:56' as INT)",
assert:[
{
evalMode:EvalModeError,
result:EvaluationFail
},
{
result:EvaluationSuccess,
evalMode:EvalModeCoerce,
output:$missing::null
}
],
},
{
name:"cast to int invalid target type{value:\"'12:34:56.789+05:30'\",target:\"TIME WITH TIME ZONE\"}",
statement:"cast('12:34:56.789+05:30' as INT)",
assert:[
{
evalMode:EvalModeError,
result:EvaluationFail
},
{
result:EvaluationSuccess,
evalMode:EvalModeCoerce,
output:$missing::null
}
],
},
{
name:"cast to int invalid target type{value:\"'2024-02-29 12:34:56'\",target:\"TIMESTAMP\"}",
statement:"cast('2024-02-29 12:34:56' as INT)",
assert:[
{
evalMode:EvalModeError,
result:EvaluationFail
},
{
result:EvaluationSuccess,
evalMode:EvalModeCoerce,
output:$missing::null
}
],
},
{
name:"cast to int invalid target type{value:\"'2024-02-29 12:34:56.789+05:30'\",target:\"TIMESTAMP WITH TIME ZONE\"}",
statement:"cast('2024-02-29 12:34:56.789+05:30' as INT)",
assert:[
{
evalMode:EvalModeError,
result:EvaluationFail
},
{
result:EvaluationSuccess,
evalMode:EvalModeCoerce,
output:$missing::null
}
],
}
]