Skip to content

Commit a3a9de3

Browse files
committed
sql/sem/tree: remove always-nil error return from GetBuiltinFuncDefinition
Release note: None
1 parent acb34f9 commit a3a9de3

File tree

7 files changed

+13
-37
lines changed

7 files changed

+13
-37
lines changed

pkg/sql/catalog/descs/dist_sql_function_resolver.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ func (d *DistSQLFunctionResolver) ResolveFunction(
4646
return nil, err
4747
}
4848
// Get builtin and udf functions if there is any match.
49-
builtinDef, err := tree.GetBuiltinFuncDefinition(fn, path)
50-
if err != nil {
51-
return nil, err
52-
}
49+
builtinDef := tree.GetBuiltinFuncDefinition(fn, path)
5350
if builtinDef == nil {
5451
return nil, errors.Mark(
5552
pgerror.Newf(pgcode.UndefinedFunction, "function %s not found", fn.Object()),

pkg/sql/opt/testutils/testcat/function.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,7 @@ func (tc *Catalog) ResolveFunction(
3434
}
3535

3636
// Attempt to resolve to a built-in function first.
37-
def, err := tree.GetBuiltinFuncDefinition(fn, path)
38-
if err != nil {
39-
return nil, err
40-
}
37+
def := tree.GetBuiltinFuncDefinition(fn, path)
4138
if def != nil {
4239
return def, nil
4340
}

pkg/sql/schema_resolver.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -457,10 +457,7 @@ func (sr *schemaResolver) ResolveFunction(
457457
}
458458

459459
// Get builtin and udf functions if there is any match.
460-
builtinDef, err := tree.GetBuiltinFuncDefinition(fn, path)
461-
if err != nil {
462-
return nil, err
463-
}
460+
builtinDef := tree.GetBuiltinFuncDefinition(fn, path)
464461
routine, err := maybeLookupRoutine(ctx, sr, path, fn)
465462
if err != nil {
466463
return nil, err

pkg/sql/schemachanger/scdeps/sctestdeps/test_deps.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1393,10 +1393,7 @@ func (s *TestState) ResolveFunction(
13931393
if err != nil {
13941394
return nil, err
13951395
}
1396-
fd, err := tree.GetBuiltinFuncDefinition(fnName, path)
1397-
if err != nil {
1398-
return nil, err
1399-
}
1396+
fd := tree.GetBuiltinFuncDefinition(fnName, path)
14001397
if fd != nil {
14011398
return fd, nil
14021399
}

pkg/sql/schemachanger/sctest/backup.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -691,10 +691,7 @@ func containsUDF(expr tree.Expr) (bool, error) {
691691
if err != nil {
692692
return false, nil, err
693693
}
694-
fd, err := tree.GetBuiltinFuncDefinition(fn, &sessiondata.DefaultSearchPath)
695-
if err != nil {
696-
return false, nil, err
697-
}
694+
fd := tree.GetBuiltinFuncDefinition(fn, &sessiondata.DefaultSearchPath)
698695
if fd == nil {
699696
foundUDF = true
700697
}

pkg/sql/sem/tree/function_definition.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -599,10 +599,7 @@ func QualifyBuiltinFunctionDefinition(
599599
func GetBuiltinFuncDefinitionOrFail(
600600
fName RoutineName, searchPath SearchPath,
601601
) (*ResolvedFunctionDefinition, error) {
602-
def, err := GetBuiltinFuncDefinition(fName, searchPath)
603-
if err != nil {
604-
return nil, err
605-
}
602+
def := GetBuiltinFuncDefinition(fName, searchPath)
606603
if def == nil {
607604
forError := fName // prevent fName from escaping
608605
return nil, errors.Mark(
@@ -634,28 +631,23 @@ func GetBuiltinFunctionByOIDOrFail(oid oid.Oid) (*ResolvedFunctionDefinition, er
634631
// in the specific schema are searched. Otherwise, all schemas on the given
635632
// searchPath are searched. A nil is returned if no function is found. It's
636633
// caller's choice to error out if function not found.
637-
//
638-
// In theory, this function returns an error only when the search path iterator
639-
// errors which won't happen since the iterating function never errors out. But
640-
// error is still checked and return from the function signature just in case
641-
// we change the iterating function in the future.
642634
func GetBuiltinFuncDefinition(
643635
fName RoutineName, searchPath SearchPath,
644-
) (*ResolvedFunctionDefinition, error) {
636+
) *ResolvedFunctionDefinition {
645637
if fName.ExplicitSchema {
646-
return ResolvedBuiltinFuncDefs[fName.Schema()+"."+fName.Object()], nil
638+
return ResolvedBuiltinFuncDefs[fName.Schema()+"."+fName.Object()]
647639
}
648640

649641
// First try that if we can get function directly with the function name.
650642
// There is a case where the part[0] of the name is a qualified string when
651-
// the qualified name is double quoted as a single name like "schema.fn".
643+
// the qualified name is double-quoted as a single name like "schema.fn".
652644
if def, ok := ResolvedBuiltinFuncDefs[fName.Object()]; ok {
653-
return def, nil
645+
return def
654646
}
655647

656648
// Then try if it's in pg_catalog.
657649
if def, ok := ResolvedBuiltinFuncDefs[catconstants.PgCatalogName+"."+fName.Object()]; ok {
658-
return def, nil
650+
return def
659651
}
660652

661653
// If not in pg_catalog, go through search path.
@@ -669,5 +661,5 @@ func GetBuiltinFuncDefinition(
669661
}
670662
}
671663

672-
return resolvedDef, nil
664+
return resolvedDef
673665
}

pkg/sql/sem/tree/function_definition_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ func TestBuiltinFunctionResolver(t *testing.T) {
7171
t.Run(tc.testName, func(t *testing.T) {
7272
fnName, err := tc.fnName.ToRoutineName()
7373
require.NoError(t, err)
74-
funcDef, err := tree.GetBuiltinFuncDefinition(fnName, &path)
75-
require.NoError(t, err)
74+
funcDef := tree.GetBuiltinFuncDefinition(fnName, &path)
7675
if tc.expectNoFound {
7776
require.Nil(t, funcDef)
7877
return

0 commit comments

Comments
 (0)