From ab1edc79e05a27318b91020dd4145ef370bb1754 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 3 Aug 2019 09:51:03 -0500 Subject: [PATCH] Remove 0 bytes when sanitizing identifiers Port of 95ea78048a9569250c078d1965a235a214239960 from v3. --- conn.go | 3 ++- conn_test.go | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/conn.go b/conn.go index f1f4db0d..0459e6e7 100644 --- a/conn.go +++ b/conn.go @@ -78,7 +78,8 @@ type Identifier []string func (ident Identifier) Sanitize() string { parts := make([]string, len(ident)) for i := range ident { - parts[i] = `"` + strings.Replace(ident[i], `"`, `""`, -1) + `"` + s := strings.Replace(ident[i], string([]byte{0}), "", -1) + parts[i] = `"` + strings.Replace(s, `"`, `""`, -1) + `"` } return strings.Join(parts, ".") } diff --git a/conn_test.go b/conn_test.go index 063fb0e9..286ff403 100644 --- a/conn_test.go +++ b/conn_test.go @@ -647,6 +647,10 @@ func TestIdentifierSanitize(t *testing.T) { ident: pgx.Identifier{`you should " not do this`, `please don't`}, expected: `"you should "" not do this"."please don't"`, }, + { + ident: pgx.Identifier{`you should ` + string([]byte{0}) + `not do this`}, + expected: `"you should not do this"`, + }, } for i, tt := range tests {