@@ -3594,6 +3594,33 @@ output domain : {"bc"..="bc"}
35943594output : 'bc'
35953595
35963596
3597+ ast : substr('abcdef', 2, 3)
3598+ raw expr : substr('abcdef', 2, 3)
3599+ checked expr : substr<String, Int64, UInt64>("abcdef", CAST<UInt8>(2_u8 AS Int64), CAST<UInt8>(3_u8 AS UInt64))
3600+ optimized expr : "bcd"
3601+ output type : String
3602+ output domain : {"bcd"..="bcd"}
3603+ output : 'bcd'
3604+
3605+
3606+ ast : substr('abcdef', -2, 2)
3607+ raw expr : substr('abcdef', -2, 2)
3608+ checked expr : substr<String, Int64, UInt64>("abcdef", CAST<Int8>(-2_i8 AS Int64), CAST<UInt8>(2_u8 AS UInt64))
3609+ optimized expr : "ef"
3610+ output type : String
3611+ output domain : {"ef"..="ef"}
3612+ output : 'ef'
3613+
3614+
3615+ ast : substr('abcdef', 20, 1)
3616+ raw expr : substr('abcdef', 20, 1)
3617+ checked expr : substr<String, Int64, UInt64>("abcdef", CAST<UInt8>(20_u8 AS Int64), CAST<UInt8>(1_u8 AS UInt64))
3618+ optimized expr : ""
3619+ output type : String
3620+ output domain : {""..=""}
3621+ output : ''
3622+
3623+
35973624ast : substr('你好世界', 3)
35983625raw expr : substr('你好世界', 3)
35993626checked expr : substr<String, Int64>("你好世界", CAST<UInt8>(3_u8 AS Int64))
@@ -3603,6 +3630,24 @@ output domain : {"世界"..="世界"}
36033630output : '世界'
36043631
36053632
3633+ ast : substr('你好世界', 3, 1)
3634+ raw expr : substr('你好世界', 3, 1)
3635+ checked expr : substr<String, Int64, UInt64>("你好世界", CAST<UInt8>(3_u8 AS Int64), CAST<UInt8>(1_u8 AS UInt64))
3636+ optimized expr : "世"
3637+ output type : String
3638+ output domain : {"世"..="世"}
3639+ output : '世'
3640+
3641+
3642+ ast : substr('a你b', 2, 1)
3643+ raw expr : substr('a你b', 2, 1)
3644+ checked expr : substr<String, Int64, UInt64>("a你b", CAST<UInt8>(2_u8 AS Int64), CAST<UInt8>(1_u8 AS UInt64))
3645+ optimized expr : "你"
3646+ output type : String
3647+ output domain : {"你"..="你"}
3648+ output : '你'
3649+
3650+
36063651ast : substr('こんにちは', 2)
36073652raw expr : substr('こんにちは', 2)
36083653checked expr : substr<String, Int64>("こんにちは", CAST<UInt8>(2_u8 AS Int64))
@@ -3612,6 +3657,15 @@ output domain : {"んにちは"..="んにちは"}
36123657output : 'んにちは'
36133658
36143659
3660+ ast : substr('こんにちは', 2, 1)
3661+ raw expr : substr('こんにちは', 2, 1)
3662+ checked expr : substr<String, Int64, UInt64>("こんにちは", CAST<UInt8>(2_u8 AS Int64), CAST<UInt8>(1_u8 AS UInt64))
3663+ optimized expr : "ん"
3664+ output type : String
3665+ output domain : {"ん"..="ん"}
3666+ output : 'ん'
3667+
3668+
36153669ast : substr('abc', pos, len)
36163670raw expr : substr('abc', pos::Int8, len::UInt8)
36173671checked expr : substr<String, Int64, UInt64>("abc", CAST<Int8>(pos AS Int64), CAST<UInt8>(len AS UInt64))
0 commit comments