diff --git a/worker/export.go b/worker/export.go index b8a25875b88f8885ffa384766e2d72b9e15f8ee7..b9a5468ed952219e5560ff76b623327d849fdfeb 100644 --- a/worker/export.go +++ b/worker/export.go @@ -163,6 +163,12 @@ func toSchema(buf *bytes.Buffer, s *skv) { if s.schema.Count { buf.WriteString(" @count") } + if s.schema.Lang { + buf.WriteString(" @lang") + } + if s.schema.Upsert { + buf.WriteString(" @upsert") + } buf.WriteString(" . \n") } diff --git a/worker/export_test.go b/worker/export_test.go index 9dcf34540fa4510e42f6243d92ad0c3d19714a27..e85231505d69b257c2b6168fabee2d6ce9ace36c 100644 --- a/worker/export_test.go +++ b/worker/export_test.go @@ -9,6 +9,7 @@ package worker import ( "bufio" + "bytes" "compress/gzip" "io/ioutil" "math" @@ -220,6 +221,49 @@ func TestExport(t *testing.T) { require.Equal(t, 1, count) } +func TestToSchema(t *testing.T) { + testCases := []struct { + skv *skv + expected string + }{ + { + skv: &skv{ + attr: "Alice", + schema: &intern.SchemaUpdate{ + Predicate: "mother", + ValueType: intern.Posting_STRING, + Directive: intern.SchemaUpdate_REVERSE, + List: false, + Count: true, + Upsert: true, + Lang: true, + }, + }, + expected: "Alice:string @reverse @count @lang @upsert . \n", + }, + { + skv: &skv{ + attr: "Alice:best", + schema: &intern.SchemaUpdate{ + Predicate: "mother", + ValueType: intern.Posting_STRING, + Directive: intern.SchemaUpdate_REVERSE, + List: false, + Count: false, + Upsert: false, + Lang: true, + }, + }, + expected: "<Alice:best>:string @reverse @lang . \n", + }, + } + for _, testCase := range testCases { + buf := new(bytes.Buffer) + toSchema(buf, testCase.skv) + require.Equal(t, testCase.expected, buf.String()) + } +} + // func generateBenchValues() []kv { // byteInt := make([]byte, 4) // binary.LittleEndian.PutUint32(byteInt, 123)