Repository navigation
cannot use &env{} (value of type *env) as sqlite3_wasm.Xenv value in variable declaratio #4399
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Version
1.31.0
What happened?
Since the latest sqlc update I get the following error when running generate with a sqlite database.
Not sure if this is an issue of github.com/ncruces/go-sqlite3@v0.33.3 (which this package introduces) or this package.
I guess this also happens of go get -u where all dependencies are updated as well
Relevant log output
go tool sqlc generate
# github.com/ncruces/go-sqlite3
../../go/pkg/mod/github.com/ncruces/go-sqlite3@v0.33.3/wrap.go:31:27: cannot use &env{} (value of type *env) as sqlite3_wasm.Xenv value in variable declaration: *env does not implement interface{Xacos(v0 float64) float64; Xacosh(v0 float64) float64; Xasin(v0 float64) float64; Xasinh(v0 float64) float64; Xatan(v0 float64) float64; Xatan2(v0 float64, v1 float64) float64; Xatanh(v0 float64) float64; Xcos(v0 float64) float64; Xcosh(v0 float64) float64; Xexit(v0 int32); Xexp(v0 float64) float64; Xfclose(v0 int32) int32; Xfflush(v0 int32) int32; Xfmod(v0 float64, v1 float64) float64; Xfopen(v0 int32, v1 int32) int32; Xfputc(v0 int32, v1 int32) int32; Xfread(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xfseek(v0 int32, v1 int32, v2 int32) int32; Xftell(v0 int32) int32; Xfwrite(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_access(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_authorizer(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_autovacuum_pages(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_busy_handler(v0 int32, v1 int32) int32; Xgo_busy_timeout(v0 int32, v1 int32) int32; Xgo_check_reserved_lock(v0 int32, v1 int32) int32; Xgo_close(v0 int32) int32; Xgo_collation_needed(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_commit_hook(v0 int32) int32; Xgo_compare(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_close(v0 int32) int32; Xgo_cur_column(v0 int32, v1 int32, v2 int32) int32; Xgo_cur_eof(v0 int32) int32; Xgo_cur_filter(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_next(v0 int32) int32; Xgo_cur_open(v0 int32, v1 int32) int32; Xgo_cur_rowid(v0 int32, v1 int32) int32; Xgo_current_time_64(v0 int32, v1 int32) int32; Xgo_delete(v0 int32, v1 int32, v2 int32) int32; Xgo_destroy(v0 int32); Xgo_device_characteristics(v0 int32) int32; Xgo_file_control(v0 int32, v1 int32, v2 int32) int32; Xgo_file_size(v0 int32, v1 int32) int32; Xgo_full_pathname(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_func(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_inverse(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_localtime(v0 int32, v1 int64) int32; Xgo_lock(v0 int32, v1 int32) int32; Xgo_log(v0 int32, v1 int32, v2 int32); Xgo_open(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_progress_handler(v0 int32) int32; Xgo_randomness(v0 int32, v1 int32, v2 int32) int32; Xgo_read(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xgo_rollback_hook(v0 int32); Xgo_sector_size(v0 int32) int32; Xgo_shm_barrier(v0 int32); Xgo_shm_lock(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_shm_map(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_shm_unmap(v0 int32, v1 int32) int32; Xgo_sleep(v0 int32, v1 int32) int32; Xgo_step(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32); Xgo_sync(v0 int32, v1 int32) int32; Xgo_trace(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_truncate(v0 int32, v1 int64) int32; Xgo_unlock(v0 int32, v1 int32) int32; Xgo_update_hook(v0 int32, v1 int32, v2 int32, v3 int32, v4 int64); Xgo_value(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_vfs_find(v0 int32) int32; Xgo_vtab_begin(v0 int32) int32; Xgo_vtab_best_index(v0 int32, v1 int32) int32; Xgo_vtab_commit(v0 int32) int32; Xgo_vtab_connect(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_create(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_destroy(v0 int32) int32; Xgo_vtab_disconnect(v0 int32) int32; Xgo_vtab_find_function(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_vtab_integrity(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_release(v0 int32, v1 int32) int32; Xgo_vtab_rename(v0 int32, v1 int32) int32; Xgo_vtab_rollback(v0 int32) int32; Xgo_vtab_rollback_to(v0 int32, v1 int32) int32; Xgo_vtab_savepoint(v0 int32, v1 int32) int32; Xgo_vtab_sync(v0 int32) int32; Xgo_vtab_update(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_wal_hook(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_write(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xlog(v0 float64) float64; Xlog10(v0 float64) float64; Xlog2(v0 float64) float64; Xmemchr(v0 int32, v1 int32, v2 int32) int32; Xmemcmp(v0 int32, v1 int32, v2 int32) int32; Xmemory() sqlite3_wasm.Memory; Xpow(v0 float64, v1 float64) float64; Xputs(v0 int32) int32; Xsin(v0 float64) float64; Xsinh(v0 float64) float64; Xstrchr(v0 int32, v1 int32) int32; Xstrchrnul(v0 int32, v1 int32) int32; Xstrcmp(v0 int32, v1 int32) int32; Xstrcpy(v0 int32, v1 int32) int32; Xstrcspn(v0 int32, v1 int32) int32; Xstrlen(v0 int32) int32; Xstrncmp(v0 int32, v1 int32, v2 int32) int32; Xstrrchr(v0 int32, v1 int32) int32; Xstrspn(v0 int32, v1 int32) int32; Xstrstr(v0 int32, v1 int32) int32; Xstrtol(v0 int32, v1 int32, v2 int32) int32; Xsystem(v0 int32) int32; Xtan(v0 float64) float64; Xtanh(v0 float64) float64} (missing method Xstrtol)
../../go/pkg/mod/github.com/ncruces/go-sqlite3@v0.33.3/wrap.go:45:32: cannot use env (variable of type *env) as sqlite3_wasm.Xenv value in argument to sqlite3_wasm.New: *env does not implement interface{Xacos(v0 float64) float64; Xacosh(v0 float64) float64; Xasin(v0 float64) float64; Xasinh(v0 float64) float64; Xatan(v0 float64) float64; Xatan2(v0 float64, v1 float64) float64; Xatanh(v0 float64) float64; Xcos(v0 float64) float64; Xcosh(v0 float64) float64; Xexit(v0 int32); Xexp(v0 float64) float64; Xfclose(v0 int32) int32; Xfflush(v0 int32) int32; Xfmod(v0 float64, v1 float64) float64; Xfopen(v0 int32, v1 int32) int32; Xfputc(v0 int32, v1 int32) int32; Xfread(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xfseek(v0 int32, v1 int32, v2 int32) int32; Xftell(v0 int32) int32; Xfwrite(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_access(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_authorizer(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_autovacuum_pages(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_busy_handler(v0 int32, v1 int32) int32; Xgo_busy_timeout(v0 int32, v1 int32) int32; Xgo_check_reserved_lock(v0 int32, v1 int32) int32; Xgo_close(v0 int32) int32; Xgo_collation_needed(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_commit_hook(v0 int32) int32; Xgo_compare(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_close(v0 int32) int32; Xgo_cur_column(v0 int32, v1 int32, v2 int32) int32; Xgo_cur_eof(v0 int32) int32; Xgo_cur_filter(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_cur_next(v0 int32) int32; Xgo_cur_open(v0 int32, v1 int32) int32; Xgo_cur_rowid(v0 int32, v1 int32) int32; Xgo_current_time_64(v0 int32, v1 int32) int32; Xgo_delete(v0 int32, v1 int32, v2 int32) int32; Xgo_destroy(v0 int32); Xgo_device_characteristics(v0 int32) int32; Xgo_file_control(v0 int32, v1 int32, v2 int32) int32; Xgo_file_size(v0 int32, v1 int32) int32; Xgo_full_pathname(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_func(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_inverse(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_localtime(v0 int32, v1 int64) int32; Xgo_lock(v0 int32, v1 int32) int32; Xgo_log(v0 int32, v1 int32, v2 int32); Xgo_open(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32, v5 int32) int32; Xgo_progress_handler(v0 int32) int32; Xgo_randomness(v0 int32, v1 int32, v2 int32) int32; Xgo_read(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xgo_rollback_hook(v0 int32); Xgo_sector_size(v0 int32) int32; Xgo_shm_barrier(v0 int32); Xgo_shm_lock(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_shm_map(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_shm_unmap(v0 int32, v1 int32) int32; Xgo_sleep(v0 int32, v1 int32) int32; Xgo_step(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32); Xgo_sync(v0 int32, v1 int32) int32; Xgo_trace(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_truncate(v0 int32, v1 int64) int32; Xgo_unlock(v0 int32, v1 int32) int32; Xgo_update_hook(v0 int32, v1 int32, v2 int32, v3 int32, v4 int64); Xgo_value(v0 int32, v1 int32, v2 int32, v3 int32); Xgo_vfs_find(v0 int32) int32; Xgo_vtab_begin(v0 int32) int32; Xgo_vtab_best_index(v0 int32, v1 int32) int32; Xgo_vtab_commit(v0 int32) int32; Xgo_vtab_connect(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_create(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_destroy(v0 int32) int32; Xgo_vtab_disconnect(v0 int32) int32; Xgo_vtab_find_function(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_vtab_integrity(v0 int32, v1 int32, v2 int32, v3 int32, v4 int32) int32; Xgo_vtab_release(v0 int32, v1 int32) int32; Xgo_vtab_rename(v0 int32, v1 int32) int32; Xgo_vtab_rollback(v0 int32) int32; Xgo_vtab_rollback_to(v0 int32, v1 int32) int32; Xgo_vtab_savepoint(v0 int32, v1 int32) int32; Xgo_vtab_sync(v0 int32) int32; Xgo_vtab_update(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_wal_hook(v0 int32, v1 int32, v2 int32, v3 int32) int32; Xgo_write(v0 int32, v1 int32, v2 int32, v3 int64) int32; Xlog(v0 float64) float64; Xlog10(v0 float64) float64; Xlog2(v0 float64) float64; Xmemchr(v0 int32, v1 int32, v2 int32) int32; Xmemcmp(v0 int32, v1 int32, v2 int32) int32; Xmemory() sqlite3_wasm.Memory; Xpow(v0 float64, v1 float64) float64; Xputs(v0 int32) int32; Xsin(v0 float64) float64; Xsinh(v0 float64) float64; Xstrchr(v0 int32, v1 int32) int32; Xstrchrnul(v0 int32, v1 int32) int32; Xstrcmp(v0 int32, v1 int32) int32; Xstrcpy(v0 int32, v1 int32) int32; Xstrcspn(v0 int32, v1 int32) int32; Xstrlen(v0 int32) int32; Xstrncmp(v0 int32, v1 int32, v2 int32) int32; Xstrrchr(v0 int32, v1 int32) int32; Xstrspn(v0 int32, v1 int32) int32; Xstrstr(v0 int32, v1 int32) int32; Xstrtol(v0 int32, v1 int32, v2 int32) int32; Xsystem(v0 int32) int32; Xtan(v0 float64) float64; Xtanh(v0 float64) float64} (missing method Xstrtol)Database schema
SQL queries
Configuration
Playground URL
No response
What operating system are you using?
Linux
What database engines are you using?
SQLite
What type of code are you generating?
Go
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
kyleconroy commentedon Apr 21, 2026
Can you try this with CGO_ENABLED=0?
I'm going to roll back to the previous version of the library.
kyleconroy commentedon Apr 21, 2026
Fix has been merged, will be releasing a point release
firefart commentedon Apr 21, 2026
Thanks! I guess this is because go-sqlite3 uses github.com/ncruces/go-sqlite3-wasm which seems not to be stable
firefart commentedon Apr 21, 2026
For reference, this might be fixed ncruces/go-sqlite3#378
kyleconroy commentedon Apr 22, 2026
Please upgrade to 1.31.1 to get a fix for this