diff --git a/pkg/container/vector/vector.go b/pkg/container/vector/vector.go
index c17cb36f41230290cc2445d6a950b0976ec2a980..fb1a90decdefc04d3f021e863262a2f4f6ac12c9 100644
--- a/pkg/container/vector/vector.go
+++ b/pkg/container/vector/vector.go
@@ -2752,7 +2752,12 @@ func UnionNull(v, _ *Vector, m *mheap.Mheap) error {
 		}
 	case types.T_char, types.T_varchar, types.T_json, types.T_blob:
 		vs := v.Col.(*types.Bytes)
-		vs.Offsets = append(vs.Offsets, 0)
+		n := len(vs.Offsets)
+		if n > 0 {
+			vs.Offsets = append(vs.Offsets, vs.Offsets[n-1])
+		} else {
+			vs.Offsets = append(vs.Offsets, 0)
+		}
 		vs.Lengths = append(vs.Lengths, 0)
 		v.Col = vs
 	case types.T_date:
diff --git a/test/cases/prepare/prepare_all.sql b/test/cases/prepare/prepare_all.sql
index 135af44d4c3858332f06b19d032879630d92971e..a137e11da3658082b7a1b9c2de1f280454c53822 100644
--- a/test/cases/prepare/prepare_all.sql
+++ b/test/cases/prepare/prepare_all.sql
@@ -438,9 +438,7 @@ execute s4 using @a2_val;
 execute s5 using @min;
 execute s6 using @min;
 
--- @bvt:issue#4528
 execute s7 using @a2_val;
--- @bvt:issue
 
 execute s8 using @min;
 execute s9 using @min;