1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package schema
- import (
- "github.com/seaweedfs/seaweedfs/weed/pb/schema_pb"
- )
- type Schema struct {
- RecordType *schema_pb.RecordType
- fieldMap map[string]*schema_pb.Field
- }
- func NewSchema(recordType *schema_pb.RecordType) (*Schema, error) {
- fieldMap := make(map[string]*schema_pb.Field)
- for _, field := range recordType.Fields {
- fieldMap[field.Name] = field
- }
- return &Schema{
- RecordType: recordType,
- fieldMap: fieldMap,
- }, nil
- }
- func (s *Schema) GetField(name string) (*schema_pb.Field, bool) {
- field, ok := s.fieldMap[name]
- return field, ok
- }
- func TypeToString(t *schema_pb.Type) string {
- switch t.Kind.(type) {
- case *schema_pb.Type_ScalarType:
- switch t.GetScalarType() {
- case schema_pb.ScalarType_BOOL:
- return "bool"
- case schema_pb.ScalarType_INT32:
- return "int32"
- case schema_pb.ScalarType_INT64:
- return "int64"
- case schema_pb.ScalarType_FLOAT:
- return "float"
- case schema_pb.ScalarType_DOUBLE:
- return "double"
- case schema_pb.ScalarType_BYTES:
- return "bytes"
- case schema_pb.ScalarType_STRING:
- return "string"
- }
- case *schema_pb.Type_ListType:
- return "list"
- case *schema_pb.Type_RecordType:
- return "record"
- }
- return "unknown"
- }
|