Skip to content

Commit 996dcef

Browse files
committed
1 parent 69e4856 commit 996dcef

19 files changed

+289
-0
lines changed

sql-formatter-org/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

sql-formatter-org/Makefile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
AFTER:= $(patsubst before%.sql,after%.sql,$(wildcard before_*.sql))
2+
INTERIM:= $(patsubst before%.sql,interim%.sql,$(wildcard before_*.sql))
3+
4+
interim_%.sql: before_%.sql
5+
npx sql-formatter --config sql-formatter.json $< > $@
6+
7+
after_%.sql: interim_%.sql
8+
sed 's/\sdelimiter.*/\ndelimiter ;/g' $< > $@
9+
10+
clean:
11+
rm -f $(AFTER)
12+
rm -f $(INTERIM)
13+
14+
all: $(AFTER) $(INTERIM)
15+
16+
.PHONY: all clean
17+
18+
# ORIG npx sql-formatter -l mysql --config sql-formatter.json $< | sed 's/\sdelimiter.*/\ndelimiter ;/g' > $@

sql-formatter-org/README.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# sql-formatter-org issue 184, re ad-hoc support for delimiter support
2+
3+
+ [original report of failure](https://github.com/sql-formatter-org/sql-formatter/issues/184#issuecomment-1860370692)
4+
+ [source of before_00.sql snippet](https://github.com/sql-formatter-org/sql-formatter/issues/184#issuecomment-1877062290)
5+
6+
## My Goal
7+
8+
I use sql-formatter as part of my workflow to build stored procedures from
9+
one or more CTEs that may be used in one or more stored procedures (CTE re-use).
10+
Generally, I have the following practices, which narrows the scope of the solution
11+
I'm in search of:
12+
13+
+ each CTE is defined in its own file, so that it may be included in a stored procedure source file via gpp
14+
+ each stored procedure is defined in a single file
15+
+ each stored procedure includes an ``END`` statement
16+
+ each stored procedure file features a delimiter statement at the beginning of the file and a balancing delimiter statement at the end of the file:
17+
18+
```
19+
delimiter $$
20+
21+
drop procedure if exists procedure_name $$
22+
23+
create procedure procedure_name ()
24+
BEGIN
25+
26+
#include cte00.sql
27+
,
28+
#include ctr00.sql
29+
.
30+
.
31+
.
32+
END $$
33+
34+
delimiter ;
35+
```
36+
37+
## Filenames and Purposes
38+
39+
+ ``before`` series files capture originally authored input to be formatted
40+
+ ``interim`` series files capture sql-formatter output
41+
+ ``after`` series files capture my sed-manipulated sql-formatter output attempting to correct for delimiter usage
42+
43+
44+
## Observed to this point
45+
46+
+ output from sql-formatter combines lines that do not end with ``;``
47+
+ lines using delimiters _other than_ `;` will be combined with the next line of source
48+
+ the effect of combining lines by sql-formatter can be seen in the interim files
49+
50+
51+
## CONFIG Changes
52+
53+
had to remove these config entries after upgrading to sql-formatter v15.0.2
54+
55+
```
56+
"commaPosition": "after",
57+
"tabulateAlias": true,
58+
```
59+
60+
currently using only two config options to specify my selection of mysql for
61+
both the language and dialect options. Other than that, the default
62+
sql-formatter options are being used.

sql-formatter-org/after_00.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-- original reported complaint
2+
DROP Procedure IF EXISTS `Test`;
3+
4+
DELIMITER $$ CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
5+
Select
6+
1 $$ DELIMITER;

sql-formatter-org/after_01.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-- my approach with blank line between END and final
2+
delimiter ;
3+
delimiter $$
4+
DROP Procedure IF EXISTS `Test` $$ CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
5+
Select
6+
1;
7+
8+
END $$
9+
delimiter ;

sql-formatter-org/after_02.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
delimiter DLMTR184
2+
DROP Procedure IF EXISTS `Test` DLMTR184 CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
3+
Select
4+
1;
5+
6+
END DLMTR184
7+
delimiter ;

sql-formatter-org/after_03.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
DROP Procedure IF EXISTS `Test`;
2+
3+
CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
4+
Select
5+
1 $$

sql-formatter-org/before_00.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-- original reported complaint
2+
3+
DROP Procedure IF EXISTS `Test`;
4+
5+
DELIMITER $$
6+
CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test`()
7+
NO SQL
8+
Select 1$$
9+
DELIMITER ;

sql-formatter-org/before_01.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-- my approach with blank line between END and final delimiter at EOF
2+
delimiter $$
3+
4+
DROP Procedure IF EXISTS `Test`$$
5+
6+
CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test`()
7+
NO SQL
8+
Select 1;
9+
END $$
10+
delimiter ;

sql-formatter-org/before_02.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
delimiter DLMTR184
2+
3+
DROP Procedure IF EXISTS `Test` DLMTR184
4+
5+
CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test`()
6+
NO SQL
7+
Select 1;
8+
END DLMTR184
9+
delimiter ;

sql-formatter-org/before_03.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
DROP Procedure IF EXISTS `Test`;
2+
3+
CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test`()
4+
NO SQL
5+
Select 1$$

sql-formatter-org/interim_00.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-- original reported complaint
2+
DROP Procedure IF EXISTS `Test`;
3+
4+
DELIMITER $$ CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
5+
Select
6+
1 $$ DELIMITER;

sql-formatter-org/interim_01.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- my approach with blank line between END and final delimiter at EOF
2+
delimiter $$
3+
DROP Procedure IF EXISTS `Test` $$ CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
4+
Select
5+
1;
6+
7+
END $$ delimiter;

sql-formatter-org/interim_02.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
delimiter DLMTR184
2+
DROP Procedure IF EXISTS `Test` DLMTR184 CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
3+
Select
4+
1;
5+
6+
END DLMTR184 delimiter;

sql-formatter-org/interim_03.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
DROP Procedure IF EXISTS `Test`;
2+
3+
CREATE /* DEFINER=`zeugnis_nm_dev`@`localhost` */ PROCEDURE `Test` () NO SQL
4+
Select
5+
1 $$

sql-formatter-org/package-lock.json

Lines changed: 102 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sql-formatter-org/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"sql-formatter": "^15.0.2"
4+
}
5+
}

sql-formatter-org/sql-formatter.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"language": "mysql",
3+
"dialect": "mysql"
4+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"language": "mysql",
3+
"dialect": "mysql",
4+
"tabWidth": 2,
5+
"useTabs": false,
6+
"keywordCase": "upper",
7+
"indentStyle": "tabularLeft",
8+
"logicalOperatorNewline": "before",
9+
"expressionWidth": 80,
10+
"linesBetweenQueries": 0,
11+
"denseOperators": false,
12+
"newlineBeforeSemicolon":false
13+
}

0 commit comments

Comments
 (0)