#31191·trino

Cast 属性来自 `canCoerce`, 该函数对于复杂类型会默默地发生错误

作者: findepi创建于 2026年9月16日更新于 2026年9月16日
标签correctness
站点 canCoerce 推断出的属性 防护措施 状态
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 TODO: 记录"安全性"...在 Cast 节 承认代理
UnwrapCastInComparison.isInjectiveOrderPreservingCastAtValue (UnwrapCastInComparison.java:620-687) 注入式且保持顺序 bigint/integer -> double/real 根据值, decimal -> double/real 根据精度, timestamp with time zonetime with time zone 目标 - 所有都是顶层 生成错误结果
TypeCoercion.isInjectiveCoercion (TypeCoercion.java:129-149) 注入式 相同的数字集,顶层;没有 char/varchar 案例 生成错误结果 通过 PlanNodeDecorrelator.isSimpleInjectiveCast (PlanNodeDecorrelator.java:526-539)
DomainTranslator.isOrderPreserving (DomainTranslator.java:575-589) 保持顺序 CharType -> VarcharType,顶层 含缺陷(见下文)
RemoveUnsupportedDynamicFilters.isSupportedDynamicFilterExpression (RemoveUnsupportedDynamicFilters.java:305-323) 范围谓词可转换 除了 canCoerce 之外没有其他 含缺陷(见下文)
IrExpressions.mayFail (IrExpressions.java:498-514) 运行时不能失败 ResolvedFunction.neverFails() 首先,然后是 canCoerce,然后是 !cast.type().equals(VARCHAR) 未审计;该方法包含了一个 `TODO: 记录