MCPcopy
hub / github.com/dgraph-io/dgraph / toSchema

Function toSchema

worker/export.go:286–334  ·  view source on GitHub ↗
(attr string, update *pb.SchemaUpdate)

Source from the content-addressed store, hash-verified

284}
285
286func toSchema(attr string, update *pb.SchemaUpdate) *bpb.KV {
287 // bytes.Buffer never returns error for any of the writes. So, we don't need to check them.
288 ns, attr := x.ParseNamespaceAttr(attr)
289 var buf bytes.Buffer
290 x.Check2(buf.WriteString(fmt.Sprintf("[%#x]", ns)))
291 x.Check2(buf.WriteRune(' '))
292 x.Check2(buf.WriteRune('<'))
293 x.Check2(buf.WriteString(attr))
294 x.Check2(buf.WriteRune('>'))
295 x.Check2(buf.WriteRune(':'))
296 if update.GetList() {
297 x.Check2(buf.WriteRune('['))
298 }
299 x.Check2(buf.WriteString(types.TypeID(update.GetValueType()).Name()))
300 if update.GetList() {
301 x.Check2(buf.WriteRune(']'))
302 }
303 switch {
304 case update.GetDirective() == pb.SchemaUpdate_REVERSE:
305 x.Check2(buf.WriteString(" @reverse"))
306 case update.GetDirective() == pb.SchemaUpdate_INDEX && len(update.GetTokenizer()) > 0:
307 x.Check2(buf.WriteString(" @index("))
308 x.Check2(buf.WriteString(strings.Join(update.GetTokenizer(), ",")))
309 x.Check2(buf.WriteRune(')'))
310
311 case len(update.GetIndexSpecs()) != 0:
312 str := formatVectorSchema(update)
313 x.Check2(buf.WriteString(str))
314
315 }
316 if update.GetCount() {
317 x.Check2(buf.WriteString(" @count"))
318 }
319 if update.GetLang() {
320 x.Check2(buf.WriteString(" @lang"))
321 }
322 if update.GetUpsert() {
323 x.Check2(buf.WriteString(" @upsert"))
324 }
325 if update.GetUnique() {
326 x.Check2(buf.WriteString(" @unique"))
327 }
328 x.Check2(buf.WriteString(" . \n"))
329 //TODO(Naman): We don't need the version anymore.
330 return &bpb.KV{
331 Value: buf.Bytes(),
332 Version: 3, // Schema value
333 }
334}
335
336func formatVectorSchema(schema *pb.SchemaUpdate) string {
337 var buf bytes.Buffer

Callers 2

SchemaExportKvFunction · 0.85
TestToSchemaFunction · 0.85

Calls 14

ParseNamespaceAttrFunction · 0.92
Check2Function · 0.92
TypeIDTypeAlias · 0.92
formatVectorSchemaFunction · 0.85
GetDirectiveMethod · 0.80
NameMethod · 0.65
GetListMethod · 0.45
GetValueTypeMethod · 0.45
GetTokenizerMethod · 0.45
GetIndexSpecsMethod · 0.45
GetCountMethod · 0.45
GetLangMethod · 0.45

Tested by 1

TestToSchemaFunction · 0.68