update notnull field on imports

This commit is contained in:
Travis Turner 2018-09-06 22:56:53 -05:00
parent 60e83fc6db
commit 4c67cb18ed
No known key found for this signature in database
GPG key ID: 7F08008DFD9314C9

23
api.go
View file

@ -686,6 +686,12 @@ func (api *API) Import(_ context.Context, req *ImportRequest) error {
timestamps[i] = &t
}
// Import columnIDs into notnull field.
if err := importNotNullColumns(index, req.ColumnIDs); err != nil {
api.server.logger.Printf("import notnull error: index=%s, field=%s, shard=%d, columns=%d, err=%s", req.Index, req.Field, req.Shard, len(req.ColumnIDs), err)
return errors.Wrap(err, "importing notnull columns")
}
// Import into fragment.
err = field.Import(req.RowIDs, req.ColumnIDs, timestamps)
if err != nil {
@ -720,6 +726,12 @@ func (api *API) ImportValue(_ context.Context, req *ImportValueRequest) error {
}
}
// Import columnIDs into notnull field.
if err := importNotNullColumns(index, req.ColumnIDs); err != nil {
api.server.logger.Printf("import notnull error: index=%s, field=%s, shard=%d, columns=%d, err=%s", req.Index, req.Field, req.Shard, len(req.ColumnIDs), err)
return errors.Wrap(err, "importing notnull columns")
}
// Import into fragment.
err = field.importValue(req.ColumnIDs, req.Values)
if err != nil {
@ -728,6 +740,17 @@ func (api *API) ImportValue(_ context.Context, req *ImportValueRequest) error {
return errors.Wrap(err, "importing")
}
func importNotNullColumns(index *Index, columnIDs []uint64) error {
nnf := index.unprotectedNotNullField()
if nnf == nil {
return nil
}
notNullRowIDs := make([]uint64, len(columnIDs))
notNullTimestamps := make([]*time.Time, len(columnIDs))
return nnf.Import(notNullRowIDs, columnIDs, notNullTimestamps)
}
// MaxShards returns the maximum shard number for each index in a map.
func (api *API) MaxShards(_ context.Context) map[string]uint64 {
m := make(map[string]uint64)