From 324c9b41c7173e3468dfb7f9d87efb024843eab0 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 14 Apr 2024 11:14:55 +0200 Subject: [PATCH] add IdFields (specifying head fields identifying a track) to container definition --- storage/message/message.go | 14 +++++++------- storage/tracking/tracking.go | 26 +++++++++++++++++--------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/storage/message/message.go b/storage/message/message.go index ac2d486..15704d3 100644 --- a/storage/message/message.go +++ b/storage/message/message.go @@ -55,13 +55,13 @@ func StoreDB(db *sql.Storage, msg lib.Message) { var container_definition *tracking.ContDef func init() { - container_definition = &tracking.ContDef{ + hf := lib.StrSlice{"domain", "action", "class", "item"} + ixs := []lib.StrSlice{hf} + ixs = append(ixs, lib.StrSlice{"domain", "class", "item"}) + container_definition = (&tracking.ContDef{ ItemFactory: MakeMessage, TableName: "messages", - HeadFields: []string{"domain", "action", "class", "item"}, - Indexes: [][]string{ - []string{"domain", "action", "class", "item"}, - []string{"domain", "class", "item"}, - }, - } + HeadFields: hf, + Indexes: ixs, + }).SetUp() } diff --git a/storage/tracking/tracking.go b/storage/tracking/tracking.go index d7ebb50..8ff84f7 100644 --- a/storage/tracking/tracking.go +++ b/storage/tracking/tracking.go @@ -80,8 +80,16 @@ func (tr *Track) ScanP(rows *sql.Rows) error { type ContDef struct { ItemFactory ItemFactory TableName string - HeadFields []string - Indexes [][]string + HeadFields lib.StrSlice + IdFields lib.StrSlice + Indexes []lib.StrSlice +} + +func (cd *ContDef) SetUp() *ContDef { + if cd.IdFields == nil { + cd.IdFields = cd.HeadFields + } + return cd } type Container struct { @@ -273,13 +281,13 @@ func (cont *Container) CreateTable() { var container_definition *ContDef func init() { - container_definition = &ContDef{ + hf := lib.StrSlice{"taskId", "userName"} + ixs := []lib.StrSlice{hf} + ixs = append(ixs, lib.StrSlice{"userName"}) + container_definition = (&ContDef{ ItemFactory: MakeTrack, TableName: "tracks", - HeadFields: []string{"taskId", "userName"}, - Indexes: [][]string{ - []string{"taskId", "userName"}, - []string{"userName"}, - }, - } + HeadFields: hf, + Indexes: ixs, + }).SetUp() }