MCPcopy Create free account
hub / github.com/AmrDeveloper/GQL / execute_statement

Function execute_statement

crates/gitql-engine/src/engine_executor.rs:32–75  ·  view source on GitHub ↗
(
    env: &mut Environment,
    statement: &Statement,
    data_provider: &Box<dyn DataProvider>,
    gitql_object: &mut GitQLObject,
    alias_table: &mut HashMap<String, String>,
    hidden_selecti

Source from the content-addressed store, hash-verified

30
31#[allow(clippy::borrowed_box)]
32pub fn execute_statement(
33 env: &mut Environment,
34 statement: &Statement,
35 data_provider: &Box<dyn DataProvider>,
36 gitql_object: &mut GitQLObject,
37 alias_table: &mut HashMap<String, String>,
38 hidden_selection: &HashMap<String, Vec<String>>,
39 has_group_by_statement: bool,
40) -> Result<(), String> {
41 match statement {
42 Statement::Select(statement) => execute_select_statement(
43 env,
44 statement,
45 alias_table,
46 data_provider,
47 gitql_object,
48 hidden_selection,
49 ),
50 Statement::Where(statement) => execute_where_statement(env, statement, gitql_object),
51 Statement::Having(statement) => execute_having_statement(env, statement, gitql_object),
52 Statement::Limit(statement) => execute_limit_statement(statement, gitql_object),
53 Statement::Offset(statement) => execute_offset_statement(env, statement, gitql_object),
54 Statement::OrderBy(statement) => {
55 if gitql_object.len() > 1 {
56 gitql_object.flat();
57 }
58 let main_group_index = 0;
59 execute_order_by_statement(env, statement, gitql_object, main_group_index)
60 }
61 Statement::GroupBy(statement) => execute_group_by_statement(env, statement, gitql_object),
62 Statement::AggregateFunction(statement) => execute_aggregation_functions_statement(
63 env,
64 statement,
65 gitql_object,
66 alias_table,
67 has_group_by_statement,
68 ),
69 Statement::WindowFunction(statement) => {
70 execute_window_functions_statement(env, statement, gitql_object, alias_table)
71 }
72 Statement::Qualify(statement) => execute_qualify_statement(env, statement, gitql_object),
73 Statement::Into(statement) => execute_into_statement(statement, gitql_object),
74 }
75}
76
77#[allow(clippy::borrowed_box)]
78fn execute_select_statement(

Callers 1

evaluate_select_queryFunction · 0.85

Calls 13

execute_select_statementFunction · 0.85
execute_where_statementFunction · 0.85
execute_having_statementFunction · 0.85
execute_limit_statementFunction · 0.85
execute_offset_statementFunction · 0.85
execute_into_statementFunction · 0.85
flatMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…