package virtdb.interface.pb;
import "common.proto";

message Comment {
  required string Text      = 1;
  optional string Language  = 2;
}

message FieldDesc {
  required Kind    Type     = 1;
  optional uint32  Length   = 2;
  optional uint32  Scale    = 3;
  optional string  Format   = 4;
}

message Field {
  required string     Name        = 1;
  required FieldDesc  Desc        = 2;
  repeated Comment    Comments    = 3;
  repeated KeyValue   Properties  = 4;
}

message TableMeta {
  required string    Name        = 1;
  optional string    Schema      = 2;
  repeated Comment   Comments    = 3;
  repeated KeyValue  Properties  = 4;
  repeated Field     Fields      = 5;
}

message MetaDataRequest { // REQ
  // both: regexp 
  required string  Name          = 1;
  optional string  Schema        = 2;
  required bool    WithFields    = 3;
  optional string  CheckSum      = 4;
  optional string  UserToken     = 5;
}

message MetaData { // REP, PUB-SUB channel: "ProviderName Schema Table"
  repeated TableMeta  Tables        = 1;
  optional string     CheckSum      = 2;
  optional string     ErrorMessage  = 3;
}
