Skip to content

Commit 1af974a

Browse files
committed
pass cache_mode from SqlApiLoadPayload
1 parent ce154e7 commit 1af974a

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

packages/cubejs-api-gateway/src/sql-server.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,9 @@ export class SQLServer {
207207
}
208208
});
209209
},
210-
sqlApiLoad: async ({ request, session, query, queryKey, sqlQuery, streaming }) => {
210+
sqlApiLoad: async ({ request, session, query, queryKey, sqlQuery, streaming, cacheMode }) => {
211211
const context = await contextByRequest(request, session);
212212

213-
// XXX: Should we pass cacheMode somehow?
214-
215213
// eslint-disable-next-line no-async-promise-executor
216214
return new Promise(async (resolve, reject) => {
217215
try {
@@ -220,6 +218,7 @@ export class SQLServer {
220218
query,
221219
sqlQuery,
222220
streaming,
221+
cacheMode,
223222
context,
224223
memberExpressions: true,
225224
res: (response) => {

packages/cubejs-backend-native/js/index.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,13 @@ export interface SqlPayload {
7878
}
7979

8080
export interface SqlApiLoadPayload {
81-
request: Request<LoadRequestMeta>,
82-
session: SessionContext,
83-
query: any,
84-
queryKey: any,
85-
sqlQuery: any,
86-
streaming: boolean,
81+
request: Request<LoadRequestMeta>;
82+
session: SessionContext;
83+
query: any;
84+
queryKey: any;
85+
sqlQuery: any;
86+
streaming: boolean;
87+
cacheMode: CacheMode;
8788
}
8889

8990
export interface LogLoadEventPayload {

packages/cubejs-backend-native/src/transport.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use crate::{
1313
};
1414
use async_trait::async_trait;
1515
use cubesql::compile::engine::df::scan::{
16-
convert_transport_response, transform_response, MemberField, RecordBatch, SchemaRef,
16+
convert_transport_response, transform_response, CacheMode, MemberField, RecordBatch, SchemaRef,
1717
};
1818
use cubesql::compile::engine::df::wrapper::SqlQuery;
1919
use cubesql::transport::{
@@ -91,6 +91,8 @@ struct LoadRequest {
9191
streaming: bool,
9292
#[serde(rename = "queryKey", skip_serializing_if = "Option::is_none")]
9393
query_key: Option<serde_json::Value>,
94+
#[serde(rename = "cacheMode", skip_serializing_if = "Option::is_none")]
95+
cache_mode: Option<CacheMode>,
9496
}
9597

9698
#[derive(Debug, Serialize)]
@@ -287,6 +289,7 @@ impl TransportService for NodeBridgeTransport {
287289
member_to_alias,
288290
expression_params,
289291
streaming: false,
292+
cache_mode: None,
290293
})?;
291294

292295
let response: serde_json::Value = call_js_with_channel_as_callback(
@@ -338,6 +341,7 @@ impl TransportService for NodeBridgeTransport {
338341
meta: LoadRequestMeta,
339342
schema: SchemaRef,
340343
member_fields: Vec<MemberField>,
344+
cache_mode: Option<CacheMode>,
341345
) -> Result<Vec<RecordBatch>, CubeError> {
342346
trace!("[transport] Request ->");
343347

@@ -371,6 +375,7 @@ impl TransportService for NodeBridgeTransport {
371375
member_to_alias: None,
372376
expression_params: None,
373377
streaming: false,
378+
cache_mode: cache_mode.clone(),
374379
})?;
375380

376381
let result = call_raw_js_with_channel_as_callback(
@@ -527,6 +532,7 @@ impl TransportService for NodeBridgeTransport {
527532
member_to_alias: None,
528533
expression_params: None,
529534
streaming: true,
535+
cache_mode: None,
530536
})?;
531537

532538
let res = call_js_with_stream_as_callback(

packages/cubejs-server-core/src/core/OrchestratorApi.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
} from '@cubejs-backend/query-orchestrator';
1212

1313
import { DatabaseType, RequestContext } from './types';
14-
import { CacheMode } from '@cubejs-backend/shared';
1514

1615
export interface OrchestratorApiOptions extends QueryOrchestratorOptions {
1716
contextToDbType: (dataSource: string) => Promise<DatabaseType>;

rust/cubesql/cubesql/src/compile/engine/df/scan.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ use datafusion::{
4343
};
4444
use futures::Stream;
4545
use log::warn;
46+
use serde::Serialize;
4647
use serde_json::Value;
4748
use std::str::FromStr;
4849
use std::{
@@ -79,7 +80,7 @@ impl MemberField {
7980
}
8081
}
8182

82-
#[derive(Debug, Clone)]
83+
#[derive(Debug, Clone, Serialize)]
8384
pub enum CacheMode {
8485
StaleIfSlow,
8586
StaleWhileRevalidate,

0 commit comments

Comments
 (0)