@@ -439,11 +439,11 @@ func (expr *BinaryExpr) TypeCheck(
439439 // Throw a typing error if overload resolution found either no compatible candidates
440440 // or if it found an ambiguity.
441441 if len (s .overloadIdxs ) != 1 {
442- var desStr string
442+ var desStr redact. RedactableString
443443 if desired .Family () != types .AnyFamily {
444- desStr = fmt .Sprintf (" (returning <%s>)" , desired )
444+ desStr = redact .Sprintf (" (returning <%s>)" , desired )
445445 }
446- sig := fmt .Sprintf ("<%s> %s <%s>%s" , leftReturn , expr .Operator , rightReturn , desStr )
446+ sig := redact .Sprintf ("<%s> %s <%s>%s" , leftReturn , expr .Operator , rightReturn , desStr )
447447 if len (s .overloadIdxs ) == 0 {
448448 return nil ,
449449 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedBinaryOpErrFmt , sig )
@@ -805,7 +805,7 @@ func (expr *AnnotateTypeExpr) TypeCheck(
805805 semaCtx ,
806806 expr .Expr ,
807807 annotateType ,
808- fmt .Sprintf (
808+ redact .Sprintf (
809809 "type annotation for %v as %s, found" ,
810810 expr .Expr ,
811811 annotateType ,
@@ -2302,13 +2302,17 @@ func typeCheckAndRequireTupleElems(
23022302}
23032303
23042304func typeCheckAndRequireBoolean (
2305- ctx context.Context , semaCtx * SemaContext , expr Expr , op string ,
2305+ ctx context.Context , semaCtx * SemaContext , expr Expr , op redact. RedactableString ,
23062306) (TypedExpr , error ) {
23072307 return typeCheckAndRequire (ctx , semaCtx , expr , types .Bool , op )
23082308}
23092309
23102310func typeCheckAndRequire (
2311- ctx context.Context , semaCtx * SemaContext , expr Expr , required * types.T , op string ,
2311+ ctx context.Context ,
2312+ semaCtx * SemaContext ,
2313+ expr Expr ,
2314+ required * types.T ,
2315+ op redact.RedactableString ,
23122316) (TypedExpr , error ) {
23132317 typedExpr , err := expr .TypeCheck (ctx , semaCtx , required )
23142318 if err != nil {
@@ -2368,7 +2372,7 @@ func typeCheckComparisonOpWithSubOperator(
23682372
23692373 typedSubExprs , retType , err := typeCheckSameTypedExprs (ctx , semaCtx , types .AnyElement , sameTypeExprs ... )
23702374 if err != nil {
2371- sigWithErr := fmt .Sprintf (compExprsWithSubOpFmt , left , subOp , op , right , err )
2375+ sigWithErr := redact .Sprintf (compExprsWithSubOpFmt , left , subOp , op , right , err )
23722376 return nil , nil , nil , false ,
23732377 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
23742378 }
@@ -2446,8 +2450,8 @@ func typeCheckComparisonOpWithSubOperator(
24462450 cmpTypeRight = rightReturn .TupleContents ()[0 ]
24472451 }
24482452 default :
2449- sigWithErr := fmt .Sprintf (compExprsWithSubOpFmt , left , subOp , op , right ,
2450- fmt .Sprintf ("op %s <right> requires array, tuple or subquery on right side" , op ))
2453+ sigWithErr := redact .Sprintf (compExprsWithSubOpFmt , left , subOp , op , right ,
2454+ redact .Sprintf ("op %s <right> requires array, tuple or subquery on right side" , op ))
24512455 return nil , nil , nil , false , pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
24522456 }
24532457 }
@@ -2480,7 +2484,7 @@ func deepCheckValidCmpOp(ops *CmpOpOverloads, leftType, rightType *types.T) bool
24802484}
24812485
24822486func subOpCompError (leftType , rightType * types.T , subOp , op treecmp.ComparisonOperator ) error {
2483- sig := fmt .Sprintf (compSignatureWithSubOpFmt , leftType , subOp , op , rightType )
2487+ sig := redact .Sprintf (compSignatureWithSubOpFmt , leftType , subOp , op , rightType )
24842488 return pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sig )
24852489}
24862490
@@ -2543,13 +2547,13 @@ func typeCheckComparisonOp(
25432547 disallowSwitch = true
25442548 typedLeft , err = foldedLeft .TypeCheck (ctx , semaCtx , types .AnyElement )
25452549 if err != nil {
2546- sigWithErr := fmt .Sprintf (compExprsFmt , left , op , right , err )
2550+ sigWithErr := redact .Sprintf (compExprsFmt , left , op , right , err )
25472551 return nil , nil , nil , false ,
25482552 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
25492553 }
25502554 typedRight , err = foldedRight .TypeCheck (ctx , semaCtx , types .AnyElement )
25512555 if err != nil {
2552- sigWithErr := fmt .Sprintf (compExprsFmt , left , op , right , err )
2556+ sigWithErr := redact .Sprintf (compExprsFmt , left , op , right , err )
25532557 return nil , nil , nil , false ,
25542558 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
25552559 }
@@ -2570,14 +2574,14 @@ func typeCheckComparisonOp(
25702574
25712575 typedSubExprs , retType , err := typeCheckSameTypedExprs (ctx , semaCtx , types .AnyElement , sameTypeExprs ... )
25722576 if err != nil {
2573- sigWithErr := fmt .Sprintf (compExprsFmt , left , op , right , err )
2577+ sigWithErr := redact .Sprintf (compExprsFmt , left , op , right , err )
25742578 return nil , nil , nil , false ,
25752579 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
25762580 }
25772581
25782582 fn , ok := ops .LookupImpl (retType , types .AnyTuple )
25792583 if ! ok {
2580- sig := fmt .Sprintf (compSignatureFmt , retType , op , types .AnyTuple )
2584+ sig := redact .Sprintf (compSignatureFmt , retType , op , types .AnyTuple )
25812585 return nil , nil , nil , false ,
25822586 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sig )
25832587 }
@@ -2598,15 +2602,15 @@ func typeCheckComparisonOp(
25982602 case foldedOp .Symbol == treecmp .In && rightIsSubquery :
25992603 typedLeft , err = foldedLeft .TypeCheck (ctx , semaCtx , types .AnyElement )
26002604 if err != nil {
2601- sigWithErr := fmt .Sprintf (compExprsFmt , left , op , right , err )
2605+ sigWithErr := redact .Sprintf (compExprsFmt , left , op , right , err )
26022606 return nil , nil , nil , false ,
26032607 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
26042608 }
26052609
26062610 typ := typedLeft .ResolvedType ()
26072611 fn , ok := ops .LookupImpl (typ , types .AnyTuple )
26082612 if ! ok {
2609- sig := fmt .Sprintf (compSignatureFmt , typ , op , types .AnyTuple )
2613+ sig := redact .Sprintf (compSignatureFmt , typ , op , types .AnyTuple )
26102614 return nil , nil , nil , false ,
26112615 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sig )
26122616 }
@@ -2618,7 +2622,7 @@ func typeCheckComparisonOp(
26182622
26192623 typedRight , err = foldedRight .TypeCheck (ctx , semaCtx , desired )
26202624 if err != nil {
2621- sigWithErr := fmt .Sprintf (compExprsFmt , left , op , right , err )
2625+ sigWithErr := redact .Sprintf (compExprsFmt , left , op , right , err )
26222626 return nil , nil , nil , false ,
26232627 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sigWithErr )
26242628 }
@@ -2633,7 +2637,7 @@ func typeCheckComparisonOp(
26332637 case leftIsTuple && rightIsTuple :
26342638 fn , ok := ops .LookupImpl (types .AnyTuple , types .AnyTuple )
26352639 if ! ok {
2636- sig := fmt .Sprintf (compSignatureFmt , types .AnyTuple , op , types .AnyTuple )
2640+ sig := redact .Sprintf (compSignatureFmt , types .AnyTuple , op , types .AnyTuple )
26372641 return nil , nil , nil , false ,
26382642 pgerror .Newf (pgcode .InvalidParameterValue , unsupportedCompErrFmt , sig )
26392643 }
@@ -2784,7 +2788,7 @@ func typeCheckComparisonOp(
27842788 // Throw a typing error if overload resolution found either no compatible candidates
27852789 // or if it found an ambiguity.
27862790 if len (s .overloadIdxs ) != 1 || typeMismatch {
2787- sig := fmt .Sprintf (compSignatureFmt , leftReturn , op , rightReturn )
2791+ sig := redact .Sprintf (compSignatureFmt , leftReturn , op , rightReturn )
27882792 if len (s .overloadIdxs ) == 0 || typeMismatch {
27892793 // For some typeMismatch errors, we want to emit a more specific error
27902794 // message than "unknown comparison". In particular, comparison between
0 commit comments