MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / project_columns

Function project_columns

nodedb/src/engine/graph/pattern/executor/predicates.rs:104–127  ·  view source on GitHub ↗

Project RETURN columns from rows.

(rows: &[BindingRow], columns: &[ReturnColumn])

Source from the content-addressed store, hash-verified

102
103/// Project RETURN columns from rows.
104pub(super) fn project_columns(rows: &[BindingRow], columns: &[ReturnColumn]) -> Vec<BindingRow> {
105 rows.iter()
106 .map(|row| {
107 let mut projected = BindingRow::new();
108 for col in columns {
109 let key = col.alias.as_deref().unwrap_or(&col.expr);
110
111 let value = if let Some(dot) = col.expr.find('.') {
112 let binding = &col.expr[..dot];
113 row.get(binding)
114 .cloned()
115 .unwrap_or_else(|| "NULL".to_string())
116 } else {
117 row.get(&col.expr)
118 .cloned()
119 .unwrap_or_else(|| "NULL".to_string())
120 };
121
122 projected.insert(key.to_string(), value);
123 }
124 projected
125 })
126 .collect()
127}

Callers 1

execute_queryFunction · 0.85

Calls 6

collectMethod · 0.80
to_stringMethod · 0.80
iterMethod · 0.45
findMethod · 0.45
getMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected