CreateModule registers a virtual table implementation. See: http://sqlite.org/c3ref/create_module.html
(moduleName string, module Module)
| 699 | // CreateModule registers a virtual table implementation. |
| 700 | // See: http://sqlite.org/c3ref/create_module.html |
| 701 | func (c *SQLiteConn) CreateModule(moduleName string, module Module) error { |
| 702 | mname := C.CString(moduleName) |
| 703 | defer C.free(unsafe.Pointer(mname)) |
| 704 | udm := sqliteModule{c, moduleName, module} |
| 705 | switch module.(type) { |
| 706 | case EponymousOnlyModule: |
| 707 | rv := C._sqlite3_create_module_eponymous_only(c.db, mname, C.uintptr_t(uintptr(newHandle(c, &udm)))) |
| 708 | if rv != C.SQLITE_OK { |
| 709 | return c.lastError() |
| 710 | } |
| 711 | return nil |
| 712 | case Module: |
| 713 | rv := C._sqlite3_create_module(c.db, mname, C.uintptr_t(uintptr(newHandle(c, &udm)))) |
| 714 | if rv != C.SQLITE_OK { |
| 715 | return c.lastError() |
| 716 | } |
| 717 | return nil |
| 718 | } |
| 719 | return nil |
| 720 | } |