From 02e9bcd908f103ad224fc17fdaf49e552f01bc4e Mon Sep 17 00:00:00 2001 From: ThearchyHelios Date: Tue, 6 Oct 2026 17:15:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E9=AA=8C=E8=AF=81=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=EF=BC=9A=E7=90=86=E9=A1=BA=20=5Fcontained=20=E7=9A=84=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=EF=BC=88=E6=B4=BE=E7=94=9F=E6=9D=A5=E6=BA=90=E7=9A=84?= =?UTF-8?q?=E5=88=97=E5=A4=96=E5=B1=82=E5=8F=AA=E8=83=BD=E6=8C=89=E5=90=8D?= =?UTF-8?q?=E5=AD=97=E5=8F=96=EF=BC=8C=E6=88=96=E8=80=85=E5=86=8D=E7=94=A8?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=20*=20=E5=B1=95=E5=BC=80=EF=BC=8C=E9=82=A3?= =?UTF-8?q?=E4=B8=AA=20*=20=E7=85=A7=E6=A0=B7=E8=A6=81=E8=BF=87=E8=BF=99?= =?UTF-8?q?=E4=B8=80=E5=85=B3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/bundle/build.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/app/bundle/build.py b/backend/app/bundle/build.py index 0c4a3672..7f876748 100644 --- a/backend/app/bundle/build.py +++ b/backend/app/bundle/build.py @@ -395,9 +395,9 @@ def _star_reaches(node: Any, memo: dict[int, bool]) -> bool: def _contained(node: Any) -> bool: """展开出来的列只按名字往外传的 *:它就是一条 SELECT 的选出项本身(不套在表达式里),这条 SELECT 不在 UNION 这类 - 里,而且是 FROM / JOIN 里的派生来源、LATERAL、WITH 里的一段(外层只能按名字取它的列:写到遮罩列的名字原文里就有, - 再经 * 展开它又会被那个 * 认出来),或者 EXISTS / IN 里的子查询(只决定有没有、在不在)。最外层的 *(结果就是它 - 展开的列)、UNION 里的、标量子查询里的都不算。""" + 里,而且是 FROM / JOIN 里的派生来源、LATERAL、WITH 里的一段,或者 EXISTS / IN 里的子查询(只决定有没有、在不在)。 + 派生来源的列外层只能按名字取(取到遮罩列,名字就写在 SQL 里),或者再用一个 * 展开(那个 * 照样要过这一关)。 + 最外层的 *(结果就是它展开的列)、UNION 里的、标量子查询里的都不算。""" from sqlglot import exp select = node.parent