happy-sql 2.0.6 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ChangeLog +16 -0
- package/lib/happy-sql.js +5 -1
- package/lib/parser/fixture/comment-fix.js +6 -1
- package/lib/parser/fixture/section-multi-fix.js +22 -4
- package/lib/parser/fixture/select-fix.js +6 -1
- package/lib/parser/fixture/with-named-fix.js +41 -9
- package/lib/parser/fixture/with-named-insert-fix.js +42 -9
- package/lib/parser/parser.js +5 -2
- package/lib/parser/visitors/clause/count/fixture/count-fix.js +8 -1
- package/lib/parser/visitors/clause/count/fixture/count-one-fix.js +8 -1
- package/lib/parser/visitors/clause/create-sequence/fixture/create-sequence-fix.js +3 -1
- package/lib/parser/visitors/clause/create-table/fixture/create-table-autoincrement-fix.js +10 -3
- package/lib/parser/visitors/clause/create-table/fixture/create-table-default-fix.js +9 -3
- package/lib/parser/visitors/clause/create-table/fixture/create-table-identity-always-fix.js +10 -3
- package/lib/parser/visitors/clause/create-table/fixture/create-table-identity-by-default-fix.js +10 -3
- package/lib/parser/visitors/clause/create-table/fixture/create-table-nextval-fix.js +16 -4
- package/lib/parser/visitors/clause/create-table/fixture/create-table-not-null-fix.js +9 -3
- package/lib/parser/visitors/clause/create-table/fixture/create-table-serial-fix.js +9 -3
- package/lib/parser/visitors/clause/delete/fixture/delete-fix.js +8 -1
- package/lib/parser/visitors/clause/from/fixture/from-fix.js +6 -1
- package/lib/parser/visitors/clause/from/fixture/from-where-fix.js +10 -1
- package/lib/parser/visitors/clause/from/fixture/join-fix.js +12 -1
- package/lib/parser/visitors/clause/from/fixture/join-multi-fix.js +19 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-in-fix.js +17 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-is-not-null-fix.js +14 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-is-null-fix.js +14 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-like-fix.js +15 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-not-eq-fix.js +12 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-number-fix.js +12 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-or-fix.js +12 -1
- package/lib/parser/visitors/clause/from/fixture/join-on-param-fix.js +12 -1
- package/lib/parser/visitors/clause/from/from.js +1 -26
- package/lib/parser/visitors/clause/insert/fixture/insert-fix.js +9 -1
- package/lib/parser/visitors/clause/insert/fixture/insert-identifier-fix.js +15 -1
- package/lib/parser/visitors/clause/insert/fixture/insert-multi-fix.js +9 -1
- package/lib/parser/visitors/clause/insert/fixture/insert-number-fix.js +16 -1
- package/lib/parser/visitors/clause/insert/fixture/insert-returning-conflict-fix.js +18 -1
- package/lib/parser/visitors/clause/insert/fixture/insert-returning-fix.js +12 -5
- package/lib/parser/visitors/clause/insert/fixture/insert-returning-id-fix.js +12 -5
- package/lib/parser/visitors/clause/insert/fixture/insert-string-fix.js +15 -1
- package/lib/parser/visitors/clause/on-conflict/fixture/on-conflict-fix.js +15 -1
- package/lib/parser/visitors/clause/on-conflict/fixture/on-conflict-nothing-fix.js +12 -1
- package/lib/parser/visitors/clause/select/fixture/select-alias-fix.js +7 -1
- package/lib/parser/visitors/clause/select/fixture/select-alias-param-fix.js +6 -1
- package/lib/parser/visitors/clause/select/fixture/select-fix.js +6 -1
- package/lib/parser/visitors/clause/select/fixture/select-last-insert-rowid-fix.js +6 -1
- package/lib/parser/visitors/clause/select/fixture/select-lastval-fix.js +6 -1
- package/lib/parser/visitors/clause/select/fixture/select-number-fix.js +9 -1
- package/lib/parser/visitors/clause/select/fixture/select-param-fix.js +7 -1
- package/lib/parser/visitors/clause/update/fixture/update-fix.js +9 -1
- package/lib/parser/visitors/clause/update/fixture/update-identifier-fix.js +9 -1
- package/lib/parser/visitors/clause/update/fixture/update-no-where-fix.js +6 -1
- package/lib/parser/visitors/clause/update/fixture/update-number-fix.js +9 -1
- package/lib/parser/visitors/clause/update/fixture/update-string-fix.js +9 -1
- package/lib/parser/visitors/clause/update/fixture/update-where-and-fix.js +11 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-and.sql +1 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-in-fix.js +16 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-in.sql +1 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-is-not-null-fix.js +13 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-is-not-null.sql +1 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-is-null-fix.js +13 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-is-null.sql +1 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-like-fix.js +14 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-like.sql +1 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-or-fix.js +11 -0
- package/lib/parser/visitors/clause/update/fixture/update-where-or.sql +1 -0
- package/lib/parser/visitors/clause/where/fixture/where-boolean-fix.js +11 -0
- package/lib/parser/visitors/clause/where/fixture/where-boolean.sql +1 -0
- package/lib/parser/visitors/clause/where/fixture/where-compare-fix.js +9 -1
- package/lib/parser/visitors/clause/where/fixture/where-fix.js +9 -1
- package/lib/parser/visitors/clause/where/fixture/where-gte-fix.js +9 -1
- package/lib/parser/visitors/clause/where/fixture/where-in-fix.js +14 -1
- package/lib/parser/visitors/clause/where/fixture/where-is-not-null-fix.js +11 -1
- package/lib/parser/visitors/clause/where/fixture/where-is-null-fix.js +11 -1
- package/lib/parser/visitors/clause/where/fixture/where-like-fix.js +12 -1
- package/lib/parser/visitors/clause/where/fixture/where-member-fix.js +11 -0
- package/lib/parser/visitors/clause/where/fixture/where-member.sql +1 -0
- package/lib/parser/visitors/clause/where/fixture/where-not-eq-fix.js +9 -1
- package/lib/parser/visitors/clause/where/fixture/where-null-fix.js +11 -0
- package/lib/parser/visitors/clause/where/fixture/where-null.sql +1 -0
- package/lib/parser/visitors/clause/where/fixture/where-number-fix.js +9 -1
- package/lib/parser/visitors/clause/where/fixture/where-or-fix.js +9 -1
- package/lib/printer/visitors/array-expression.js +4 -2
- package/lib/printer/visitors/call-expression/clauses/column/column.js +1 -1
- package/lib/printer/visitors/call-expression/clauses/create-table/create-table.js +7 -3
- package/lib/printer/visitors/call-expression/clauses/delete/delete.js +1 -1
- package/lib/printer/visitors/call-expression/clauses/from/from.js +1 -1
- package/lib/printer/visitors/call-expression/clauses/insert/insert.js +1 -1
- package/lib/printer/visitors/call-expression/clauses/into/into.js +1 -1
- package/lib/printer/visitors/call-expression/clauses/join/join.js +3 -2
- package/lib/printer/visitors/call-expression/clauses/select/select.js +1 -1
- package/lib/printer/visitors/call-expression/clauses/update/update.js +2 -2
- package/lib/printer/visitors/call-expression/clauses/with-named/with-named.js +23 -6
- package/package.json +1 -1
|
@@ -17,11 +17,12 @@ const printTable = (path, ctx) => {
|
|
|
17
17
|
export const join = (path, {write, traverse}) => {
|
|
18
18
|
const [table, onClause] = path.get('arguments');
|
|
19
19
|
|
|
20
|
-
write(
|
|
20
|
+
write.newline();
|
|
21
|
+
write('JOIN ');
|
|
21
22
|
printTable(table, {
|
|
22
23
|
write,
|
|
23
24
|
traverse,
|
|
24
25
|
});
|
|
25
|
-
write(
|
|
26
|
+
write.space();
|
|
26
27
|
traverse(onClause);
|
|
27
28
|
};
|
|
@@ -1,20 +1,37 @@
|
|
|
1
1
|
const isAssignment = (arg) => arg.node.type === 'AssignmentExpression';
|
|
2
2
|
|
|
3
|
-
export const withNamed = (path, {write, traverse}) => {
|
|
3
|
+
export const withNamed = (path, {write, indent, traverse}) => {
|
|
4
4
|
const args = path.get('arguments');
|
|
5
5
|
const namedQueries = args.filter(isAssignment);
|
|
6
6
|
const finalStatement = args.at(-1);
|
|
7
7
|
|
|
8
|
-
write('WITH
|
|
8
|
+
write('WITH');
|
|
9
|
+
write.newline();
|
|
9
10
|
const last = namedQueries.length - 1;
|
|
10
11
|
|
|
11
12
|
for (const [i, query] of namedQueries.entries()) {
|
|
12
|
-
|
|
13
|
+
indent.inc();
|
|
14
|
+
write.indent();
|
|
15
|
+
indent.dec();
|
|
13
16
|
write(query.get('left').node.name);
|
|
14
|
-
write(' AS (
|
|
17
|
+
write(' AS (');
|
|
18
|
+
write.newline();
|
|
19
|
+
indent.inc();
|
|
20
|
+
indent.inc();
|
|
21
|
+
write.indent();
|
|
15
22
|
traverse(query.get('right'));
|
|
16
|
-
|
|
17
|
-
|
|
23
|
+
indent.dec();
|
|
24
|
+
indent.dec();
|
|
25
|
+
write.newline();
|
|
26
|
+
indent.inc();
|
|
27
|
+
write.indent();
|
|
28
|
+
indent.dec();
|
|
29
|
+
write(')');
|
|
30
|
+
|
|
31
|
+
if (i < last)
|
|
32
|
+
write(',');
|
|
33
|
+
|
|
34
|
+
write.newline();
|
|
18
35
|
}
|
|
19
36
|
|
|
20
37
|
traverse(finalStatement);
|