Skip to content

Commit cb72d79

Browse files
committed
in work
1 parent 5f460af commit cb72d79

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

rust/cubesqlplanner/cubesqlplanner/src/cube_bridge/member_sql.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use super::{
44
security_context::{NativeSecurityContext, SecurityContext},
55
sql_utils::{NativeSqlUtils, SqlUtils},
66
};
7+
use crate::planner::sql_evaluator::SqlCallArg;
78
use crate::utils::UniqueVector;
89
use cubenativeutils::wrappers::make_proxy;
910
use cubenativeutils::wrappers::object::{NativeFunction, NativeStruct, NativeType};
@@ -245,14 +246,14 @@ impl<IT: InnerTypes> NativeMemberSql<IT> {
245246
let mut path_with_sql = path.clone();
246247
path_with_sql.push("sql".to_string());
247248
let index = proxy_state.insert_symbol_path(&path_with_sql)?;
248-
let str = format!("{{arg:{}}}", index);
249+
let str = SqlCallArg::dependency(index);
249250
let result = inner_context.to_string_fn(str)?;
250251
let result = NativeObjectHandle::new(result.into_object());
251252
return Ok(Some(result));
252253
}
253254
if prop == "toString" || prop == "valueOf" {
254255
let index = proxy_state.insert_symbol_path(&path)?;
255-
let str = format!("{{arg:{}}}", index);
256+
let str = SqlCallArg::dependency(index);
256257
let result = inner_context.to_string_fn(str)?;
257258
let result = NativeObjectHandle::new(result.into_object());
258259
return Ok(Some(result));
@@ -276,7 +277,7 @@ impl<IT: InnerTypes> NativeMemberSql<IT> {
276277
state.security_context.values.push(value.clone());
277278
i
278279
})?;
279-
Ok(format!("{{sc_value:{}}}", index))
280+
Ok(SqlCallArg::security_value(index))
280281
}
281282

282283
fn security_context_filter_fn<CIT: InnerTypes>(
@@ -464,7 +465,7 @@ impl<IT: InnerTypes> NativeMemberSql<IT> {
464465
let index =
465466
proxy_state.with_state_mut(|state| state.insert_filter_group(filter_group))?;
466467

467-
let str = format!("{{fg:{}}}", index);
468+
let str = SqlCallArg::filter_group(index);
468469
Ok(str)
469470
})?;
470471
Ok(NativeObjectHandle::new(result.into_object()))
@@ -487,7 +488,7 @@ impl<IT: InnerTypes> NativeMemberSql<IT> {
487488
let index = proxy_state
488489
.with_state_mut(|state| state.insert_filter_params(item.as_ref().clone()))?;
489490

490-
let str = format!("{{fp:{}}}", index);
491+
let str = SqlCallArg::filter_param(index);
491492
Ok(str)
492493
})?;
493494
let result = context_holder.empty_struct()?;

rust/cubesqlplanner/cubesqlplanner/src/planner/sql_evaluator/sql_call_new.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,23 @@ use serde::{Deserialize, Serialize};
1919
use std::rc::Rc;
2020
use typed_builder::TypedBuilder;
2121

22+
pub struct SqlCallArg;
23+
24+
impl SqlCallArg {
25+
pub fn dependency(i: usize) -> String {
26+
format!("{{arg:{}}}", i)
27+
}
28+
pub fn filter_param(i: usize) -> String {
29+
format!("{{fp:{}}}", i)
30+
}
31+
pub fn filter_group(i: usize) -> String {
32+
format!("{{fg:{}}}", i)
33+
}
34+
pub fn security_value(i: usize) -> String {
35+
format!("{{sv:{}}}", i)
36+
}
37+
}
38+
2239
#[derive(Debug, Clone)]
2340
pub struct SqlCallDependency {
2441
pub path: Vec<String>,

0 commit comments

Comments
 (0)