Skip to content

Commit d31cf19

Browse files
committed
refactor(WIP)!: 1
1 parent e8ac267 commit d31cf19

8 files changed

Lines changed: 33 additions & 27 deletions

File tree

canyon_core/src/query/operators.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::connection::database_type::DatabaseType;
22
use crate::query::querybuilder::syntax::keyword::Keyword;
3-
use crate::query::querybuilder::syntax::tokens::{SqlToken, SqlTokens, Symbol, ToSqlTokens};
3+
use crate::query::querybuilder::syntax::tokens::{SqlTokens, Symbol, ToSqlTokens};
44
use std::fmt::Display;
55

66
/// Enumerated type for represent the comparison operations

canyon_core/src/query/querybuilder/syntax/ast/insert.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::query::parameters::QueryParameter;
22
use crate::query::querybuilder::syntax::column::ColumnRef;
33
use crate::query::querybuilder::syntax::emitter::AstProcessor;
44
use crate::query::querybuilder::syntax::query_kind::QueryKind;
5-
use transient::{Any, Transient};
5+
use transient::Transient;
66

77
#[derive(Default, Transient)]
88
pub struct InsertAst<'a> {

canyon_core/src/query/querybuilder/syntax/column.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use crate::query::bounds::FieldIdentifier;
22
use crate::query::querybuilder::syntax::keyword::Keyword;
33
use crate::query::querybuilder::syntax::symbol::Symbol::Dot;
4-
use crate::query::querybuilder::syntax::tokens::{SqlToken, SqlTokens, ToSqlTokens};
5-
use std::borrow::Cow;
4+
use crate::query::querybuilder::syntax::tokens::{SqlTokens, ToSqlTokens};
65

76
#[derive(Debug, Clone, Default)]
87
pub struct ColumnRef<'a> {
@@ -43,7 +42,7 @@ impl<'a> ToSqlTokens<'a> for ColumnRef<'a> {
4342
}
4443

