protected override void GetMetadataCore <TValue>(string kind, int col, ref TValue value)
 {
     Ectx.Assert(0 <= col && col < ColumnCount);
     if (kind == MetadataUtils.Kinds.KeyValues && _keyValueGetters[col] != null)
     {
         _keyValueGetters[col].Marshal(col, ref value);
     }
     else
     {
         throw Ectx.ExceptGetMetadata();
     }
 }
 protected override void GetMetadataCore <TValue>(string kind, int col, ref TValue value)
 {
     Ectx.Assert(0 <= col && col < ColumnCount);
     if (kind == OpType)
     {
         _opTypeGetters[col].Marshal(col, ref value);
     }
     else if (kind == InputOps && _inputOpsGetters[col] != null)
     {
         _inputOpsGetters[col].Marshal(col, ref value);
     }
     else
     {
         throw Ectx.ExceptGetMetadata();
     }
 }