appview: db/issues: add ID field to Issue #330

merged
opened by boltless.me targeting master from boltless.me/core: push-pslnqmxvulmp

This will help indexing Issues faster when we introduce external search indexer

Signed-off-by: Seongmin Lee boltlessengineer@proton.me

Changed files
+17 -6
appview
+17 -6
appview/db/issues.go
···
)
type Issue struct {
RepoAt syntax.ATURI
OwnerDid string
IssueId int
···
issue.IssueId = nextId
-
_, err = tx.Exec(`
insert into issues (repo_at, owner_did, issue_id, title, body)
values (?, ?, ?, ?, ?)
`, issue.RepoAt, issue.OwnerDid, issue.IssueId, issue.Title, issue.Body)
···
return err
}
if err := tx.Commit(); err != nil {
return err
}
···
`
with numbered_issue as (
select
i.owner_did,
i.issue_id,
i.created,
···
i.id, i.owner_did, i.issue_id, i.created, i.title, i.body, i.open
)
select
owner_did,
issue_id,
created,
···
var issue Issue
var createdAt string
var metadata IssueMetadata
-
err := rows.Scan(&issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &metadata.CommentCount)
if err != nil {
return nil, err
}
···
rows, err := e.Query(
`select
i.owner_did,
i.repo_at,
i.issue_id,
···
var issueCreatedAt, repoCreatedAt string
var repo Repo
err := rows.Scan(
&issue.OwnerDid,
&issue.RepoAt,
&issue.IssueId,
···
}
func GetIssue(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, error) {
-
query := `select owner_did, created, title, body, open from issues where repo_at = ? and issue_id = ?`
row := e.QueryRow(query, repoAt, issueId)
var issue Issue
var createdAt string
-
err := row.Scan(&issue.OwnerDid, &createdAt, &issue.Title, &issue.Body, &issue.Open)
if err != nil {
return nil, err
}
···
}
func GetIssueWithComments(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, []Comment, error) {
-
query := `select owner_did, issue_id, created, title, body, open, issue_at from issues where repo_at = ? and issue_id = ?`
row := e.QueryRow(query, repoAt, issueId)
var issue Issue
var createdAt string
-
err := row.Scan(&issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &issue.IssueAt)
if err != nil {
return nil, nil, err
}
···
)
type Issue struct {
+
ID int64
RepoAt syntax.ATURI
OwnerDid string
IssueId int
···
issue.IssueId = nextId
+
res, err := tx.Exec(`
insert into issues (repo_at, owner_did, issue_id, title, body)
values (?, ?, ?, ?, ?)
`, issue.RepoAt, issue.OwnerDid, issue.IssueId, issue.Title, issue.Body)
···
return err
}
+
lastID, err := res.LastInsertId()
+
if err != nil {
+
return err
+
}
+
issue.ID = lastID
+
if err := tx.Commit(); err != nil {
return err
}
···
`
with numbered_issue as (
select
+
i.id,
i.owner_did,
i.issue_id,
i.created,
···
i.id, i.owner_did, i.issue_id, i.created, i.title, i.body, i.open
)
select
+
id,
owner_did,
issue_id,
created,
···
var issue Issue
var createdAt string
var metadata IssueMetadata
+
err := rows.Scan(&issue.ID, &issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &metadata.CommentCount)
if err != nil {
return nil, err
}
···
rows, err := e.Query(
`select
+
i.id,
i.owner_did,
i.repo_at,
i.issue_id,
···
var issueCreatedAt, repoCreatedAt string
var repo Repo
err := rows.Scan(
+
&issue.ID,
&issue.OwnerDid,
&issue.RepoAt,
&issue.IssueId,
···
}
func GetIssue(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, error) {
+
query := `select id, owner_did, created, title, body, open from issues where repo_at = ? and issue_id = ?`
row := e.QueryRow(query, repoAt, issueId)
var issue Issue
var createdAt string
+
err := row.Scan(&issue.ID, &issue.OwnerDid, &createdAt, &issue.Title, &issue.Body, &issue.Open)
if err != nil {
return nil, err
}
···
}
func GetIssueWithComments(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, []Comment, error) {
+
query := `select id, owner_did, issue_id, created, title, body, open, issue_at from issues where repo_at = ? and issue_id = ?`
row := e.QueryRow(query, repoAt, issueId)
var issue Issue
var createdAt string
+
err := row.Scan(&issue.ID, &issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &issue.IssueAt)
if err != nil {
return nil, nil, err
}