Merge pull request #1438 from mattn/fix-vtable-example-declare

Use the table name from xCreate args in vtable example
This commit is contained in:
mattn
2026-07-29 06:08:08 +00:00
committed by GitHub

View File

@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"strings"
"github.com/mattn/go-sqlite3" "github.com/mattn/go-sqlite3"
) )
@@ -20,13 +21,20 @@ type githubModule struct {
} }
func (m *githubModule) Create(c *sqlite3.SQLiteConn, args []string) (sqlite3.VTab, error) { func (m *githubModule) Create(c *sqlite3.SQLiteConn, args []string) (sqlite3.VTab, error) {
// args holds the raw xCreate arguments: args[0] is the module name,
// args[1] the database name, args[2] the virtual table name, and any
// user arguments follow.
if len(args) < 3 {
return nil, fmt.Errorf("githubModule: unexpected arguments: %v", args)
}
tableName := `"` + strings.ReplaceAll(args[2], `"`, `""`) + `"`
err := c.DeclareVTab(fmt.Sprintf(` err := c.DeclareVTab(fmt.Sprintf(`
CREATE TABLE %s ( CREATE TABLE %s (
id INT, id INT,
full_name TEXT, full_name TEXT,
description TEXT, description TEXT,
html_url TEXT html_url TEXT
)`, args[0])) )`, tableName))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -49,6 +57,9 @@ func (v *ghRepoTable) Open() (sqlite3.VTabCursor, error) {
return nil, err return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("fetching repositories: %s", resp.Status)
}
body, err := ioutil.ReadAll(resp.Body) body, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {