Skip to content

Commit 18fe28e

Browse files
committed
chore: removed SqlToken whitespace from the codebase, since modeling " " at code level was being more disturbing that beneficious
1 parent 9d54570 commit 18fe28e

11 files changed

Lines changed: 220 additions & 100 deletions

File tree

canyon_core/src/query/operators.rs

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ impl<'a, D: SqlDialect> ToSqlTokens<'a, D> for Operator {
7171
Self::Like(kind) => out.extend(<LikeKind as ToSqlTokens<'_, D>>::to_tokens(&kind)),
7272
Self::NotLike(kind) => {
7373
out.keyword(Keyword::Not);
74-
out.whitespace();
74+
7575
out.extend(<LikeKind as ToSqlTokens<'_, D>>::to_tokens(&kind));
7676
}
7777
Self::In => out.keyword(Keyword::In),
@@ -97,7 +97,7 @@ impl LikeKind {
9797
out.keyword(Keyword::Cast);
9898
out.symbol(Symbol::LParen);
9999
out.placeholder();
100-
out.whitespace();
100+
101101
out.keyword(Keyword::As);
102102
out.ident(Cow::from(<PlaceholderDatatype as Into<&str>>::into(
103103
D::PLACEHOLDER_DATA_TYPE,
@@ -115,15 +115,15 @@ impl LikeKind {
115115
#[inline]
116116
fn push_comma_sep(out: &mut SqlTokens) {
117117
out.symbol(Symbol::Comma);
118-
out.whitespace();
118+
119119
}
120120
}
121121

122122
impl<'a, D: SqlDialect> ToSqlTokens<'a, D> for LikeKind {
123123
fn to_tokens(&self) -> impl IntoIterator<Item = SqlToken<'a>> + 'a {
124124
let mut out = SqlTokens::with_capacity(19);
125125

126-
out.whitespace();
126+
127127
out.keyword(Keyword::Concat);
128128
out.symbol(Symbol::LParen);
129129

@@ -171,26 +171,21 @@ mod tests {
171171
fn full_like_tokens<D: SqlDialect>() -> Vec<SqlToken<'static>> {
172172
vec![
173173
SqlToken::Keyword(Keyword::Like),
174-
SqlToken::WhiteSpace,
175174
SqlToken::Keyword(Keyword::Concat),
176175
SqlToken::Symbol(Symbol::LParen),
177176
SqlToken::Symbol(Symbol::Quote),
178177
SqlToken::Symbol(Symbol::PercentSign),
179178
SqlToken::Symbol(Symbol::Quote),
180179
SqlToken::Symbol(Symbol::Comma),
181-
SqlToken::WhiteSpace,
182180
SqlToken::Keyword(Keyword::Cast),
183181
SqlToken::Symbol(Symbol::LParen),
184182
SqlToken::Placeholder,
185-
SqlToken::WhiteSpace,
186183
SqlToken::Keyword(Keyword::As),
187-
SqlToken::WhiteSpace,
188184
SqlToken::Ident(Cow::from(<PlaceholderDatatype as Into<&str>>::into(
189185
D::PLACEHOLDER_DATA_TYPE,
190186
))),
191187
SqlToken::Symbol(Symbol::RParen),
192188
SqlToken::Symbol(Symbol::Comma),
193-
SqlToken::WhiteSpace,
194189
SqlToken::Symbol(Symbol::Quote),
195190
SqlToken::Symbol(Symbol::PercentSign),
196191
SqlToken::Symbol(Symbol::Quote),
@@ -201,20 +196,16 @@ mod tests {
201196
fn left_like_tokens<D: SqlDialect>() -> Vec<SqlToken<'static>> {
202197
vec![
203198
SqlToken::Keyword(Keyword::Like),
204-
SqlToken::WhiteSpace,
205199
SqlToken::Keyword(Keyword::Concat),
206200
SqlToken::Symbol(Symbol::LParen),
207201
SqlToken::Symbol(Symbol::Quote),
208202
SqlToken::Symbol(Symbol::PercentSign),
209203
SqlToken::Symbol(Symbol::Quote),
210204
SqlToken::Symbol(Symbol::Comma),
211-
SqlToken::WhiteSpace,
212205
SqlToken::Keyword(Keyword::Cast),
213206
SqlToken::Symbol(Symbol::LParen),
214207
SqlToken::Placeholder,
215-
SqlToken::WhiteSpace,
216208
SqlToken::Keyword(Keyword::As),
217-
SqlToken::WhiteSpace,
218209
SqlToken::Ident(Cow::from(<PlaceholderDatatype as Into<&str>>::into(
219210
D::PLACEHOLDER_DATA_TYPE,
220211
))),
@@ -226,21 +217,17 @@ mod tests {
226217
fn right_like_tokens<D: SqlDialect>() -> Vec<SqlToken<'static>> {
227218
vec![
228219
SqlToken::Keyword(Keyword::Like),
229-
SqlToken::WhiteSpace,
230220
SqlToken::Keyword(Keyword::Concat),
231221
SqlToken::Symbol(Symbol::LParen),
232222
SqlToken::Keyword(Keyword::Cast),
233223
SqlToken::Symbol(Symbol::LParen),
234224
SqlToken::Placeholder,
235-
SqlToken::WhiteSpace,
236225
SqlToken::Keyword(Keyword::As),
237-
SqlToken::WhiteSpace,
238226
SqlToken::Ident(Cow::from(<PlaceholderDatatype as Into<&str>>::into(
239227
D::PLACEHOLDER_DATA_TYPE,
240228
))),
241229
SqlToken::Symbol(Symbol::RParen),
242230
SqlToken::Symbol(Symbol::Comma),
243-
SqlToken::WhiteSpace,
244231
SqlToken::Symbol(Symbol::Quote),
245232
SqlToken::Symbol(Symbol::PercentSign),
246233
SqlToken::Symbol(Symbol::Quote),
@@ -287,7 +274,7 @@ mod tests {
287274
#[cfg(feature = "postgres")]
288275
#[test]
289276
fn not_like_operator_emits_not_like_instead_of_not_equals() {
290-
let mut expected = vec![SqlToken::Keyword(Keyword::Not), SqlToken::WhiteSpace];
277+
let mut expected = vec![SqlToken::Keyword(Keyword::Not)];
291278
expected.extend(full_like_tokens::<PgDialect>());
292279
assert_eq!(
293280
tokens::<PgDialect, _>(Operator::NotLike(LikeKind::Full)),

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ impl<'a, D: SqlDialect> ToSqlTokens<'a, D> for ConditionClause<'a> {
4646
&self.column_name,
4747
));
4848

49-
out.whitespace();
49+
5050

5151
// Operator
5252
out.operator(self.operator);
@@ -62,13 +62,13 @@ impl<'a, D: SqlDialect> ToSqlTokens<'a, D> for ConditionClause<'a> {
6262
{
6363
__impl::output_range_of_placeholders::<D>(range, &mut out);
6464
} else {
65-
out.whitespace();
65+
6666
out.placeholder();
6767
}
6868
}
6969
}
7070

71-
out.whitespace();
71+
7272

7373
out
7474
}
@@ -85,14 +85,14 @@ mod __impl {
8585
range: &Range,
8686
out: &mut SqlTokens<'_>,
8787
) {
88-
out.whitespace();
88+
8989
out.symbol(Symbol::LParen);
9090
let mut indexes = range.into_iter().peekable();
9191
while indexes.next().is_some() {
9292
out.placeholder();
9393
if indexes.peek().is_some() {
9494
out.symbol(Symbol::Comma);
95-
out.whitespace();
95+
9696
}
9797
}
9898
out.symbol(Symbol::RParen);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ where
2424
.extend(<TableMetadata<'_> as ToSqlTokens<'_, T::Dialect>>::to_tokens(&base_ast.table));
2525

2626
if !base_ast.conditions.is_empty() {
27-
tokens.whitespace();
27+
2828
for cond in &base_ast.conditions {
2929
tokens
3030
.extend(<ConditionClause<'_> as ToSqlTokens<'_, T::Dialect>>::to_tokens(cond));

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

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -63,26 +63,20 @@ where
6363
/// Helper function to emit a list of columns, separated by commas
6464
pub(crate) fn emit_columns<'a, D: SqlDialect>(
6565
columns: &Vec<ColumnRef<'a>>,
66-
tokens: &mut SqlTokens<'a>,
67-
ending_whitespace: bool,
66+
tokens: &mut SqlTokens<'a>
6867
) {
6968
if columns.is_empty() {
7069
tokens.symbol(Symbol::Asterisk);
71-
tokens.whitespace();
70+
7271
return;
7372
}
7473

7574
for (i, column) in columns.iter().enumerate() {
7675
if i > 0 {
7776
tokens.symbol(Comma);
78-
tokens.whitespace();
7977
}
8078
tokens.extend(<ColumnRef<'_> as ToSqlTokens<'_, D>>::to_tokens(column));
8179
}
82-
83-
if ending_whitespace {
84-
tokens.whitespace();
85-
}
8680
}
8781

8882
pub(crate) fn emit_placeholders<'a>(
@@ -93,7 +87,7 @@ pub(crate) fn emit_placeholders<'a>(
9387
for (i, _) in columns.iter().enumerate() {
9488
if i > 0 {
9589
tokens.symbol(Comma);
96-
tokens.whitespace();
90+
9791
}
9892
tokens.placeholder();
9993
}
@@ -210,14 +204,6 @@ mod tests {
210204
);
211205
}
212206

213-
fn get_emit_columns_expected_values<D: SqlDialect>(
214-
literals: &[&'static str],
215-
) -> Vec<SqlToken<'static>> {
216-
let mut tokens = get_columns_test_expr_values::<D>(literals);
217-
tokens.push(SqlToken::WhiteSpace);
218-
tokens
219-
}
220-
221207
fn get_columns_test_expr_values<D: SqlDialect>(
222208
literals: &[&'static str],
223209
) -> Vec<SqlToken<'static>> {
@@ -226,7 +212,6 @@ mod tests {
226212
for (idx, lit) in literals.iter().enumerate() {
227213
if idx > 0 {
228214
tokens.symbol(Comma);
229-
tokens.whitespace();
230215
}
231216
tokens.extend(<ColumnRef<'_> as ToSqlTokens<'_, D>>::to_tokens(
232217
&make_column(lit),
@@ -262,18 +247,18 @@ mod tests {
262247
fn emit_columns_with_empty_vec_emits_asterisk() {
263248
let columns = vec![];
264249
let mut tokens = SqlTokens::default();
265-
emit_columns::<StandardDialect>(&columns, &mut tokens, false);
250+
emit_columns::<StandardDialect>(&columns, &mut tokens);
266251
assert_eq!(
267252
tokens.inner(),
268-
vec![SqlToken::Symbol(Symbol::Asterisk), SqlToken::WhiteSpace]
253+
vec![SqlToken::Symbol(Symbol::Asterisk)]
269254
);
270255
}
271256

272257
#[test]
273258
fn emit_columns_with_one_column_quotes_only_column_name_and_emit_column_alias() {
274259
let columns = vec![make_qualified_column("user", "name", Some("username"))];
275260
let mut tokens = SqlTokens::default();
276-
emit_columns::<StandardDialect>(&columns, &mut tokens, false);
261+
emit_columns::<StandardDialect>(&columns, &mut tokens);
277262
assert_eq!(
278263
tokens.inner(),
279264
get_columns_test_expr_values::<StandardDialect>(&["user.name as username"])
@@ -288,7 +273,7 @@ mod tests {
288273
make_qualified_column("users", "email", None),
289274
];
290275
let mut tokens = SqlTokens::default();
291-
emit_columns::<StandardDialect>(&columns, &mut tokens, false);
276+
emit_columns::<StandardDialect>(&columns, &mut tokens);
292277

293278
assert_eq!(
294279
tokens.inner(),
@@ -309,7 +294,7 @@ mod tests {
309294
];
310295
let mut tokens = SqlTokens::default();
311296

312-
emit_columns::<MySql>(&columns, &mut tokens, false);
297+
emit_columns::<MySql>(&columns, &mut tokens);
313298

314299
assert_eq!(
315300
tokens.inner(),
@@ -323,7 +308,7 @@ mod tests {
323308
let columns = vec![make_column("id"), make_column("name")];
324309

325310
let mut tokens = SqlTokens::default();
326-
emit_columns::<MsSql>(&columns, &mut tokens, false);
311+
emit_columns::<MsSql>(&columns, &mut tokens);
327312

328313
assert_eq!(
329314
tokens.inner(),
@@ -338,7 +323,7 @@ mod tests {
338323
make_qualified_column("account", "name", None),
339324
];
340325
let mut tokens = SqlTokens::default();
341-
emit_columns::<StandardDialect>(&columns, &mut tokens, false);
326+
emit_columns::<StandardDialect>(&columns, &mut tokens);
342327

343328
let expected =
344329
get_columns_test_expr_values::<StandardDialect>(&["user.id", "account.name"]);
@@ -350,7 +335,6 @@ mod tests {
350335
vec![
351336
SqlToken::Placeholder,
352337
SqlToken::Symbol(Comma),
353-
SqlToken::WhiteSpace,
354338
SqlToken::Placeholder,
355339
]
356340
}
@@ -360,7 +344,6 @@ mod tests {
360344
v.extend(get_placeholders_test_expr_values());
361345
v.extend(vec![
362346
SqlToken::Symbol(Comma),
363-
SqlToken::WhiteSpace,
364347
SqlToken::Placeholder,
365348
]);
366349
v
@@ -381,10 +364,8 @@ mod tests {
381364
&vec![
382365
SqlToken::Placeholder,
383366
SqlToken::Symbol(Comma),
384-
SqlToken::WhiteSpace,
385367
SqlToken::Placeholder,
386368
SqlToken::Symbol(Comma),
387-
SqlToken::WhiteSpace,
388369
SqlToken::Placeholder,
389370
]
390371
);

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ where
3030

3131
tokens
3232
.extend(<TableMetadata<'_> as ToSqlTokens<'_, T::Dialect>>::to_tokens(&base_ast.table));
33-
tokens.whitespace();
33+
3434

3535
tokens.symbol(Symbol::LParen);
36-
helpers::emit_columns::<T::Dialect>(&ast.columns, &mut tokens, false);
36+
helpers::emit_columns::<T::Dialect>(&ast.columns, &mut tokens);
3737
tokens.symbol(Symbol::RParen);
38-
tokens.whitespace();
38+
3939

4040
tokens.keyword(Keyword::Values);
4141
tokens.symbol(Symbol::LParen);
4242
helpers::emit_placeholders(&ast.columns, base_ast, &mut tokens);
4343
tokens.symbol(Symbol::RParen);
44-
tokens.whitespace();
44+
4545

4646
__impl::emit_returning::<T>(ast, &mut tokens);
4747

@@ -72,7 +72,7 @@ pub(crate) mod __impl {
7272
}
7373
tokens.keyword(Keyword::Returning);
7474
// add the columns
75-
helpers::emit_columns::<E::Dialect>(&ast.returning_columns, tokens, false)
75+
helpers::emit_columns::<E::Dialect>(&ast.returning_columns, tokens)
7676
}
7777
}
7878

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,15 @@ mod __impl {
9191
use crate::query::querybuilder::syntax::tokens::{SqlTokens, ToSqlTokens};
9292

9393
pub(crate) fn emit_columns<'a, D: SqlDialect>(ast: &SelectAst<'a>, tokens: &mut SqlTokens<'a>) {
94-
helpers::emit_columns::<D>(&ast.columns, tokens, true);
94+
helpers::emit_columns::<D>(&ast.columns, tokens);
9595
}
9696

9797
pub(crate) fn emit_from<'a, D: SqlDialect>(base_ast: &BaseAst<'a>, tokens: &mut SqlTokens<'a>) {
9898
tokens.keyword(Keyword::From);
9999
tokens.extend(<TableMetadata<'a> as ToSqlTokens<'a, D>>::to_tokens(
100100
&base_ast.table,
101101
));
102-
tokens.whitespace();
102+
103103
}
104104

105105
pub(crate) fn emit_joins<'a, D: SqlDialect>(ast: &SelectAst<'a>, tokens: &mut SqlTokens<'a>) {
@@ -114,7 +114,7 @@ mod __impl {
114114
) {
115115
if let Some(group_by) = &ast.group_by {
116116
tokens.keyword(Keyword::GroupBy);
117-
helpers::emit_columns::<D>(group_by, tokens, true);
117+
helpers::emit_columns::<D>(group_by, tokens);
118118
}
119119
}
120120

@@ -140,15 +140,15 @@ mod __impl {
140140
if let Some(limit) = ast.limit {
141141
tokens.keyword(Keyword::Limit);
142142
tokens.numeric(limit);
143-
tokens.whitespace();
143+
144144
}
145145
}
146146

147147
pub(crate) fn emit_offset<'a>(ast: &SelectAst<'a>, tokens: &mut SqlTokens<'a>) {
148148
if let Some(offset) = ast.offset {
149149
tokens.keyword(Keyword::Offset);
150150
tokens.numeric(offset);
151-
tokens.whitespace();
151+
152152
}
153153
}
154154
}

0 commit comments

Comments
 (0)