diff --git a/postgresql/local_test.go b/postgresql/local_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..0a17bbe835e71ed50bda2db2240691c1959bfbf0
--- /dev/null
+++ b/postgresql/local_test.go
@@ -0,0 +1,83 @@
+package postgresql
+
+import (
+	"database/sql"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"upper.io/db.v2"
+)
+
+func TestStringAndInt64Array(t *testing.T) {
+	sess := mustOpen()
+	driver := sess.Driver().(*sql.DB)
+
+	defer func() {
+		driver.Exec(`DROP TABLE IF EXISTS array_types`)
+		sess.Close()
+	}()
+
+	if _, err := driver.Exec(`
+		CREATE TABLE array_types (
+			id serial primary key,
+			integers bigint[] DEFAULT NULL,
+			strings varchar(64)[]
+		)`); err != nil {
+		assert.NoError(t, err)
+	}
+
+	arrayTypes := sess.Collection("array_types")
+	err := arrayTypes.Truncate()
+	assert.NoError(t, err)
+
+	type arrayType struct {
+		ID       int64    `db:"id,pk"`
+		Integers []int64  `db:"integers,int64array"`
+		Strings  []string `db:"strings,stringarray"`
+	}
+
+	tt := []arrayType{
+		// Test nil arrays.
+		arrayType{
+			ID:       1,
+			Integers: nil,
+			Strings:  nil,
+		},
+
+		// Test empty arrays.
+		arrayType{
+			ID:       2,
+			Integers: []int64{},
+			Strings:  []string{},
+		},
+
+		// Test non-empty arrays.
+		arrayType{
+			ID:       3,
+			Integers: []int64{1, 2, 3},
+			Strings:  []string{"1", "2", "3"},
+		},
+	}
+
+	for _, item := range tt {
+		id, err := arrayTypes.Insert(item)
+		assert.NoError(t, err)
+
+		if pk, ok := id.(int64); !ok || pk == 0 {
+			t.Fatalf("Expecting an ID.")
+		}
+
+		var itemCheck arrayType
+		err = arrayTypes.Find(db.Cond{"id": id}).One(&itemCheck)
+		assert.NoError(t, err)
+		assert.Len(t, itemCheck.Integers, len(item.Integers))
+		assert.Len(t, itemCheck.Strings, len(item.Strings))
+
+		// Check nil/zero values just to make sure that the arrays won't
+		// be JSON-marshalled into `null` instead of empty array `[]`.
+		assert.NotNil(t, itemCheck.Integers)
+		assert.NotNil(t, itemCheck.Strings)
+		assert.NotZero(t, itemCheck.Integers)
+		assert.NotZero(t, itemCheck.Strings)
+	}
+}