work in progress: query tracks
This commit is contained in:
parent
d7bcaf2559
commit
40661d549d
3 changed files with 32 additions and 1 deletions
|
@ -39,11 +39,25 @@ insert into {{ $tablename }} (
|
||||||
{{- if ne $j 0 -}}, {{ end }}${{ add1 $j }}
|
{{- if ne $j 0 -}}, {{ end }}${{ add1 $j }}
|
||||||
{{- end -}})
|
{{- end -}})
|
||||||
returning trackid, timestamp`
|
returning trackid, timestamp`
|
||||||
|
|
||||||
|
sql_select = `
|
||||||
|
{{- $tablename := or (and .schema (printf "%s.%s" .schema .tablename)) .tablename -}}
|
||||||
|
select {{ range $j, $c := .scols -}}
|
||||||
|
{{- if ne $j 0 -}}, {{ end }}{{ toLower $c }}{{- end }}
|
||||||
|
from {{ $tablename }}
|
||||||
|
where {{ range $j, $c := .qucols -}}
|
||||||
|
{{- if ne $j 0 }} and {{ end }}{{ toLower $c }} = ${{ add1 $j }}{{- end }}
|
||||||
|
{{ with .ordcols -}}
|
||||||
|
ordered by {{ range $j, $c := . -}}
|
||||||
|
{{- if ne $j 0 -}}, {{ end }}{{ toLower $c }}{{- end -}}
|
||||||
|
{{- end }}
|
||||||
|
{{ with .limit }}limit {{ . }}{{ end }}`
|
||||||
)
|
)
|
||||||
|
|
||||||
var SqlCreate, SqlInsert *template.Template
|
var SqlCreate, SqlInsert, SqlSelect *template.Template
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
SqlCreate = storage.Template("create_table", sql_table)
|
SqlCreate = storage.Template("create_table", sql_table)
|
||||||
SqlInsert = storage.Template("insert_track", sql_insert)
|
SqlInsert = storage.Template("insert_track", sql_insert)
|
||||||
|
SqlSelect = storage.Template("select_track", sql_select)
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,21 @@ func Tracks(db *sql.Storage) *Container {
|
||||||
return &Container{container_definition, db}
|
return &Container{container_definition, db}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cont *Container) Query(headValues lib.StrSlice) Track {
|
||||||
|
head := lib.StrMap{}
|
||||||
|
db := cont.Storage
|
||||||
|
data := lib.Map{
|
||||||
|
"schema": db.Schema,
|
||||||
|
"tablename": cont.TableName,
|
||||||
|
"scols": []string{"taskid", "data"},
|
||||||
|
"qucols": []string{"taskid", "username"},
|
||||||
|
}
|
||||||
|
sql := storage.BuildSql(SqlSelect, data)
|
||||||
|
print(sql)
|
||||||
|
tr := cont.ItemFactory(&TrackTemplate{Head: head}, cont)
|
||||||
|
return tr
|
||||||
|
}
|
||||||
|
|
||||||
func (cont *Container) NewTrack(headValues lib.StrSlice, data lib.Map) Track {
|
func (cont *Container) NewTrack(headValues lib.StrSlice, data lib.Map) Track {
|
||||||
head := lib.StrMap{}
|
head := lib.StrMap{}
|
||||||
for i, k := range cont.HeadFields {
|
for i, k := range cont.HeadFields {
|
||||||
|
|
|
@ -72,6 +72,8 @@ func TrackingTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
t.AssertEqual(track.TrackId(), lib.Ident(1))
|
t.AssertEqual(track.TrackId(), lib.Ident(1))
|
||||||
t.AssertEqual(track.TimeStamp().Year(), time.Now().Year())
|
t.AssertEqual(track.TimeStamp().Year(), time.Now().Year())
|
||||||
//fmt.Printf("%+v\n", track.TimeStamp())
|
//fmt.Printf("%+v\n", track.TimeStamp())
|
||||||
|
tr2 := cont.Query(lib.StrSlice{"", "john"})
|
||||||
|
_ = tr2
|
||||||
}
|
}
|
||||||
|
|
||||||
func MessageTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
func MessageTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue