work in progress: Container.Get(), .Query()

This commit is contained in:
Helmut Merz 2024-04-11 13:18:33 +02:00
parent 48e60dc721
commit 22245a2c3a
2 changed files with 35 additions and 4 deletions

View file

@ -73,6 +73,20 @@ func (tr *track) SetTimeStamp(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
@ -93,6 +107,21 @@ func Tracks(db *sql.Storage) *Container {
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 {
db := cont.Storage
data := lib.Map{
@ -103,7 +132,8 @@ func (cont *Container) Query(headValues lib.StrSlice) Track {
"ordcols": lib.StrSlice{"timestamp"},
}
sql := storage.BuildSql(SqlSelect, data)
print(sql)
//print(sql)
_ = sql
tr := cont.ItemFactory(cont)
return tr
}
@ -111,7 +141,7 @@ func (cont *Container) Query(headValues lib.StrSlice) Track {
func (cont *Container) NewTrack(h []string, data lib.Map) Track {
tr := cont.ItemFactory(cont, h...)
//tr.SetData(data)
cont.insert(tr)
cont.Insert(tr)
return tr
}
@ -119,7 +149,7 @@ func (cont *Container) Save(t Track) lib.Ident {
return 0
}
func (cont *Container) insert(tr Track) lib.Ident {
func (cont *Container) Insert(tr Track) lib.Ident {
var columns []string
var values []any
head := tr.Head()

View file

@ -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.TimeStamp().Year(), time.Now().Year())
//fmt.Printf("%+v\n", track.TimeStamp())
tr2 := cont.Query(lib.StrSlice{"", "john"})
tr2 := cont.Get(1)
//tr2 := cont.Query(lib.StrSlice{"", "john"})
_ = tr2
}