4544
impl<'a> ColumnRef<'a> {
46-
pub fn new(column_name: &'a str) -> Self {
45+
pub const fn new(column_name: &'a str) -> Self {
4746
Self {
4847
column: column_name,
4948
table: None,
@@ -72,7 +71,7 @@ impl<'a> ColumnRef<'a> {
7271
mod __impl {
7372
use crate::query::querybuilder::syntax::column::{__detail, ColumnRef};
7473

75-
pub(crate) fn column_ref_from_str_ref(value: &str) -> ColumnRef {
74+
pub(crate) fn column_ref_from_str_ref(value: &str) -> ColumnRef<'_> {
7675
let trimmed = value.trim();
7776

7877
let (before_alias, alias) = match __detail::find_case_insensitive_as(trimmed) {

canyon_core/src/query/querybuilder/syntax/emitter/backends/pg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::query::querybuilder::syntax::dialect::PgDialect;
2-
use crate::query::querybuilder::syntax::emitter::{AstProcessor, SqlEmitter};
2+
use crate::query::querybuilder::syntax::emitter::SqlEmitter;
33
use crate::query::querybuilder::syntax::tokens::SqlTokens;
44

55
#[derive(Default)]

canyon_core/src/query/querybuilder/syntax/emitter/types/select.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use crate::query::querybuilder::syntax::ast::select::SelectAst;
22
use crate::query::querybuilder::syntax::ast::BaseAst;
3-
use crate::query::querybuilder::syntax::emitter::types::helpers;
43
use crate::query::querybuilder::syntax::emitter::{AstProcessor, SqlEmitter};
54
use crate::query::querybuilder::syntax::keyword::Keyword;
65
use crate::query::querybuilder::syntax::tokens::SqlTokens;
@@ -23,8 +22,8 @@ where
2322

2423
tokens.keyword(Keyword::Select);
2524

26-
emit_columns(select_ast, &mut tokens);
27-
emit_from(base_ast, &mut tokens);
25+
__impl::emit_columns(select_ast, &mut tokens);
26+
__impl::emit_from(base_ast, &mut tokens);
2827

2928
tokens
3029
}
@@ -36,11 +35,20 @@ pub trait EmitSelect<'a>: SqlEmitter<'a> {
3635
-> SqlTokens<'a>;
3736
}
3837

39-
pub(crate) fn emit_columns<'a>(ast: &SelectAst<'a>, tokens: &mut SqlTokens<'a>) {
40-
helpers::emit_columns(&ast.columns, tokens)
41-
}
38+
mod __impl {
39+
use crate::query::querybuilder::syntax::ast::select::SelectAst;
40+
use crate::query::querybuilder::syntax::ast::BaseAst;
41+
use crate::query::querybuilder::syntax::emitter::types::helpers;
42+
use crate::query::querybuilder::syntax::keyword::Keyword;
43+
use crate::query::querybuilder::syntax::tokens::{SqlTokens, ToSqlTokens};
44+
45+
pub(crate) fn emit_columns<'a>(ast: &SelectAst<'a>, tokens: &mut SqlTokens<'a>) {
46+
helpers::emit_columns(&ast.columns, tokens)
47+
}
4248

43-
pub(crate) fn emit_from<'a>(base_ast: &BaseAst<'a>, tokens: &mut SqlTokens<'a>) {
44-
//meta.to_tokens(emitter.tokens())
45-
todo!()
49+
pub(crate) fn emit_from<'a>(base_ast: &BaseAst<'a>, tokens: &mut SqlTokens<'a>) {
50+
tokens.keyword(Keyword::From);
51+
base_ast.table.to_tokens(tokens);
52+
// TODO: the out opt-in params
53+
}
4654
}

canyon_core/src/query/querybuilder/syntax/join.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ pub struct JoinClause<'a> {
3333
}
3434

3535
impl<'a> JoinClause<'a> {
36-
pub fn new<I: Into<ColumnRef<'a>>>(
36+
pub const fn new(
3737
kind: JoinKind,
3838
target_table: TableMetadata<'a>,
39-
left: I,
39+
left: ColumnRef<'a>,
4040
operator: Comp,
41-
right: I,
41+
right: ColumnRef<'a>,
4242
) -> Self {
4343
Self {
4444
kind,
4545
target_table,
46-
left: left.into(),
46+
left,
4747
operator,
48-
right: right.into(),
48+
right,
4949
}
5050
}
5151
}

canyon_core/src/query/querybuilder/syntax/writer.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::connection::database_type::DatabaseType;
2-
use crate::query::querybuilder::syntax::tokens::{SqlToken, SqlTokens};
2+
use crate::query::querybuilder::syntax::tokens::SqlTokens;
33

44
pub struct TokenWriter {}
55

@@ -21,7 +21,7 @@ impl TokenWriter {
2121

2222
mod __impl {
2323
use crate::connection::database_type::DatabaseType;
24-
use crate::query::querybuilder::syntax::tokens::{SqlToken, Symbol};
24+
use crate::query::querybuilder::syntax::tokens::SqlToken;
2525
use crate::query::querybuilder::syntax::writer::__detail;
2626
use std::fmt::Write;
2727

canyon_core/src/query/querybuilder/types/mod.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ use crate::query::query::Query;
1111
use crate::query::querybuilder::syntax::ast::BaseAst;
1212
use crate::query::querybuilder::syntax::clause::ConditionClauseKind;
1313
use crate::query::querybuilder::syntax::emitter::AstProcessor;
14-
use crate::query::querybuilder::syntax::emitter::backends::PgEmitter;
1514
use crate::query::querybuilder::syntax::table_metadata::TableMetadata;
16-
use crate::query::querybuilder::syntax::tokens::{SqlToken, SqlTokens, Symbol};
15+
use crate::query::querybuilder::syntax::tokens::{SqlTokens, Symbol};
1716
use crate::query::querybuilder::syntax::writer::TokenWriter;
1817
use std::error::Error;
1918

@@ -115,11 +114,11 @@ mod __impl {
115114
use crate::query::bounds::FieldIdentifier;
116115
use crate::query::operators::Comp;
117116
use crate::query::parameters::QueryParameter;
118-
use crate::query::querybuilder::QueryBuilder;
119117
use crate::query::querybuilder::syntax::clause::{ConditionClause, ConditionClauseKind};
120118
use crate::query::querybuilder::syntax::column::ColumnRef;
121119
use crate::query::querybuilder::syntax::emitter::AstProcessor;
122120
use crate::query::querybuilder::types::__validators;
121+
use crate::query::querybuilder::QueryBuilder;
123122
use std::error::Error;
124123

125124
pub(crate) fn generate_values_in_for_and_or_or_clause<'a, 'b, P, Z, Q>(
@@ -277,10 +276,10 @@ mod __detail {
277276

278277
mod __validators {
279278
use crate::query::parameters::QueryParameter;
280-
use crate::query::querybuilder::QueryBuilder;
281279
use crate::query::querybuilder::syntax::clause::ConditionClauseKind;
282280
use crate::query::querybuilder::syntax::emitter::AstProcessor;
283281
use crate::query::querybuilder::types::__errors;
282+
use crate::query::querybuilder::QueryBuilder;
284283
use std::error::Error;
285284
use std::fmt::Display;
286285

0 commit comments

Comments
 (0)