Skip to content

Commit

Permalink
Layer: replace arrays with slices
Browse files Browse the repository at this point in the history
The current code is much cleaner because it doesn't use indexes + it
should be more memory efficient.
  • Loading branch information
Allda committed Jan 16, 2019
1 parent 90f5592 commit 015a79f
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions database/pgsql/layer.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,12 +235,9 @@ func (tx *pgSession) persistLayerFeatures(features []dbLayerFeature) error {
sort.Slice(features, func(i, j int) bool {
return features[i].featureID < features[j].featureID
})

keys := make([]interface{}, len(features)*3)
for i, feature := range features {
keys[i*3] = feature.layerID
keys[i*3+1] = feature.featureID
keys[i*3+2] = feature.detectorID
keys := make([]interface{}, 0, len(features)*3)
for _, f := range features {
keys = append(keys, f.layerID, f.featureID, f.detectorID)
}

_, err := tx.Exec(queryPersistLayerFeature(len(features)), keys...)
Expand All @@ -260,12 +257,9 @@ func (tx *pgSession) persistLayerNamespaces(namespaces []dbLayerNamespace) error
return namespaces[i].namespaceID < namespaces[j].namespaceID
})

elementSize := 3
keys := make([]interface{}, len(namespaces)*elementSize)
for i, row := range namespaces {
keys[i*3] = row.layerID
keys[i*3+1] = row.namespaceID
keys[i*3+2] = row.detectorID
keys := make([]interface{}, 0, len(namespaces)*3)
for _, row := range namespaces {
keys = append(keys, row.layerID, row.namespaceID, row.detectorID)
}

_, err := tx.Exec(queryPersistLayerNamespace(len(namespaces)), keys...)
Expand Down

0 comments on commit 015a79f

Please sign in to comment.