Ever wondered exactly *what* was in a Drizzle Table proto? Well, wonder no more. A while back this little utility called table_raw_reader hit the drizzle codebase. It’s a simple command line utility that takes a .proto file as an argument, reads it off disk and then prints out a text representation using the TextFormat class of the protobuf library.
An example:
stewart@willster:~/drizzle/jay-and-stewart-remove-pack_flag$ ./drizzled/message/table_raw_reader ./tests/var/master-data/test/t1.dfe name: "t1" engine { name: "InnoDB" } field { name: "id" type: INTEGER format: DefaultFormat options { length: 11 } } field { name: "padding" type: VARCHAR format: DefaultFormat options { length: 800 } string_options { length: 200 collation_id: 45 collation: "utf8_general_ci" } } indexes { name: "PRIMARY" is_primary: true is_unique: true type: UNKNOWN_INDEX key_length: 4 index_part { fieldnr: 0 compare_length: 4 key_type: 8 } options { } } type: STANDARD options { collation: "utf8_general_ci" collation_id: 45 pack_record: true row_type: ROW_TYPE_DEFAULT }
This can help a lot when debugging, it already has helped me a lot. It’s left as an exercise for the reader to create a utility that lets you modify the table proto in this text based format.