@@ -3105,6 +3105,147 @@ impl RewriteRules for SplitRules {
31053105 Some ( "?outer_column" ) ,
31063106 ) ,
31073107 ) ,
3108+ // CAST(CAST(((((EXTRACT(YEAR FROM "ta_1"."LO_COMMITDATE") * 100) + 1) * 100) + 1) AS varchar) AS date)
3109+ transforming_chain_rewrite(
3110+ "split-thoughtspot-extract-year-to-date-trunc-inner-replacer" ,
3111+ inner_aggregate_split_replacer( "?expr" , "?alias_to_cube" ) ,
3112+ vec![ (
3113+ "?expr" ,
3114+ cast_expr_explicit(
3115+ cast_expr_explicit(
3116+ binary_expr(
3117+ binary_expr(
3118+ binary_expr(
3119+ binary_expr(
3120+ fun_expr(
3121+ "DatePart" ,
3122+ vec![
3123+ literal_string( "YEAR" ) ,
3124+ column_expr( "?column" ) ,
3125+ ] ,
3126+ ) ,
3127+ "*" ,
3128+ literal_int( 100 ) ,
3129+ ) ,
3130+ "+" ,
3131+ literal_int( 1 ) ,
3132+ ) ,
3133+ "*" ,
3134+ literal_int( 100 ) ,
3135+ ) ,
3136+ "+" ,
3137+ literal_int( 1 ) ,
3138+ ) ,
3139+ ArrowDataType :: Utf8 ,
3140+ ) ,
3141+ ArrowDataType :: Date32 ,
3142+ ) ,
3143+ ) ] ,
3144+ alias_expr(
3145+ fun_expr(
3146+ "DateTrunc" ,
3147+ vec![ literal_string( "year" ) , column_expr( "?column" ) ] ,
3148+ ) ,
3149+ "?alias" ,
3150+ ) ,
3151+ self . transform_original_expr_to_alias_and_column( "?expr" , "?alias" , None ) ,
3152+ ) ,
3153+ transforming_chain_rewrite(
3154+ "split-thoughtspot-extract-year-to-date-trunc-outer-replacer" ,
3155+ outer_projection_split_replacer( "?expr" , "?alias_to_cube" ) ,
3156+ vec![ (
3157+ "?expr" ,
3158+ cast_expr_explicit(
3159+ cast_expr_explicit(
3160+ binary_expr(
3161+ binary_expr(
3162+ binary_expr(
3163+ binary_expr(
3164+ fun_expr(
3165+ "DatePart" ,
3166+ vec![
3167+ literal_string( "YEAR" ) ,
3168+ column_expr( "?column" ) ,
3169+ ] ,
3170+ ) ,
3171+ "*" ,
3172+ literal_int( 100 ) ,
3173+ ) ,
3174+ "+" ,
3175+ literal_int( 1 ) ,
3176+ ) ,
3177+ "*" ,
3178+ literal_int( 100 ) ,
3179+ ) ,
3180+ "+" ,
3181+ literal_int( 1 ) ,
3182+ ) ,
3183+ ArrowDataType :: Utf8 ,
3184+ ) ,
3185+ ArrowDataType :: Date32 ,
3186+ ) ,
3187+ ) ] ,
3188+ alias_expr(
3189+ cast_expr_explicit(
3190+ column_expr( "?outer_column" ) ,
3191+ ArrowDataType :: Date32 ,
3192+ ) ,
3193+ "?alias" ,
3194+ ) ,
3195+ self . transform_original_expr_to_alias_and_column(
3196+ "?expr" ,
3197+ "?alias" ,
3198+ Some ( "?outer_column" ) ,
3199+ ) ,
3200+ ) ,
3201+ transforming_chain_rewrite(
3202+ "split-thoughtspot-extract-year-to-date-trunc-outer-aggr-replacer" ,
3203+ outer_aggregate_split_replacer( "?expr" , "?alias_to_cube" ) ,
3204+ vec![ (
3205+ "?expr" ,
3206+ cast_expr_explicit(
3207+ cast_expr_explicit(
3208+ binary_expr(
3209+ binary_expr(
3210+ binary_expr(
3211+ binary_expr(
3212+ fun_expr(
3213+ "DatePart" ,
3214+ vec![
3215+ literal_string( "YEAR" ) ,
3216+ column_expr( "?column" ) ,
3217+ ] ,
3218+ ) ,
3219+ "*" ,
3220+ literal_int( 100 ) ,
3221+ ) ,
3222+ "+" ,
3223+ literal_int( 1 ) ,
3224+ ) ,
3225+ "*" ,
3226+ literal_int( 100 ) ,
3227+ ) ,
3228+ "+" ,
3229+ literal_int( 1 ) ,
3230+ ) ,
3231+ ArrowDataType :: Utf8 ,
3232+ ) ,
3233+ ArrowDataType :: Date32 ,
3234+ ) ,
3235+ ) ] ,
3236+ alias_expr(
3237+ cast_expr_explicit(
3238+ column_expr( "?outer_column" ) ,
3239+ ArrowDataType :: Date32 ,
3240+ ) ,
3241+ "?alias" ,
3242+ ) ,
3243+ self . transform_original_expr_to_alias_and_column(
3244+ "?expr" ,
3245+ "?alias" ,
3246+ Some ( "?outer_column" ) ,
3247+ ) ,
3248+ ) ,
31083249 // DATE_TRUNC('qtr', DATEADD(day, CAST(2 AS int), "ta_1"."LO_COMMITDATE"))
31093250 transforming_chain_rewrite(
31103251 "split-thoughtspot-date-trunc-offset-inner-replacer" ,
0 commit comments