private PB.TableMeta EncodeTableMeta(DataModel.TableMeta tableMeta)
        {
            var builder = PB.TableMeta.CreateBuilder();

            builder.SetTableName(tableMeta.TableName);
            builder.AddRangePrimaryKey(EncodePrimaryKeySchema(tableMeta.PrimaryKeySchema));
            if (tableMeta.DefinedColumnSchema != null)
            {
                builder.AddRangeDefinedColumn(EncodeDefinedColumnSchema(tableMeta.DefinedColumnSchema));
            }
            return(builder.Build());
        }
        private DataModel.TableMeta ParseTableMeta(PB.TableMeta tableMeta)
        {
            var schema = new DataModel.PrimaryKeySchema();

            for (int i = 0; i < tableMeta.PrimaryKeyCount; i++)
            {
                var item = tableMeta.GetPrimaryKey(i);
                schema.Add(item.Name, ParseColumnValueType(item.Type));
            }

            var ret = new DataModel.TableMeta(
                tableMeta.TableName,
                schema
                );

            return(ret);
        }