1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct SqlQueryLogEvent {
4 #[prost(string, tag = "1")]
5 pub query_id: ::prost::alloc::string::String,
6 #[prost(enumeration = "SqlQueryEventType", tag = "2")]
7 pub event_type: i32,
8 #[prost(string, tag = "3")]
9 pub workspace_rid: ::prost::alloc::string::String,
10 #[prost(string, tag = "4")]
11 pub user_rid: ::prost::alloc::string::String,
12 #[prost(enumeration = "SqlQueryBackend", repeated, tag = "5")]
13 pub backends: ::prost::alloc::vec::Vec<i32>,
14 #[prost(enumeration = "SqlQueryStatus", optional, tag = "6")]
15 pub status: ::core::option::Option<i32>,
16 #[prost(string, tag = "7")]
17 pub query_text: ::prost::alloc::string::String,
18 #[prost(message, optional, tag = "8")]
19 pub event_time: ::core::option::Option<
20 super::super::super::google::protobuf::Timestamp,
21 >,
22 #[prost(message, optional, tag = "9")]
23 pub started_at: ::core::option::Option<
24 super::super::super::google::protobuf::Timestamp,
25 >,
26 #[prost(message, optional, tag = "10")]
27 pub finished_at: ::core::option::Option<
28 super::super::super::google::protobuf::Timestamp,
29 >,
30 #[prost(int64, optional, tag = "11")]
31 pub duration_ms: ::core::option::Option<i64>,
32 #[prost(string, tag = "12")]
33 pub org_rid: ::prost::alloc::string::String,
34}
35#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
36#[repr(i32)]
37pub enum SqlQueryEventType {
38 QueryStart = 0,
39 QueryFinish = 1,
40 ErrorBeforeStart = 2,
41 ErrorWhileProcessing = 3,
42}
43impl SqlQueryEventType {
44 pub fn as_str_name(&self) -> &'static str {
49 match self {
50 Self::QueryStart => "SQL_QUERY_EVENT_TYPE_QUERY_START",
51 Self::QueryFinish => "SQL_QUERY_EVENT_TYPE_QUERY_FINISH",
52 Self::ErrorBeforeStart => "SQL_QUERY_EVENT_TYPE_ERROR_BEFORE_START",
53 Self::ErrorWhileProcessing => "SQL_QUERY_EVENT_TYPE_ERROR_WHILE_PROCESSING",
54 }
55 }
56 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
58 match value {
59 "SQL_QUERY_EVENT_TYPE_QUERY_START" => Some(Self::QueryStart),
60 "SQL_QUERY_EVENT_TYPE_QUERY_FINISH" => Some(Self::QueryFinish),
61 "SQL_QUERY_EVENT_TYPE_ERROR_BEFORE_START" => Some(Self::ErrorBeforeStart),
62 "SQL_QUERY_EVENT_TYPE_ERROR_WHILE_PROCESSING" => {
63 Some(Self::ErrorWhileProcessing)
64 }
65 _ => None,
66 }
67 }
68}
69#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
70#[repr(i32)]
71pub enum SqlQueryBackend {
72 Clickhouse = 0,
73 Postgres = 1,
74}
75impl SqlQueryBackend {
76 pub fn as_str_name(&self) -> &'static str {
81 match self {
82 Self::Clickhouse => "SQL_QUERY_BACKEND_CLICKHOUSE",
83 Self::Postgres => "SQL_QUERY_BACKEND_POSTGRES",
84 }
85 }
86 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
88 match value {
89 "SQL_QUERY_BACKEND_CLICKHOUSE" => Some(Self::Clickhouse),
90 "SQL_QUERY_BACKEND_POSTGRES" => Some(Self::Postgres),
91 _ => None,
92 }
93 }
94}
95#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
96#[repr(i32)]
97pub enum SqlQueryStatus {
98 Succeeded = 0,
99 Failed = 1,
100 Throttled = 2,
101 TimedOut = 3,
102}
103impl SqlQueryStatus {
104 pub fn as_str_name(&self) -> &'static str {
109 match self {
110 Self::Succeeded => "SQL_QUERY_STATUS_SUCCEEDED",
111 Self::Failed => "SQL_QUERY_STATUS_FAILED",
112 Self::Throttled => "SQL_QUERY_STATUS_THROTTLED",
113 Self::TimedOut => "SQL_QUERY_STATUS_TIMED_OUT",
114 }
115 }
116 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
118 match value {
119 "SQL_QUERY_STATUS_SUCCEEDED" => Some(Self::Succeeded),
120 "SQL_QUERY_STATUS_FAILED" => Some(Self::Failed),
121 "SQL_QUERY_STATUS_THROTTLED" => Some(Self::Throttled),
122 "SQL_QUERY_STATUS_TIMED_OUT" => Some(Self::TimedOut),
123 _ => None,
124 }
125 }
126}
127#[derive(Clone, PartialEq, ::prost::Message)]
128pub struct SqlServiceQueryRequest {
129 #[prost(string, tag = "1")]
130 pub query: ::prost::alloc::string::String,
131 #[prost(int32, optional, tag = "2")]
132 pub max_rows: ::core::option::Option<i32>,
133 #[prost(string, tag = "3")]
134 pub workspace_rid: ::prost::alloc::string::String,
135 #[prost(enumeration = "SqlServiceQueryResultFormat", tag = "4")]
136 pub result_format: i32,
137}
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct SqlServiceQueryResponse {
140 #[prost(string, tag = "2")]
141 pub query_id: ::prost::alloc::string::String,
142 #[prost(bytes = "vec", tag = "3")]
143 pub payload: ::prost::alloc::vec::Vec<u8>,
144}
145#[derive(Clone, PartialEq, ::prost::Message)]
146pub struct SqlServiceExportRequest {
147 #[prost(string, tag = "1")]
148 pub query: ::prost::alloc::string::String,
149 #[prost(string, tag = "2")]
150 pub workspace_rid: ::prost::alloc::string::String,
151}
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct SqlServiceExportResponse {
154 #[prost(string, tag = "1")]
155 pub presigned_url: ::prost::alloc::string::String,
156 #[prost(string, tag = "2")]
157 pub query_id: ::prost::alloc::string::String,
158}
159#[derive(Clone, Copy, PartialEq, ::prost::Message)]
160pub struct GetSqlCatalogRequest {}
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct SqlCatalogMapType {
163 #[prost(message, optional, boxed, tag = "1")]
164 pub key: ::core::option::Option<::prost::alloc::boxed::Box<SqlCatalogDataType>>,
165 #[prost(message, optional, boxed, tag = "2")]
166 pub value: ::core::option::Option<::prost::alloc::boxed::Box<SqlCatalogDataType>>,
167}
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct SqlCatalogDataType {
170 #[prost(oneof = "sql_catalog_data_type::Kind", tags = "1, 2, 3")]
171 pub kind: ::core::option::Option<sql_catalog_data_type::Kind>,
172}
173pub mod sql_catalog_data_type {
175 #[derive(Clone, PartialEq, ::prost::Oneof)]
176 pub enum Kind {
177 #[prost(enumeration = "super::SqlCatalogScalarType", tag = "1")]
178 Scalar(i32),
179 #[prost(message, tag = "2")]
180 ArrayElement(::prost::alloc::boxed::Box<super::SqlCatalogDataType>),
181 #[prost(message, tag = "3")]
182 Map(::prost::alloc::boxed::Box<super::SqlCatalogMapType>),
183 }
184}
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct SqlCatalogColumn {
187 #[prost(string, tag = "1")]
188 pub name: ::prost::alloc::string::String,
189 #[prost(string, tag = "2")]
190 pub r#type: ::prost::alloc::string::String,
191 #[prost(bool, tag = "3")]
192 pub nullable: bool,
193 #[prost(message, optional, tag = "4")]
194 pub data_type: ::core::option::Option<SqlCatalogDataType>,
195}
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct SqlCatalogTable {
198 #[prost(string, tag = "1")]
199 pub name: ::prost::alloc::string::String,
200 #[prost(message, repeated, tag = "2")]
201 pub columns: ::prost::alloc::vec::Vec<SqlCatalogColumn>,
202}
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct SqlCatalogFunction {
205 #[prost(string, tag = "1")]
206 pub name: ::prost::alloc::string::String,
207 #[prost(enumeration = "SqlCatalogFunctionKind", tag = "2")]
208 pub kind: i32,
209 #[prost(bool, tag = "3")]
210 pub supports_over: bool,
211 #[prost(int32, tag = "4")]
212 pub min_args: i32,
213 #[prost(int32, optional, tag = "5")]
214 pub max_args: ::core::option::Option<i32>,
215 #[prost(string, repeated, tag = "6")]
216 pub argument_type_families: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
217 #[prost(string, optional, tag = "7")]
218 pub return_type_family: ::core::option::Option<::prost::alloc::string::String>,
219}
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct SqlCatalog {
222 #[prost(message, repeated, tag = "1")]
223 pub tables: ::prost::alloc::vec::Vec<SqlCatalogTable>,
224 #[prost(message, repeated, tag = "2")]
225 pub functions: ::prost::alloc::vec::Vec<SqlCatalogFunction>,
226}
227#[derive(Clone, PartialEq, ::prost::Message)]
228pub struct GetSqlCatalogResponse {
229 #[prost(message, optional, tag = "1")]
230 pub sql_catalog: ::core::option::Option<SqlCatalog>,
231}
232#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
233#[repr(i32)]
234pub enum SqlError {
235 Unspecified = 0,
236 InvalidQuery = 1,
237 DatasetsNotFound = 2,
238 ExecutionFailed = 3,
239 ExportNotSupportedForBackend = 4,
240 ExportNotConfigured = 5,
241 QueryTimeout = 6,
242 ResourceExhausted = 7,
243 DatasetStorageTypeNotSupported = 8,
244 DataNotFoundForType = 9,
245 ResultSizeExceeded = 10,
246 QueryScopeTooLarge = 11,
247}
248impl SqlError {
249 pub fn as_str_name(&self) -> &'static str {
254 match self {
255 Self::Unspecified => "SQL_ERROR_UNSPECIFIED",
256 Self::InvalidQuery => "SQL_ERROR_INVALID_QUERY",
257 Self::DatasetsNotFound => "SQL_ERROR_DATASETS_NOT_FOUND",
258 Self::ExecutionFailed => "SQL_ERROR_EXECUTION_FAILED",
259 Self::ExportNotSupportedForBackend => {
260 "SQL_ERROR_EXPORT_NOT_SUPPORTED_FOR_BACKEND"
261 }
262 Self::ExportNotConfigured => "SQL_ERROR_EXPORT_NOT_CONFIGURED",
263 Self::QueryTimeout => "SQL_ERROR_QUERY_TIMEOUT",
264 Self::ResourceExhausted => "SQL_ERROR_RESOURCE_EXHAUSTED",
265 Self::DatasetStorageTypeNotSupported => {
266 "SQL_ERROR_DATASET_STORAGE_TYPE_NOT_SUPPORTED"
267 }
268 Self::DataNotFoundForType => "SQL_ERROR_DATA_NOT_FOUND_FOR_TYPE",
269 Self::ResultSizeExceeded => "SQL_ERROR_RESULT_SIZE_EXCEEDED",
270 Self::QueryScopeTooLarge => "SQL_ERROR_QUERY_SCOPE_TOO_LARGE",
271 }
272 }
273 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
275 match value {
276 "SQL_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
277 "SQL_ERROR_INVALID_QUERY" => Some(Self::InvalidQuery),
278 "SQL_ERROR_DATASETS_NOT_FOUND" => Some(Self::DatasetsNotFound),
279 "SQL_ERROR_EXECUTION_FAILED" => Some(Self::ExecutionFailed),
280 "SQL_ERROR_EXPORT_NOT_SUPPORTED_FOR_BACKEND" => {
281 Some(Self::ExportNotSupportedForBackend)
282 }
283 "SQL_ERROR_EXPORT_NOT_CONFIGURED" => Some(Self::ExportNotConfigured),
284 "SQL_ERROR_QUERY_TIMEOUT" => Some(Self::QueryTimeout),
285 "SQL_ERROR_RESOURCE_EXHAUSTED" => Some(Self::ResourceExhausted),
286 "SQL_ERROR_DATASET_STORAGE_TYPE_NOT_SUPPORTED" => {
287 Some(Self::DatasetStorageTypeNotSupported)
288 }
289 "SQL_ERROR_DATA_NOT_FOUND_FOR_TYPE" => Some(Self::DataNotFoundForType),
290 "SQL_ERROR_RESULT_SIZE_EXCEEDED" => Some(Self::ResultSizeExceeded),
291 "SQL_ERROR_QUERY_SCOPE_TOO_LARGE" => Some(Self::QueryScopeTooLarge),
292 _ => None,
293 }
294 }
295}
296#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
297#[repr(i32)]
298pub enum SqlServiceQueryResultFormat {
299 Unspecified = 0,
300 ArrowStream = 1,
301 JsonLines = 2,
302 Csv = 3,
303}
304impl SqlServiceQueryResultFormat {
305 pub fn as_str_name(&self) -> &'static str {
310 match self {
311 Self::Unspecified => "SQL_SERVICE_QUERY_RESULT_FORMAT_UNSPECIFIED",
312 Self::ArrowStream => "SQL_SERVICE_QUERY_RESULT_FORMAT_ARROW_STREAM",
313 Self::JsonLines => "SQL_SERVICE_QUERY_RESULT_FORMAT_JSON_LINES",
314 Self::Csv => "SQL_SERVICE_QUERY_RESULT_FORMAT_CSV",
315 }
316 }
317 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
319 match value {
320 "SQL_SERVICE_QUERY_RESULT_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
321 "SQL_SERVICE_QUERY_RESULT_FORMAT_ARROW_STREAM" => Some(Self::ArrowStream),
322 "SQL_SERVICE_QUERY_RESULT_FORMAT_JSON_LINES" => Some(Self::JsonLines),
323 "SQL_SERVICE_QUERY_RESULT_FORMAT_CSV" => Some(Self::Csv),
324 _ => None,
325 }
326 }
327}
328#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
329#[repr(i32)]
330pub enum SqlCatalogScalarType {
331 Unspecified = 0,
332 Varchar = 1,
333 Boolean = 2,
334 Integer = 3,
335 Bigint = 4,
336 Double = 5,
337 Timestamp = 6,
338 Any = 7,
339}
340impl SqlCatalogScalarType {
341 pub fn as_str_name(&self) -> &'static str {
346 match self {
347 Self::Unspecified => "SQL_CATALOG_SCALAR_TYPE_UNSPECIFIED",
348 Self::Varchar => "SQL_CATALOG_SCALAR_TYPE_VARCHAR",
349 Self::Boolean => "SQL_CATALOG_SCALAR_TYPE_BOOLEAN",
350 Self::Integer => "SQL_CATALOG_SCALAR_TYPE_INTEGER",
351 Self::Bigint => "SQL_CATALOG_SCALAR_TYPE_BIGINT",
352 Self::Double => "SQL_CATALOG_SCALAR_TYPE_DOUBLE",
353 Self::Timestamp => "SQL_CATALOG_SCALAR_TYPE_TIMESTAMP",
354 Self::Any => "SQL_CATALOG_SCALAR_TYPE_ANY",
355 }
356 }
357 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
359 match value {
360 "SQL_CATALOG_SCALAR_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
361 "SQL_CATALOG_SCALAR_TYPE_VARCHAR" => Some(Self::Varchar),
362 "SQL_CATALOG_SCALAR_TYPE_BOOLEAN" => Some(Self::Boolean),
363 "SQL_CATALOG_SCALAR_TYPE_INTEGER" => Some(Self::Integer),
364 "SQL_CATALOG_SCALAR_TYPE_BIGINT" => Some(Self::Bigint),
365 "SQL_CATALOG_SCALAR_TYPE_DOUBLE" => Some(Self::Double),
366 "SQL_CATALOG_SCALAR_TYPE_TIMESTAMP" => Some(Self::Timestamp),
367 "SQL_CATALOG_SCALAR_TYPE_ANY" => Some(Self::Any),
368 _ => None,
369 }
370 }
371}
372#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
373#[repr(i32)]
374pub enum SqlCatalogFunctionKind {
375 Unspecified = 0,
376 Scalar = 1,
377 Aggregate = 2,
378 Window = 3,
379 Table = 4,
380}
381impl SqlCatalogFunctionKind {
382 pub fn as_str_name(&self) -> &'static str {
387 match self {
388 Self::Unspecified => "SQL_CATALOG_FUNCTION_KIND_UNSPECIFIED",
389 Self::Scalar => "SQL_CATALOG_FUNCTION_KIND_SCALAR",
390 Self::Aggregate => "SQL_CATALOG_FUNCTION_KIND_AGGREGATE",
391 Self::Window => "SQL_CATALOG_FUNCTION_KIND_WINDOW",
392 Self::Table => "SQL_CATALOG_FUNCTION_KIND_TABLE",
393 }
394 }
395 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
397 match value {
398 "SQL_CATALOG_FUNCTION_KIND_UNSPECIFIED" => Some(Self::Unspecified),
399 "SQL_CATALOG_FUNCTION_KIND_SCALAR" => Some(Self::Scalar),
400 "SQL_CATALOG_FUNCTION_KIND_AGGREGATE" => Some(Self::Aggregate),
401 "SQL_CATALOG_FUNCTION_KIND_WINDOW" => Some(Self::Window),
402 "SQL_CATALOG_FUNCTION_KIND_TABLE" => Some(Self::Table),
403 _ => None,
404 }
405 }
406}
407pub mod sql_service_client {
409 #![allow(
410 unused_variables,
411 dead_code,
412 missing_docs,
413 clippy::wildcard_imports,
414 clippy::let_unit_value,
415 )]
416 use tonic::codegen::*;
417 use tonic::codegen::http::Uri;
418 #[derive(Debug, Clone)]
419 pub struct SqlServiceClient<T> {
420 inner: tonic::client::Grpc<T>,
421 }
422 impl SqlServiceClient<tonic::transport::Channel> {
423 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
425 where
426 D: TryInto<tonic::transport::Endpoint>,
427 D::Error: Into<StdError>,
428 {
429 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
430 Ok(Self::new(conn))
431 }
432 }
433 impl<T> SqlServiceClient<T>
434 where
435 T: tonic::client::GrpcService<tonic::body::Body>,
436 T::Error: Into<StdError>,
437 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
438 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
439 {
440 pub fn new(inner: T) -> Self {
441 let inner = tonic::client::Grpc::new(inner);
442 Self { inner }
443 }
444 pub fn with_origin(inner: T, origin: Uri) -> Self {
445 let inner = tonic::client::Grpc::with_origin(inner, origin);
446 Self { inner }
447 }
448 pub fn with_interceptor<F>(
449 inner: T,
450 interceptor: F,
451 ) -> SqlServiceClient<InterceptedService<T, F>>
452 where
453 F: tonic::service::Interceptor,
454 T::ResponseBody: Default,
455 T: tonic::codegen::Service<
456 http::Request<tonic::body::Body>,
457 Response = http::Response<
458 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
459 >,
460 >,
461 <T as tonic::codegen::Service<
462 http::Request<tonic::body::Body>,
463 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
464 {
465 SqlServiceClient::new(InterceptedService::new(inner, interceptor))
466 }
467 #[must_use]
472 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
473 self.inner = self.inner.send_compressed(encoding);
474 self
475 }
476 #[must_use]
478 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
479 self.inner = self.inner.accept_compressed(encoding);
480 self
481 }
482 #[must_use]
486 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
487 self.inner = self.inner.max_decoding_message_size(limit);
488 self
489 }
490 #[must_use]
494 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
495 self.inner = self.inner.max_encoding_message_size(limit);
496 self
497 }
498 pub async fn query(
499 &mut self,
500 request: impl tonic::IntoRequest<super::SqlServiceQueryRequest>,
501 ) -> std::result::Result<
502 tonic::Response<tonic::codec::Streaming<super::SqlServiceQueryResponse>>,
503 tonic::Status,
504 > {
505 self.inner
506 .ready()
507 .await
508 .map_err(|e| {
509 tonic::Status::unknown(
510 format!("Service was not ready: {}", e.into()),
511 )
512 })?;
513 let codec = tonic::codec::ProstCodec::default();
514 let path = http::uri::PathAndQuery::from_static(
515 "/nominal.sql.v1.SqlService/Query",
516 );
517 let mut req = request.into_request();
518 req.extensions_mut()
519 .insert(GrpcMethod::new("nominal.sql.v1.SqlService", "Query"));
520 self.inner.server_streaming(req, path, codec).await
521 }
522 pub async fn export(
523 &mut self,
524 request: impl tonic::IntoRequest<super::SqlServiceExportRequest>,
525 ) -> std::result::Result<
526 tonic::Response<super::SqlServiceExportResponse>,
527 tonic::Status,
528 > {
529 self.inner
530 .ready()
531 .await
532 .map_err(|e| {
533 tonic::Status::unknown(
534 format!("Service was not ready: {}", e.into()),
535 )
536 })?;
537 let codec = tonic::codec::ProstCodec::default();
538 let path = http::uri::PathAndQuery::from_static(
539 "/nominal.sql.v1.SqlService/Export",
540 );
541 let mut req = request.into_request();
542 req.extensions_mut()
543 .insert(GrpcMethod::new("nominal.sql.v1.SqlService", "Export"));
544 self.inner.unary(req, path, codec).await
545 }
546 pub async fn get_sql_catalog(
547 &mut self,
548 request: impl tonic::IntoRequest<super::GetSqlCatalogRequest>,
549 ) -> std::result::Result<
550 tonic::Response<super::GetSqlCatalogResponse>,
551 tonic::Status,
552 > {
553 self.inner
554 .ready()
555 .await
556 .map_err(|e| {
557 tonic::Status::unknown(
558 format!("Service was not ready: {}", e.into()),
559 )
560 })?;
561 let codec = tonic::codec::ProstCodec::default();
562 let path = http::uri::PathAndQuery::from_static(
563 "/nominal.sql.v1.SqlService/GetSqlCatalog",
564 );
565 let mut req = request.into_request();
566 req.extensions_mut()
567 .insert(GrpcMethod::new("nominal.sql.v1.SqlService", "GetSqlCatalog"));
568 self.inner.unary(req, path, codec).await
569 }
570 }
571}