bvinc / go-sqlite-lite Goto Github PK
View Code? Open in Web Editor NEWSQLite driver for the Go programming language
License: BSD 3-Clause "New" or "Revised" License
SQLite driver for the Go programming language
License: BSD 3-Clause "New" or "Revised" License
I noticed during the import, that go.mod is missing in your main branch.
require (
github.com/bvinc/go-sqlite-lite/sqlite v0.6.1
github.com/jmoiron/sqlx v1.2.0
)
go: finding github.com/bvinc/go-sqlite-lite/sqlite3 v0.6.1
go: github.com/bvinc/go-sqlite-lite/[email protected]: unknown revision sqlite3/v0.6.1
go: error loading module requirements
require (
github.com/bvinc/go-sqlite-lite v0.6.1
github.com/jmoiron/sqlx v1.2.0
)
Fails also because your master branch points to your root but go seems to chock on getting a sub directory when there is no clear go.mod present. to indicate its a package.
Note: Go v1.12
I keep seeing the error message stating ..."additionally rolling back transaction failed" when getting an error in a transaction. It the database it appears the rollback does work properly. Is it possible there is just a "reporting" logic error in the code? My thinking is in the "WithTx" like code blocks.
For example the function:
func (c *Conn) WithTx(f func() error) error {
if err := c.Begin(); err != nil {
return fmt.Errorf("failed to begin transaction: %v", err)
}
// Perform work inside the transaction
err := f()
if err != nil {
err2 := c.Rollback()
if err2 != nil {
return err
}
return fmt.Errorf("%v, additionally rolling back transaction failed: %v", err, err2)
}
if err = c.Commit(); err != nil {
return fmt.Errorf("failed to commit transaction: %v", err)
}
return nil
}
Shouldn't the "return fmt.Errorf("%v, additionally rolling back transaction failed: %v", err, err2)" line be swapped with the "return err" line two lines prior?
# go get -v github.com/bvinc/go-sqlite-lite/sqlite3
github.com/bvinc/go-sqlite-lite/sqlite3
# github.com/bvinc/go-sqlite-lite/sqlite3ld: error: undefined symbol: log
>>> referenced by sqlite3.c:204010
>>> $WORK/b001/_x008.o:(fts5Bm25Function)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
sqlite3 3.31.1 installed.
Any suggestions on what I should try? Thank you!
From the docs of Stmt.Scan
Scan retrieves data from the current row, storing successive column values into successive arguments. If the last argument is an instance of RowMap, then all remaining column/value pairs are assigned into the map. The same row may be scanned multiple times. Nil arguments are silently skipped. https://www.sqlite.org/c3ref/column_blob.html
I haven't been able to figure out where RowMap
type is defined.
Please can you point me to it?
Thanks.
How do I get a date and time value from a query result?
There is no official support for date and time types,
but values can be stored in other data types.
https://www.sqlite.org/datatype3.html
package main
import (
"github.com/bvinc/go-sqlite-lite/sqlite3"
)
func main() {
conn, err := sqlite3.Open(":memory:")
if err != nil {
panic(err)
}
defer conn.Close()
err = conn.Exec(`CREATE TABLE tab(v STRING);`)
if err != nil {
}
expected := "321918894090929759e4334912136650"
err = conn.Exec(`INSERT INTO tab(v) VALUES (?);`, expected)
if err != nil {
panic(err)
}
stmt, err := conn.Prepare(`SELECT v FROM tab;`)
if err != nil {
panic(err)
}
defer stmt.Close()
hasRow, err := stmt.Step()
if err != nil {
panic(err)
}
if !hasRow {
panic("no row")
}
var v string
err = stmt.Scan(&v)
if err != nil {
panic(err)
}
if v != expected {
panic(v)
}
}
Hello,
When you have a chance, an upgrade to the latest SQLite woul be appreciated. It has a new diacritic option for FTS.
Btw, I am considering switching to this module. The features sound great. It's possible I will inevitably. Do you have any benchmarks compared to the other driver and for example sqlx? It'd greatly help on deciding if I'd prefer to switch sooner or later.
package main
import (
"fmt"
"testing"
"github.com/bvinc/go-sqlite-lite/sqlite3"
)
var (
conn, _ = sqlite3.Open("Chinook_Sqlite.sqlite")
createTemp, _ = conn.Prepare(`CREATE TEMP TABLE IF NOT EXISTS inTable_INTEGER (data INTEGER NOT NULL)`)
dropTemp, _ = conn.Prepare(`DROP TABLE inTable_INTEGER`)
insertTemp, _ = conn.Prepare(`INSERT INTO inTable_INTEGER (data) VALUES (?)`)
customer, _ = conn.Prepare(`SELECT FirstName FROM Customer WHERE CustomerId IN (SELECT data FROM temp.inTable_INTEGER)`)
ids = []interface{}{34, 99, 9, 87, 61, 92, 58, 8, 40, 49, 12, 83, 74, 44, 27, 21, 12, 23, 38, 7, 53, 72, 75, 69, 66, 97, 72, 2, 48, 83}
)
func TestInsert(t *testing.T) {
var res []interface{}
conn.WithTx(func() error {
if err := createTemp.Exec(); err != nil {
t.Error(err)
}
for _, v := range ids {
if err := insertTemp.Exec(v); err != nil {
t.Error(err)
}
}
for {
hasRow, _ := customer.Step()
if !hasRow {
break
}
var r interface{}
customer.Scan(&r)
res = append(res, r)
}
dropTemp.Exec()
customer.Reset()
return nil
})
fmt.Println(len(res))
}
go test -v
gives the error below for the line insertTemp.Exec(v)
[tapir@collin sql-builder]$ go test -v
=== RUN TestInsert
--- FAIL: TestInsert (0.00s)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x4f9ee4]
goroutine 5 [running]:
testing.tRunner.func1(0xc0000b2100)
/usr/lib/go/src/testing/testing.go:792 +0x387
panic(0x5c1360, 0x6f7b40)
/usr/lib/go/src/runtime/panic.go:513 +0x1b9
github.com/bvinc/go-sqlite-lite/sqlite3.(*Stmt).Bind(0x0, 0xc000044670, 0x1, 0x1, 0x0, 0x0)
/home/tapir/Documents/Go/pkg/mod/github.com/bvinc/[email protected]/sqlite3/sqlite3.go:826 +0x604
github.com/bvinc/go-sqlite-lite/sqlite3.(*Stmt).Exec(0x0, 0xc000044670, 0x1, 0x1, 0x0, 0x0)
/home/tapir/Documents/Go/pkg/mod/github.com/bvinc/[email protected]/sqlite3/sqlite3.go:794 +0x4d
gitlab.com/tapir/sql-builder.TestInsert.func1(0xc00008c360, 0x0)
/home/tapir/Documents/sql-builder/sqlite_test.go:26 +0x14b
github.com/bvinc/go-sqlite-lite/sqlite3.(*Conn).WithTx(0xc00008c360, 0xc000044780, 0x6d1c50, 0x22)
/home/tapir/Documents/Go/pkg/mod/github.com/bvinc/[email protected]/sqlite3/sqlite3.go:474 +0xd3
gitlab.com/tapir/sql-builder.TestInsert(0xc0000b2100)
/home/tapir/Documents/sql-builder/sqlite_test.go:21 +0x7d
testing.tRunner(0xc0000b2100, 0x5eff18)
/usr/lib/go/src/testing/testing.go:827 +0xbf
created by testing.(*T).Run
/usr/lib/go/src/testing/testing.go:878 +0x35c
exit status 2
FAIL gitlab.com/tapir/sql-builder 0.005s
How can I acquire a Backup
instance?
The method newBackup(…)
in backup.go
is not exported.
How can we use the online backup?
Matthias
I ran into an issue trying to use this. FWIW I have been using github.com/mattn/go-sqlite3
, in case that could lead to some kind of conflict. Unfortunately, I'm pretty ignorant as far as c, clang, etc.
$ go version
go version go1.10 darwin/amd64
$ go test ./... -v
? github.com/technoweenie/PROJECT [no test files]
# github.com/technoweenie/PROJECT/sqlite (testmain)
/usr/local/Cellar/go/1.10/libexec/pkg/tool/darwin_amd64/link: running clang failed: exit status 1
duplicate symbol _sqlite3_stmt_busy in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_mutex_try in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_temp_directory in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_data_directory in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_release_memory in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_release_memory in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_stmt_readonly in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_readonly in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_mutex in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_parameter_index in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_new in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_aggregate_context in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_text in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_text in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_text in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_text in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_busy_timeout in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_interrupt in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_backup_pagecount in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_parameter_count in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_count in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_keyword_count in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_data_count in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_wal_autocheckpoint in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_wal_checkpoint in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_int in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_int in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_int in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_int in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_next_stmt in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_os_init in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_backup_init in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_get_autocommit in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_soft_heap_limit in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_limit in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_reset in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_reset in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_compileoption_get in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vtab_on_conflict in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_stmt_status in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_status in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_status in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_randomness in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_clear_bindings in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_bytes in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_bytes in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_blob_bytes in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_total_changes in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_changes in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_extended_result_codes in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_errstr in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_error in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vfs_unregister in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vfs_register in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_pointer in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_pointer in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_pointer in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_mutex_enter in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_uri_parameter in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_memory_highwater in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_busy_handler in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_libversion_number in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_appendchar in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_dup in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_stricmp in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_strnicmp in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_backup_step in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_step in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_sleep in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_system_errno in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_shutdown in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_create_function in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_overload_function in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_create_collation in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vtab_collation in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_libversion in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_version in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_reset_auto_extension in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_cancel_auto_extension in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_auto_extension in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_blob_reopen in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_blob_open in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_open in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_uri_boolean in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_error_nomem in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_expanded_sql in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_sql in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_test_control in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_file_control in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_null in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_null in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_appendall in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_commit_hook in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_wal_hook in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_rollback_hook in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_update_hook in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_keyword_check in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_rtree_geometry_callback in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_rtree_query_callback in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_length in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_cacheflush in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_finish in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_backup_finish in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_errmsg in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_log in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_backup_remaining in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_config in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vtab_config in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_config in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_error_toobig in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vsnprintf in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_snprintf in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vmprintf in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_mprintf in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_vappendf in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_appendf in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_msize in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_finalize in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_initialize in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_mutex_leave in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_value in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_value in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_value in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_value in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_blob_write in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_complete in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_blob_close in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_close in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_prepare in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_decltype in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_subtype in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_subtype in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_type in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_type in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_numeric_type in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_filename in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_parameter_name in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_name in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_keyword_name in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_create_module in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_context_db_handle in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_db_handle in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_double in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_double in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_double in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_double in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_get_table in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_free_table in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_strlike in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_enable_shared_cache in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_nochange in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vtab_nochange in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_threadsafe in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_mutex_free in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_free in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_free in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_errcode in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_extended_errcode in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_errcode in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_error_code in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_vfs_find in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_str_append in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_os_end in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_set_last_insert_rowid in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_last_insert_rowid in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_sourceid in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_memory_used in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_compileoption_used in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_collation_needed in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_blob_read in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_malloc in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_realloc in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_mutex_alloc in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_exec in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_strglob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_zeroblob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_zeroblob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_blob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_blob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_blob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_blob in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_declare_vtab in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_set_auxdata in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_get_auxdata in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_table_column_metadata in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_user_data in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_bytes16 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_bytes16 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_text64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_text64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_int64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_column_int64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_uri_int64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_value_int64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_int64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_soft_heap_limit64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_status64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_malloc64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_realloc64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_zeroblob64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_zeroblob64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_result_blob64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_bind_blob64 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_prepare_v3 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_wal_checkpoint_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_create_function_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_create_collation_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_open_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_close_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_prepare_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
duplicate symbol _sqlite3_create_module_v2 in:
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000010.o
/var/folders/lx/sbnqntj56ql_2nklfjnm4njc0000gn/T/go-link-456712420/000017.o
ld: 211 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Hi, just wondering if/when SQLite version will be upgraded to 3.26.0?
Is it possible to have this: https://www.sqlite.org/vtab.html ?
In section 1.2 - Implementation it refers to the needed methods to create custom modules to create virtual tables.
Are there any plans to update your library to the current SQLite version (3.31.1 as of January 2020)?
Had to abandon a SQLite based approach due to this issue. Does this driver suffer the same issue?
commits >100k records in transaction. always run into this at some point
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x40abad1]
goroutine 35 [running]:
github.com/bvinc/go-sqlite-lite/sqlite3.(*Conn).exec.func1(0x0, 0xc0029680a0, 0x0)
/Users/bwang/work/gobrindexer/src/github.com/bvinc/go-sqlite-lite/sqlite3/sqlite3.go:670 +0x31
github.com/bvinc/go-sqlite-lite/sqlite3.(*Conn).exec(0x0, 0xc0029680a0, 0x0, 0x0)
/Users/bwang/work/gobrindexer/src/github.com/bvinc/go-sqlite-lite/sqlite3/sqlite3.go:670 +0x41
github.com/bvinc/go-sqlite-lite/sqlite3.(*Conn).Exec(0x0, 0xc0029680a0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0)
/Users/bwang/work/gobrindexer/src/github.com/bvinc/go-sqlite-lite/sqlite3/sqlite3.go:416 +0xd5
cray.com/brindexer/db.SqliteWrapper.Database(0xc0000a46c0, 0x25, 0x0, 0xc000097890, 0xc00009a3a8, 0x44802, 0x0)
Trying the package and got this error:
# github.com/bvinc/go-sqlite-lite/sqlite3 /tmp/go-build295887014/b071/_x007.o: En la función
fts5Bm25GetData':
../../../github.com/bvinc/go-sqlite-lite/sqlite3/lib/sqlite3.c:193601: referencia a log' sin definir collect2: error: ld returned 1 exit status FAIL bitbucket.org/marcos19/horarios [build failed]
When I try to cross compile my project which uses go-sqlite-lite
, I get the following output:
➜ GOOS=linux GOARCH=amd64 go build -o bin/application ./cmd/rgserver
extern/sqlite/sqllite_reader.go:8:2: build constraints exclude all Go files in <GOPATH>/go/src/my-company-domain.in/modules/revgeo/vendor/github.com/bvinc/go-sqlite-lite/sqlite3
My understanding is that this problem originated from use of CGO. I solved it by using https://github.com/karalabe/xgo (https://github.com/mitchellh/gox did not work):
xgo -targets=linux/amd64 ./cmd/rgserver
Checking docker installation...
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:21:31 2018
OS/Arch: darwin/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:29:02 2018
OS/Arch: linux/amd64
Experimental: true
Checking for required docker image karalabe/xgo-latest... found.
Cross compiling my-company-domain/modules/revgeo/cmd/rgserver...
Building locallymy-company-domain/modules/revgeo/cmd/rgserver...
Compiling for linux/amd64...
Cleaning up build environment...
Do you think it would make sense to add a note to the readme regarding this?
Go module vendoring does not seem to support C files in a sub directory:
This means I keep getting
./sqlite3.h:5:10: fatal error: lib/sqlite3.h: No such file or directory
#include "lib/sqlite3.h"
^~~~~~~~~~~~~~~
because the lib directory is not included by go 1.11 vendoring
I've been playing around with this brilliant library for a bit and while its really easy to use I've found it hard to troubleshoot because pretty much every error I get is the very generic sqlite3: SQL logic error [1]
no matter if its an invalid query or something else.
Is it possible to get more specific errors? It seems to me that sqlite is able to give more helpful error messages (like in this stack overflow question).
Could it be a compile flag missing or something with my go compiler? I tried different DEBUG flags but with no difference. But I'm also pretty new when it comes to sqlite and compiling C code in general so I might just be doing it wrong.
Thanks for making this!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.