Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 135 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ members = [
"crates/queries",
"crates/error-stack",
"crates/error-stack-trace"
]
, "crates/embucket-lambda"]
resolver = "2"
package.license-file = "LICENSE"

Expand Down
25 changes: 6 additions & 19 deletions crates/api-snowflake-rest/src/models.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,11 @@ pub struct LoginRequestData {
pub svn_revision: Option<String>,
pub account_name: String,
pub login_name: String,
pub client_environment: ClientEnvironment,
pub client_environment: HashMap<String, serde_json::Value>,
pub password: String,
pub session_parameters: HashMap<String, serde_json::Value>,
}

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "UPPERCASE")]
pub struct ClientEnvironment {
pub application: String,
pub os: String,
pub os_version: String,
pub python_version: String,
pub python_runtime: String,
pub python_compiler: String,
pub ocsp_mode: String,
pub tracing: u32,
pub login_timeout: Option<u32>,
pub network_timeout: Option<u32>,
pub socket_timeout: Option<u32>,
}

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QueryRequest {
Expand All @@ -76,7 +60,7 @@ pub struct QueryRequest {
#[serde(rename_all = "camelCase")]
pub struct QueryRequestBody {
pub sql_text: String,
pub async_exec: bool,
pub async_exec: Option<bool>,
}

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
Expand All @@ -95,7 +79,10 @@ pub struct ResponseData {
pub row_set_base_64: Option<String>,
#[serde(rename = "rowset")]
pub row_set: Option<Box<RawValue>>,
pub total: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub returned: Option<i64>,
#[serde(rename = "queryResultFormat")]
pub query_result_format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
Expand Down
16 changes: 16 additions & 0 deletions crates/api-snowflake-rest/src/server/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,21 @@ impl IntoResponse for Error {
}

impl Error {
#[must_use]
pub fn missing_auth_token() -> Self {
MissingAuthTokenSnafu.build()
}

#[must_use]
pub fn invalid_auth_token() -> Self {
InvalidAuthTokenSnafu.build()
}

#[must_use]
pub fn invalid_auth_data() -> Self {
InvalidAuthDataSnafu.build()
}

pub fn query_id(&self) -> QueryRecordId {
if let Self::Execution { source, .. } = self {
source.query_id()
Expand Down Expand Up @@ -216,6 +231,7 @@ impl Error {
row_set_base_64: None,
row_set: None,
total: None,
returned: None,
query_result_format: None,
// Query uuid is returned to the user
query_id: Some(self.query_id().as_uuid().to_string()),
Expand Down
Loading