/
githubmirror
/
sqlc
Обзор
Документация
Войти
/
githubmirror
/
sqlc
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
protos/vet/vet.proto
129 строк
4 KB
Kyle Gray
feat(verify): Add new command to verify queries and migrations (#2986)
21 ноя 2023, 20:07
Не верифицирован
21 ноя 2023, 20:07
64313a6
Код
Авторство
О чём код?
syntax = "proto3"; package vet; message Parameter { int32 number = 1 [json_name = "number"]; } message Config { string version = 1 [json_name = "version"]; string engine = 2 [json_name = "engine"]; repeated string schema = 3 [json_name = "schema"]; repeated string queries = 4 [json_name = "queries"]; } message Query { string sql = 1 [json_name = "sql"]; string name = 2 [json_name = "name"]; string cmd = 3 [json_name = "cmd"]; repeated Parameter params = 4 [json_name = "parameters"]; } message PostgreSQL { PostgreSQLExplain explain = 1; } message PostgreSQLExplain { Plan plan = 1 [json_name = "Plan"]; map<string, string> settings = 2 [json_name = "Settings"]; Planning planning = 3 [json_name = "Planning"]; message Plan { string node_type = 1 [json_name = "Node Type"]; string parent_relationship = 2 [json_name = "Parent Relationship"]; string relation_name = 3 [json_name = "Relation Name"]; string schema = 4 [json_name = "Schema"]; string alias = 5 [json_name = "Alias"]; bool parallel_aware = 6 [json_name = "Parallel Aware"]; bool async_capable = 7 [json_name = "Async Capable"]; float startup_cost = 8 [json_name = "Startup Cost"]; float total_cost = 9 [json_name = "Total Cost"]; uint64 plan_rows = 10 [json_name = "Plan Rows"]; uint64 plan_width = 11 [json_name = "Plan Width"]; repeated string output = 12 [json_name = "Output"]; repeated Plan plans = 13 [json_name = "Plans"]; // Embedded "Blocks" fields uint64 shared_hit_blocks = 14 [json_name = "Shared Hit Blocks"]; uint64 shared_read_blocks = 15 [json_name = "Shared Read Blocks"]; uint64 shared_dirtied_blocks = 16 [json_name = "Shared Dirtied Blocks"]; uint64 shared_written_blocks = 17 [json_name = "Shared Written Blocks"]; uint64 local_hit_blocks = 18 [json_name = "Local Hit Blocks"]; uint64 local_read_blocks = 19 [json_name = "Local Read Blocks"]; uint64 local_dirtied_blocks = 20 [json_name = "Local Dirtied Blocks"]; uint64 local_written_blocks = 21 [json_name = "Local Written Blocks"]; uint64 temp_read_blocks = 22 [json_name = "Temp Read Blocks"]; uint64 temp_written_blocks = 23 [json_name = "Temp Written Blocks"]; // "Node Type": "Sort" fields repeated string sort_key = 24 [json_name = "Sort Key"]; // "Node Type": "Hash Join" fields string join_type = 25 [json_name = "Join Type"]; bool inner_unique = 26 [json_name = "Inner Unique"]; string hash_cond = 27 [json_name = "Hash Cond"]; // "Node Type": "Index Scan" fields string index_name = 28 [json_name = "Index Name"]; string scan_direction = 29 [json_name = "Scan Direction"]; string index_cond = 30 [json_name = "Index Cond"]; } message Planning { uint64 shared_hit_blocks = 1 [json_name = "Shared Hit Blocks"]; uint64 shared_read_blocks = 2 [json_name = "Shared Read Blocks"]; uint64 shared_dirtied_blocks = 3 [json_name = "Shared Dirtied Blocks"]; uint64 shared_written_blocks = 4 [json_name = "Shared Written Blocks"]; uint64 local_hit_blocks = 5 [json_name = "Local Hit Blocks"]; uint64 local_read_blocks = 6 [json_name = "Local Read Blocks"]; uint64 local_dirtied_blocks = 7 [json_name = "Local Dirtied Blocks"]; uint64 local_written_blocks = 8 [json_name = "Local Written Blocks"]; uint64 temp_read_blocks = 9 [json_name = "Temp Read Blocks"]; uint64 temp_written_blocks = 10 [json_name = "Temp Written Blocks"]; } } message MySQL { MySQLExplain explain = 1; } message MySQLExplain { QueryBlock query_block = 1; message QueryBlock { uint64 select_id = 1; string message = 2; map<string, string> cost_info = 3; Table table = 4; OrderingOperation ordering_operation = 5; repeated NestedLoopObj nested_loop = 6; } message Table { string table_name = 1; string access_type = 2; uint64 rows_examined_per_scan = 3; uint64 rows_produced_per_join = 4; string filtered = 5; map<string, string> cost_info = 6; repeated string used_columns = 7; bool insert = 8; repeated string possible_keys = 9; string key = 10; repeated string used_key_parts = 11; string key_length = 12; repeated string ref = 13; } message NestedLoopObj { Table table = 1; } message OrderingOperation { bool using_filesort = 1; map<string, string> cost_info = 2; Table table = 3; repeated NestedLoopObj nested_loop = 4; } }