work in progress: Container.Get(), .Query()
This commit is contained in:
parent
48e60dc721
commit
22245a2c3a
2 changed files with 35 additions and 4 deletions
|
@ -73,6 +73,20 @@ func (tr *track) SetTimeStamp(ts *time.Time) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tr *track) Update(h lib.StrSlice, d lib.Map, ts *time.Time) {
|
func (tr *track) Update(h lib.StrSlice, d lib.Map, ts *time.Time) {
|
||||||
|
for i, k := range tr.container.HeadFields {
|
||||||
|
if i >= len(h) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if h[i] != "" {
|
||||||
|
tr.head[k] = h[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if d != nil {
|
||||||
|
tr.data = d
|
||||||
|
}
|
||||||
|
if ts != nil {
|
||||||
|
tr.timeStamp = ts
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// basic container implementation
|
// basic container implementation
|
||||||
|
@ -93,6 +107,21 @@ func Tracks(db *sql.Storage) *Container {
|
||||||
return &Container{container_definition, db}
|
return &Container{container_definition, db}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cont *Container) Get(id lib.Ident) Track {
|
||||||
|
db := cont.Storage
|
||||||
|
qu := lib.Map{
|
||||||
|
"schema": db.Schema,
|
||||||
|
"tablename": cont.TableName,
|
||||||
|
"scols": append(cont.HeadFields, "timestamp", "data"),
|
||||||
|
"qucols": lib.StrSlice{"taskid"},
|
||||||
|
}
|
||||||
|
sql := storage.BuildSql(SqlSelect, qu)
|
||||||
|
print(sql)
|
||||||
|
var h []string
|
||||||
|
tr := cont.ItemFactory(cont, h...)
|
||||||
|
return tr
|
||||||
|
}
|
||||||
|
|
||||||
func (cont *Container) Query(headValues lib.StrSlice) Track {
|
func (cont *Container) Query(headValues lib.StrSlice) Track {
|
||||||
db := cont.Storage
|
db := cont.Storage
|
||||||
data := lib.Map{
|
data := lib.Map{
|
||||||
|
@ -103,7 +132,8 @@ func (cont *Container) Query(headValues lib.StrSlice) Track {
|
||||||
"ordcols": lib.StrSlice{"timestamp"},
|
"ordcols": lib.StrSlice{"timestamp"},
|
||||||
}
|
}
|
||||||
sql := storage.BuildSql(SqlSelect, data)
|
sql := storage.BuildSql(SqlSelect, data)
|
||||||
print(sql)
|
//print(sql)
|
||||||
|
_ = sql
|
||||||
tr := cont.ItemFactory(cont)
|
tr := cont.ItemFactory(cont)
|
||||||
return tr
|
return tr
|
||||||
}
|
}
|
||||||
|
@ -111,7 +141,7 @@ func (cont *Container) Query(headValues lib.StrSlice) Track {
|
||||||
func (cont *Container) NewTrack(h []string, data lib.Map) Track {
|
func (cont *Container) NewTrack(h []string, data lib.Map) Track {
|
||||||
tr := cont.ItemFactory(cont, h...)
|
tr := cont.ItemFactory(cont, h...)
|
||||||
//tr.SetData(data)
|
//tr.SetData(data)
|
||||||
cont.insert(tr)
|
cont.Insert(tr)
|
||||||
return tr
|
return tr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +149,7 @@ func (cont *Container) Save(t Track) lib.Ident {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cont *Container) insert(tr Track) lib.Ident {
|
func (cont *Container) Insert(tr Track) lib.Ident {
|
||||||
var columns []string
|
var columns []string
|
||||||
var values []any
|
var values []any
|
||||||
head := tr.Head()
|
head := tr.Head()
|
||||||
|
|
|
@ -72,7 +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 := cont.Get(1)
|
||||||
|
//tr2 := cont.Query(lib.StrSlice{"", "john"})
|
||||||
_ = tr2
|
_ = tr2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue