apache / apache/arrow-adbc

Support writing Polars DataFrame with string column to Snowflake

Open
#3,420 0 comments 0 reactions 0 assignees View on GitHub
Type: enhancement
Dominant language
C#
Stars
627
Forks
217
Avg merge
17h
Merged PRs (30d)
57

Description

### What feature or improvement would you like to see?

Consider the below example
```python
from adbc_driver_snowflake.dbapi import connect

import polars as pl

uri = "..."

df = pl.DataFrame({"a": ["abbc"]})
print("Polars schema:", df.schema)

tbl = df.to_arrow()
print("PyArrow schema:", tbl.schema, end="\n\n")

with connect(uri) as conn, conn.cursor() as cur:
cur.adbc_ingest("pyarrow_example", tbl, mode="replace")
print("Done PyArrow", end="\n\n")

cur.adbc_ingest("polars_example", df, mode="replace")
print("Done Polars")

```

With the following output
```
Polars schema: Schema([('a', String)])
PyArrow schema: a: large_string

Done PyArrow

Traceback (most recent call last):
File "/home/henry/development/repro.py", line 18, in
cur.adbc_ingest("polars_example", df, mode="replace")
File "/home/henry/.cache/uv/archive-v0/QPIZqoC73YGhx3Z4FJteF/lib/python3.11/site-packages/adbc_driver_manager/dbapi.py", line 974, in adbc_ingest
return _blocking_call(self._stmt.execute_update, (), {}, self._stmt.cancel)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "adbc_driver_manager/_lib.pyx", line 1674, in adbc_driver_manager._lib._blocking_call_impl
File "adbc_driver_manager/_lib.pyx", line 1667, in adbc_driver_manager._lib._blocking_call_impl
File "adbc_driver_manager/_lib.pyx", line 1391, in adbc_driver_manager._lib.AdbcStatement.execute_update
File "adbc_driver_manager/_lib.pyx", line 261, in adbc_driver_manager._lib.check_error
adbc_driver_manager.InternalError: INTERNAL: not implemented: support for STRING_VIEW
```

Clearly this fails due to the Polars string_view column, but works for PyArrow's large_string

Going further, passing a PyArrow table with a string view causes a segmentation fault

```python
import pyarrow as pa
from adbc_driver_snowflake.dbapi import connect

uri = "..."
tbl = pa.Table.from_pydict(
{"a": pa.array(["abc"])},
schema=pa.schema([("a", pa.string_view())]),
)
with connect(uri) as conn, conn.cursor() as cur:
cur.adbc_ingest("pyarrow_string_view_example", tbl, mode="replace")
```

Traceback

