mirror of
https://github.com/glebarez/go-sqlite.git
synced 2025-10-07 08:40:55 +08:00
Regenerate Linux using latest CCGO.
modified: generator.go modified: internal/bin/bin_linux_amd64.go modified: internal/mptest/mptest_linux_amd64.go new file: internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c modified: internal/threadtest1/threadtest1_linux_amd64.go modified: internal/threadtest2/threadtest2_linux_amd64.go modified: internal/threadtest3/threadtest3_linux_amd64.go modified: z_linux_test.go
This commit is contained in:
46
generator.go
46
generator.go
@@ -496,6 +496,50 @@ func mpTest() {
|
|||||||
cp(filepath.Join("testdata", tag), pth, "*.subtest")
|
cp(filepath.Join("testdata", tag), pth, "*.subtest")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func threadTest1() {
|
||||||
|
repo := findRepo(sqliteRepo)
|
||||||
|
if repo == "" {
|
||||||
|
log.Fatalf("repository not found: %v", sqliteRepo)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlitePth := filepath.Join(repo, "sqlite-amalgamation-"+version)
|
||||||
|
tag := "threadtest1"
|
||||||
|
test := filepath.Join("internal", "sqlite.org", "sqlite-src-3190300", "test", "threadtest1.c")
|
||||||
|
_, src := build(
|
||||||
|
defines,
|
||||||
|
[][]string{
|
||||||
|
{filepath.Join(sqlitePth, "sqlite3.c")},
|
||||||
|
{test},
|
||||||
|
},
|
||||||
|
[]string{"bin"},
|
||||||
|
cc.EnableAnonymousStructFields(),
|
||||||
|
cc.IncludePaths([]string{".", sqlitePth, filepath.Join(repo, "sqlite-src-"+version, "src")}),
|
||||||
|
)
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
fmt.Fprintf(&b, prologueTest, tidyComments(header(test)))
|
||||||
|
b.Write(src)
|
||||||
|
b2, err := format.Source(b.Bytes())
|
||||||
|
if err != nil {
|
||||||
|
b2 = b.Bytes()
|
||||||
|
}
|
||||||
|
if err := os.MkdirAll(filepath.Join("internal", tag), 0775); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := os.MkdirAll(filepath.Join("testdata", tag), 0775); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
dst := fmt.Sprintf(filepath.Join("internal", tag, tag+"_%s_%s.go"), runtime.GOOS, runtime.GOARCH)
|
||||||
|
if err := ioutil.WriteFile(dst, b2, 0664); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
unconvert(dst)
|
||||||
|
}
|
||||||
|
|
||||||
func threadTest(n int) {
|
func threadTest(n int) {
|
||||||
repo := findRepo(sqliteRepo)
|
repo := findRepo(sqliteRepo)
|
||||||
if repo == "" {
|
if repo == "" {
|
||||||
@@ -600,7 +644,7 @@ func main() {
|
|||||||
|
|
||||||
sqlite()
|
sqlite()
|
||||||
mpTest()
|
mpTest()
|
||||||
threadTest(1)
|
threadTest1()
|
||||||
threadTest(2)
|
threadTest(2)
|
||||||
threadTest3()
|
threadTest3()
|
||||||
threadTest(4)
|
threadTest(4)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -105,31 +105,31 @@ func Xmain(tls *crt.TLS, _argc int32, _argv **int8) (r0 int32) {
|
|||||||
}
|
}
|
||||||
_n = _argc - i32(2)
|
_n = _argc - i32(2)
|
||||||
bin.Xsqlite3_snprintf(tls, int32(u64(32)), (*int8)(unsafe.Pointer((*[32]int8)(unsafe.Pointer(&(_g.X8))))), str(152), crt.Xgetpid(tls))
|
bin.Xsqlite3_snprintf(tls, int32(u64(32)), (*int8)(unsafe.Pointer((*[32]int8)(unsafe.Pointer(&(_g.X8))))), str(152), crt.Xgetpid(tls))
|
||||||
_zJMode = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(164), i32(1))
|
_zJMode = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(164), i32(1))
|
||||||
_zNRep = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(176), i32(1))
|
_zNRep = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(176), i32(1))
|
||||||
if _zNRep != nil {
|
if _zNRep != nil {
|
||||||
_nRep = crt.Xatoi(tls, _zNRep)
|
_nRep = crt.Xatoi(tls, _zNRep)
|
||||||
}
|
}
|
||||||
if _nRep < i32(1) {
|
if _nRep < i32(1) {
|
||||||
_nRep = i32(1)
|
_nRep = i32(1)
|
||||||
}
|
}
|
||||||
*(**int8)(unsafe.Pointer(&(_g.X1))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(183), i32(1))
|
*(**int8)(unsafe.Pointer(&(_g.X1))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(183), i32(1))
|
||||||
_zClient = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(187), i32(1))
|
_zClient = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(187), i32(1))
|
||||||
*(**int8)(unsafe.Pointer(&(_g.X4))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(194), i32(1))
|
*(**int8)(unsafe.Pointer(&(_g.X4))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(194), i32(1))
|
||||||
*(**int8)(unsafe.Pointer(&(_g.X6))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(201), i32(1))
|
*(**int8)(unsafe.Pointer(&(_g.X6))) = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(201), i32(1))
|
||||||
_zTrace = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(205), i32(1))
|
_zTrace = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(205), i32(1))
|
||||||
if _zTrace != nil {
|
if _zTrace != nil {
|
||||||
*(*int32)(unsafe.Pointer(&(_g.X10))) = crt.Xatoi(tls, _zTrace)
|
*(*int32)(unsafe.Pointer(&(_g.X10))) = crt.Xatoi(tls, _zTrace)
|
||||||
}
|
}
|
||||||
if _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(211), i32(0)) != nil {
|
if _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(211), i32(0)) != nil {
|
||||||
*(*int32)(unsafe.Pointer(&(_g.X10))) = i32(0)
|
*(*int32)(unsafe.Pointer(&(_g.X10))) = i32(0)
|
||||||
}
|
}
|
||||||
_zTmout = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(217), i32(1))
|
_zTmout = _findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(217), i32(1))
|
||||||
if _zTmout != nil {
|
if _zTmout != nil {
|
||||||
_iTmout = crt.Xatoi(tls, _zTmout)
|
_iTmout = crt.Xatoi(tls, _zTmout)
|
||||||
}
|
}
|
||||||
*(*int32)(unsafe.Pointer(&(_g.X11))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(225), i32(0)) != nil)
|
*(*int32)(unsafe.Pointer(&(_g.X11))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(225), i32(0)) != nil)
|
||||||
*(*int32)(unsafe.Pointer(&(_g.X16))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(234), i32(0)) != nil)
|
*(*int32)(unsafe.Pointer(&(_g.X16))) = bool2int(_findOption(tls, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))), &_n, str(234), i32(0)) != nil)
|
||||||
if (_g.X4) != nil {
|
if (_g.X4) != nil {
|
||||||
*(**crt.XFILE)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_g.X5))))) = crt.Xfopen64(tls, _g.X4, str(239))
|
*(**crt.XFILE)(unsafe.Pointer((*unsafe.Pointer)(unsafe.Pointer(&(_g.X5))))) = crt.Xfopen64(tls, _g.X4, str(239))
|
||||||
goto _9
|
goto _9
|
||||||
@@ -243,7 +243,7 @@ _14:
|
|||||||
goto _38
|
goto _38
|
||||||
}
|
}
|
||||||
if _n > i32(0) {
|
if _n > i32(0) {
|
||||||
_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))))
|
_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))))
|
||||||
}
|
}
|
||||||
if (_g.X10) != 0 {
|
if (_g.X10) != 0 {
|
||||||
_logMessage(tls, str(573))
|
_logMessage(tls, str(573))
|
||||||
@@ -275,7 +275,7 @@ _38:
|
|||||||
_fatalError(tls, str(623))
|
_fatalError(tls, str(623))
|
||||||
}
|
}
|
||||||
if _n > i32(1) {
|
if _n > i32(1) {
|
||||||
_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))))))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))))
|
_unrecognizedArguments(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(0)))), _n, (**int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv))+uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(i32(2))*uintptr(unsafe.Pointer((**int8)(unsafe.Pointer(uintptr(8))))))))))))
|
||||||
}
|
}
|
||||||
_runSql(tls, str(647))
|
_runSql(tls, str(647))
|
||||||
_zScript = _readFile(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(2)))))
|
_zScript = _readFile(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv)) + 8*uintptr(i32(2)))))
|
||||||
@@ -372,7 +372,7 @@ _0:
|
|||||||
goto _3
|
goto _3
|
||||||
}
|
}
|
||||||
if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv0)) + 1*uintptr(_i)))) == i32(47) {
|
if int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_argv0)) + 1*uintptr(_i)))) == i32(47) {
|
||||||
_zTail = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_i))))))))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1))))))))
|
_zTail = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_argv0))+uintptr(_i))))) + uintptr(i32(1))))
|
||||||
}
|
}
|
||||||
_i += 1
|
_i += 1
|
||||||
goto _0
|
goto _0
|
||||||
@@ -423,7 +423,7 @@ _4:
|
|||||||
goto _10
|
goto _10
|
||||||
}
|
}
|
||||||
_11:
|
_11:
|
||||||
if ((*_z) != 0) && Xstrglob(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zGlob))-uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(1)))))))), _z) != 0 {
|
if ((*_z) != 0) && Xstrglob(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zGlob))-uintptr(i32(1)))), _z) != 0 {
|
||||||
*(*uintptr)(unsafe.Pointer(&_z)) += uintptr(1)
|
*(*uintptr)(unsafe.Pointer(&_z)) += uintptr(1)
|
||||||
goto _11
|
goto _11
|
||||||
}
|
}
|
||||||
@@ -677,7 +677,7 @@ _1:
|
|||||||
|
|
||||||
// Close output stream pOut if it is not stdout or stderr
|
// Close output stream pOut if it is not stdout or stderr
|
||||||
func _maybeClose(tls *crt.TLS, _pOut *crt.XFILE) {
|
func _maybeClose(tls *crt.TLS, _pOut *crt.XFILE) {
|
||||||
if (uintptr(unsafe.Pointer(_pOut)) != uintptr(Xstdout)) && (_pOut != (*crt.XFILE)(Xstderr)) {
|
if (unsafe.Pointer(_pOut) != Xstdout) && (_pOut != (*crt.XFILE)(Xstderr)) {
|
||||||
crt.Xfclose(tls, _pOut)
|
crt.Xfclose(tls, _pOut)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -926,7 +926,7 @@ func _stringAppend(tls *crt.TLS, _p *XString, _z *int8, _n int32) {
|
|||||||
*(**int8)(unsafe.Pointer(&(_p.X0))) = _1_zNew
|
*(**int8)(unsafe.Pointer(&(_p.X0))) = _1_zNew
|
||||||
*(*int32)(unsafe.Pointer(&(_p.X2))) = _1_nAlloc
|
*(*int32)(unsafe.Pointer(&(_p.X2))) = _1_nAlloc
|
||||||
_1:
|
_1:
|
||||||
crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_p.X0))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_p.X1)))))))), (unsafe.Pointer)(_z), uint64(_n))
|
crt.Xmemcpy(tls, (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_p.X0))+uintptr(_p.X1)))), (unsafe.Pointer)(_z), uint64(_n))
|
||||||
{
|
{
|
||||||
p := (*int32)(unsafe.Pointer(&(_p.X1)))
|
p := (*int32)(unsafe.Pointer(&(_p.X1)))
|
||||||
*p = (*p) + _n
|
*p = (*p) + _n
|
||||||
@@ -1100,7 +1100,7 @@ _0:
|
|||||||
goto _1
|
goto _1
|
||||||
}
|
}
|
||||||
_prevLine = _lineno
|
_prevLine = _lineno
|
||||||
_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii))))))), &_lineno)
|
_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii))), &_lineno)
|
||||||
if (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(_c))))))&int32(u16(8192))) != 0 || ((_c == i32(47)) && (int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zScript)) + 1*uintptr(_ii+i32(1))))) == i32(42))) {
|
if (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(_c))))))&int32(u16(8192))) != 0 || ((_c == i32(47)) && (int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_zScript)) + 1*uintptr(_ii+i32(1))))) == i32(42))) {
|
||||||
{
|
{
|
||||||
p := &_ii
|
p := &_ii
|
||||||
@@ -1118,15 +1118,15 @@ _0:
|
|||||||
goto _0
|
goto _0
|
||||||
}
|
}
|
||||||
if _ii > _iBegin {
|
if _ii > _iBegin {
|
||||||
_4_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iBegin)))))))))
|
_4_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_iBegin)))))
|
||||||
_evalSql(tls, &_sResult, _4_zSql)
|
_evalSql(tls, &_sResult, _4_zSql)
|
||||||
bin.Xsqlite3_free(tls, (unsafe.Pointer)(_4_zSql))
|
bin.Xsqlite3_free(tls, (unsafe.Pointer)(_4_zSql))
|
||||||
_iBegin = _ii + _len
|
_iBegin = _ii + _len
|
||||||
}
|
}
|
||||||
if (_g.X10) >= i32(2) {
|
if (_g.X10) >= i32(2) {
|
||||||
_logMessage(tls, str(2708), _len, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))
|
_logMessage(tls, str(2708), _len, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))
|
||||||
}
|
}
|
||||||
_n = _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(2)))))))), _len-i32(2), (*int8)(unsafe.Pointer(&_zCmd)), int32(u64(30)))
|
_n = _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(i32(2)))), _len-i32(2), (*int8)(unsafe.Pointer(&_zCmd)), int32(u64(30)))
|
||||||
_nArg = i32(0)
|
_nArg = i32(0)
|
||||||
_10:
|
_10:
|
||||||
if _n >= (_len-i32(2)) || _nArg >= i32(2) {
|
if _n >= (_len-i32(2)) || _nArg >= i32(2) {
|
||||||
@@ -1142,7 +1142,7 @@ _15:
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
p := &_n
|
p := &_n
|
||||||
*p = (*p) + _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(i32(2))))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), (_len-i32(2))-_n, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(_nArg))))), int32(u64(100)))
|
*p = (*p) + _extractToken(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(i32(2))))))+uintptr(_n))), (_len-i32(2))-_n, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(_nArg))))), int32(u64(100)))
|
||||||
sink1(*p)
|
sink1(*p)
|
||||||
}
|
}
|
||||||
_nArg += 1
|
_nArg += 1
|
||||||
@@ -1176,7 +1176,7 @@ _25:
|
|||||||
goto _28
|
goto _28
|
||||||
}
|
}
|
||||||
if (_g.X10) == i32(1) {
|
if (_g.X10) == i32(1) {
|
||||||
_logMessage(tls, str(2708), _len-i32(1), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))
|
_logMessage(tls, str(2708), _len-i32(1), unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))
|
||||||
}
|
}
|
||||||
_stringReset(tls, &_sResult)
|
_stringReset(tls, &_sResult)
|
||||||
goto _108
|
goto _108
|
||||||
@@ -1192,7 +1192,7 @@ _28:
|
|||||||
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2746)) != i32(0) {
|
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2746)) != i32(0) {
|
||||||
goto _36
|
goto _36
|
||||||
}
|
}
|
||||||
_12_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))
|
_12_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(_ii)))
|
||||||
_12_jj = i32(7)
|
_12_jj = i32(7)
|
||||||
_37:
|
_37:
|
||||||
if _12_jj >= (_len-i32(1)) || (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_zAns)) + 1*uintptr(_12_jj)))))))))&int32(u16(8192))) == 0 {
|
if _12_jj >= (_len-i32(1)) || (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_12_zAns)) + 1*uintptr(_12_jj)))))))))&int32(u16(8192))) == 0 {
|
||||||
@@ -1216,7 +1216,7 @@ _36:
|
|||||||
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2797)) != i32(0) && crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2802)) != i32(0) {
|
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2797)) != i32(0) && crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2802)) != i32(0) {
|
||||||
goto _46
|
goto _46
|
||||||
}
|
}
|
||||||
_15_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))
|
_15_zAns = (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript)) + uintptr(_ii)))
|
||||||
_15_isGlob = bool2int(int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_zCmd)) + 1*uintptr(i32(0))))) == i32(103))
|
_15_isGlob = bool2int(int32(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_zCmd)) + 1*uintptr(i32(0))))) == i32(103))
|
||||||
_15_jj = i32(9) - (i32(3) * _15_isGlob)
|
_15_jj = i32(9) - (i32(3) * _15_isGlob)
|
||||||
_47:
|
_47:
|
||||||
@@ -1287,7 +1287,7 @@ _68:
|
|||||||
_23_jj += 1
|
_23_jj += 1
|
||||||
goto _68
|
goto _68
|
||||||
_72:
|
_72:
|
||||||
_logMessage(tls, str(2708), _len-_23_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_23_jj)))))))))
|
_logMessage(tls, str(2708), _len-_23_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_23_jj)))))
|
||||||
goto _108
|
goto _108
|
||||||
_67:
|
_67:
|
||||||
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2917)) != i32(0) {
|
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2917)) != i32(0) {
|
||||||
@@ -1301,12 +1301,12 @@ _75:
|
|||||||
_25_jj += 1
|
_25_jj += 1
|
||||||
goto _75
|
goto _75
|
||||||
_79:
|
_79:
|
||||||
_25_pStmt = _prepareSql(tls, str(2920), _len-_25_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_25_jj)))))))))
|
_25_pStmt = _prepareSql(tls, str(2920), _len-_25_jj, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_25_jj)))))
|
||||||
_25_rc = bin.Xsqlite3_step(tls, _25_pStmt)
|
_25_rc = bin.Xsqlite3_step(tls, _25_pStmt)
|
||||||
if (_25_rc != i32(100)) || (bin.Xsqlite3_column_int(tls, _25_pStmt, i32(0)) == i32(0)) {
|
if (_25_rc != i32(100)) || (bin.Xsqlite3_column_int(tls, _25_pStmt, i32(0)) == i32(0)) {
|
||||||
{
|
{
|
||||||
p := &_ii
|
p := &_ii
|
||||||
*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))), i32(1), &_lineno)
|
*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len))), i32(1), &_lineno)
|
||||||
sink1(*p)
|
sink1(*p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1316,7 +1316,7 @@ _74:
|
|||||||
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2932)) == i32(0) {
|
if crt.Xstrcmp(tls, (*int8)(unsafe.Pointer(&_zCmd)), str(2932)) == i32(0) {
|
||||||
{
|
{
|
||||||
p := &_ii
|
p := &_ii
|
||||||
*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))), i32(0), &_lineno)
|
*p = (*p) + _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len))), i32(0), &_lineno)
|
||||||
sink1(*p)
|
sink1(*p)
|
||||||
}
|
}
|
||||||
goto _108
|
goto _108
|
||||||
@@ -1348,12 +1348,12 @@ _88:
|
|||||||
goto _97
|
goto _97
|
||||||
}
|
}
|
||||||
_33_iTarget = crt.Xatoi(tls, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(i32(0)))))))
|
_33_iTarget = crt.Xatoi(tls, (*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(i32(0)))))))
|
||||||
_33_iEnd = _findEnd(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len))))))), &_lineno)
|
_33_iEnd = _findEnd(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len))), &_lineno)
|
||||||
if _33_iTarget < i32(0) {
|
if _33_iTarget < i32(0) {
|
||||||
_errorMessage(tls, str(2974), _prevLine, unsafe.Pointer(_zFilename), _33_iTarget)
|
_errorMessage(tls, str(2974), _prevLine, unsafe.Pointer(_zFilename), _33_iTarget)
|
||||||
goto _99
|
goto _99
|
||||||
}
|
}
|
||||||
_33_zTask = bin.Xsqlite3_mprintf(tls, str(2708), _33_iEnd, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len)))))))))
|
_33_zTask = bin.Xsqlite3_mprintf(tls, str(2708), _33_iEnd, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len)))))
|
||||||
if _nArg > i32(1) {
|
if _nArg > i32(1) {
|
||||||
_33_zTName = bin.Xsqlite3_mprintf(tls, str(2526), unsafe.Pointer((*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(i32(1))))))))
|
_33_zTName = bin.Xsqlite3_mprintf(tls, str(2526), unsafe.Pointer((*int8)(unsafe.Pointer((*[100]int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_azArg))+100*uintptr(i32(1))))))))
|
||||||
goto _101
|
goto _101
|
||||||
@@ -1367,7 +1367,7 @@ _101:
|
|||||||
_99:
|
_99:
|
||||||
{
|
{
|
||||||
p := &_33_iEnd
|
p := &_33_iEnd
|
||||||
*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_ii)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_len)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_33_iEnd))))))), &_lineno)
|
*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_ii)))))+uintptr(_len)))))+uintptr(_33_iEnd))), &_lineno)
|
||||||
sink1(*p)
|
sink1(*p)
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -1401,7 +1401,7 @@ _108:
|
|||||||
goto _0
|
goto _0
|
||||||
_1:
|
_1:
|
||||||
if _iBegin < _ii {
|
if _iBegin < _ii {
|
||||||
_41_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iBegin)))))))))
|
_41_zSql = bin.Xsqlite3_mprintf(tls, str(2708), _ii-_iBegin, unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_zScript))+uintptr(_iBegin)))))
|
||||||
_runSql(tls, _41_zSql)
|
_runSql(tls, _41_zSql)
|
||||||
bin.Xsqlite3_free(tls, (unsafe.Pointer)(_41_zSql))
|
bin.Xsqlite3_free(tls, (unsafe.Pointer)(_41_zSql))
|
||||||
}
|
}
|
||||||
@@ -1616,12 +1616,12 @@ _0:
|
|||||||
if (*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) == 0 {
|
if (*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) == 0 {
|
||||||
goto _1
|
goto _1
|
||||||
}
|
}
|
||||||
_1_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), _pnLine)
|
_1_len = _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), _pnLine)
|
||||||
if ((crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3280), uint64(i32(7))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(7))))))))))&int32(u16(8192))) != 0) || ((_stopAtElse != 0 && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3288), uint64(i32(6))) == i32(0))) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(6))))))))))&int32(u16(8192))) != 0) {
|
if ((crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3280), uint64(i32(7))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(7))))))))))&int32(u16(8192))) != 0) || ((_stopAtElse != 0 && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3288), uint64(i32(6))) == i32(0))) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(6))))))))))&int32(u16(8192))) != 0) {
|
||||||
return _n + _1_len
|
return _n + _1_len
|
||||||
}
|
}
|
||||||
if (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3295), uint64(i32(4))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(4))))))))))&int32(u16(8192))) != 0 {
|
if (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3295), uint64(i32(4))) == i32(0)) && (int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(4))))))))))&int32(u16(8192))) != 0 {
|
||||||
_3_skip = _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n)))))))))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_1_len))))))), i32(0), _pnLine)
|
_3_skip = _findEndif(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n)))))+uintptr(_1_len))), i32(0), _pnLine)
|
||||||
{
|
{
|
||||||
p := &_n
|
p := &_n
|
||||||
*p = (*p) + (_3_skip + _1_len)
|
*p = (*p) + (_3_skip + _1_len)
|
||||||
@@ -1716,10 +1716,10 @@ func _findEnd(tls *crt.TLS, _z *int8, _pnLine *int32) (r0 int32) {
|
|||||||
var _n int32
|
var _n int32
|
||||||
_n = i32(0)
|
_n = i32(0)
|
||||||
_0:
|
_0:
|
||||||
if ((*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) != 0) && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), str(3706), uint64(i32(5))) != 0 || ((int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(5)))))))))) & int32(u16(8192))) == 0)) {
|
if ((*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n)))) != 0) && (crt.Xstrncmp(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), str(3706), uint64(i32(5))) != 0 || ((int32(*(*uint16)(unsafe.Pointer(uintptr((unsafe.Pointer)(*crt.X__ctype_b_loc(tls))) + 2*uintptr(int32(uint8(*(*int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_z)) + 1*uintptr(_n+i32(5)))))))))) & int32(u16(8192))) == 0)) {
|
||||||
{
|
{
|
||||||
p := &_n
|
p := &_n
|
||||||
*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_n))))))), _pnLine)
|
*p = (*p) + _tokenLength(tls, (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z))+uintptr(_n))), _pnLine)
|
||||||
sink1(*p)
|
sink1(*p)
|
||||||
}
|
}
|
||||||
goto _0
|
goto _0
|
||||||
@@ -1741,7 +1741,7 @@ _0:
|
|||||||
_i += 1
|
_i += 1
|
||||||
goto _0
|
goto _0
|
||||||
_3:
|
_3:
|
||||||
return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_j)))))))
|
return (*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(_z)) + uintptr(_j)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// This routine exists as a convenient place to set a debugger
|
// This routine exists as a convenient place to set a debugger
|
||||||
|
289
internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c
Normal file
289
internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c
Normal file
@@ -0,0 +1,289 @@
|
|||||||
|
/*
|
||||||
|
** 2002 January 15
|
||||||
|
**
|
||||||
|
** The author disclaims copyright to this source code. In place of
|
||||||
|
** a legal notice, here is a blessing:
|
||||||
|
**
|
||||||
|
** May you do good and not evil.
|
||||||
|
** May you find forgiveness for yourself and forgive others.
|
||||||
|
** May you share freely, never taking more than you give.
|
||||||
|
**
|
||||||
|
*************************************************************************
|
||||||
|
** This file implements a simple standalone program used to test whether
|
||||||
|
** or not the SQLite library is threadsafe.
|
||||||
|
**
|
||||||
|
** Testing the thread safety of SQLite is difficult because there are very
|
||||||
|
** few places in the code that are even potentially unsafe, and those
|
||||||
|
** places execute for very short periods of time. So even if the library
|
||||||
|
** is compiled with its mutexes disabled, it is likely to work correctly
|
||||||
|
** in a multi-threaded program most of the time.
|
||||||
|
**
|
||||||
|
** This file is NOT part of the standard SQLite library. It is used for
|
||||||
|
** testing only.
|
||||||
|
*/
|
||||||
|
#include "sqlite.h"
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <sched.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Enable for tracing
|
||||||
|
*/
|
||||||
|
static int verbose = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Come here to die.
|
||||||
|
*/
|
||||||
|
static void Exit(int rc){
|
||||||
|
exit(rc);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern char *sqlite3_mprintf(const char *zFormat, ...);
|
||||||
|
extern char *sqlite3_vmprintf(const char *zFormat, va_list);
|
||||||
|
|
||||||
|
/*
|
||||||
|
** When a lock occurs, yield.
|
||||||
|
*/
|
||||||
|
static int db_is_locked(void *NotUsed, int iCount){
|
||||||
|
/* sched_yield(); */
|
||||||
|
if( verbose ) printf("BUSY %s #%d\n", (char*)NotUsed, iCount);
|
||||||
|
usleep(100);
|
||||||
|
return iCount<20000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Used to accumulate query results by db_query()
|
||||||
|
*/
|
||||||
|
struct QueryResult {
|
||||||
|
const char *zFile; /* Filename - used for error reporting */
|
||||||
|
int nElem; /* Number of used entries in azElem[] */
|
||||||
|
int nAlloc; /* Number of slots allocated for azElem[] */
|
||||||
|
char **azElem; /* The result of the query */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The callback function for db_query
|
||||||
|
*/
|
||||||
|
static int db_query_callback(
|
||||||
|
void *pUser, /* Pointer to the QueryResult structure */
|
||||||
|
int nArg, /* Number of columns in this result row */
|
||||||
|
char **azArg, /* Text of data in all columns */
|
||||||
|
char **NotUsed /* Names of the columns */
|
||||||
|
){
|
||||||
|
struct QueryResult *pResult = (struct QueryResult*)pUser;
|
||||||
|
int i;
|
||||||
|
if( pResult->nElem + nArg >= pResult->nAlloc ){
|
||||||
|
if( pResult->nAlloc==0 ){
|
||||||
|
pResult->nAlloc = nArg+1;
|
||||||
|
}else{
|
||||||
|
pResult->nAlloc = pResult->nAlloc*2 + nArg + 1;
|
||||||
|
}
|
||||||
|
pResult->azElem = realloc( pResult->azElem, pResult->nAlloc*sizeof(char*));
|
||||||
|
if( pResult->azElem==0 ){
|
||||||
|
fprintf(stdout,"%s: malloc failed\n", pResult->zFile);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( azArg==0 ) return 0;
|
||||||
|
for(i=0; i<nArg; i++){
|
||||||
|
pResult->azElem[pResult->nElem++] =
|
||||||
|
sqlite3_mprintf("%s",azArg[i] ? azArg[i] : "");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Execute a query against the database. NULL values are returned
|
||||||
|
** as an empty string. The list is terminated by a single NULL pointer.
|
||||||
|
*/
|
||||||
|
char **db_query(sqlite *db, const char *zFile, const char *zFormat, ...){
|
||||||
|
char *zSql;
|
||||||
|
int rc;
|
||||||
|
char *zErrMsg = 0;
|
||||||
|
va_list ap;
|
||||||
|
struct QueryResult sResult;
|
||||||
|
va_start(ap, zFormat);
|
||||||
|
zSql = sqlite3_vmprintf(zFormat, ap);
|
||||||
|
va_end(ap);
|
||||||
|
memset(&sResult, 0, sizeof(sResult));
|
||||||
|
sResult.zFile = zFile;
|
||||||
|
if( verbose ) printf("QUERY %s: %s\n", zFile, zSql);
|
||||||
|
rc = sqlite3_exec(db, zSql, db_query_callback, &sResult, &zErrMsg);
|
||||||
|
if( rc==SQLITE_SCHEMA ){
|
||||||
|
if( zErrMsg ) free(zErrMsg);
|
||||||
|
rc = sqlite3_exec(db, zSql, db_query_callback, &sResult, &zErrMsg);
|
||||||
|
}
|
||||||
|
if( verbose ) printf("DONE %s %s\n", zFile, zSql);
|
||||||
|
if( zErrMsg ){
|
||||||
|
fprintf(stdout,"%s: query failed: %s - %s\n", zFile, zSql, zErrMsg);
|
||||||
|
free(zErrMsg);
|
||||||
|
free(zSql);
|
||||||
|
Exit(1);
|
||||||
|
}
|
||||||
|
sqlite3_free(zSql);
|
||||||
|
if( sResult.azElem==0 ){
|
||||||
|
db_query_callback(&sResult, 0, 0, 0);
|
||||||
|
}
|
||||||
|
sResult.azElem[sResult.nElem] = 0;
|
||||||
|
return sResult.azElem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Execute an SQL statement.
|
||||||
|
*/
|
||||||
|
void db_execute(sqlite *db, const char *zFile, const char *zFormat, ...){
|
||||||
|
char *zSql;
|
||||||
|
int rc;
|
||||||
|
char *zErrMsg = 0;
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, zFormat);
|
||||||
|
zSql = sqlite3_vmprintf(zFormat, ap);
|
||||||
|
va_end(ap);
|
||||||
|
if( verbose ) printf("EXEC %s: %s\n", zFile, zSql);
|
||||||
|
do{
|
||||||
|
rc = sqlite3_exec(db, zSql, 0, 0, &zErrMsg);
|
||||||
|
}while( rc==SQLITE_BUSY );
|
||||||
|
if( verbose ) printf("DONE %s: %s\n", zFile, zSql);
|
||||||
|
if( zErrMsg ){
|
||||||
|
fprintf(stdout,"%s: command failed: %s - %s\n", zFile, zSql, zErrMsg);
|
||||||
|
free(zErrMsg);
|
||||||
|
sqlite3_free(zSql);
|
||||||
|
Exit(1);
|
||||||
|
}
|
||||||
|
sqlite3_free(zSql);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Free the results of a db_query() call.
|
||||||
|
*/
|
||||||
|
void db_query_free(char **az){
|
||||||
|
int i;
|
||||||
|
for(i=0; az[i]; i++){
|
||||||
|
sqlite3_free(az[i]);
|
||||||
|
}
|
||||||
|
free(az);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Check results
|
||||||
|
*/
|
||||||
|
void db_check(const char *zFile, const char *zMsg, char **az, ...){
|
||||||
|
va_list ap;
|
||||||
|
int i;
|
||||||
|
char *z;
|
||||||
|
va_start(ap, az);
|
||||||
|
for(i=0; (z = va_arg(ap, char*))!=0; i++){
|
||||||
|
if( az[i]==0 || strcmp(az[i],z)!=0 ){
|
||||||
|
fprintf(stdout,"%s: %s: bad result in column %d: %s\n",
|
||||||
|
zFile, zMsg, i+1, az[i]);
|
||||||
|
db_query_free(az);
|
||||||
|
Exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
va_end(ap);
|
||||||
|
db_query_free(az);
|
||||||
|
}
|
||||||
|
|
||||||
|
pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
|
||||||
|
pthread_cond_t sig = PTHREAD_COND_INITIALIZER;
|
||||||
|
int thread_cnt = 0;
|
||||||
|
|
||||||
|
static void *worker_bee(void *pArg){
|
||||||
|
const char *zFilename = (char*)pArg;
|
||||||
|
char *azErr;
|
||||||
|
int i, cnt;
|
||||||
|
int t = atoi(zFilename);
|
||||||
|
char **az;
|
||||||
|
sqlite *db;
|
||||||
|
|
||||||
|
pthread_mutex_lock(&lock);
|
||||||
|
thread_cnt++;
|
||||||
|
pthread_mutex_unlock(&lock);
|
||||||
|
printf("%s: START\n", zFilename);
|
||||||
|
fflush(stdout);
|
||||||
|
for(cnt=0; cnt<10; cnt++){
|
||||||
|
sqlite3_open(&zFilename[2], &db);
|
||||||
|
if( db==0 ){
|
||||||
|
fprintf(stdout,"%s: can't open\n", zFilename);
|
||||||
|
Exit(1);
|
||||||
|
}
|
||||||
|
sqlite3_busy_handler(db, db_is_locked, zFilename);
|
||||||
|
db_execute(db, zFilename, "CREATE TABLE t%d(a,b,c);", t);
|
||||||
|
for(i=1; i<=100; i++){
|
||||||
|
db_execute(db, zFilename, "INSERT INTO t%d VALUES(%d,%d,%d);",
|
||||||
|
t, i, i*2, i*i);
|
||||||
|
}
|
||||||
|
az = db_query(db, zFilename, "SELECT count(*) FROM t%d", t);
|
||||||
|
db_check(zFilename, "tX size", az, "100", 0);
|
||||||
|
az = db_query(db, zFilename, "SELECT avg(b) FROM t%d", t);
|
||||||
|
db_check(zFilename, "tX avg", az, "101.0", 0);
|
||||||
|
db_execute(db, zFilename, "DELETE FROM t%d WHERE a>50", t);
|
||||||
|
az = db_query(db, zFilename, "SELECT avg(b) FROM t%d", t);
|
||||||
|
db_check(zFilename, "tX avg2", az, "51.0", 0);
|
||||||
|
for(i=1; i<=50; i++){
|
||||||
|
char z1[30], z2[30];
|
||||||
|
az = db_query(db, zFilename, "SELECT b, c FROM t%d WHERE a=%d", t, i);
|
||||||
|
sprintf(z1, "%d", i*2);
|
||||||
|
sprintf(z2, "%d", i*i);
|
||||||
|
db_check(zFilename, "readback", az, z1, z2, 0);
|
||||||
|
}
|
||||||
|
db_execute(db, zFilename, "DROP TABLE t%d;", t);
|
||||||
|
sqlite3_close(db);
|
||||||
|
}
|
||||||
|
printf("%s: END\n", zFilename);
|
||||||
|
/* unlink(zFilename); */
|
||||||
|
fflush(stdout);
|
||||||
|
pthread_mutex_lock(&lock);
|
||||||
|
thread_cnt--;
|
||||||
|
if( thread_cnt<=0 ){
|
||||||
|
pthread_cond_signal(&sig);
|
||||||
|
}
|
||||||
|
pthread_mutex_unlock(&lock);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv){
|
||||||
|
char *zFile;
|
||||||
|
int i, n;
|
||||||
|
pthread_t id;
|
||||||
|
if( argc>2 && strcmp(argv[1], "-v")==0 ){
|
||||||
|
verbose = 1;
|
||||||
|
argc--;
|
||||||
|
argv++;
|
||||||
|
}
|
||||||
|
if( argc<2 || (n=atoi(argv[1]))<1 ) n = 10;
|
||||||
|
for(i=0; i<n; i++){
|
||||||
|
char zBuf[200];
|
||||||
|
sprintf(zBuf, "testdb-%d", (i+1)/2);
|
||||||
|
unlink(zBuf);
|
||||||
|
}
|
||||||
|
for(i=0; i<n; i++){
|
||||||
|
zFile = sqlite3_mprintf("%d.testdb-%d", i%2+1, (i+2)/2);
|
||||||
|
if( (i%2)==0 ){
|
||||||
|
/* Remove both the database file and any old journal for the file
|
||||||
|
** being used by this thread and the next one. */
|
||||||
|
char *zDb = &zFile[2];
|
||||||
|
char *zJournal = sqlite3_mprintf("%s-journal", zDb);
|
||||||
|
unlink(zDb);
|
||||||
|
unlink(zJournal);
|
||||||
|
free(zJournal);
|
||||||
|
}
|
||||||
|
|
||||||
|
pthread_create(&id, 0, worker_bee, (void*)zFile);
|
||||||
|
pthread_detach(id);
|
||||||
|
}
|
||||||
|
pthread_mutex_lock(&lock);
|
||||||
|
while( thread_cnt>0 ){
|
||||||
|
pthread_cond_wait(&sig, &lock);
|
||||||
|
}
|
||||||
|
pthread_mutex_unlock(&lock);
|
||||||
|
for(i=0; i<n; i++){
|
||||||
|
char zBuf[200];
|
||||||
|
sprintf(zBuf, "testdb-%d", (i+1)/2);
|
||||||
|
unlink(zBuf);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
@@ -177,27 +177,27 @@ _8:
|
|||||||
Xdb_check(tls, _zFilename, str(148), _az, unsafe.Pointer(str(156)), i32(0))
|
Xdb_check(tls, _zFilename, str(148), _az, unsafe.Pointer(str(156)), i32(0))
|
||||||
_az = Xdb_query(tls, _db, _zFilename, str(160), _t)
|
_az = Xdb_query(tls, _db, _zFilename, str(160), _t)
|
||||||
Xdb_check(tls, _zFilename, str(183), _az, unsafe.Pointer(str(190)), i32(0))
|
Xdb_check(tls, _zFilename, str(183), _az, unsafe.Pointer(str(190)), i32(0))
|
||||||
Xdb_execute(tls, _db, _zFilename, str(194), _t)
|
Xdb_execute(tls, _db, _zFilename, str(196), _t)
|
||||||
_az = Xdb_query(tls, _db, _zFilename, str(160), _t)
|
_az = Xdb_query(tls, _db, _zFilename, str(160), _t)
|
||||||
Xdb_check(tls, _zFilename, str(221), _az, unsafe.Pointer(str(229)), i32(0))
|
Xdb_check(tls, _zFilename, str(223), _az, unsafe.Pointer(str(231)), i32(0))
|
||||||
_i = i32(1)
|
_i = i32(1)
|
||||||
_9:
|
_9:
|
||||||
if _i > i32(50) {
|
if _i > i32(50) {
|
||||||
goto _12
|
goto _12
|
||||||
}
|
}
|
||||||
_az = Xdb_query(tls, _db, _zFilename, str(232), _t, _i)
|
_az = Xdb_query(tls, _db, _zFilename, str(236), _t, _i)
|
||||||
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z1)), str(264), _i*i32(2))
|
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z1)), str(268), _i*i32(2))
|
||||||
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z2)), str(264), _i*_i)
|
crt.Xsprintf(tls, (*int8)(unsafe.Pointer(&_4_z2)), str(268), _i*_i)
|
||||||
Xdb_check(tls, _zFilename, str(267), _az, unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z1))), unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z2))), i32(0))
|
Xdb_check(tls, _zFilename, str(271), _az, unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z1))), unsafe.Pointer((*int8)(unsafe.Pointer(&_4_z2))), i32(0))
|
||||||
_i += 1
|
_i += 1
|
||||||
goto _9
|
goto _9
|
||||||
_12:
|
_12:
|
||||||
Xdb_execute(tls, _db, _zFilename, str(276), _t)
|
Xdb_execute(tls, _db, _zFilename, str(280), _t)
|
||||||
bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_db))
|
bin.Xsqlite3_close(tls, (*bin.Xsqlite3)(_db))
|
||||||
_cnt += 1
|
_cnt += 1
|
||||||
goto _0
|
goto _0
|
||||||
_3:
|
_3:
|
||||||
crt.Xprintf(tls, str(292), unsafe.Pointer(_zFilename))
|
crt.Xprintf(tls, str(296), unsafe.Pointer(_zFilename))
|
||||||
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
|
crt.Xfflush(tls, (*crt.XFILE)(Xstdout))
|
||||||
crt.Xpthread_mutex_lock(tls, &Xlock)
|
crt.Xpthread_mutex_lock(tls, &Xlock)
|
||||||
Xthread_cnt -= 1
|
Xthread_cnt -= 1
|
||||||
@@ -225,10 +225,10 @@ func _Exit(tls *crt.TLS, _rc int32) {
|
|||||||
// When a lock occurs, yield.
|
// When a lock occurs, yield.
|
||||||
func _db_is_locked(tls *crt.TLS, _NotUsed unsafe.Pointer, _iCount int32) (r0 int32) {
|
func _db_is_locked(tls *crt.TLS, _NotUsed unsafe.Pointer, _iCount int32) (r0 int32) {
|
||||||
if _verbose != 0 {
|
if _verbose != 0 {
|
||||||
crt.Xprintf(tls, str(301), unsafe.Pointer((*int8)(_NotUsed)), _iCount)
|
crt.Xprintf(tls, str(305), unsafe.Pointer((*int8)(_NotUsed)), _iCount)
|
||||||
}
|
}
|
||||||
crt.Xusleep(tls, uint32(i32(100)))
|
crt.Xusleep(tls, uint32(i32(100)))
|
||||||
return bool2int(_iCount < i32(25))
|
return bool2int(_iCount < i32(20000))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute an SQL statement.
|
// Execute an SQL statement.
|
||||||
@@ -241,7 +241,7 @@ func Xdb_execute(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8,
|
|||||||
_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
|
_zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap)
|
||||||
_ap = nil
|
_ap = nil
|
||||||
if _verbose != 0 {
|
if _verbose != 0 {
|
||||||
crt.Xprintf(tls, str(314), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
crt.Xprintf(tls, str(318), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
||||||
}
|
}
|
||||||
_0:
|
_0:
|
||||||
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, nil, nil, &_zErrMsg)
|
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, nil, nil, &_zErrMsg)
|
||||||
@@ -249,10 +249,10 @@ _0:
|
|||||||
goto _0
|
goto _0
|
||||||
}
|
}
|
||||||
if _verbose != 0 {
|
if _verbose != 0 {
|
||||||
crt.Xprintf(tls, str(327), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
crt.Xprintf(tls, str(331), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
||||||
}
|
}
|
||||||
if _zErrMsg != nil {
|
if _zErrMsg != nil {
|
||||||
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(340), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg))
|
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(344), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg))
|
||||||
crt.Xfree(tls, (unsafe.Pointer)(_zErrMsg))
|
crt.Xfree(tls, (unsafe.Pointer)(_zErrMsg))
|
||||||
bin.Xsqlite3_free(tls, (unsafe.Pointer)(_zSql))
|
bin.Xsqlite3_free(tls, (unsafe.Pointer)(_zSql))
|
||||||
_Exit(tls, i32(1))
|
_Exit(tls, i32(1))
|
||||||
@@ -274,7 +274,7 @@ func Xdb_query(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8, a
|
|||||||
crt.Xmemset(tls, (unsafe.Pointer)(&_sResult), i32(0), u64(24))
|
crt.Xmemset(tls, (unsafe.Pointer)(&_sResult), i32(0), u64(24))
|
||||||
*(**int8)(unsafe.Pointer(&(_sResult.X0))) = _zFile
|
*(**int8)(unsafe.Pointer(&(_sResult.X0))) = _zFile
|
||||||
if _verbose != 0 {
|
if _verbose != 0 {
|
||||||
crt.Xprintf(tls, str(369), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
crt.Xprintf(tls, str(373), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
||||||
}
|
}
|
||||||
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, _db_query_callback, (unsafe.Pointer)(&_sResult), &_zErrMsg)
|
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, _db_query_callback, (unsafe.Pointer)(&_sResult), &_zErrMsg)
|
||||||
if _rc != i32(17) {
|
if _rc != i32(17) {
|
||||||
@@ -286,10 +286,10 @@ func Xdb_query(tls *crt.TLS, _db unsafe.Pointer, _zFile *int8, _zFormat *int8, a
|
|||||||
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, _db_query_callback, (unsafe.Pointer)(&_sResult), &_zErrMsg)
|
_rc = bin.Xsqlite3_exec(tls, (*bin.Xsqlite3)(_db), _zSql, _db_query_callback, (unsafe.Pointer)(&_sResult), &_zErrMsg)
|
||||||
_1:
|
_1:
|
||||||
if _verbose != 0 {
|
if _verbose != 0 {
|
||||||
crt.Xprintf(tls, str(383), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
crt.Xprintf(tls, str(387), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql))
|
||||||
}
|
}
|
||||||
if _zErrMsg != nil {
|
if _zErrMsg != nil {
|
||||||
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(395), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg))
|
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(399), unsafe.Pointer(_zFile), unsafe.Pointer(_zSql), unsafe.Pointer(_zErrMsg))
|
||||||
crt.Xfree(tls, (unsafe.Pointer)(_zErrMsg))
|
crt.Xfree(tls, (unsafe.Pointer)(_zErrMsg))
|
||||||
crt.Xfree(tls, (unsafe.Pointer)(_zSql))
|
crt.Xfree(tls, (unsafe.Pointer)(_zSql))
|
||||||
_Exit(tls, i32(1))
|
_Exit(tls, i32(1))
|
||||||
@@ -321,7 +321,7 @@ func _db_query_callback(tls *crt.TLS, _pUser unsafe.Pointer, _nArg int32, _azArg
|
|||||||
_2:
|
_2:
|
||||||
*(***int8)(unsafe.Pointer(&(_pResult.X3))) = (**int8)(crt.Xrealloc(tls, (unsafe.Pointer)(_pResult.X3), uint64(_pResult.X2)*u64(8)))
|
*(***int8)(unsafe.Pointer(&(_pResult.X3))) = (**int8)(crt.Xrealloc(tls, (unsafe.Pointer)(_pResult.X3), uint64(_pResult.X2)*u64(8)))
|
||||||
if (_pResult.X3) == nil {
|
if (_pResult.X3) == nil {
|
||||||
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(422), unsafe.Pointer(_pResult.X0))
|
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(426), unsafe.Pointer(_pResult.X0))
|
||||||
return i32(1)
|
return i32(1)
|
||||||
}
|
}
|
||||||
_0:
|
_0:
|
||||||
@@ -333,11 +333,11 @@ _5:
|
|||||||
if _i >= _nArg {
|
if _i >= _nArg {
|
||||||
goto _8
|
goto _8
|
||||||
}
|
}
|
||||||
*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pResult.X3)) + 8*uintptr(postInc0((*int32)(unsafe.Pointer(&(_pResult.X1))), int32(1))))) = bin.Xsqlite3_mprintf(tls, str(441), unsafe.Pointer(func() *int8 {
|
*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_pResult.X3)) + 8*uintptr(postInc0((*int32)(unsafe.Pointer(&(_pResult.X1))), int32(1))))) = bin.Xsqlite3_mprintf(tls, str(445), unsafe.Pointer(func() *int8 {
|
||||||
if (*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azArg)) + 8*uintptr(_i)))) != nil {
|
if (*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azArg)) + 8*uintptr(_i)))) != nil {
|
||||||
return (*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azArg)) + 8*uintptr(_i))))
|
return (*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_azArg)) + 8*uintptr(_i))))
|
||||||
}
|
}
|
||||||
return str(444)
|
return str(448)
|
||||||
}()))
|
}()))
|
||||||
_i += 1
|
_i += 1
|
||||||
goto _5
|
goto _5
|
||||||
@@ -357,7 +357,7 @@ _0:
|
|||||||
goto _3
|
goto _3
|
||||||
}
|
}
|
||||||
if ((*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i)))) == nil) || (crt.Xstrcmp(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i))), _z) != i32(0)) {
|
if ((*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i)))) == nil) || (crt.Xstrcmp(tls, *(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i))), _z) != i32(0)) {
|
||||||
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(445), unsafe.Pointer(_zFile), unsafe.Pointer(_zMsg), _i+i32(1), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i)))))
|
crt.Xfprintf(tls, (*crt.XFILE)(Xstdout), str(449), unsafe.Pointer(_zFile), unsafe.Pointer(_zMsg), _i+i32(1), unsafe.Pointer(*(**int8)(unsafe.Pointer(uintptr((unsafe.Pointer)(_az)) + 8*uintptr(_i)))))
|
||||||
Xdb_query_free(tls, _az)
|
Xdb_query_free(tls, _az)
|
||||||
_Exit(tls, i32(1))
|
_Exit(tls, i32(1))
|
||||||
}
|
}
|
||||||
@@ -418,4 +418,4 @@ type TQueryResult struct {
|
|||||||
func str(n int) *int8 { return (*int8)(unsafe.Pointer(&strTab[n])) }
|
func str(n int) *int8 { return (*int8)(unsafe.Pointer(&strTab[n])) }
|
||||||
func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) }
|
func wstr(n int) *int32 { return (*int32)(unsafe.Pointer(&strTab[n])) }
|
||||||
|
|
||||||
var strTab = []byte("-v\x00testdb-%d\x00%d.testdb-%d\x00%s-journal\x00%s: START\x0a\x00%s: can't open\x0a\x00CREATE TABLE t%d(a,b,c);\x00INSERT INTO t%d VALUES(%d,%d,%d);\x00SELECT count(*) FROM t%d\x00tX size\x00100\x00SELECT avg(b) FROM t%d\x00tX avg\x00101\x00DELETE FROM t%d WHERE a>50\x00tX avg2\x0051\x00SELECT b, c FROM t%d WHERE a=%d\x00%d\x00readback\x00DROP TABLE t%d;\x00%s: END\x0a\x00BUSY %s #%d\x0a\x00EXEC %s: %s\x0a\x00DONE %s: %s\x0a\x00%s: command failed: %s - %s\x0a\x00QUERY %s: %s\x0a\x00DONE %s %s\x0a\x00%s: query failed: %s - %s\x0a\x00%s: malloc failed\x0a\x00%s\x00\x00%s: %s: bad result in column %d: %s\x0a\x00")
|
var strTab = []byte("-v\x00testdb-%d\x00%d.testdb-%d\x00%s-journal\x00%s: START\x0a\x00%s: can't open\x0a\x00CREATE TABLE t%d(a,b,c);\x00INSERT INTO t%d VALUES(%d,%d,%d);\x00SELECT count(*) FROM t%d\x00tX size\x00100\x00SELECT avg(b) FROM t%d\x00tX avg\x00101.0\x00DELETE FROM t%d WHERE a>50\x00tX avg2\x0051.0\x00SELECT b, c FROM t%d WHERE a=%d\x00%d\x00readback\x00DROP TABLE t%d;\x00%s: END\x0a\x00BUSY %s #%d\x0a\x00EXEC %s: %s\x0a\x00DONE %s: %s\x0a\x00%s: command failed: %s - %s\x0a\x00QUERY %s: %s\x0a\x00DONE %s %s\x0a\x00%s: query failed: %s - %s\x0a\x00%s: malloc failed\x0a\x00%s\x00\x00%s: %s: bad result in column %d: %s\x0a\x00")
|
||||||
|
@@ -93,7 +93,7 @@ _3:
|
|||||||
if uint64(_i) >= u64(5) {
|
if uint64(_i) >= u64(5) {
|
||||||
goto _6
|
goto _6
|
||||||
}
|
}
|
||||||
crt.Xpthread_create(tls, (*uint64)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aThread))+8*uintptr(_i))), nil, Xworker, (unsafe.Pointer)(uintptr(_i)))
|
crt.Xpthread_create(tls, (*uint64)(unsafe.Pointer(uintptr((unsafe.Pointer)(&_aThread))+8*uintptr(_i))), nil, Xworker, crt.U2P(uintptr(_i)))
|
||||||
_i += 1
|
_i += 1
|
||||||
goto _3
|
goto _3
|
||||||
_6:
|
_6:
|
||||||
@@ -121,7 +121,7 @@ _10:
|
|||||||
func Xworker(tls *crt.TLS, _workerArg unsafe.Pointer) (r0 unsafe.Pointer) {
|
func Xworker(tls *crt.TLS, _workerArg unsafe.Pointer) (r0 unsafe.Pointer) {
|
||||||
var _id, _rc, _cnt int32
|
var _id, _rc, _cnt int32
|
||||||
var _db unsafe.Pointer
|
var _db unsafe.Pointer
|
||||||
_id = int32(uintptr(_workerArg))
|
_id = int32(crt.P2U(_workerArg))
|
||||||
_cnt = i32(0)
|
_cnt = i32(0)
|
||||||
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(147), _id)
|
crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(147), _id)
|
||||||
_0:
|
_0:
|
||||||
|
@@ -412,7 +412,7 @@ func _MD5Update(tls *crt.TLS, _ctx *XMD5Context, _buf *uint8, _len uint32) {
|
|||||||
if _t == 0 {
|
if _t == 0 {
|
||||||
goto _1
|
goto _1
|
||||||
}
|
}
|
||||||
_1_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_t)))))))
|
_1_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(_t)))
|
||||||
_t = uint32(i32(64)) - _t
|
_t = uint32(i32(64)) - _t
|
||||||
if _len < _t {
|
if _len < _t {
|
||||||
crt.Xmemcpy(tls, (unsafe.Pointer)(_1_p), (unsafe.Pointer)(_buf), uint64(_len))
|
crt.Xmemcpy(tls, (unsafe.Pointer)(_1_p), (unsafe.Pointer)(_buf), uint64(_len))
|
||||||
@@ -1476,7 +1476,7 @@ func _MD5Final(tls *crt.TLS, _digest *[16]uint8, _ctx *XMD5Context) {
|
|||||||
var _count uint32
|
var _count uint32
|
||||||
var _p *uint8
|
var _p *uint8
|
||||||
_count = ((*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[2]uint32)(unsafe.Pointer(&(_ctx.X2))))) + 4*uintptr(i32(0))))) >> uint(i32(3))) & uint32(i32(63))
|
_count = ((*(*uint32)(unsafe.Pointer(uintptr((unsafe.Pointer)((*[2]uint32)(unsafe.Pointer(&(_ctx.X2))))) + 4*uintptr(i32(0))))) >> uint(i32(3))) & uint32(i32(63))
|
||||||
_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer(uintptr(_count)))))))
|
_p = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer((*uint8)(unsafe.Pointer((*[64]uint8)(unsafe.Pointer((*t1)(unsafe.Pointer(&(_ctx.X3))))))))) + uintptr(_count)))
|
||||||
*postInc2(&_p, 1) = uint8(i32(128))
|
*postInc2(&_p, 1) = uint8(i32(128))
|
||||||
_count = uint32(i32(63)) - _count
|
_count = uint32(i32(63)) - _count
|
||||||
if _count < uint32(i32(8)) {
|
if _count < uint32(i32(8)) {
|
||||||
@@ -2181,7 +2181,7 @@ func _walthread2(tls *crt.TLS, _nMs int32) {
|
|||||||
return i32(1057)
|
return i32(1057)
|
||||||
}()
|
}()
|
||||||
return &_err
|
return &_err
|
||||||
}(), &_threads, _walthread2_thread, (unsafe.Pointer)(uintptr(u32(1))))
|
}(), &_threads, _walthread2_thread, crt.U2P(uintptr(u32(1))))
|
||||||
_launch_thread_x(tls, func() *XError {
|
_launch_thread_x(tls, func() *XError {
|
||||||
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
||||||
if (_err.X0) != 0 {
|
if (_err.X0) != 0 {
|
||||||
@@ -2190,7 +2190,7 @@ func _walthread2(tls *crt.TLS, _nMs int32) {
|
|||||||
return i32(1058)
|
return i32(1058)
|
||||||
}()
|
}()
|
||||||
return &_err
|
return &_err
|
||||||
}(), &_threads, _walthread2_thread, (unsafe.Pointer)(uintptr(u32(1))))
|
}(), &_threads, _walthread2_thread, crt.U2P(uintptr(u32(1))))
|
||||||
_join_all_threads_x(tls, func() *XError {
|
_join_all_threads_x(tls, func() *XError {
|
||||||
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
||||||
if (_err.X0) != 0 {
|
if (_err.X0) != 0 {
|
||||||
@@ -2215,7 +2215,7 @@ func _walthread2_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *in
|
|||||||
_err = XError{}
|
_err = XError{}
|
||||||
_db = XSqlite{}
|
_db = XSqlite{}
|
||||||
_anTrans = [2]int32{}
|
_anTrans = [2]int32{}
|
||||||
_iArg = int32(int64(uintptr(_pArg)))
|
_iArg = int32(int64(crt.P2U(_pArg)))
|
||||||
_zJournal = str(1346)
|
_zJournal = str(1346)
|
||||||
if _iArg != 0 {
|
if _iArg != 0 {
|
||||||
_zJournal = str(1372)
|
_zJournal = str(1372)
|
||||||
@@ -2408,7 +2408,7 @@ _8:
|
|||||||
return i32(1119)
|
return i32(1119)
|
||||||
}()
|
}()
|
||||||
return &_err
|
return &_err
|
||||||
}(), &_threads, _walthread3_thread, (unsafe.Pointer)(uintptr(int64(_i))))
|
}(), &_threads, _walthread3_thread, crt.U2P(uintptr(int64(_i))))
|
||||||
_i += 1
|
_i += 1
|
||||||
goto _8
|
goto _8
|
||||||
_11:
|
_11:
|
||||||
@@ -2434,7 +2434,7 @@ func _walthread3_thread(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *in
|
|||||||
var _db XSqlite
|
var _db XSqlite
|
||||||
_err = XError{}
|
_err = XError{}
|
||||||
_db = XSqlite{}
|
_db = XSqlite{}
|
||||||
_iArg = int32(int64(uintptr(_pArg)))
|
_iArg = int32(int64(crt.P2U(_pArg)))
|
||||||
_opendb_x(tls, func() *XError {
|
_opendb_x(tls, func() *XError {
|
||||||
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
||||||
if (_err.X0) != 0 {
|
if (_err.X0) != 0 {
|
||||||
@@ -4453,7 +4453,7 @@ func _stress1(tls *crt.TLS, _nMs int32) {
|
|||||||
return i32(154)
|
return i32(154)
|
||||||
}()
|
}()
|
||||||
return &_err
|
return &_err
|
||||||
}(), &_threads, _stress_thread_5, (unsafe.Pointer)(uintptr(u32(1))))
|
}(), &_threads, _stress_thread_5, crt.U2P(uintptr(u32(1))))
|
||||||
_join_all_threads_x(tls, func() *XError {
|
_join_all_threads_x(tls, func() *XError {
|
||||||
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
||||||
if (_err.X0) != 0 {
|
if (_err.X0) != 0 {
|
||||||
@@ -4660,7 +4660,7 @@ func _stress_thread_4(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8
|
|||||||
_db = XSqlite{}
|
_db = XSqlite{}
|
||||||
_i1 = i32(0)
|
_i1 = i32(0)
|
||||||
_i2 = i32(0)
|
_i2 = i32(0)
|
||||||
_iArg = int32(int64(uintptr(_pArg)))
|
_iArg = int32(int64(crt.P2U(_pArg)))
|
||||||
_opendb_x(tls, func() *XError {
|
_opendb_x(tls, func() *XError {
|
||||||
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
*(*int32)(unsafe.Pointer(&(_err.X1))) = func() int32 {
|
||||||
if (_err.X0) != 0 {
|
if (_err.X0) != 0 {
|
||||||
@@ -4744,7 +4744,7 @@ func _stress_thread_5(tls *crt.TLS, _iTid int32, _pArg unsafe.Pointer) (r0 *int8
|
|||||||
var _db XSqlite
|
var _db XSqlite
|
||||||
_err = XError{}
|
_err = XError{}
|
||||||
_db = XSqlite{}
|
_db = XSqlite{}
|
||||||
_iArg = int32(int64(uintptr(_pArg)))
|
_iArg = int32(int64(crt.P2U(_pArg)))
|
||||||
_i1 = i32(0)
|
_i1 = i32(0)
|
||||||
_i2 = i32(0)
|
_i2 = i32(0)
|
||||||
_opendb_x(tls, func() *XError {
|
_opendb_x(tls, func() *XError {
|
||||||
@@ -5956,7 +5956,7 @@ _4:
|
|||||||
if _rc != i32(0) {
|
if _rc != i32(0) {
|
||||||
goto _5
|
goto _5
|
||||||
}
|
}
|
||||||
_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iAmt))))))))
|
_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(_iAmt))))
|
||||||
{
|
{
|
||||||
p := &_iOfst
|
p := &_iOfst
|
||||||
*p = (*p) + int64(_iAmt)
|
*p = (*p) + int64(_iAmt)
|
||||||
@@ -6020,7 +6020,7 @@ _4:
|
|||||||
_rc = (*(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&struct {
|
_rc = (*(*func(*crt.TLS, *bin.Xsqlite3_file, unsafe.Pointer, int32, int64) int32)(unsafe.Pointer(&struct {
|
||||||
f func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, int64) int32
|
f func(*crt.TLS, unsafe.Pointer, unsafe.Pointer, int32, int64) int32
|
||||||
}{((*bin.Xsqlite3_io_methods)(_5_pSubOpen.X0).X3)})))(tls, _5_pSubOpen, _pBuf, _iAmt, _iOfst%int64(_pGroup.X5))
|
}{((*bin.Xsqlite3_io_methods)(_5_pSubOpen.X0).X3)})))(tls, _5_pSubOpen, _pBuf, _iAmt, _iOfst%int64(_pGroup.X5))
|
||||||
_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(unsafe.Pointer((*int8)(unsafe.Pointer(uintptr(_iAmt))))))))
|
_pBuf = (unsafe.Pointer)((*int8)(unsafe.Pointer(uintptr(unsafe.Pointer((*int8)(_pBuf))) + uintptr(_iAmt))))
|
||||||
{
|
{
|
||||||
p := &_iOfst
|
p := &_iOfst
|
||||||
*p = (*p) + int64(_iAmt)
|
*p = (*p) + int64(_iAmt)
|
||||||
|
@@ -10,7 +10,6 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -97,20 +96,14 @@ func TestThread1(t *testing.T) {
|
|||||||
t.Fatalf("go build mptest: %s\n%s", err, out)
|
t.Fatalf("go build mptest: %s\n%s", err, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i <= 20; i++ {
|
out, err := exec.Command("./threadtest1", "10").CombinedOutput()
|
||||||
out, err := exec.Command("./threadtest1", strconv.Itoa(i), "-v").CombinedOutput()
|
t.Logf("%s", out)
|
||||||
t.Logf("%v:\n%s", i, out)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func TestThread2(t *testing.T) {
|
func TestThread2(t *testing.T) {
|
||||||
t.Log("TODO")
|
|
||||||
return //TODO-
|
|
||||||
|
|
||||||
//TODO sqlite3.c:143403: createCollation(db, "RTRIM", SQLITE_UTF8, (void*)1, binCollFunc, 0); -> fatal error: bad pointer in write barrier
|
|
||||||
dir, err := ioutil.TempDir("", "sqlite-test-")
|
dir, err := ioutil.TempDir("", "sqlite-test-")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -219,10 +212,6 @@ func TestThread3(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestThread4(t *testing.T) {
|
func TestThread4(t *testing.T) {
|
||||||
t.Log("TODO")
|
|
||||||
return //TODO-
|
|
||||||
|
|
||||||
//TODO sqlite3.c:143403: createCollation(db, "RTRIM", SQLITE_UTF8, (void*)1, binCollFunc, 0); -> fatal error: bad pointer in write barrier
|
|
||||||
cases := 0
|
cases := 0
|
||||||
dir, err := ioutil.TempDir("", "sqlite-test-")
|
dir, err := ioutil.TempDir("", "sqlite-test-")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -268,9 +257,9 @@ func TestThread4(t *testing.T) {
|
|||||||
{"--multithread", "-serialized"},
|
{"--multithread", "-serialized"},
|
||||||
{"--multithread", "-serialized", "-wal"},
|
{"--multithread", "-serialized", "-wal"},
|
||||||
} {
|
} {
|
||||||
for i := 2; i <= 20; i++ {
|
out, err := exec.Command("./threadtest4", append(opts, "5")...).CombinedOutput()
|
||||||
out, err := exec.Command("./threadtest4", append(opts, strconv.Itoa(i))...).CombinedOutput()
|
dbg("%v\n%s", opts, out)
|
||||||
t.Logf("%v: %v\n%s", i, opts, out)
|
t.Logf("%v\n%s", opts, out)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -282,6 +271,5 @@ func TestThread4(t *testing.T) {
|
|||||||
}
|
}
|
||||||
cases++
|
cases++
|
||||||
}
|
}
|
||||||
}
|
|
||||||
t.Logf("cases: %v", cases)
|
t.Logf("cases: %v", cases)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user