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

Function parse_move_tenant

nodedb-sql/src/ddl_ast/parse/database/move_tenant.rs:8–51  ·  view source on GitHub ↗
(parts: &[&str])

Source from the content-addressed store, hash-verified

6use crate::error::SqlError;
7
8pub(super) fn parse_move_tenant(parts: &[&str]) -> Result<NodedbStatement, SqlError> {
9 let tenant_name = parts
10 .get(2)
11 .copied()
12 .ok_or_else(|| SqlError::Parse {
13 detail: "MOVE TENANT requires a tenant name".into(),
14 })?
15 .trim_matches('"')
16 .to_string();
17 let from_idx = parts
18 .iter()
19 .position(|w| w.to_uppercase() == "FROM")
20 .ok_or_else(|| SqlError::Parse {
21 detail: "MOVE TENANT requires FROM <db>".into(),
22 })?;
23 let from_db = parts
24 .get(from_idx + 1)
25 .copied()
26 .ok_or_else(|| SqlError::Parse {
27 detail: "MOVE TENANT FROM requires a source database name".into(),
28 })?
29 .trim_matches('"')
30 .to_string();
31 let to_idx = parts
32 .iter()
33 .position(|w| w.to_uppercase() == "TO")
34 .ok_or_else(|| SqlError::Parse {
35 detail: "MOVE TENANT requires TO <db>".into(),
36 })?;
37 let to_db = parts
38 .get(to_idx + 1)
39 .copied()
40 .ok_or_else(|| SqlError::Parse {
41 detail: "MOVE TENANT TO requires a destination database name".into(),
42 })?
43 .trim_matches('"')
44 .to_string();
45
46 Ok(NodedbStatement::Database(DatabaseStmt::MoveTenant {
47 tenant_name,
48 from_db,
49 to_db,
50 }))
51}

Callers 1

try_parseFunction · 0.70

Calls 3

to_stringMethod · 0.80
getMethod · 0.45
iterMethod · 0.45

Tested by

no test coverage detected