MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / NewSqlite

Function NewSqlite

xenomint/sqlite/sqlite.go:96–136  ·  view source on GitHub ↗

NewSqlite returns a new SQLite3 instance attached to filename.

(filename string)

Source from the content-addressed store, hash-verified

94
95// NewSqlite returns a new SQLite3 instance attached to filename.
96func NewSqlite(filename string) (s *SQLite3, err error) {
97 var (
98 instance = &SQLite3{filename: filename}
99 shmRODSN string
100 privRODSN string
101 shmRWDSN string
102 dsn *storage.DSN
103 )
104
105 if dsn, err = storage.NewDSN(filename); err != nil {
106 return
107 }
108
109 dsnRO := dsn.Clone()
110 dsnRO.AddParam("_journal_mode", "WAL")
111 dsnRO.AddParam("_query_only", "on")
112 dsnRO.AddParam("cache", "shared")
113 shmRODSN = dsnRO.Format()
114
115 dsnPrivRO := dsn.Clone()
116 dsnPrivRO.AddParam("_journal_mode", "WAL")
117 dsnPrivRO.AddParam("_query_only", "on")
118 privRODSN = dsnPrivRO.Format()
119
120 dsnSHMRW := dsn.Clone()
121 dsnSHMRW.AddParam("_journal_mode", "WAL")
122 dsnSHMRW.AddParam("cache", "shared")
123 shmRWDSN = dsnSHMRW.Format()
124
125 if instance.dirtyReader, err = sql.Open(dirtyReadDriver, shmRODSN); err != nil {
126 return
127 }
128 if instance.reader, err = sql.Open(serializableDriver, privRODSN); err != nil {
129 return
130 }
131 if instance.writer, err = sql.Open(serializableDriver, shmRWDSN); err != nil {
132 return
133 }
134 s = instance
135 return
136}
137
138// DirtyReader implements DirtyReader method of the xenomint/interfaces.Storage interface.
139func (s *SQLite3) DirtyReader() *sql.DB {

Callers 2

TestStorageFunction · 0.85
setupBenchmarkStorageFunction · 0.85

Calls 5

NewDSNFunction · 0.92
AddParamMethod · 0.80
CloneMethod · 0.45
FormatMethod · 0.45
OpenMethod · 0.45

Tested by 2

TestStorageFunction · 0.68
setupBenchmarkStorageFunction · 0.68