summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Harsányi <alex-hhh@users.noreply.github.com>2024-11-09 08:22:23 +0800
committerGitHub <noreply@github.com>2024-11-09 08:22:23 +0800
commit2ed4c6a26b8f3d651ac6231eaafb2565d77c918b (patch)
tree36a816fbcbfaca59a4aa5f60e072ddb8960f0428
parentc3dd49ccd1f0655ed1699058c16a777ac1cb1419 (diff)
Consider "column" keyword in "if exists" checks (#109) (#110)externals/sql-indent
... to avoid indenting an "if" block in such cases
-rw-r--r--sql-indent-test.el7
-rw-r--r--sql-indent.el4
-rw-r--r--test-data/pr109-syn.eld5
-rw-r--r--test-data/pr109.sql3
4 files changed, 16 insertions, 3 deletions
diff --git a/sql-indent-test.el b/sql-indent-test.el
index c0ab6f4..707427a 100644
--- a/sql-indent-test.el
+++ b/sql-indent-test.el
@@ -1,6 +1,6 @@
;;; sql-indent-test.el --- Automated tests for sql-indent.el. -*- lexical-binding: t -*-
-;; Copyright (C) 2017 Free Software Foundation, Inc
+;; Copyright (C) 2017, 2024 Free Software Foundation, Inc
;; Author: Alex Harsanyi (AlexHarsanyi@gmail.com)
;; Created: 23 May 2017
@@ -513,4 +513,9 @@ information read from DATA-FILE (as generated by
"test-data/pr107.sql"
"test-data/pr107-syn.eld"))
+(ert-deftest sqlind-ert-pr109 ()
+ (sqlind-ert-check-file-syntax
+ "test-data/pr109.sql"
+ "test-data/pr109-syn.eld"))
+
;;; sql-indent-test.el ends here
diff --git a/sql-indent.el b/sql-indent.el
index 76d06fb..ae65766 100644
--- a/sql-indent.el
+++ b/sql-indent.el
@@ -1,6 +1,6 @@
;;; sql-indent.el --- Support for indenting code in SQL files. -*- lexical-binding: t -*-
-;; Copyright (C) 2015, 2017-2018 Free Software Foundation, Inc
+;; Copyright (C) 2015, 2017-2018, 2024 Free Software Foundation, Inc
;; Author: Alex Harsanyi <AlexHarsanyi@gmail.com>
;; Created: 27 Sep 2006
@@ -496,7 +496,7 @@ We try to avoid false positives, like \"end if\" or the various
(forward-word -1)
;; we don't want to match an "end if", and things like "drop index if
;; exists..." and "create index if not exist..."
- (not (looking-at "end\\|schema\\|table\\|view\\|index\\|constraint\\|type\\|trigger\\|procedure\\|function\\|routine\\|package\\|body\\|extension")))))
+ (not (looking-at "end\\|schema\\|table\\|column\\|view\\|index\\|constraint\\|type\\|trigger\\|procedure\\|function\\|routine\\|package\\|body\\|extension")))))
(defun sqlind-maybe-if-statement ()
"If (point) is on an IF statement, report its syntax."
diff --git a/test-data/pr109-syn.eld b/test-data/pr109-syn.eld
new file mode 100644
index 0000000..5ac8224
--- /dev/null
+++ b/test-data/pr109-syn.eld
@@ -0,0 +1,5 @@
+(((toplevel . 1))
+ ((toplevel . 1))
+ ((comment-start . 1)
+ (toplevel . 1))
+ ((toplevel . 1)))
diff --git a/test-data/pr109.sql b/test-data/pr109.sql
new file mode 100644
index 0000000..b80b20b
--- /dev/null
+++ b/test-data/pr109.sql
@@ -0,0 +1,3 @@
+alter table sometable drop column if exists col;
+
+-- this line should not be indented