Skip to content

Commit 61528e1

Browse files
committed
Change API
1 parent 1879b9f commit 61528e1

File tree

15 files changed

+52
-38
lines changed

15 files changed

+52
-38
lines changed

Diff for: src/executor/alter_row/delete.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use {
22
crate::{
33
data::Schema, executor::types::ColumnInfo, Column, ComplexTableName, ExecuteError, Glue,
4-
MetaRecipe, Payload, PlannedRecipe, Result, Value,
4+
recipe::{MetaRecipe, PlannedRecipe}, Payload, Result, Value,
55
},
66
sqlparser::ast::{Expr, ObjectName},
77
};
88

99
impl Glue {
10-
pub async fn delete(
10+
pub async fn ast_delete(
1111
&mut self,
1212
table_name: &ObjectName,
1313
selection: &Option<Expr>,

Diff for: src/executor/alter_row/insert.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {
55
};
66

77
impl Glue {
8-
pub async fn insert(
8+
pub async fn ast_insert(
99
&mut self,
1010
table_name: &ObjectName,
1111
columns: &[Ident],
@@ -28,7 +28,7 @@ impl Glue {
2828
.ok_or(ExecuteError::TableNotExists)?;
2929

3030
// TODO: Multi storage
31-
let (labels, mut rows) = self.query(source.clone()).await?;
31+
let (labels, mut rows) = self.ast_query(source.clone()).await?;
3232
let column_positions = columns_to_positions(&column_defs, columns)?;
3333

3434
validate(&column_defs, &column_positions, &mut rows)?;

Diff for: src/executor/alter_row/update.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ use {
33
crate::{
44
data::Schema,
55
executor::types::{ColumnInfo, Row as VecRow},
6-
Column, ComplexTableName, ExecuteError, Glue, MetaRecipe, Payload, PlannedRecipe,
7-
RecipeUtilities, Result, Row, Value,
6+
recipe::{MetaRecipe, PlannedRecipe},
7+
Column, ComplexTableName, ExecuteError, Glue, Payload, Result, Row, Value,
88
},
99
sqlparser::ast::{Assignment, Expr, TableFactor, TableWithJoins},
1010
};
1111

1212
impl Glue {
13-
pub async fn update(
13+
pub async fn ast_update(
1414
&mut self,
1515
table: &TableWithJoins,
1616
selection: &Option<Expr>,

Diff for: src/executor/alter_row/validate.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use {
22
crate::{
3-
executor::types::Row, Column, Error, Recipe, RecipeUtilities, Resolve, Result, SimplifyBy,
4-
ValueDefault, ValueType,
3+
executor::types::Row,
4+
recipe::{Recipe, RecipeUtilities, Resolve, SimplifyBy},
5+
Column, Error, Result, ValueDefault, ValueType,
56
},
67
rayon::prelude::*,
78
serde::Serialize,

Diff for: src/executor/alter_table/alter_table.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {
55
};
66

77
impl Glue {
8-
pub async fn alter_table(
8+
pub async fn ast_alter_table(
99
&mut self,
1010
name: &ObjectName,
1111
operation: &AlterTableOperation,

Diff for: src/executor/alter_table/drop.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {
55
};
66

77
impl Glue {
8-
pub async fn drop(
8+
pub async fn ast_drop(
99
&mut self,
1010
object_type: &ObjectType,
1111
names: &[ObjectName],

Diff for: src/executor/alter_table/truncate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {
55
};
66

77
impl Glue {
8-
pub async fn truncate(&mut self, table_name: &ObjectName) -> Result<()> {
8+
pub async fn ast_truncate(&mut self, table_name: &ObjectName) -> Result<()> {
99
let database = &mut **self.get_mut_database(&None)?;
1010
let table_name = get_name(table_name)?;
1111
let schema = database.fetch_schema(table_name).await?;

Diff for: src/executor/create/index.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use {
77
};
88

99
impl Glue {
10-
pub async fn create_index(
10+
pub async fn ast_create_index(
1111
&mut self,
1212
table: &ObjectName,
1313
name: &ObjectName,

Diff for: src/executor/create/table.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use {
44
};
55

66
impl Glue {
7-
pub async fn create_table(
7+
pub async fn ast_create_table(
88
&mut self,
99
name: &ObjectName,
1010
column_defs: &[ColumnDef],

Diff for: src/executor/create/view.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {
55
};
66

77
impl Glue {
8-
pub async fn create_view(
8+
pub async fn ast_create_view(
99
&mut self,
1010
name: &ObjectName,
1111
query: &Box<Query>,

Diff for: src/executor/execute.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ impl Glue {
8383
if_not_exists,
8484
..
8585
} => self
86-
.create_table(name, columns, *if_not_exists)
86+
.ast_create_table(name, columns, *if_not_exists)
8787
.await
8888
.map(|_| Payload::Create),
8989
Statement::CreateView {
@@ -92,7 +92,7 @@ impl Glue {
9292
or_replace,
9393
..
9494
} => self
95-
.create_view(name, query, *or_replace)
95+
.ast_create_view(name, query, *or_replace)
9696
.await
9797
.map(|_| Payload::Create),
9898
Statement::Drop {
@@ -110,17 +110,17 @@ impl Glue {
110110
}
111111
}
112112
object_type => self
113-
.drop(object_type, names, *if_exists)
113+
.ast_drop(object_type, names, *if_exists)
114114
.await
115115
.map(|_| Payload::DropTable),
116116
},
117117
#[cfg(feature = "alter-table")]
118118
Statement::AlterTable { name, operation } => self
119-
.alter_table(name, operation)
119+
.ast_alter_table(name, operation)
120120
.await
121121
.map(|_| Payload::AlterTable),
122122
Statement::Truncate { table_name, .. } => self
123-
.truncate(table_name)
123+
.ast_truncate(table_name)
124124
.await
125125
.map(|_| Payload::TruncateTable),
126126
Statement::CreateIndex {
@@ -130,7 +130,7 @@ impl Glue {
130130
unique,
131131
if_not_exists,
132132
} => self
133-
.create_index(table_name, name, columns, *unique, *if_not_exists)
133+
.ast_create_index(table_name, name, columns, *unique, *if_not_exists)
134134
.await
135135
.map(|_| Payload::Create),
136136

@@ -140,22 +140,22 @@ impl Glue {
140140
columns,
141141
source,
142142
..
143-
} => self.insert(table_name, columns, source, false).await,
143+
} => self.ast_insert(table_name, columns, source, false).await,
144144
Statement::Update {
145145
table,
146146
selection,
147147
assignments,
148148
// TODO
149149
from: _,
150-
} => self.update(table, selection, assignments).await,
150+
} => self.ast_update(table, selection, assignments).await,
151151
Statement::Delete {
152152
table_name,
153153
selection,
154-
} => self.delete(table_name, selection).await,
154+
} => self.ast_delete(table_name, selection).await,
155155

156156
//- Selection
157157
Statement::Query(query_value) => {
158-
let result = self.query(*query_value.clone()).await?;
158+
let result = self.ast_query(*query_value.clone()).await?;
159159
let (labels, rows) = result;
160160
let rows = rows.into_iter().map(Row).collect(); // I don't like this. TODO
161161
let payload = Payload::Select { labels, rows };
@@ -166,13 +166,13 @@ impl Glue {
166166
Statement::SetVariable {
167167
variable, value, ..
168168
} => self
169-
.set_variable(variable, value)
169+
.set_variable(variable.into(), value)
170170
.await
171171
.map(|_| Payload::Success),
172172

173173
Statement::ExplainTable { table_name, .. } => self.explain(table_name).await,
174174

175-
Statement::Execute { name, parameters } => self.procedure(name, parameters).await,
175+
Statement::Execute { name, parameters } => self.ast_procedure(name, parameters).await,
176176
_ => Err(ExecuteError::QueryNotSupported.into()),
177177
}
178178
}

Diff for: src/executor/procedure.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use {
44
};
55

66
impl Glue {
7-
pub async fn procedure(&mut self, name: &Ident, parameters: &[Expr]) -> Result<Payload> {
7+
pub async fn ast_procedure(&mut self, name: &Ident, parameters: &[Expr]) -> Result<Payload> {
88
return match name.value.as_str() {
99
"FILE" => {
1010
if let Some(Ok(query)) = parameters.get(0).map(|path| {

Diff for: src/executor/query/mod.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ mod set_expr;
77
pub use select::{join::*, ManualError, Plan, PlanError, SelectError};
88
use {
99
crate::{
10-
executor::types::LabelsAndRows, result::Result, Cast, Glue, MetaRecipe, RecipeUtilities,
11-
Value,
10+
executor::types::LabelsAndRows,
11+
recipe::{MetaRecipe, RecipeUtilities},
12+
result::Result,
13+
Cast, Glue, Value,
1214
},
1315
async_recursion::async_recursion,
1416
serde::Serialize,
@@ -38,7 +40,7 @@ pub enum QueryError {
3840

3941
impl Glue {
4042
#[async_recursion(?Send)]
41-
pub async fn query(&mut self, query: Query) -> Result<LabelsAndRows> {
43+
pub async fn ast_query(&mut self, query: Query) -> Result<LabelsAndRows> {
4244
let Query {
4345
body,
4446
order_by,
@@ -83,7 +85,7 @@ impl Glue {
8385
columns: _, // TODO: Columns - Check that number is same and then rename labels
8486
} = alias;
8587
let name = name.value;
86-
let data = self.query(query).await?;
88+
let data = self.ast_query(query).await?;
8789
self.tempdb.set_table(name, data);
8890
}
8991
}

Diff for: src/executor/query/set_expr.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
use {
22
super::QueryError,
33
crate::{
4-
executor::types::LabelsAndRows, macros::warning, result::Result, Error, Glue, MetaRecipe,
5-
Payload, RecipeUtilities, Value,
4+
executor::types::LabelsAndRows,
5+
macros::warning,
6+
recipe::{MetaRecipe, RecipeUtilities},
7+
result::Result,
8+
Error, Glue, Payload, Value,
69
},
710
async_recursion::async_recursion,
811
sqlparser::ast::{OrderByExpr, SetExpr, SetOperator, Statement},
@@ -83,7 +86,7 @@ impl Glue {
8386
source,
8487
..
8588
}) => {
86-
let inserted = self.insert(&table_name, &columns, &source, true).await?;
89+
let inserted = self.ast_insert(&table_name, &columns, &source, true).await?;
8790
if let Payload::Select { labels, rows } = inserted {
8891
Ok((labels, rows.into_iter().map(|row| row.0).collect()))
8992
} else {

Diff for: src/glue/insert.rs

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
use {
22
super::Glue,
3-
crate::{recipe::Recipe, Cast, ExecuteError, Result, Value},
3+
crate::{recipe::Recipe, Cast, ExecuteError, Payload, Result, Value},
44
serde_json::{json, value::Value as JSONValue},
55
};
66

77
trait ParameterValue {
88
fn into_recipe(self) -> Recipe;
99
}
1010
impl ParameterValue for Value {
11-
fn into_recipe(self) -> Recipe {}
11+
fn into_recipe(self) -> Recipe {
12+
unimplemented!()
13+
}
1214
}
1315

1416
/// ## Insert (`INSERT`)
1517
impl Glue {
16-
pub fn insert(&mut self, table: &str, columns: &[&str], values: Vec<Recipe>) -> Result<String> {
18+
pub fn insert(
19+
&mut self,
20+
table: &str,
21+
columns: &[&str],
22+
values: Vec<Recipe>,
23+
) -> Result<Payload> {
24+
unimplemented!()
1725
}
1826
}

0 commit comments

Comments
 (0)