Skip to content

Commit 8bea07d

Browse files
add tests
1 parent cafb683 commit 8bea07d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

pgtype/json_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,3 +326,34 @@ func TestJSONCodecScanToNonPointerValues(t *testing.T) {
326326
require.Equal(t, 42, m)
327327
})
328328
}
329+
330+
func TestJSONCodecScanNull(t *testing.T) {
331+
defaultConnTestRunner.RunTest(context.Background(), t, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
332+
var dest struct{}
333+
err := conn.QueryRow(ctx, "select null::jsonb").Scan(&dest)
334+
require.Error(t, err)
335+
require.Contains(t, err.Error(), "cannot scan NULL into *struct {}")
336+
337+
err = conn.QueryRow(ctx, "select 'null'::jsonb").Scan(&dest)
338+
require.Error(t, err)
339+
require.Contains(t, err.Error(), "cannot scan NULL into *struct {}")
340+
341+
var destPointer *struct{}
342+
err = conn.QueryRow(ctx, "select null::jsonb").Scan(&destPointer)
343+
require.NoError(t, err)
344+
require.Nil(t, destPointer)
345+
346+
err = conn.QueryRow(ctx, "select 'null'::jsonb").Scan(&destPointer)
347+
require.NoError(t, err)
348+
require.Nil(t, destPointer)
349+
})
350+
}
351+
352+
func TestJSONCodecScanNullToPointerToSQLScanner(t *testing.T) {
353+
defaultConnTestRunner.RunTest(context.Background(), t, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
354+
var dest *Issue2146
355+
err := conn.QueryRow(ctx, "select null::jsonb").Scan(&dest)
356+
require.NoError(t, err)
357+
require.Nil(t, dest)
358+
})
359+
}

0 commit comments

Comments
 (0)