MCPcopy Create free account
hub / github.com/dolthub/doltgresql / TypeCheck

Method TypeCheck

postgres/parser/sem/tree/type_check.go:1073–1092  ·  view source on GitHub ↗

TypeCheck implements the Expr interface.

(
	ctx context.Context, semaCtx *SemaContext, desired *types.T,
)

Source from the content-addressed store, hash-verified

1071
1072// TypeCheck implements the Expr interface.
1073func (expr *IsOfTypeExpr) TypeCheck(
1074 ctx context.Context, semaCtx *SemaContext, desired *types.T,
1075) (TypedExpr, error) {
1076 exprTyped, err := expr.Expr.TypeCheck(ctx, semaCtx, types.Any)
1077 if err != nil {
1078 return nil, err
1079 }
1080 expr.resolvedTypes = make([]*types.T, len(expr.Types))
1081 for i := range expr.Types {
1082 typ, err := ResolveType(ctx, expr.Types[i], semaCtx.GetTypeResolver())
1083 if err != nil {
1084 return nil, err
1085 }
1086 expr.Types[i] = typ
1087 expr.resolvedTypes[i] = typ
1088 }
1089 expr.Expr = exprTyped
1090 expr.typ = types.Bool
1091 return expr, nil
1092}
1093
1094// TypeCheck implements the Expr interface.
1095func (expr *NotExpr) TypeCheck(

Callers

nothing calls this directly

Calls 3

GetTypeResolverMethod · 0.80
ResolveTypeFunction · 0.70
TypeCheckMethod · 0.65

Tested by

no test coverage detected