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:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/mattn/go-sqlite3"
|
||||
)
|
||||
@@ -20,13 +21,20 @@ type githubModule struct {
|
||||
}
|
||||
|
||||
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(`
|
||||
CREATE TABLE %s (
|
||||
id INT,
|
||||
full_name TEXT,
|
||||
description TEXT,
|
||||
html_url TEXT
|
||||
)`, args[0]))
|
||||
)`, tableName))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -49,6 +57,9 @@ func (v *ghRepoTable) Open() (sqlite3.VTabCursor, error) {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, fmt.Errorf("fetching repositories: %s", resp.Status)
|
||||
}
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user