Last active
November 5, 2025 15:35
-
-
Save glenjamin/883a0b6e9225ca6c2e6a6c8fb91c9f7c to your computer and use it in GitHub Desktop.
Postgres slice value/scanning
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| services: | |
| postgres: | |
| image: "postgres:16.3" | |
| environment: | |
| POSTGRES_HOST_AUTH_METHOD: trust | |
| PGUSER: postgres # make it so `exec psql` works | |
| ports: | |
| - "127.0.0.1:5432:5432" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module github.com/geckoboard/pgx-slices | |
| go 1.24.9 | |
| require ( | |
| github.com/duckdb/duckdb-go/v2 v2.5.1 | |
| github.com/jackc/pgx/v5 v5.7.6 | |
| github.com/lib/pq v1.10.9 | |
| ) | |
| require ( | |
| github.com/apache/arrow-go/v18 v18.4.1 // indirect | |
| github.com/duckdb/duckdb-go-bindings v0.1.22 // indirect | |
| github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.22 // indirect | |
| github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.22 // indirect | |
| github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.22 // indirect | |
| github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.22 // indirect | |
| github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.22 // indirect | |
| github.com/duckdb/duckdb-go/arrowmapping v0.0.24 // indirect | |
| github.com/duckdb/duckdb-go/mapping v0.0.24 // indirect | |
| github.com/go-viper/mapstructure/v2 v2.4.0 // indirect | |
| github.com/goccy/go-json v0.10.5 // indirect | |
| github.com/google/flatbuffers v25.2.10+incompatible // indirect | |
| github.com/google/uuid v1.6.0 // indirect | |
| github.com/jackc/pgpassfile v1.0.0 // indirect | |
| github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect | |
| github.com/jackc/puddle/v2 v2.2.2 // indirect | |
| github.com/klauspost/compress v1.18.0 // indirect | |
| github.com/klauspost/cpuid/v2 v2.3.0 // indirect | |
| github.com/pierrec/lz4/v4 v4.1.22 // indirect | |
| github.com/zeebo/xxh3 v1.0.2 // indirect | |
| golang.org/x/crypto v0.37.0 // indirect | |
| golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect | |
| golang.org/x/mod v0.27.0 // indirect | |
| golang.org/x/sync v0.16.0 // indirect | |
| golang.org/x/sys v0.35.0 // indirect | |
| golang.org/x/text v0.28.0 // indirect | |
| golang.org/x/tools v0.36.0 // indirect | |
| golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect | |
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= | |
| github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= | |
| github.com/apache/arrow-go/v18 v18.4.1 h1:q/jVkBWCJOB9reDgaIZIdruLQUb1kbkvOnOFezVH1C4= | |
| github.com/apache/arrow-go/v18 v18.4.1/go.mod h1:tLyFubsAl17bvFdUAy24bsSvA/6ww95Iqi67fTpGu3E= | |
| github.com/apache/thrift v0.22.0 h1:r7mTJdj51TMDe6RtcmNdQxgn9XcyfGDOzegMDRg47uc= | |
| github.com/apache/thrift v0.22.0/go.mod h1:1e7J/O1Ae6ZQMTYdy9xa3w9k+XHWPfRvdPyJeynQ+/g= | |
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | |
| github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= | |
| github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | |
| github.com/duckdb/duckdb-go-bindings v0.1.22 h1:TnkBfSS+UAyOWT6NazyZ+bWDcA+ft8S3Hl+c1SNOkcc= | |
| github.com/duckdb/duckdb-go-bindings v0.1.22/go.mod h1:pBnfviMzANT/9hi4bg+zW4ykRZZPCXlVuvBWEcZofkc= | |
| github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.22 h1:kL5Om34dyDt08jtwOqJcjZRf1H2hrjd5ZrhXPNcXrj0= | |
| github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.22/go.mod h1:Ezo7IbAfB8NP7CqPIN8XEHKUg5xdRRQhcPPlCXImXYA= | |
| github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.22 h1:uaQhaTl8+Oz12kSYIkIf1OTWyzCm1CrtYgZoEytciBI= | |
| github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.22/go.mod h1:eS7m/mLnPQgVF4za1+xTyorKRBuK0/BA44Oy6DgrGXI= | |
| github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.22 h1:yKH78pbt7TtLekdyIePbIM0+gGrMpbj4EnblcqxHOB4= | |
| github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.22/go.mod h1:1GOuk1PixiESxLaCGFhag+oFi7aP+9W8byymRAvunBk= | |
| github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.22 h1:swAVmk7h5PmGTXvwd5q0mNcZlMFGiaCcDnuuyqmSd0E= | |
| github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.22/go.mod h1:o7crKMpT2eOIi5/FY6HPqaXcvieeLSqdXXaXbruGX7w= | |
| github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.22 h1:5PC3g7h0KA3kuN6GrEb+NDe0SP561CH+QrsEi1n3iZ0= | |
| github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.22/go.mod h1:IlOhJdVKUJCAPj3QsDszUo8DVdvp1nBFp4TUJVdw99s= | |
| github.com/duckdb/duckdb-go/arrowmapping v0.0.24 h1:D+uRf9vIbT0OOcyuhtXgIL1RI9N5VlTt8kRxP4SpQbc= | |
| github.com/duckdb/duckdb-go/arrowmapping v0.0.24/go.mod h1:lkSShVua0s9FrRtx5EgLvEItyuoKdL4zP6pjL2J485Y= | |
| github.com/duckdb/duckdb-go/mapping v0.0.24 h1:w1I5JuTMFWdRqBzfmJ2fpefEEVaNgBnuho6kuGIJ9pM= | |
| github.com/duckdb/duckdb-go/mapping v0.0.24/go.mod h1:syxQeEWTeGb8JqdyfVPvlpJepdyliVM88EauJPxggto= | |
| github.com/duckdb/duckdb-go/v2 v2.5.1 h1:KDGqhQfXkjlV5pRxbxY3HpRUd6sip5HS9XOL6s0qQbs= | |
| github.com/duckdb/duckdb-go/v2 v2.5.1/go.mod h1:DRMOapsta2PlFZtlWrxyC5CqucD0q5GZH/KRkTTnPUU= | |
| github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= | |
| github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= | |
| github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= | |
| github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= | |
| github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= | |
| github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | |
| github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= | |
| github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= | |
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | |
| github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | |
| github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | |
| github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | |
| github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= | |
| github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= | |
| github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= | |
| github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= | |
| github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk= | |
| github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M= | |
| github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= | |
| github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= | |
| github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= | |
| github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= | |
| github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= | |
| github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= | |
| github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= | |
| github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= | |
| github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= | |
| github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | |
| github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= | |
| github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= | |
| github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= | |
| github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= | |
| github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= | |
| github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= | |
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | |
| github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= | |
| github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | |
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | |
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | |
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | |
| github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8= | |
| github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= | |
| github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= | |
| github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= | |
| github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= | |
| github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= | |
| golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= | |
| golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= | |
| golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= | |
| golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= | |
| golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= | |
| golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= | |
| golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= | |
| golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= | |
| golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= | |
| golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= | |
| golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= | |
| golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= | |
| golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= | |
| golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= | |
| golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= | |
| golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= | |
| gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= | |
| gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= | |
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | |
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | |
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | |
| gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package main | |
| import ( | |
| "database/sql" | |
| "fmt" | |
| _ "github.com/duckdb/duckdb-go/v2" | |
| "github.com/jackc/pgx/v5/pgtype" | |
| _ "github.com/jackc/pgx/v5/stdlib" | |
| "github.com/lib/pq" | |
| _ "github.com/lib/pq" | |
| ) | |
| var typemap = pgtype.NewMap() | |
| type stringList []string | |
| func (s *stringList) Scan(src any) error { | |
| switch v := src.(type) { | |
| case string: | |
| var result []string | |
| err := typemap.SQLScanner(&result).Scan(src) | |
| if err != nil { | |
| return err | |
| } | |
| *s = result | |
| case []byte: | |
| var result pq.StringArray | |
| if err := result.Scan(src); err != nil { | |
| return err | |
| } | |
| *s = []string(result) | |
| case []any: | |
| *s = make(stringList, len(v)) | |
| for i, vv := range v { | |
| (*s)[i] = vv.(string) | |
| } | |
| } | |
| return nil | |
| } | |
| func main() { | |
| pgx, err := sql.Open("pgx", | |
| "postgres://postgres:postgres@localhost/postgres?sslmode=disable") | |
| noError(err) | |
| test("pgx", pgx) | |
| duck, err := sql.Open("duckdb", "") | |
| noError(err) | |
| test("duckdb", duck) | |
| pq, err := sql.Open("postgres2", | |
| "postgres://postgres:postgres@localhost/postgres?sslmode=disable") | |
| noError(err) | |
| test("lib/pq", pq) | |
| } | |
| func test(label string, db *sql.DB) { | |
| println(label) | |
| _, err := db.Exec("CREATE TABLE IF NOT EXISTS a(i INT, xs VARCHAR[])") | |
| noError(err) | |
| _, err = db.Exec("TRUNCATE TABLE a") | |
| noError(err) | |
| _, err = db.Exec("INSERT INTO a VALUES($1, $2)", 1, stringList{"a", "b"}) | |
| noError(err) | |
| _, err = db.Exec("INSERT INTO a VALUES($1, $2)", 2, nil) | |
| noError(err) | |
| var result1 []string | |
| err = db.QueryRow("SELECT xs FROM a WHERE i = $1 limit 1", 1).Scan(&result1) | |
| logError("slice scan", err) | |
| fmt.Printf("slice scan result: %#v\n", result1) | |
| var result2 stringList | |
| err = db.QueryRow("SELECT xs FROM a WHERE i = $1 limit 1", 1).Scan(&result2) | |
| logError("stringList scan", err) | |
| fmt.Printf("stringList scan result: %#v\n", result2) | |
| } | |
| func noError(err error) { | |
| if err != nil { | |
| panic(err) | |
| } | |
| } | |
| func logError(op string, err error) { | |
| if err != nil { | |
| fmt.Printf("%s error: %#v\n", op, err) | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package main | |
| import ( | |
| "database/sql" | |
| "database/sql/driver" | |
| "github.com/lib/pq" | |
| ) | |
| type Driver struct { | |
| } | |
| func (d *Driver) Open(name string) (driver.Conn, error) { | |
| conn, err := pq.Open(name) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return &Conn{conn}, nil | |
| } | |
| type Conn struct { | |
| driver.Conn | |
| } | |
| func (c Conn) CheckNamedValue(value *driver.NamedValue) (err error) { | |
| switch v := value.Value.(type) { | |
| case []string: | |
| value.Value, err = pq.StringArray(v).Value() | |
| return err | |
| case stringList: | |
| value.Value, err = pq.StringArray(v).Value() | |
| return err | |
| } | |
| return driver.ErrSkip | |
| } | |
| func init() { | |
| sql.Register("postgres2", &Driver{}) | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment