aboutsummaryrefslogtreecommitdiffstats
path: root/build/scripts/link_lib.py
diff options
context:
space:
mode:
authorudovichenko-r <udovichenko-r@yandex-team.com>2025-02-06 17:32:30 +0300
committerudovichenko-r <udovichenko-r@yandex-team.com>2025-02-06 17:59:05 +0300
commite71759d7b0512ecce9b80edbb09f1417be31b1c4 (patch)
tree3aeeaf0cad3aa155b883740676a059d683da958f /build/scripts/link_lib.py
parentebc0d7e9f1351fcae5429be96e3a643e265c58b7 (diff)
downloadydb-e71759d7b0512ecce9b80edbb09f1417be31b1c4.tar.gz
Fix missing Sorted constraint after PhysicalOptimizer-Extend
У узла Merge два входа. Первый имеет констрейнт сортировки a,b1,c и a,b2,c (b1 и b2 алиасы одной колонки) и физическую сортировку по a,b2,c. Второй вход имеет констрейнт сортировки a,b1,c и аналогичную физическую сортировку. На узле Merge в итоге выводится констрейнт сортировки a,b1,c. Но после переписывания его в физическую операцию YtMerge у него получается сортировка только по полю a, потому что на b1/b2 уже идет расхождение по физическим ключам. В итоге после переписывания в физическую операцию потеряли констрейн сортировки по оставшимся двум полям. Решение - выставить AssumeSorted на входы Merge, если констрейнт входа отличается от констрейнта Merge. Дальше физический оптимизатор AssumeSorted выставит нужные физические ключи сортировки. commit_hash:4a453b46941c3ffa35488c52aeee6153536ab3f8
Diffstat (limited to 'build/scripts/link_lib.py')
0 files changed, 0 insertions, 0 deletions