修复UserVar无效collation的问题
This commit is contained in:
@ -834,7 +834,14 @@ Oid exprCollation(const Node* expr)
|
||||
coll = exprCollation((Node*)((const NamedArgExpr*)expr)->arg);
|
||||
break;
|
||||
case T_UserVar:
|
||||
coll = ((const Const*)(((UserVar*)expr)->value))->constcollid;
|
||||
if (IsA(((UserVar*)expr)->value, FuncExpr)) {
|
||||
coll = ((const FuncExpr*)(((UserVar*)expr)->value))->funccollid;
|
||||
} else {
|
||||
coll = ((const Const*)(((UserVar*)expr)->value))->constcollid;
|
||||
}
|
||||
if (!OidIsValid(coll)) {
|
||||
coll = get_typcollation(exprType((const Node*)(((UserVar*)expr)->value)));
|
||||
}
|
||||
break;
|
||||
case T_OpExpr:
|
||||
coll = ((const OpExpr*)expr)->opcollid;
|
||||
|
||||
Reference in New Issue
Block a user