From 43c762cb0b7d8a2a8bf28dff482b6fce126667fd Mon Sep 17 00:00:00 2001 From: Chris Nivera Date: Mon, 21 Oct 2024 15:43:56 -0700 Subject: [PATCH 1/3] update proto def --- .../protos/semantic_model.proto | 3 ++ .../protos/semantic_model_pb2.py | 38 ++++++++++++------- .../protos/semantic_model_pb2.pyi | 6 ++- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/semantic_model_generator/protos/semantic_model.proto b/semantic_model_generator/protos/semantic_model.proto index cc2d27e7..f5331fe3 100644 --- a/semantic_model_generator/protos/semantic_model.proto +++ b/semantic_model_generator/protos/semantic_model.proto @@ -307,6 +307,9 @@ message VerifiedQuery { int64 verified_at = 5 [(optional) = true]; // Name of the person who verified this query. string verified_by = 6 [(optional) = true]; + // Whether to always include in this question in the suggested questions + // module + bool use_as_onboarding_question = 7 [(optional) = true]; } // VerifiedQueryRepository is a simply a collection of verified queries. diff --git a/semantic_model_generator/protos/semantic_model_pb2.py b/semantic_model_generator/protos/semantic_model_pb2.py index 50828e1f..df657151 100644 --- a/semantic_model_generator/protos/semantic_model_pb2.py +++ b/semantic_model_generator/protos/semantic_model_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: semantic_model.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.27.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 27, + 2, + '', + 'semantic_model.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,7 +25,7 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14semantic_model.proto\x12\x18semantic_model_generator\x1a google/protobuf/descriptor.proto\"/\n\x0fRetrievalResult\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x02\"\xcb\x03\n\x06\x43olumn\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x32\n\x04kind\x18\x06 \x01(\x0e\x32$.semantic_model_generator.ColumnKind\x12\x14\n\x06unique\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x08 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\t \x03(\tB\x04\x90\x82\x19\x01\x12\'\n\x19index_and_retrieve_values\x18\n \x01(\x08\x42\x04\x90\x82\x19\x01\x12K\n\x12retrieved_literals\x18\x0b \x03(\x0b\x32).semantic_model_generator.RetrievalResultB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\x0c \x01(\tB\x04\x90\x82\x19\x01\"\xd6\x01\n\tDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\t \x01(\tB\x04\x90\x82\x19\x01\"\xb0\x01\n\rTimeDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\"\xe2\x01\n\x07Measure\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x06 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\"b\n\x0bNamedFilter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\"F\n\x13\x46ullyQualifiedTable\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\"\x1d\n\nPrimaryKey\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\"\x8b\x04\n\x05Table\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x41\n\nbase_table\x18\x04 \x01(\x0b\x32-.semantic_model_generator.FullyQualifiedTable\x12\x37\n\x07\x63olumns\x18\x05 \x03(\x0b\x32 .semantic_model_generator.ColumnB\x04\x90\x82\x19\x01\x12=\n\ndimensions\x18\t \x03(\x0b\x32#.semantic_model_generator.DimensionB\x04\x90\x82\x19\x01\x12\x46\n\x0ftime_dimensions\x18\n \x03(\x0b\x32\'.semantic_model_generator.TimeDimensionB\x04\x90\x82\x19\x01\x12\x39\n\x08measures\x18\x0b \x03(\x0b\x32!.semantic_model_generator.MeasureB\x04\x90\x82\x19\x01\x12?\n\x0bprimary_key\x18\x06 \x01(\x0b\x32$.semantic_model_generator.PrimaryKeyB\x04\x90\x82\x19\x01\x12<\n\x07\x66ilters\x18\x08 \x03(\x0b\x32%.semantic_model_generator.NamedFilterB\x04\x90\x82\x19\x01\"\xa2\x01\n\x06Metric\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12=\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\'.semantic_model_generator.MetricsFilterB\x04\x90\x82\x19\x01\"#\n\rMetricsFilter\x12\x12\n\x04\x65xpr\x18\x01 \x01(\tB\x04\x98\x82\x19\x01\"8\n\x0bRelationKey\x12\x13\n\x0bleft_column\x18\x01 \x01(\t\x12\x14\n\x0cright_column\x18\x02 \x01(\t\"\x88\x02\n\x0cRelationship\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nleft_table\x18\x02 \x01(\t\x12\x13\n\x0bright_table\x18\x03 \x01(\t\x12\x43\n\x14relationship_columns\x18\x07 \x03(\x0b\x32%.semantic_model_generator.RelationKey\x12\x35\n\tjoin_type\x18\x05 \x01(\x0e\x32\".semantic_model_generator.JoinType\x12\x45\n\x11relationship_type\x18\x06 \x01(\x0e\x32*.semantic_model_generator.RelationshipType\"\xb0\x02\n\rSemanticModel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12/\n\x06tables\x18\x03 \x03(\x0b\x32\x1f.semantic_model_generator.Table\x12\x37\n\x07metrics\x18\x04 \x03(\x0b\x32 .semantic_model_generator.MetricB\x04\x90\x82\x19\x01\x12\x43\n\rrelationships\x18\x05 \x03(\x0b\x32&.semantic_model_generator.RelationshipB\x04\x90\x82\x19\x01\x12G\n\x10verified_queries\x18\x06 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQueryB\x04\x90\x82\x19\x01\"\x9b\x01\n\rVerifiedQuery\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x13semantic_model_name\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12\x10\n\x08question\x18\x03 \x01(\t\x12\x11\n\x03sql\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x19\n\x0bverified_at\x18\x05 \x01(\x03\x42\x04\x90\x82\x19\x01\x12\x19\n\x0bverified_by\x18\x06 \x01(\tB\x04\x90\x82\x19\x01\"\\\n\x17VerifiedQueryRepository\x12\x41\n\x10verified_queries\x18\x01 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQuery*~\n\x0f\x41ggregationType\x12\x1c\n\x18\x61ggregation_type_unknown\x10\x00\x12\x07\n\x03sum\x10\x01\x12\x07\n\x03\x61vg\x10\x02\x12\n\n\x06median\x10\x07\x12\x07\n\x03min\x10\x03\x12\x07\n\x03max\x10\x04\x12\t\n\x05\x63ount\x10\x05\x12\x12\n\x0e\x63ount_distinct\x10\x06*U\n\nColumnKind\x12\x17\n\x13\x63olumn_kind_unknown\x10\x00\x12\r\n\tdimension\x10\x01\x12\x0b\n\x07measure\x10\x02\x12\x12\n\x0etime_dimension\x10\x03*<\n\x08JoinType\x12\x15\n\x11join_type_unknown\x10\x00\x12\t\n\x05inner\x10\x01\x12\x0e\n\nleft_outer\x10\x02*R\n\x10RelationshipType\x12\x1d\n\x19relationship_type_unknown\x10\x00\x12\x0e\n\none_to_one\x10\x01\x12\x0f\n\x0bmany_to_one\x10\x02:4\n\x08optional\x12\x1d.google.protobuf.FieldOptions\x18\xa2\x90\x03 \x01(\x08\x88\x01\x01::\n\x0esql_expression\x12\x1d.google.protobuf.FieldOptions\x18\xa3\x90\x03 \x01(\x08\x88\x01\x01:4\n\x08id_field\x12\x1d.google.protobuf.FieldOptions\x18\xa4\x90\x03 \x01(\x08\x88\x01\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14semantic_model.proto\x12\x18semantic_model_generator\x1a google/protobuf/descriptor.proto\"/\n\x0fRetrievalResult\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x02\"\xcb\x03\n\x06\x43olumn\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x32\n\x04kind\x18\x06 \x01(\x0e\x32$.semantic_model_generator.ColumnKind\x12\x14\n\x06unique\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x08 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\t \x03(\tB\x04\x90\x82\x19\x01\x12\'\n\x19index_and_retrieve_values\x18\n \x01(\x08\x42\x04\x90\x82\x19\x01\x12K\n\x12retrieved_literals\x18\x0b \x03(\x0b\x32).semantic_model_generator.RetrievalResultB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\x0c \x01(\tB\x04\x90\x82\x19\x01\"\xd6\x01\n\tDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\t \x01(\tB\x04\x90\x82\x19\x01\"\xb0\x01\n\rTimeDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\"\xe2\x01\n\x07Measure\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x06 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\"b\n\x0bNamedFilter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\"F\n\x13\x46ullyQualifiedTable\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\"\x1d\n\nPrimaryKey\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\"\x8b\x04\n\x05Table\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x41\n\nbase_table\x18\x04 \x01(\x0b\x32-.semantic_model_generator.FullyQualifiedTable\x12\x37\n\x07\x63olumns\x18\x05 \x03(\x0b\x32 .semantic_model_generator.ColumnB\x04\x90\x82\x19\x01\x12=\n\ndimensions\x18\t \x03(\x0b\x32#.semantic_model_generator.DimensionB\x04\x90\x82\x19\x01\x12\x46\n\x0ftime_dimensions\x18\n \x03(\x0b\x32\'.semantic_model_generator.TimeDimensionB\x04\x90\x82\x19\x01\x12\x39\n\x08measures\x18\x0b \x03(\x0b\x32!.semantic_model_generator.MeasureB\x04\x90\x82\x19\x01\x12?\n\x0bprimary_key\x18\x06 \x01(\x0b\x32$.semantic_model_generator.PrimaryKeyB\x04\x90\x82\x19\x01\x12<\n\x07\x66ilters\x18\x08 \x03(\x0b\x32%.semantic_model_generator.NamedFilterB\x04\x90\x82\x19\x01\"\xa2\x01\n\x06Metric\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12=\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\'.semantic_model_generator.MetricsFilterB\x04\x90\x82\x19\x01\"#\n\rMetricsFilter\x12\x12\n\x04\x65xpr\x18\x01 \x01(\tB\x04\x98\x82\x19\x01\"8\n\x0bRelationKey\x12\x13\n\x0bleft_column\x18\x01 \x01(\t\x12\x14\n\x0cright_column\x18\x02 \x01(\t\"\x88\x02\n\x0cRelationship\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nleft_table\x18\x02 \x01(\t\x12\x13\n\x0bright_table\x18\x03 \x01(\t\x12\x43\n\x14relationship_columns\x18\x07 \x03(\x0b\x32%.semantic_model_generator.RelationKey\x12\x35\n\tjoin_type\x18\x05 \x01(\x0e\x32\".semantic_model_generator.JoinType\x12\x45\n\x11relationship_type\x18\x06 \x01(\x0e\x32*.semantic_model_generator.RelationshipType\"\xb0\x02\n\rSemanticModel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12/\n\x06tables\x18\x03 \x03(\x0b\x32\x1f.semantic_model_generator.Table\x12\x37\n\x07metrics\x18\x04 \x03(\x0b\x32 .semantic_model_generator.MetricB\x04\x90\x82\x19\x01\x12\x43\n\rrelationships\x18\x05 \x03(\x0b\x32&.semantic_model_generator.RelationshipB\x04\x90\x82\x19\x01\x12G\n\x10verified_queries\x18\x06 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQueryB\x04\x90\x82\x19\x01\"\xc5\x01\n\rVerifiedQuery\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x13semantic_model_name\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12\x10\n\x08question\x18\x03 \x01(\t\x12\x11\n\x03sql\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x19\n\x0bverified_at\x18\x05 \x01(\x03\x42\x04\x90\x82\x19\x01\x12\x19\n\x0bverified_by\x18\x06 \x01(\tB\x04\x90\x82\x19\x01\x12(\n\x1ause_as_onboarding_question\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01\"\\\n\x17VerifiedQueryRepository\x12\x41\n\x10verified_queries\x18\x01 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQuery*~\n\x0f\x41ggregationType\x12\x1c\n\x18\x61ggregation_type_unknown\x10\x00\x12\x07\n\x03sum\x10\x01\x12\x07\n\x03\x61vg\x10\x02\x12\n\n\x06median\x10\x07\x12\x07\n\x03min\x10\x03\x12\x07\n\x03max\x10\x04\x12\t\n\x05\x63ount\x10\x05\x12\x12\n\x0e\x63ount_distinct\x10\x06*U\n\nColumnKind\x12\x17\n\x13\x63olumn_kind_unknown\x10\x00\x12\r\n\tdimension\x10\x01\x12\x0b\n\x07measure\x10\x02\x12\x12\n\x0etime_dimension\x10\x03*<\n\x08JoinType\x12\x15\n\x11join_type_unknown\x10\x00\x12\t\n\x05inner\x10\x01\x12\x0e\n\nleft_outer\x10\x02*R\n\x10RelationshipType\x12\x1d\n\x19relationship_type_unknown\x10\x00\x12\x0e\n\none_to_one\x10\x01\x12\x0f\n\x0bmany_to_one\x10\x02:4\n\x08optional\x12\x1d.google.protobuf.FieldOptions\x18\xa2\x90\x03 \x01(\x08\x88\x01\x01::\n\x0esql_expression\x12\x1d.google.protobuf.FieldOptions\x18\xa3\x90\x03 \x01(\x08\x88\x01\x01:4\n\x08id_field\x12\x1d.google.protobuf.FieldOptions\x18\xa4\x90\x03 \x01(\x08\x88\x01\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -132,14 +142,16 @@ _globals['_VERIFIEDQUERY'].fields_by_name['verified_at']._serialized_options = b'\220\202\031\001' _globals['_VERIFIEDQUERY'].fields_by_name['verified_by']._loaded_options = None _globals['_VERIFIEDQUERY'].fields_by_name['verified_by']._serialized_options = b'\220\202\031\001' - _globals['_AGGREGATIONTYPE']._serialized_start=3035 - _globals['_AGGREGATIONTYPE']._serialized_end=3161 - _globals['_COLUMNKIND']._serialized_start=3163 - _globals['_COLUMNKIND']._serialized_end=3248 - _globals['_JOINTYPE']._serialized_start=3250 - _globals['_JOINTYPE']._serialized_end=3310 - _globals['_RELATIONSHIPTYPE']._serialized_start=3312 - _globals['_RELATIONSHIPTYPE']._serialized_end=3394 + _globals['_VERIFIEDQUERY'].fields_by_name['use_as_onboarding_question']._loaded_options = None + _globals['_VERIFIEDQUERY'].fields_by_name['use_as_onboarding_question']._serialized_options = b'\220\202\031\001' + _globals['_AGGREGATIONTYPE']._serialized_start=3077 + _globals['_AGGREGATIONTYPE']._serialized_end=3203 + _globals['_COLUMNKIND']._serialized_start=3205 + _globals['_COLUMNKIND']._serialized_end=3290 + _globals['_JOINTYPE']._serialized_start=3292 + _globals['_JOINTYPE']._serialized_end=3352 + _globals['_RELATIONSHIPTYPE']._serialized_start=3354 + _globals['_RELATIONSHIPTYPE']._serialized_end=3436 _globals['_RETRIEVALRESULT']._serialized_start=84 _globals['_RETRIEVALRESULT']._serialized_end=131 _globals['_COLUMN']._serialized_start=134 @@ -169,7 +181,7 @@ _globals['_SEMANTICMODEL']._serialized_start=2477 _globals['_SEMANTICMODEL']._serialized_end=2781 _globals['_VERIFIEDQUERY']._serialized_start=2784 - _globals['_VERIFIEDQUERY']._serialized_end=2939 - _globals['_VERIFIEDQUERYREPOSITORY']._serialized_start=2941 - _globals['_VERIFIEDQUERYREPOSITORY']._serialized_end=3033 + _globals['_VERIFIEDQUERY']._serialized_end=2981 + _globals['_VERIFIEDQUERYREPOSITORY']._serialized_start=2983 + _globals['_VERIFIEDQUERYREPOSITORY']._serialized_end=3075 # @@protoc_insertion_point(module_scope) diff --git a/semantic_model_generator/protos/semantic_model_pb2.pyi b/semantic_model_generator/protos/semantic_model_pb2.pyi index 78ef6259..c1c2aa92 100644 --- a/semantic_model_generator/protos/semantic_model_pb2.pyi +++ b/semantic_model_generator/protos/semantic_model_pb2.pyi @@ -266,20 +266,22 @@ class SemanticModel(_message.Message): def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., tables: _Optional[_Iterable[_Union[Table, _Mapping]]] = ..., metrics: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., relationships: _Optional[_Iterable[_Union[Relationship, _Mapping]]] = ..., verified_queries: _Optional[_Iterable[_Union[VerifiedQuery, _Mapping]]] = ...) -> None: ... class VerifiedQuery(_message.Message): - __slots__ = ("name", "semantic_model_name", "question", "sql", "verified_at", "verified_by") + __slots__ = ("name", "semantic_model_name", "question", "sql", "verified_at", "verified_by", "use_as_onboarding_question") NAME_FIELD_NUMBER: _ClassVar[int] SEMANTIC_MODEL_NAME_FIELD_NUMBER: _ClassVar[int] QUESTION_FIELD_NUMBER: _ClassVar[int] SQL_FIELD_NUMBER: _ClassVar[int] VERIFIED_AT_FIELD_NUMBER: _ClassVar[int] VERIFIED_BY_FIELD_NUMBER: _ClassVar[int] + USE_AS_ONBOARDING_QUESTION_FIELD_NUMBER: _ClassVar[int] name: str semantic_model_name: str question: str sql: str verified_at: int verified_by: str - def __init__(self, name: _Optional[str] = ..., semantic_model_name: _Optional[str] = ..., question: _Optional[str] = ..., sql: _Optional[str] = ..., verified_at: _Optional[int] = ..., verified_by: _Optional[str] = ...) -> None: ... + use_as_onboarding_question: bool + def __init__(self, name: _Optional[str] = ..., semantic_model_name: _Optional[str] = ..., question: _Optional[str] = ..., sql: _Optional[str] = ..., verified_at: _Optional[int] = ..., verified_by: _Optional[str] = ..., use_as_onboarding_question: bool = ...) -> None: ... class VerifiedQueryRepository(_message.Message): __slots__ = ("verified_queries",) From 36b75b1290237c5e38271df372a2c4b46ef82af5 Mon Sep 17 00:00:00 2001 From: Chris Nivera Date: Mon, 21 Oct 2024 15:55:10 -0700 Subject: [PATCH 2/3] checkbox for onboarding --- journeys/iteration.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/journeys/iteration.py b/journeys/iteration.py index ad355320..d2160171 100644 --- a/journeys/iteration.py +++ b/journeys/iteration.py @@ -36,11 +36,6 @@ yaml_to_semantic_model, ) from semantic_model_generator.protos import semantic_model_pb2 -from semantic_model_generator.snowflake_utils.env_vars import ( - SNOWFLAKE_ACCOUNT_LOCATOR, - SNOWFLAKE_HOST, - SNOWFLAKE_USER, -) from semantic_model_generator.validate_model import validate @@ -234,6 +229,11 @@ def edit_verified_query( elif st.session_state.get("successful_sql", False): # Moved outside the `if run:` block to ensure it's always evaluated + mark_as_onboarding = st.checkbox( + "Mark as onboarding question", + key=f"edit_onboarding_idx_{message_index}", + help="Mark this question as an onboarding verified query.", + ) save = st.button( "Save as verified query", use_container_width=True, @@ -243,12 +243,18 @@ def edit_verified_query( sql_no_analyst_comment = user_updated_sql.replace( " /* Generated by Cortex Analyst */", "" ) - add_verified_query(question, sql_no_analyst_comment) + add_verified_query( + question, + sql_no_analyst_comment, + is_onboarding_question=mark_as_onboarding, + ) st.session_state["editing"] = False st.session_state["confirmed_edits"] = True -def add_verified_query(question: str, sql: str) -> None: +def add_verified_query( + question: str, sql: str, is_onboarding_question: bool = False +) -> None: """Save verified question and SQL into an in-memory list with additional details.""" # Verified queries follow the Snowflake definitions. verified_query = semantic_model_pb2.VerifiedQuery( @@ -257,6 +263,7 @@ def add_verified_query(question: str, sql: str) -> None: sql=sql, verified_by=st.session_state["user_name"], verified_at=int(time.time()), + use_as_onboarding_question=is_onboarding_question, ) st.session_state.semantic_model.verified_queries.append(verified_query) st.success( @@ -307,6 +314,11 @@ def display_content( df = pd.read_sql(sql, conn) st.dataframe(df, hide_index=True) + mark_as_onboarding = st.checkbox( + "Mark as onboarding question", + key=f"onboarding_idx_{message_index}", + help="Mark this question as an onboarding verified query.", + ) left, right = st.columns(2) if right.button( "Save as verified query", @@ -317,7 +329,9 @@ def display_content( cleaned_sql = sql_no_cte.replace( " /* Generated by Cortex Analyst */", "" ) - add_verified_query(question, cleaned_sql) + add_verified_query( + question, cleaned_sql, is_onboarding_question=mark_as_onboarding + ) if left.button( "Edit", From ed9846d95f15da9de265f7795318e7b63e3cdc14 Mon Sep 17 00:00:00 2001 From: Chris Nivera Date: Mon, 21 Oct 2024 15:58:22 -0700 Subject: [PATCH 3/3] fix protogen --- .../protos/semantic_model_pb2.py | 437 +++++++++++------- 1 file changed, 271 insertions(+), 166 deletions(-) diff --git a/semantic_model_generator/protos/semantic_model_pb2.py b/semantic_model_generator/protos/semantic_model_pb2.py index df657151..c66fe0ee 100644 --- a/semantic_model_generator/protos/semantic_model_pb2.py +++ b/semantic_model_generator/protos/semantic_model_pb2.py @@ -1,22 +1,13 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: semantic_model.proto -# Protobuf Python Version: 5.27.2 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 27, - 2, - '', - 'semantic_model.proto' -) + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -25,163 +16,277 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14semantic_model.proto\x12\x18semantic_model_generator\x1a google/protobuf/descriptor.proto\"/\n\x0fRetrievalResult\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x02\"\xcb\x03\n\x06\x43olumn\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x32\n\x04kind\x18\x06 \x01(\x0e\x32$.semantic_model_generator.ColumnKind\x12\x14\n\x06unique\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x08 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\t \x03(\tB\x04\x90\x82\x19\x01\x12\'\n\x19index_and_retrieve_values\x18\n \x01(\x08\x42\x04\x90\x82\x19\x01\x12K\n\x12retrieved_literals\x18\x0b \x03(\x0b\x32).semantic_model_generator.RetrievalResultB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\x0c \x01(\tB\x04\x90\x82\x19\x01\"\xd6\x01\n\tDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\t \x01(\tB\x04\x90\x82\x19\x01\"\xb0\x01\n\rTimeDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\"\xe2\x01\n\x07Measure\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x06 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\"b\n\x0bNamedFilter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\"F\n\x13\x46ullyQualifiedTable\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\"\x1d\n\nPrimaryKey\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\"\x8b\x04\n\x05Table\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x41\n\nbase_table\x18\x04 \x01(\x0b\x32-.semantic_model_generator.FullyQualifiedTable\x12\x37\n\x07\x63olumns\x18\x05 \x03(\x0b\x32 .semantic_model_generator.ColumnB\x04\x90\x82\x19\x01\x12=\n\ndimensions\x18\t \x03(\x0b\x32#.semantic_model_generator.DimensionB\x04\x90\x82\x19\x01\x12\x46\n\x0ftime_dimensions\x18\n \x03(\x0b\x32\'.semantic_model_generator.TimeDimensionB\x04\x90\x82\x19\x01\x12\x39\n\x08measures\x18\x0b \x03(\x0b\x32!.semantic_model_generator.MeasureB\x04\x90\x82\x19\x01\x12?\n\x0bprimary_key\x18\x06 \x01(\x0b\x32$.semantic_model_generator.PrimaryKeyB\x04\x90\x82\x19\x01\x12<\n\x07\x66ilters\x18\x08 \x03(\x0b\x32%.semantic_model_generator.NamedFilterB\x04\x90\x82\x19\x01\"\xa2\x01\n\x06Metric\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12=\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\'.semantic_model_generator.MetricsFilterB\x04\x90\x82\x19\x01\"#\n\rMetricsFilter\x12\x12\n\x04\x65xpr\x18\x01 \x01(\tB\x04\x98\x82\x19\x01\"8\n\x0bRelationKey\x12\x13\n\x0bleft_column\x18\x01 \x01(\t\x12\x14\n\x0cright_column\x18\x02 \x01(\t\"\x88\x02\n\x0cRelationship\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nleft_table\x18\x02 \x01(\t\x12\x13\n\x0bright_table\x18\x03 \x01(\t\x12\x43\n\x14relationship_columns\x18\x07 \x03(\x0b\x32%.semantic_model_generator.RelationKey\x12\x35\n\tjoin_type\x18\x05 \x01(\x0e\x32\".semantic_model_generator.JoinType\x12\x45\n\x11relationship_type\x18\x06 \x01(\x0e\x32*.semantic_model_generator.RelationshipType\"\xb0\x02\n\rSemanticModel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12/\n\x06tables\x18\x03 \x03(\x0b\x32\x1f.semantic_model_generator.Table\x12\x37\n\x07metrics\x18\x04 \x03(\x0b\x32 .semantic_model_generator.MetricB\x04\x90\x82\x19\x01\x12\x43\n\rrelationships\x18\x05 \x03(\x0b\x32&.semantic_model_generator.RelationshipB\x04\x90\x82\x19\x01\x12G\n\x10verified_queries\x18\x06 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQueryB\x04\x90\x82\x19\x01\"\xc5\x01\n\rVerifiedQuery\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x13semantic_model_name\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12\x10\n\x08question\x18\x03 \x01(\t\x12\x11\n\x03sql\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x19\n\x0bverified_at\x18\x05 \x01(\x03\x42\x04\x90\x82\x19\x01\x12\x19\n\x0bverified_by\x18\x06 \x01(\tB\x04\x90\x82\x19\x01\x12(\n\x1ause_as_onboarding_question\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01\"\\\n\x17VerifiedQueryRepository\x12\x41\n\x10verified_queries\x18\x01 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQuery*~\n\x0f\x41ggregationType\x12\x1c\n\x18\x61ggregation_type_unknown\x10\x00\x12\x07\n\x03sum\x10\x01\x12\x07\n\x03\x61vg\x10\x02\x12\n\n\x06median\x10\x07\x12\x07\n\x03min\x10\x03\x12\x07\n\x03max\x10\x04\x12\t\n\x05\x63ount\x10\x05\x12\x12\n\x0e\x63ount_distinct\x10\x06*U\n\nColumnKind\x12\x17\n\x13\x63olumn_kind_unknown\x10\x00\x12\r\n\tdimension\x10\x01\x12\x0b\n\x07measure\x10\x02\x12\x12\n\x0etime_dimension\x10\x03*<\n\x08JoinType\x12\x15\n\x11join_type_unknown\x10\x00\x12\t\n\x05inner\x10\x01\x12\x0e\n\nleft_outer\x10\x02*R\n\x10RelationshipType\x12\x1d\n\x19relationship_type_unknown\x10\x00\x12\x0e\n\none_to_one\x10\x01\x12\x0f\n\x0bmany_to_one\x10\x02:4\n\x08optional\x12\x1d.google.protobuf.FieldOptions\x18\xa2\x90\x03 \x01(\x08\x88\x01\x01::\n\x0esql_expression\x12\x1d.google.protobuf.FieldOptions\x18\xa3\x90\x03 \x01(\x08\x88\x01\x01:4\n\x08id_field\x12\x1d.google.protobuf.FieldOptions\x18\xa4\x90\x03 \x01(\x08\x88\x01\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x14semantic_model.proto\x12\x18semantic_model_generator\x1a google/protobuf/descriptor.proto"/\n\x0fRetrievalResult\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x02"\xcb\x03\n\x06\x43olumn\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x32\n\x04kind\x18\x06 \x01(\x0e\x32$.semantic_model_generator.ColumnKind\x12\x14\n\x06unique\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x08 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\t \x03(\tB\x04\x90\x82\x19\x01\x12\'\n\x19index_and_retrieve_values\x18\n \x01(\x08\x42\x04\x90\x82\x19\x01\x12K\n\x12retrieved_literals\x18\x0b \x03(\x0b\x32).semantic_model_generator.RetrievalResultB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\x0c \x01(\tB\x04\x90\x82\x19\x01"\xd6\x01\n\tDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01\x12(\n\x1a\x63ortex_search_service_name\x18\t \x01(\tB\x04\x90\x82\x19\x01"\xb0\x01\n\rTimeDimension\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12\x14\n\x06unique\x18\x06 \x01(\x08\x42\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01"\xe2\x01\n\x07Measure\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x11\n\tdata_type\x18\x05 \x01(\t\x12L\n\x13\x64\x65\x66\x61ult_aggregation\x18\x06 \x01(\x0e\x32).semantic_model_generator.AggregationTypeB\x04\x90\x82\x19\x01\x12\x1b\n\rsample_values\x18\x07 \x03(\tB\x04\x90\x82\x19\x01"b\n\x0bNamedFilter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01"F\n\x13\x46ullyQualifiedTable\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t"\x1d\n\nPrimaryKey\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t"\x8b\x04\n\x05Table\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x41\n\nbase_table\x18\x04 \x01(\x0b\x32-.semantic_model_generator.FullyQualifiedTable\x12\x37\n\x07\x63olumns\x18\x05 \x03(\x0b\x32 .semantic_model_generator.ColumnB\x04\x90\x82\x19\x01\x12=\n\ndimensions\x18\t \x03(\x0b\x32#.semantic_model_generator.DimensionB\x04\x90\x82\x19\x01\x12\x46\n\x0ftime_dimensions\x18\n \x03(\x0b\x32\'.semantic_model_generator.TimeDimensionB\x04\x90\x82\x19\x01\x12\x39\n\x08measures\x18\x0b \x03(\x0b\x32!.semantic_model_generator.MeasureB\x04\x90\x82\x19\x01\x12?\n\x0bprimary_key\x18\x06 \x01(\x0b\x32$.semantic_model_generator.PrimaryKeyB\x04\x90\x82\x19\x01\x12<\n\x07\x66ilters\x18\x08 \x03(\x0b\x32%.semantic_model_generator.NamedFilterB\x04\x90\x82\x19\x01"\xa2\x01\n\x06Metric\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xa0\x82\x19\x01\x12\x16\n\x08synonyms\x18\x02 \x03(\tB\x04\x90\x82\x19\x01\x12\x19\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x04\x90\x82\x19\x01\x12\x12\n\x04\x65xpr\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12=\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\'.semantic_model_generator.MetricsFilterB\x04\x90\x82\x19\x01"#\n\rMetricsFilter\x12\x12\n\x04\x65xpr\x18\x01 \x01(\tB\x04\x98\x82\x19\x01"8\n\x0bRelationKey\x12\x13\n\x0bleft_column\x18\x01 \x01(\t\x12\x14\n\x0cright_column\x18\x02 \x01(\t"\x88\x02\n\x0cRelationship\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nleft_table\x18\x02 \x01(\t\x12\x13\n\x0bright_table\x18\x03 \x01(\t\x12\x43\n\x14relationship_columns\x18\x07 \x03(\x0b\x32%.semantic_model_generator.RelationKey\x12\x35\n\tjoin_type\x18\x05 \x01(\x0e\x32".semantic_model_generator.JoinType\x12\x45\n\x11relationship_type\x18\x06 \x01(\x0e\x32*.semantic_model_generator.RelationshipType"\xb0\x02\n\rSemanticModel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12/\n\x06tables\x18\x03 \x03(\x0b\x32\x1f.semantic_model_generator.Table\x12\x37\n\x07metrics\x18\x04 \x03(\x0b\x32 .semantic_model_generator.MetricB\x04\x90\x82\x19\x01\x12\x43\n\rrelationships\x18\x05 \x03(\x0b\x32&.semantic_model_generator.RelationshipB\x04\x90\x82\x19\x01\x12G\n\x10verified_queries\x18\x06 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQueryB\x04\x90\x82\x19\x01"\xc5\x01\n\rVerifiedQuery\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x13semantic_model_name\x18\x02 \x01(\tB\x04\x90\x82\x19\x01\x12\x10\n\x08question\x18\x03 \x01(\t\x12\x11\n\x03sql\x18\x04 \x01(\tB\x04\x98\x82\x19\x01\x12\x19\n\x0bverified_at\x18\x05 \x01(\x03\x42\x04\x90\x82\x19\x01\x12\x19\n\x0bverified_by\x18\x06 \x01(\tB\x04\x90\x82\x19\x01\x12(\n\x1ause_as_onboarding_question\x18\x07 \x01(\x08\x42\x04\x90\x82\x19\x01"\\\n\x17VerifiedQueryRepository\x12\x41\n\x10verified_queries\x18\x01 \x03(\x0b\x32\'.semantic_model_generator.VerifiedQuery*~\n\x0f\x41ggregationType\x12\x1c\n\x18\x61ggregation_type_unknown\x10\x00\x12\x07\n\x03sum\x10\x01\x12\x07\n\x03\x61vg\x10\x02\x12\n\n\x06median\x10\x07\x12\x07\n\x03min\x10\x03\x12\x07\n\x03max\x10\x04\x12\t\n\x05\x63ount\x10\x05\x12\x12\n\x0e\x63ount_distinct\x10\x06*U\n\nColumnKind\x12\x17\n\x13\x63olumn_kind_unknown\x10\x00\x12\r\n\tdimension\x10\x01\x12\x0b\n\x07measure\x10\x02\x12\x12\n\x0etime_dimension\x10\x03*<\n\x08JoinType\x12\x15\n\x11join_type_unknown\x10\x00\x12\t\n\x05inner\x10\x01\x12\x0e\n\nleft_outer\x10\x02*R\n\x10RelationshipType\x12\x1d\n\x19relationship_type_unknown\x10\x00\x12\x0e\n\none_to_one\x10\x01\x12\x0f\n\x0bmany_to_one\x10\x02:4\n\x08optional\x12\x1d.google.protobuf.FieldOptions\x18\xa2\x90\x03 \x01(\x08\x88\x01\x01::\n\x0esql_expression\x12\x1d.google.protobuf.FieldOptions\x18\xa3\x90\x03 \x01(\x08\x88\x01\x01:4\n\x08id_field\x12\x1d.google.protobuf.FieldOptions\x18\xa4\x90\x03 \x01(\x08\x88\x01\x01\x62\x06proto3' +) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'semantic_model_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "semantic_model_pb2", _globals) if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_COLUMN'].fields_by_name['name']._loaded_options = None - _globals['_COLUMN'].fields_by_name['name']._serialized_options = b'\240\202\031\001' - _globals['_COLUMN'].fields_by_name['synonyms']._loaded_options = None - _globals['_COLUMN'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['description']._loaded_options = None - _globals['_COLUMN'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['expr']._loaded_options = None - _globals['_COLUMN'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_COLUMN'].fields_by_name['unique']._loaded_options = None - _globals['_COLUMN'].fields_by_name['unique']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['default_aggregation']._loaded_options = None - _globals['_COLUMN'].fields_by_name['default_aggregation']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['sample_values']._loaded_options = None - _globals['_COLUMN'].fields_by_name['sample_values']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['index_and_retrieve_values']._loaded_options = None - _globals['_COLUMN'].fields_by_name['index_and_retrieve_values']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['retrieved_literals']._loaded_options = None - _globals['_COLUMN'].fields_by_name['retrieved_literals']._serialized_options = b'\220\202\031\001' - _globals['_COLUMN'].fields_by_name['cortex_search_service_name']._loaded_options = None - _globals['_COLUMN'].fields_by_name['cortex_search_service_name']._serialized_options = b'\220\202\031\001' - _globals['_DIMENSION'].fields_by_name['name']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['name']._serialized_options = b'\240\202\031\001' - _globals['_DIMENSION'].fields_by_name['synonyms']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_DIMENSION'].fields_by_name['description']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_DIMENSION'].fields_by_name['expr']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_DIMENSION'].fields_by_name['unique']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['unique']._serialized_options = b'\220\202\031\001' - _globals['_DIMENSION'].fields_by_name['sample_values']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['sample_values']._serialized_options = b'\220\202\031\001' - _globals['_DIMENSION'].fields_by_name['cortex_search_service_name']._loaded_options = None - _globals['_DIMENSION'].fields_by_name['cortex_search_service_name']._serialized_options = b'\220\202\031\001' - _globals['_TIMEDIMENSION'].fields_by_name['name']._loaded_options = None - _globals['_TIMEDIMENSION'].fields_by_name['name']._serialized_options = b'\240\202\031\001' - _globals['_TIMEDIMENSION'].fields_by_name['synonyms']._loaded_options = None - _globals['_TIMEDIMENSION'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_TIMEDIMENSION'].fields_by_name['description']._loaded_options = None - _globals['_TIMEDIMENSION'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_TIMEDIMENSION'].fields_by_name['expr']._loaded_options = None - _globals['_TIMEDIMENSION'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_TIMEDIMENSION'].fields_by_name['unique']._loaded_options = None - _globals['_TIMEDIMENSION'].fields_by_name['unique']._serialized_options = b'\220\202\031\001' - _globals['_TIMEDIMENSION'].fields_by_name['sample_values']._loaded_options = None - _globals['_TIMEDIMENSION'].fields_by_name['sample_values']._serialized_options = b'\220\202\031\001' - _globals['_MEASURE'].fields_by_name['name']._loaded_options = None - _globals['_MEASURE'].fields_by_name['name']._serialized_options = b'\240\202\031\001' - _globals['_MEASURE'].fields_by_name['synonyms']._loaded_options = None - _globals['_MEASURE'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_MEASURE'].fields_by_name['description']._loaded_options = None - _globals['_MEASURE'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_MEASURE'].fields_by_name['expr']._loaded_options = None - _globals['_MEASURE'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_MEASURE'].fields_by_name['default_aggregation']._loaded_options = None - _globals['_MEASURE'].fields_by_name['default_aggregation']._serialized_options = b'\220\202\031\001' - _globals['_MEASURE'].fields_by_name['sample_values']._loaded_options = None - _globals['_MEASURE'].fields_by_name['sample_values']._serialized_options = b'\220\202\031\001' - _globals['_NAMEDFILTER'].fields_by_name['synonyms']._loaded_options = None - _globals['_NAMEDFILTER'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_NAMEDFILTER'].fields_by_name['description']._loaded_options = None - _globals['_NAMEDFILTER'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_NAMEDFILTER'].fields_by_name['expr']._loaded_options = None - _globals['_NAMEDFILTER'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_TABLE'].fields_by_name['name']._loaded_options = None - _globals['_TABLE'].fields_by_name['name']._serialized_options = b'\240\202\031\001' - _globals['_TABLE'].fields_by_name['synonyms']._loaded_options = None - _globals['_TABLE'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['description']._loaded_options = None - _globals['_TABLE'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['columns']._loaded_options = None - _globals['_TABLE'].fields_by_name['columns']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['dimensions']._loaded_options = None - _globals['_TABLE'].fields_by_name['dimensions']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['time_dimensions']._loaded_options = None - _globals['_TABLE'].fields_by_name['time_dimensions']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['measures']._loaded_options = None - _globals['_TABLE'].fields_by_name['measures']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['primary_key']._loaded_options = None - _globals['_TABLE'].fields_by_name['primary_key']._serialized_options = b'\220\202\031\001' - _globals['_TABLE'].fields_by_name['filters']._loaded_options = None - _globals['_TABLE'].fields_by_name['filters']._serialized_options = b'\220\202\031\001' - _globals['_METRIC'].fields_by_name['name']._loaded_options = None - _globals['_METRIC'].fields_by_name['name']._serialized_options = b'\240\202\031\001' - _globals['_METRIC'].fields_by_name['synonyms']._loaded_options = None - _globals['_METRIC'].fields_by_name['synonyms']._serialized_options = b'\220\202\031\001' - _globals['_METRIC'].fields_by_name['description']._loaded_options = None - _globals['_METRIC'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_METRIC'].fields_by_name['expr']._loaded_options = None - _globals['_METRIC'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_METRIC'].fields_by_name['filter']._loaded_options = None - _globals['_METRIC'].fields_by_name['filter']._serialized_options = b'\220\202\031\001' - _globals['_METRICSFILTER'].fields_by_name['expr']._loaded_options = None - _globals['_METRICSFILTER'].fields_by_name['expr']._serialized_options = b'\230\202\031\001' - _globals['_SEMANTICMODEL'].fields_by_name['description']._loaded_options = None - _globals['_SEMANTICMODEL'].fields_by_name['description']._serialized_options = b'\220\202\031\001' - _globals['_SEMANTICMODEL'].fields_by_name['metrics']._loaded_options = None - _globals['_SEMANTICMODEL'].fields_by_name['metrics']._serialized_options = b'\220\202\031\001' - _globals['_SEMANTICMODEL'].fields_by_name['relationships']._loaded_options = None - _globals['_SEMANTICMODEL'].fields_by_name['relationships']._serialized_options = b'\220\202\031\001' - _globals['_SEMANTICMODEL'].fields_by_name['verified_queries']._loaded_options = None - _globals['_SEMANTICMODEL'].fields_by_name['verified_queries']._serialized_options = b'\220\202\031\001' - _globals['_VERIFIEDQUERY'].fields_by_name['semantic_model_name']._loaded_options = None - _globals['_VERIFIEDQUERY'].fields_by_name['semantic_model_name']._serialized_options = b'\220\202\031\001' - _globals['_VERIFIEDQUERY'].fields_by_name['sql']._loaded_options = None - _globals['_VERIFIEDQUERY'].fields_by_name['sql']._serialized_options = b'\230\202\031\001' - _globals['_VERIFIEDQUERY'].fields_by_name['verified_at']._loaded_options = None - _globals['_VERIFIEDQUERY'].fields_by_name['verified_at']._serialized_options = b'\220\202\031\001' - _globals['_VERIFIEDQUERY'].fields_by_name['verified_by']._loaded_options = None - _globals['_VERIFIEDQUERY'].fields_by_name['verified_by']._serialized_options = b'\220\202\031\001' - _globals['_VERIFIEDQUERY'].fields_by_name['use_as_onboarding_question']._loaded_options = None - _globals['_VERIFIEDQUERY'].fields_by_name['use_as_onboarding_question']._serialized_options = b'\220\202\031\001' - _globals['_AGGREGATIONTYPE']._serialized_start=3077 - _globals['_AGGREGATIONTYPE']._serialized_end=3203 - _globals['_COLUMNKIND']._serialized_start=3205 - _globals['_COLUMNKIND']._serialized_end=3290 - _globals['_JOINTYPE']._serialized_start=3292 - _globals['_JOINTYPE']._serialized_end=3352 - _globals['_RELATIONSHIPTYPE']._serialized_start=3354 - _globals['_RELATIONSHIPTYPE']._serialized_end=3436 - _globals['_RETRIEVALRESULT']._serialized_start=84 - _globals['_RETRIEVALRESULT']._serialized_end=131 - _globals['_COLUMN']._serialized_start=134 - _globals['_COLUMN']._serialized_end=593 - _globals['_DIMENSION']._serialized_start=596 - _globals['_DIMENSION']._serialized_end=810 - _globals['_TIMEDIMENSION']._serialized_start=813 - _globals['_TIMEDIMENSION']._serialized_end=989 - _globals['_MEASURE']._serialized_start=992 - _globals['_MEASURE']._serialized_end=1218 - _globals['_NAMEDFILTER']._serialized_start=1220 - _globals['_NAMEDFILTER']._serialized_end=1318 - _globals['_FULLYQUALIFIEDTABLE']._serialized_start=1320 - _globals['_FULLYQUALIFIEDTABLE']._serialized_end=1390 - _globals['_PRIMARYKEY']._serialized_start=1392 - _globals['_PRIMARYKEY']._serialized_end=1421 - _globals['_TABLE']._serialized_start=1424 - _globals['_TABLE']._serialized_end=1947 - _globals['_METRIC']._serialized_start=1950 - _globals['_METRIC']._serialized_end=2112 - _globals['_METRICSFILTER']._serialized_start=2114 - _globals['_METRICSFILTER']._serialized_end=2149 - _globals['_RELATIONKEY']._serialized_start=2151 - _globals['_RELATIONKEY']._serialized_end=2207 - _globals['_RELATIONSHIP']._serialized_start=2210 - _globals['_RELATIONSHIP']._serialized_end=2474 - _globals['_SEMANTICMODEL']._serialized_start=2477 - _globals['_SEMANTICMODEL']._serialized_end=2781 - _globals['_VERIFIEDQUERY']._serialized_start=2784 - _globals['_VERIFIEDQUERY']._serialized_end=2981 - _globals['_VERIFIEDQUERYREPOSITORY']._serialized_start=2983 - _globals['_VERIFIEDQUERYREPOSITORY']._serialized_end=3075 + DESCRIPTOR._loaded_options = None + _globals["_COLUMN"].fields_by_name["name"]._loaded_options = None + _globals["_COLUMN"].fields_by_name["name"]._serialized_options = b"\240\202\031\001" + _globals["_COLUMN"].fields_by_name["synonyms"]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name["description"]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name["expr"]._loaded_options = None + _globals["_COLUMN"].fields_by_name["expr"]._serialized_options = b"\230\202\031\001" + _globals["_COLUMN"].fields_by_name["unique"]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "unique" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name["default_aggregation"]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "default_aggregation" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name["sample_values"]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "sample_values" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name[ + "index_and_retrieve_values" + ]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "index_and_retrieve_values" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name["retrieved_literals"]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "retrieved_literals" + ]._serialized_options = b"\220\202\031\001" + _globals["_COLUMN"].fields_by_name[ + "cortex_search_service_name" + ]._loaded_options = None + _globals["_COLUMN"].fields_by_name[ + "cortex_search_service_name" + ]._serialized_options = b"\220\202\031\001" + _globals["_DIMENSION"].fields_by_name["name"]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "name" + ]._serialized_options = b"\240\202\031\001" + _globals["_DIMENSION"].fields_by_name["synonyms"]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_DIMENSION"].fields_by_name["description"]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_DIMENSION"].fields_by_name["expr"]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "expr" + ]._serialized_options = b"\230\202\031\001" + _globals["_DIMENSION"].fields_by_name["unique"]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "unique" + ]._serialized_options = b"\220\202\031\001" + _globals["_DIMENSION"].fields_by_name["sample_values"]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "sample_values" + ]._serialized_options = b"\220\202\031\001" + _globals["_DIMENSION"].fields_by_name[ + "cortex_search_service_name" + ]._loaded_options = None + _globals["_DIMENSION"].fields_by_name[ + "cortex_search_service_name" + ]._serialized_options = b"\220\202\031\001" + _globals["_TIMEDIMENSION"].fields_by_name["name"]._loaded_options = None + _globals["_TIMEDIMENSION"].fields_by_name[ + "name" + ]._serialized_options = b"\240\202\031\001" + _globals["_TIMEDIMENSION"].fields_by_name["synonyms"]._loaded_options = None + _globals["_TIMEDIMENSION"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_TIMEDIMENSION"].fields_by_name["description"]._loaded_options = None + _globals["_TIMEDIMENSION"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_TIMEDIMENSION"].fields_by_name["expr"]._loaded_options = None + _globals["_TIMEDIMENSION"].fields_by_name[ + "expr" + ]._serialized_options = b"\230\202\031\001" + _globals["_TIMEDIMENSION"].fields_by_name["unique"]._loaded_options = None + _globals["_TIMEDIMENSION"].fields_by_name[ + "unique" + ]._serialized_options = b"\220\202\031\001" + _globals["_TIMEDIMENSION"].fields_by_name["sample_values"]._loaded_options = None + _globals["_TIMEDIMENSION"].fields_by_name[ + "sample_values" + ]._serialized_options = b"\220\202\031\001" + _globals["_MEASURE"].fields_by_name["name"]._loaded_options = None + _globals["_MEASURE"].fields_by_name[ + "name" + ]._serialized_options = b"\240\202\031\001" + _globals["_MEASURE"].fields_by_name["synonyms"]._loaded_options = None + _globals["_MEASURE"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_MEASURE"].fields_by_name["description"]._loaded_options = None + _globals["_MEASURE"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_MEASURE"].fields_by_name["expr"]._loaded_options = None + _globals["_MEASURE"].fields_by_name[ + "expr" + ]._serialized_options = b"\230\202\031\001" + _globals["_MEASURE"].fields_by_name["default_aggregation"]._loaded_options = None + _globals["_MEASURE"].fields_by_name[ + "default_aggregation" + ]._serialized_options = b"\220\202\031\001" + _globals["_MEASURE"].fields_by_name["sample_values"]._loaded_options = None + _globals["_MEASURE"].fields_by_name[ + "sample_values" + ]._serialized_options = b"\220\202\031\001" + _globals["_NAMEDFILTER"].fields_by_name["synonyms"]._loaded_options = None + _globals["_NAMEDFILTER"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_NAMEDFILTER"].fields_by_name["description"]._loaded_options = None + _globals["_NAMEDFILTER"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_NAMEDFILTER"].fields_by_name["expr"]._loaded_options = None + _globals["_NAMEDFILTER"].fields_by_name[ + "expr" + ]._serialized_options = b"\230\202\031\001" + _globals["_TABLE"].fields_by_name["name"]._loaded_options = None + _globals["_TABLE"].fields_by_name["name"]._serialized_options = b"\240\202\031\001" + _globals["_TABLE"].fields_by_name["synonyms"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["description"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["columns"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "columns" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["dimensions"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "dimensions" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["time_dimensions"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "time_dimensions" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["measures"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "measures" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["primary_key"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "primary_key" + ]._serialized_options = b"\220\202\031\001" + _globals["_TABLE"].fields_by_name["filters"]._loaded_options = None + _globals["_TABLE"].fields_by_name[ + "filters" + ]._serialized_options = b"\220\202\031\001" + _globals["_METRIC"].fields_by_name["name"]._loaded_options = None + _globals["_METRIC"].fields_by_name["name"]._serialized_options = b"\240\202\031\001" + _globals["_METRIC"].fields_by_name["synonyms"]._loaded_options = None + _globals["_METRIC"].fields_by_name[ + "synonyms" + ]._serialized_options = b"\220\202\031\001" + _globals["_METRIC"].fields_by_name["description"]._loaded_options = None + _globals["_METRIC"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_METRIC"].fields_by_name["expr"]._loaded_options = None + _globals["_METRIC"].fields_by_name["expr"]._serialized_options = b"\230\202\031\001" + _globals["_METRIC"].fields_by_name["filter"]._loaded_options = None + _globals["_METRIC"].fields_by_name[ + "filter" + ]._serialized_options = b"\220\202\031\001" + _globals["_METRICSFILTER"].fields_by_name["expr"]._loaded_options = None + _globals["_METRICSFILTER"].fields_by_name[ + "expr" + ]._serialized_options = b"\230\202\031\001" + _globals["_SEMANTICMODEL"].fields_by_name["description"]._loaded_options = None + _globals["_SEMANTICMODEL"].fields_by_name[ + "description" + ]._serialized_options = b"\220\202\031\001" + _globals["_SEMANTICMODEL"].fields_by_name["metrics"]._loaded_options = None + _globals["_SEMANTICMODEL"].fields_by_name[ + "metrics" + ]._serialized_options = b"\220\202\031\001" + _globals["_SEMANTICMODEL"].fields_by_name["relationships"]._loaded_options = None + _globals["_SEMANTICMODEL"].fields_by_name[ + "relationships" + ]._serialized_options = b"\220\202\031\001" + _globals["_SEMANTICMODEL"].fields_by_name["verified_queries"]._loaded_options = None + _globals["_SEMANTICMODEL"].fields_by_name[ + "verified_queries" + ]._serialized_options = b"\220\202\031\001" + _globals["_VERIFIEDQUERY"].fields_by_name[ + "semantic_model_name" + ]._loaded_options = None + _globals["_VERIFIEDQUERY"].fields_by_name[ + "semantic_model_name" + ]._serialized_options = b"\220\202\031\001" + _globals["_VERIFIEDQUERY"].fields_by_name["sql"]._loaded_options = None + _globals["_VERIFIEDQUERY"].fields_by_name[ + "sql" + ]._serialized_options = b"\230\202\031\001" + _globals["_VERIFIEDQUERY"].fields_by_name["verified_at"]._loaded_options = None + _globals["_VERIFIEDQUERY"].fields_by_name[ + "verified_at" + ]._serialized_options = b"\220\202\031\001" + _globals["_VERIFIEDQUERY"].fields_by_name["verified_by"]._loaded_options = None + _globals["_VERIFIEDQUERY"].fields_by_name[ + "verified_by" + ]._serialized_options = b"\220\202\031\001" + _globals["_VERIFIEDQUERY"].fields_by_name[ + "use_as_onboarding_question" + ]._loaded_options = None + _globals["_VERIFIEDQUERY"].fields_by_name[ + "use_as_onboarding_question" + ]._serialized_options = b"\220\202\031\001" + _globals["_AGGREGATIONTYPE"]._serialized_start = 3077 + _globals["_AGGREGATIONTYPE"]._serialized_end = 3203 + _globals["_COLUMNKIND"]._serialized_start = 3205 + _globals["_COLUMNKIND"]._serialized_end = 3290 + _globals["_JOINTYPE"]._serialized_start = 3292 + _globals["_JOINTYPE"]._serialized_end = 3352 + _globals["_RELATIONSHIPTYPE"]._serialized_start = 3354 + _globals["_RELATIONSHIPTYPE"]._serialized_end = 3436 + _globals["_RETRIEVALRESULT"]._serialized_start = 84 + _globals["_RETRIEVALRESULT"]._serialized_end = 131 + _globals["_COLUMN"]._serialized_start = 134 + _globals["_COLUMN"]._serialized_end = 593 + _globals["_DIMENSION"]._serialized_start = 596 + _globals["_DIMENSION"]._serialized_end = 810 + _globals["_TIMEDIMENSION"]._serialized_start = 813 + _globals["_TIMEDIMENSION"]._serialized_end = 989 + _globals["_MEASURE"]._serialized_start = 992 + _globals["_MEASURE"]._serialized_end = 1218 + _globals["_NAMEDFILTER"]._serialized_start = 1220 + _globals["_NAMEDFILTER"]._serialized_end = 1318 + _globals["_FULLYQUALIFIEDTABLE"]._serialized_start = 1320 + _globals["_FULLYQUALIFIEDTABLE"]._serialized_end = 1390 + _globals["_PRIMARYKEY"]._serialized_start = 1392 + _globals["_PRIMARYKEY"]._serialized_end = 1421 + _globals["_TABLE"]._serialized_start = 1424 + _globals["_TABLE"]._serialized_end = 1947 + _globals["_METRIC"]._serialized_start = 1950 + _globals["_METRIC"]._serialized_end = 2112 + _globals["_METRICSFILTER"]._serialized_start = 2114 + _globals["_METRICSFILTER"]._serialized_end = 2149 + _globals["_RELATIONKEY"]._serialized_start = 2151 + _globals["_RELATIONKEY"]._serialized_end = 2207 + _globals["_RELATIONSHIP"]._serialized_start = 2210 + _globals["_RELATIONSHIP"]._serialized_end = 2474 + _globals["_SEMANTICMODEL"]._serialized_start = 2477 + _globals["_SEMANTICMODEL"]._serialized_end = 2781 + _globals["_VERIFIEDQUERY"]._serialized_start = 2784 + _globals["_VERIFIEDQUERY"]._serialized_end = 2981 + _globals["_VERIFIEDQUERYREPOSITORY"]._serialized_start = 2983 + _globals["_VERIFIEDQUERYREPOSITORY"]._serialized_end = 3075 # @@protoc_insertion_point(module_scope)