sql - golang database Open function ambiguity -
sql - golang database Open function ambiguity -
in go, invoke database open
db, err = sql.open("sqlite3", "./bar.db") this returns database of type *sql.db, function , type both members of database/sql.
however, in sqlite3 driver package, there open function returns *sqlite3.conn type.
i've noticed of functions defined in sqlite3 driver bundle not work on database opened using default database/sql.
additionally, there functions in sqlite3 bundle similar database/sql's functions, namely query , exec, homecoming different types.
database/sql contains func query returns type *sql.rows.
mxk/sqlite/sqlite3 , mattn/go-sqlite3 both have query function, homecoming different types.
i want run functions such mxk/sqlite/sqlite3's busytimeout on database connection, isn't right type. have re-write of code open database connection sqlite3 driver instead of using database/sql's open? what's advantage of database/sql's open function if can't utilize of driver's functions generic connection?
well, docs state...
database connections created either using bundle straight or "sqlite3" database/sql driver. direct interface, described below, exposes sqlite-specific features, such incremental i/o , online backups. driver recommended when application has back upwards multiple database engines.
... utilize sqlite3 connection when want sqlite specific functions (your usecase) , generic database connections utilize database driver (your code).
that logical, since how generic driver handle functions specific various databases? runtime errors?
so have choice: sqlite functions -> sqlite conn or handle multiple sql databases -> generic driver.
sql sqlite sqlite3 go
Comments
Post a Comment