Skip to content

Commit b9df997

Browse files
committed
address comment
1 parent e307407 commit b9df997

2 files changed

Lines changed: 25 additions & 13 deletions

File tree

crates/lance-graph/src/parameter_substitution.rs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,13 @@ fn substitute_in_property_value(
106106
parameters: &HashMap<String, serde_json::Value>,
107107
) -> Result<()> {
108108
if let PropertyValue::Parameter(name) = value {
109-
let param_value = parameters.get(name).ok_or_else(|| GraphError::PlanError {
110-
message: format!("Missing parameter: ${}", name),
111-
location: snafu::Location::new(file!(), line!(), column!()),
112-
})?;
109+
let param_value =
110+
parameters
111+
.get(&name.to_lowercase())
112+
.ok_or_else(|| GraphError::PlanError {
113+
message: format!("Missing parameter: ${}", name),
114+
location: snafu::Location::new(file!(), line!(), column!()),
115+
})?;
113116

114117
*value = json_to_property_value(param_value)?;
115118
}
@@ -198,10 +201,13 @@ fn substitute_in_value_expression(
198201
) -> Result<()> {
199202
match expr {
200203
ValueExpression::Parameter(name) => {
201-
let param_value = parameters.get(name).ok_or_else(|| GraphError::PlanError {
202-
message: format!("Missing parameter: ${}", name),
203-
location: snafu::Location::new(file!(), line!(), column!()),
204-
})?;
204+
let param_value =
205+
parameters
206+
.get(&name.to_lowercase())
207+
.ok_or_else(|| GraphError::PlanError {
208+
message: format!("Missing parameter: ${}", name),
209+
location: snafu::Location::new(file!(), line!(), column!()),
210+
})?;
205211

206212
// Check for array to VectorLiteral conversion
207213
if let serde_json::Value::Array(arr) = param_value {
@@ -257,7 +263,10 @@ fn json_to_property_value(value: &serde_json::Value) -> Result<PropertyValue> {
257263
} else if let Some(f) = n.as_f64() {
258264
Ok(PropertyValue::Float(f))
259265
} else {
260-
Ok(PropertyValue::Null)
266+
Err(GraphError::PlanError {
267+
message: format!("Number parameter could not be converted to i64 or f64: {}", n),
268+
location: snafu::Location::new(file!(), line!(), column!()),
269+
})
261270
}
262271
}
263272
serde_json::Value::String(s) => Ok(PropertyValue::String(s.clone())),

crates/lance-graph/src/query.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,16 @@ impl CypherQuery {
101101
K: Into<String>,
102102
V: Into<serde_json::Value>,
103103
{
104-
self.parameters.insert(key.into(), value.into());
104+
self.parameters
105+
.insert(key.into().to_lowercase(), value.into());
105106
self
106107
}
107108

108109
/// Add multiple parameters to the query
109110
pub fn with_parameters(mut self, params: HashMap<String, serde_json::Value>) -> Self {
110-
self.parameters.extend(params);
111+
for (k, v) in params {
112+
self.parameters.insert(k.to_lowercase(), v);
113+
}
111114
self
112115
}
113116

@@ -1498,8 +1501,8 @@ mod tests {
14981501
.unwrap()
14991502
.with_parameters(params);
15001503

1501-
assert!(query.parameters().contains_key("minAge"));
1502-
assert!(query.parameters().contains_key("maxAge"));
1504+
assert!(query.parameters().contains_key("minage"));
1505+
assert!(query.parameters().contains_key("maxage"));
15031506
}
15041507

15051508
#[test]

0 commit comments

Comments
 (0)