@@ -45,6 +45,7 @@ var varbitin = framework.Function3{
4545 input := val1 .(string )
4646 typmod := val3 .(int32 )
4747
48+ // validation and normalization
4849 bitStr , err := tree .ParseDBitArray (input )
4950 if err != nil {
5051 return nil , err
@@ -58,7 +59,7 @@ var varbitin = framework.Function3{
5859 }
5960 }
6061
61- return bitStr , nil
62+ return tree . AsStringWithFlags ( bitStr , tree . FmtPgwireText ) , nil
6263 },
6364}
6465
@@ -69,20 +70,14 @@ var varbitout = framework.Function1{
6970 Parameters : [1 ]* pgtypes.DoltgresType {pgtypes .VarBit },
7071 Strict : true ,
7172 Callable : func (ctx * sql.Context , t [2 ]* pgtypes.DoltgresType , val any ) (any , error ) {
72- var bitArray * tree.DBitArray
7373 bitStr , ok , err := sql .Unwrap [string ](ctx , val )
7474 if err != nil {
7575 return nil , err
7676 }
77- if ok {
78- bitArray , err = tree .ParseDBitArray (bitStr )
79- if err != nil {
80- return nil , err
81- }
82- } else {
83- bitArray = val .(* tree.DBitArray )
77+ if ! ok {
78+ return nil , fmt .Errorf ("varbit_out function returned false" )
8479 }
85- return tree . AsStringWithFlags ( bitArray , tree . FmtPgwireText ) , nil
80+ return bitStr , nil
8681 },
8782}
8883
@@ -98,7 +93,7 @@ var varbitrecv = framework.Function3{
9893 return nil , nil
9994 }
10095 reader := utils .NewReader (data )
101- return tree . ParseDBitArray ( reader .String ())
96+ return reader .String (), nil
10297 },
10398}
10499
@@ -109,9 +104,9 @@ var varbitsend = framework.Function1{
109104 Parameters : [1 ]* pgtypes.DoltgresType {pgtypes .VarBit },
110105 Strict : true ,
111106 Callable : func (ctx * sql.Context , _ [2 ]* pgtypes.DoltgresType , val any ) (any , error ) {
112- bitStr := val .(* tree. DBitArray )
113- writer := utils .NewWriter (uint64 (bitStr . BitLen ( ) + 4 ))
114- writer .String (tree . AsStringWithFlags ( bitStr , tree . FmtPgwireText ) )
107+ bitStr := val .(string )
108+ writer := utils .NewWriter (uint64 (len ( bitStr ) + 4 ))
109+ writer .String (bitStr )
115110 return writer .Data (), nil
116111 },
117112}
0 commit comments