```
SIGSEGV: segmentation violation
PC=0x709f4dd5d33b m=3 sigcode=1 addr=0x18
signal arrived during cgo execution

goroutine 27 gp=0xc000103340 m=3 mp=0xc00008d008 [syscall]:
runtime.cgocall(0x709f3dcebde0, 0xc000723da0)
/usr/local/go/src/runtime/cgocall.go:167 +0x4b fp=0xc000723d78 sp=0xc000723d40 pc=0x709f3c72fbeb
github.com/apache/arrow-go/v18/arrow/cdata._Cfunc_stream_get_next(0x5990e870a980, 0x5990e874a7a0)
_cgo_gotypes.go:553 +0x4a fp=0xc000723da0 sp=0xc000723d78 pc=0x709f3dc6014a
github.com/apache/arrow-go/v18/arrow/cdata.(*nativeCRecordBatchReader).next.func3(...)
/root/go/pkg/mod/github.com/apache/arrow-go/v18@v18.3.1/arrow/cdata/cdata.go:997
github.com/apache/arrow-go/v18/arrow/cdata.(*nativeCRecordBatchReader).next(0xc00073c500)
/root/go/pkg/mod/github.com/apache/arrow-go/v18@v18.3.1/arrow/cdata/cdata.go:997 +0x1dd fp=0xc000723e30 sp=0xc000723da0 pc=0x709f3dc685fd
github.com/apache/arrow-go/v18/arrow/cdata.(*nativeCRecordBatchReader).Next(0xc00073c500)
/root/go/pkg/mod/github.com/apache/arrow-go/v18@v18.3.1/arrow/cdata/cdata.go:965 +0x1c fp=0xc000723e68 sp=0xc000723e30 pc=0x709f3dc6837c
github.com/apache/arrow-adbc/go/adbc/driver/snowflake.readRecords({0x709f3e42c898, 0xc0002ac460}, {0x709f34581b48, 0xc00073c500}, 0xc0003a3a40)
/adbc/go/adbc/driver/snowflake/bulk_ingestion.go:314 +0x9e fp=0xc000723f20 sp=0xc000723e68 pc=0x709f3dc3f27e
github.com/apache/arrow-adbc/go/adbc/driver/snowflake.(*statement).ingestStream.func3()
/adbc/go/adbc/driver/snowflake/bulk_ingestion.go:248 +0x31 fp=0xc000723f58 sp=0xc000723f20 pc=0x709f3dc3e9b1
golang.org/x/sync/errgroup.(*Group).add.func1()
/root/go/pkg/mod/golang.org/x/sync@v0.15.0/errgroup/errgroup.go:128 +0x7e fp=0xc000723fe0 sp=0xc000723f58 pc=0x709f3cea099e
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000723fe8 sp=0xc000723fe0 pc=0x709f3c73af01
created by golang.org/x/sync/errgroup.(*Group).add in goroutine 17
/root/go/pkg/mod/golang.org/x/sync@v0.15.0/errgroup/errgroup.go:96 +0x76

goroutine 17 gp=0xc0000028c0 m=nil [select, locked to thread]:
runtime.gopark(0xc00021c028?, 0x5?, 0x8c?, 0xf6?, 0xc00021beb6?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc00021bd40 sp=0xc00021bd20 pc=0x709f3c732f6e
runtime.selectgo(0xc00021c028, 0xc00021beac, 0x709f3dcfaeac?, 0x0, 0x709f3ccaefe0?, 0x1)
/usr/local/go/src/runtime/select.go:351 +0x837 fp=0xc00021be78 sp=0xc00021bd40 pc=0x709f3c7125b7
net/http.(*persistConn).roundTrip(0xc00032b320, 0xc0002ac5a0)
/usr/local/go/src/net/http/transport.go:2826 +0x785 fp=0xc00021c098 sp=0xc00021be78 pc=0x709f3ccb80a5
net/http.(*Transport).roundTrip(0x709f3f363980, 0xc000568640)
/usr/local/go/src/net/http/transport.go:696 +0xb9a fp=0xc00021c290 sp=0xc00021c098 pc=0x709f3ccac29a
net/http.(*Transport).RoundTrip(0xc000568640?, 0x709f3e4111c0?)
/usr/local/go/src/net/http/roundtrip.go:30 +0x13 fp=0xc00021c2b0 sp=0xc00021c290 pc=0x709f3ccbb533
net/http.send(0xc000568500, {0x709f3e4111c0, 0x709f3f363980}, {0xc00021c401?, 0x709f3c7645d3?, 0x709f3f442b20?})
/usr/local/go/src/net/http/client.go:259 +0x5e2 fp=0xc00021c4a0 sp=0xc00021c2b0 pc=0x709f3cc6db22
net/http.(*Client).send(0xc0003f30e0, 0xc000568500, {0x709f3f5655c0?, 0x30?, 0x709f3f442b20?})
/usr/local/go/src/net/http/client.go:180 +0x91 fp=0xc00021c518 sp=0xc00021c4a0 pc=0x709f3cc6d3d1
net/http.(*Client).do(0xc0003f30e0, 0xc000568500)
/usr/local/go/src/net/http/client.go:728 +0x989 fp=0xc00021c708 sp=0xc00021c518 pc=0x709f3cc6f9e9
net/http.(*Client).Do(0x709f3e314d80?, 0xc000567ef0?)
/usr/local/go/src/net/http/client.go:587 +0x13 fp=0xc00021c728 sp=0xc00021c708 pc=0x709f3cc6f033
github.com/snowflakedb/gosnowflake.(*retryHTTP).execute(0xc00021ca38)
/root/go/pkg/mod/github.com/snowflakedb/gosnowflake@v1.14.1/retry.go:323 +0x42a fp=0xc00021ca28 sp=0xc00021c728 pc=0x709f3db8f80a
github.com/snowflakedb/gosnowflake.postRestful({0x709f3e42c860?, 0xc000567a40?}, 0x709f3e1fc040?, 0xc00025c828?, 0x12?, {0xc000514420, 0x159, 0x160}, 0x709f3e1fc040?, {0x709f3e4110c0, ...}, ...)
/root/go/pkg/mod/github.com/snowflakedb/gosnowflake@v1.14.1/restful.go:164 +0x174 fp=0xc00021cac0 sp=0xc00021ca28 pc=0x709f3db894b4
github.com/snowflakedb/gosnowflake.postRestfulQueryHelper({0x709f3e42c860, 0xc000567a40}, 0xc0003f81a0, 0xc000284440, 0xc000567bf0, {0xc000514420, 0x159, 0x160}, 0x0, {0xa, ...}, ...)
/root/go/pkg/mod/github.com/snowflakedb/gosnowflake@v1.14.1/restful.go:236 +0x426 fp=0xc00021cd08 sp=0xc00021cac0 pc=0x709f3db89e46
github.com/snowflakedb/gosnowflake.postRestfulQuery({0x709f3e42c860?, 0xc000567a40?}, 0xc0003f81a0, 0x709f3f5655c0?, 0x3f004000480030?, {0xc000514420?, 0x709f3c6d6d2c?, 0x709f34780a78?}, 0x0, {0xa, ...}, ...)
/root/go/pkg/mod/github.com/snowflakedb/gosnowflake@v1.14.1/restful.go:203 +0x65 fp=0xc00021cdb0 sp=0xc00021cd08 pc=0x709f3db89865
github.com/snowflakedb/gosnowflake.(*snowflakeConn).exec(0xc000211a40, {0x709f3e42c860, 0xc000567a40}, {0x709f3dd4e64c, 0xb7}, 0x0, 0x0, 0x0, {0x0, 0x0, ...})
/root/go/pkg/mod/github.com/snowflakedb/gosnowflake@v1.14.1/connection.go:149 +0x950 fp=0xc00021d080 sp=0xc00021cdb0 pc=0x709f3db396d0
github.com/snowflakedb/gosnowflake.(*snowflakeConn).ExecContext(0xc000211a40, {0x709f3e42c860, 0xc0003f2cf0}, {0x709f3dd4e64c, 0xb7}, {0x0, 0x0, 0x0})
/root/go/pkg/mod/github.com/snowflakedb/gosnowflake@v1.14.1/connection.go:328 +0x23f fp=0xc00021da18 sp=0xc00021d080 pc=0x709f3db3ad1f
github.com/apache/arrow-adbc/go/adbc/driver/snowflake.(*statement).ingestStream(0xc0003f9450, {0x709f3e42c860, 0xc0003f2cf0})
/adbc/go/adbc/driver/snowflake/bulk_ingestion.go:270 +0x6af fp=0xc00021dbd8 sp=0xc00021da18 pc=0x709f3dc3e54f
github.com/apache/arrow-adbc/go/adbc/driver/snowflake.(*statement).executeIngest(0xc0003f9450, {0x709f3e42c860, 0xc0003f2cf0})
/adbc/go/adbc/driver/snowflake/statement.go:470 +0x7d fp=0xc00021dc38 sp=0xc00021dbd8 pc=0x709f3dc59bfd
github.com/apache/arrow-adbc/go/adbc/driver/snowflake.(*statement).ExecuteUpdate(0xc0003f9450, {0x709f3e42c898?, 0xc000329d60?})
/adbc/go/adbc/driver/snowflake/statement.go:558 +0x407 fp=0xc00021dd98 sp=0xc00021dc38 pc=0x709f3dc5ab87
github.com/apache/arrow-adbc/go/adbc/driver/internal/driverbase.(*statement).ExecuteUpdate(0xc0003f2c30?, {0x709f3e42c898?, 0xc000329d60?})
:1 +0x2e fp=0xc00021ddc0 sp=0xc00021dd98 pc=0x709f3dc3730e
main.SnowflakeStatementExecuteQuery(0x709f3c6cfc12?, 0x0, 0x7fff7cf0e788, 0x7fff7cf0e7c0)
/adbc/go/adbc/pkg/snowflake/driver.go:1525 +0x16f fp=0xc00021de40 sp=0xc00021ddc0 pc=0x709f3dc7924f
_cgoexp_25b906e807ef_SnowflakeStatementExecuteQuery(0x7fff7cf0e720)
_cgo_gotypes.go:1097 +0x2a fp=0xc00021de70 sp=0xc00021de40 pc=0x709f3dc7cdaa
runtime.cgocallbackg1(0x709f3dc7cd80, 0x7fff7cf0e720, 0x0)
/usr/local/go/src/runtime/cgocall.go:444 +0x28b fp=0xc00021df28 sp=0xc00021de70 pc=0x709f3c6ce1cb
runtime.cgocallbackg(0x709f3dc7cd80, 0x7fff7cf0e720, 0x0)
/usr/local/go/src/runtime/cgocall.go:350 +0x13a fp=0xc00021df90 sp=0xc00021df28 pc=0x709f3c6cde5a
runtime.cgocallbackg(0x709f3dc7cd80, 0x7fff7cf0e720, 0x0)
:1 +0x2b fp=0xc00021dfb8 sp=0xc00021df90 pc=0x709f3c73d66b
runtime.cgocallback(0x0, 0x0, 0x0)
/usr/local/go/src/runtime/asm_amd64.s:1084 +0xcd fp=0xc00021dfe0 sp=0xc00021dfb8 pc=0x709f3c73acad
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00021dfe8 sp=0xc00021dfe0 pc=0x709f3c73af01

goroutine 2 gp=0xc000002e00 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000086fa8 sp=0xc000086f88 pc=0x709f3c732f6e
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:441
runtime.forcegchelper()
/usr/local/go/src/runtime/proc.go:348 +0xb8 fp=0xc000086fe0 sp=0xc000086fa8 pc=0x709f3c700498
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000086fe8 sp=0xc000086fe0 pc=0x709f3c73af01
created by runtime.init.7 in goroutine 1
/usr/local/go/src/runtime/proc.go:336 +0x1a

goroutine 3 gp=0xc000003340 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000087780 sp=0xc000087760 pc=0x709f3c732f6e
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:441
runtime.bgsweep(0xc000040100)
/usr/local/go/src/runtime/mgcsweep.go:316 +0xdf fp=0xc0000877c8 sp=0xc000087780 pc=0x709f3c6ea89f
runtime.gcenable.gowrap1()
/usr/local/go/src/runtime/mgc.go:204 +0x25 fp=0xc0000877e0 sp=0xc0000877c8 pc=0x709f3c6dec85
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000877e8 sp=0xc0000877e0 pc=0x709f3c73af01
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:204 +0x66

goroutine 4 gp=0xc000003500 m=nil [GC scavenge wait]:
runtime.gopark(0x10000?, 0x709f3dfa6050?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000087f78 sp=0xc000087f58 pc=0x709f3c732f6e
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:441
runtime.(*scavengerState).park(0x709f3f442c20)
/usr/local/go/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000087fa8 sp=0xc000087f78 pc=0x709f3c6e82e9
runtime.bgscavenge(0xc000040100)
/usr/local/go/src/runtime/mgcscavenge.go:658 +0x59 fp=0xc000087fc8 sp=0xc000087fa8 pc=0x709f3c6e8879
runtime.gcenable.gowrap2()
/usr/local/go/src/runtime/mgc.go:205 +0x25 fp=0xc000087fe0 sp=0xc000087fc8 pc=0x709f3c6dec25
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000087fe8 sp=0xc000087fe0 pc=0x709f3c73af01
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:205 +0xa5

goroutine 18 gp=0xc000102700 m=nil [finalizer wait]:
runtime.gopark(0x0?, 0x709f3e403890?, 0x0?, 0x80?, 0x2000000020?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000086630 sp=0xc000086610 pc=0x709f3c732f6e
runtime.runfinq()
/usr/local/go/src/runtime/mfinal.go:196 +0x107 fp=0xc0000867e0 sp=0xc000086630 pc=0x709f3c6ddc47
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000867e8 sp=0xc0000867e0 pc=0x709f3c73af01
created by runtime.createfing in goroutine 1
/usr/local/go/src/runtime/mfinal.go:166 +0x3d

goroutine 19 gp=0xc000102e00 m=nil [chan receive]:
runtime.gopark(0xc000128820?, 0xc000780030?, 0x60?, 0x27?, 0x709f3cb70de8?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000082718 sp=0xc0000826f8 pc=0x709f3c732f6e
runtime.chanrecv(0xc0001100e0, 0x0, 0x1)
/usr/local/go/src/runtime/chan.go:664 +0x445 fp=0xc000082790 sp=0xc000082718 pc=0x709f3c6d0085
runtime.chanrecv1(0x0?, 0x0?)
/usr/local/go/src/runtime/chan.go:506 +0x12 fp=0xc0000827b8 sp=0xc000082790 pc=0x709f3c6cfc12
runtime.unique_runtime_registerUniqueMapCleanup.func2(...)
/usr/local/go/src/runtime/mgc.go:1796
runtime.unique_runtime_registerUniqueMapCleanup.gowrap1()
/usr/local/go/src/runtime/mgc.go:1799 +0x2f fp=0xc0000827e0 sp=0xc0000827b8 pc=0x709f3c6e1e2f
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000827e8 sp=0xc0000827e0 pc=0x709f3c73af01
created by unique.runtime_registerUniqueMapCleanup in goroutine 1
/usr/local/go/src/runtime/mgc.go:1794 +0x85

goroutine 37 gp=0xc000102fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x1?, 0x0?, 0xc0000837b8?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000083738 sp=0xc000083718 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0000837c8 sp=0xc000083738 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0000837e0 sp=0xc0000837c8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000837e8 sp=0xc0000837e0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 5 gp=0xc000103180 m=nil [IO wait]:
runtime.gopark(0xc000786c80?, 0x0?, 0x14?, 0x8f?, 0xb?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000096768 sp=0xc000096748 pc=0x709f3c732f6e
runtime.netpollblock(0x709f3c7535f8?, 0x3c6cd4a6?, 0x9f?)
/usr/local/go/src/runtime/netpoll.go:575 +0xf7 fp=0xc0000967a0 sp=0xc000096768 pc=0x709f3c6f8897
internal/poll.runtime_pollWait(0x709f3f4cdcc8, 0x72)
/usr/local/go/src/runtime/netpoll.go:351 +0x85 fp=0xc0000967c0 sp=0xc0000967a0 pc=0x709f3c732185
internal/poll.(*pollDesc).wait(0xc000399200?, 0xc0002dc000?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0000967e8 sp=0xc0000967c0 pc=0x709f3c7b8807
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000399200, {0xc0002dc000, 0x2000, 0x2000})
/usr/local/go/src/internal/poll/fd_unix.go:165 +0x27a fp=0xc000096880 sp=0xc0000967e8 pc=0x709f3c7b9afa
net.(*netFD).Read(0xc000399200, {0xc0002dc000?, 0x709f34619d18?, 0x6?})
/usr/local/go/src/net/fd_posix.go:55 +0x25 fp=0xc0000968c8 sp=0xc000096880 pc=0x709f3cb91be5
net.(*conn).Read(0xc000284018, {0xc0002dc000?, 0x709f34619d18?, 0x709f3f5655c0?})
/usr/local/go/src/net/net.go:194 +0x45 fp=0xc000096910 sp=0xc0000968c8 pc=0x709f3cba16e5
crypto/tls.(*atLeastReader).Read(0xc00060c5e8, {0xc0002dc000?, 0x1ffb?, 0x600000000?})
/usr/local/go/src/crypto/tls/conn.go:809 +0x3b fp=0xc000096958 sp=0xc000096910 pc=0x709f3cc0173b
bytes.(*Buffer).ReadFrom(0xc0002b22b8, {0x709f3e413c40, 0xc00060c5e8})
/usr/local/go/src/bytes/buffer.go:211 +0x98 fp=0xc0000969b0 sp=0xc000096958 pc=0x709f3c7e05d8
crypto/tls.(*Conn).readFromUntil(0xc0002b2008, {0x709f3e412960, 0xc000284018}, 0x709f3c6fbf74?)
/usr/local/go/src/crypto/tls/conn.go:831 +0xde fp=0xc0000969e8 sp=0xc0000969b0 pc=0x709f3cc0191e
crypto/tls.(*Conn).readRecordOrCCS(0xc0002b2008, 0x0)
/usr/local/go/src/crypto/tls/conn.go:629 +0x3cf fp=0xc000096c60 sp=0xc0000969e8 pc=0x709f3cbfea2f
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:591
crypto/tls.(*Conn).Read(0xc0002b2008, {0xc0002ea000, 0x1000, 0xc0003f3bf0?})
/usr/local/go/src/crypto/tls/conn.go:1385 +0x145 fp=0xc000096cc8 sp=0xc000096c60 pc=0x709f3cc05205
net/http.(*persistConn).Read(0xc00032b320, {0xc0002ea000?, 0x709f3ccad8a5?, 0x709f3e4103d8?})
/usr/local/go/src/net/http/transport.go:2122 +0x47 fp=0xc000096d28 sp=0xc000096cc8 pc=0x709f3ccb4da7
bufio.(*Reader).fill(0xc0006809c0)
/usr/local/go/src/bufio/bufio.go:113 +0x103 fp=0xc000096d60 sp=0xc000096d28 pc=0x709f3c948943
bufio.(*Reader).Peek(0xc0006809c0, 0x1)
/usr/local/go/src/bufio/bufio.go:152 +0x53 fp=0xc000096d80 sp=0xc000096d60 pc=0x709f3c948a73
net/http.(*persistConn).readLoop(0xc00032b320)
/usr/local/go/src/net/http/transport.go:2275 +0x172 fp=0xc000096fc8 sp=0xc000096d80 pc=0x709f3ccb58b2
net/http.(*Transport).dialConn.gowrap2()
/usr/local/go/src/net/http/transport.go:1944 +0x25 fp=0xc000096fe0 sp=0xc000096fc8 pc=0x709f3ccb42e5
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000096fe8 sp=0xc000096fe0 pc=0x709f3c73af01
created by net/http.(*Transport).dialConn in goroutine 22
/usr/local/go/src/net/http/transport.go:1944 +0x174f

goroutine 6 gp=0xc000103500 m=nil [runnable]:
runtime.(*_panic).nextDefer(0xc000097c98?)
/usr/local/go/src/runtime/panic.go:863 +0x17a fp=0xc000097c80 sp=0xc000097c78 pc=0x709f3c6fc5da
runtime.deferreturn()
/usr/local/go/src/runtime/panic.go:606 +0x68 fp=0xc000097d10 sp=0xc000097c80 pc=0x709f3c6fbf88
net/http.(*Request).write(0xc000568780, {0x709f3e410720, 0xc0007a0f80}, 0x0, 0xc000702060, 0x0)
/usr/local/go/src/net/http/request.go:773 +0xbd3 fp=0xc000097eb8 sp=0xc000097d10 pc=0x709f3cc98ef3
net/http.(*persistConn).writeLoop(0xc00032b320)
/usr/local/go/src/net/http/transport.go:2593 +0x174 fp=0xc000097fc8 sp=0xc000097eb8 pc=0x709f3ccb7254
net/http.(*Transport).dialConn.gowrap3()
/usr/local/go/src/net/http/transport.go:1945 +0x25 fp=0xc000097fe0 sp=0xc000097fc8 pc=0x709f3ccb4285
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000097fe8 sp=0xc000097fe0 pc=0x709f3c73af01
created by net/http.(*Transport).dialConn in goroutine 22
/usr/local/go/src/net/http/transport.go:1945 +0x17a5

goroutine 38 gp=0xc0002f2700 m=nil [GC worker (idle)]:
runtime.gopark(0x74b5677f52a?, 0x3?, 0xf0?, 0x56?, 0xc000082fb8?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc000082f38 sp=0xc000082f18 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc000082fc8 sp=0xc000082f38 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc000082fe0 sp=0xc000082fc8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000082fe8 sp=0xc000082fe0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 39 gp=0xc0002f28c0 m=nil [GC worker (idle)]:
runtime.gopark(0x709f3f467e80?, 0x1?, 0x89?, 0x1b?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc0004a2738 sp=0xc0004a2718 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0004a27c8 sp=0xc0004a2738 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0004a27e0 sp=0xc0004a27c8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0004a27e8 sp=0xc0004a27e0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 40 gp=0xc0002f2a80 m=nil [GC worker (idle)]:
runtime.gopark(0x74b5677ddba?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc0004a2f38 sp=0xc0004a2f18 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0004a2fc8 sp=0xc0004a2f38 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0004a2fe0 sp=0xc0004a2fc8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0004a2fe8 sp=0xc0004a2fe0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 41 gp=0xc0002f2c40 m=nil [GC worker (idle)]:
runtime.gopark(0x74b5677e652?, 0x1?, 0x60?, 0x3b?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc0004a3738 sp=0xc0004a3718 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0004a37c8 sp=0xc0004a3738 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0004a37e0 sp=0xc0004a37c8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0004a37e8 sp=0xc0004a37e0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 42 gp=0xc0002f2e00 m=nil [GC worker (idle)]:
runtime.gopark(0x74b5677e58a?, 0x3?, 0xd4?, 0x49?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc0004a3f38 sp=0xc0004a3f18 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0004a3fc8 sp=0xc0004a3f38 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0004a3fe0 sp=0xc0004a3fc8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0004a3fe8 sp=0xc0004a3fe0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 43 gp=0xc0002f2fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x74b5677ecf6?, 0x1?, 0xbc?, 0x2?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc0004a4738 sp=0xc0004a4718 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0004a47c8 sp=0xc0004a4738 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0004a47e0 sp=0xc0004a47c8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0004a47e8 sp=0xc0004a47e0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 44 gp=0xc0002f3180 m=nil [GC worker (idle)]:
runtime.gopark(0x74b5677e652?, 0x3?, 0x20?, 0x1c?, 0x0?)
/usr/local/go/src/runtime/proc.go:435 +0xce fp=0xc0004a4f38 sp=0xc0004a4f18 pc=0x709f3c732f6e
runtime.gcBgMarkWorker(0xc0002a42a0)
/usr/local/go/src/runtime/mgc.go:1423 +0xe9 fp=0xc0004a4fc8 sp=0xc0004a4f38 pc=0x709f3c6e1149
runtime.gcBgMarkStartWorkers.gowrap1()
/usr/local/go/src/runtime/mgc.go:1339 +0x25 fp=0xc0004a4fe0 sp=0xc0004a4fc8 pc=0x709f3c6e1025
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0004a4fe8 sp=0xc0004a4fe0 pc=0x709f3c73af01
created by runtime.gcBgMarkStartWorkers in goroutine 35
/usr/local/go/src/runtime/mgc.go:1339 +0x105

goroutine 28 gp=0xc000537880 m=nil [runnable]:
golang.org/x/sync/errgroup.(*Group).add.func1()
/root/go/pkg/mod/golang.org/x/sync@v0.15.0/errgroup/errgroup.go:96 fp=0xc0000887e0 sp=0xc0000887d8 pc=0x709f3cea0920
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000887e8 sp=0xc0000887e0 pc=0x709f3c73af01
created by golang.org/x/sync/errgroup.(*Group).add in goroutine 17
/root/go/pkg/mod/golang.org/x/sync@v0.15.0/errgroup/errgroup.go:96 +0x76

rax 0x709ee0001438
rbx 0x5990e829b260
rcx 0x709ee0001430
rdx 0x0
rdi 0x0
rsi 0x0
rbp 0x709ee0001270
rsp 0x709eebffe710
r8 0x0
r9 0x0
r10 0x0
r11 0x709ee0000080
r12 0x5990e829b260
r13 0x1
r14 0x0
r15 0x709ee00013f0
rip 0x709f4dd5d33b
rflags 0x10202
cs 0x33
fs 0x0
gs 0x0

-----

```

This request is to support writing a string_view column to Snowflake, OR to convert Polars string_view columns to large_string, (like `polars.DataFrame.to_arrow()` does by default) when writing to snowflake

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.