emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/sql-indent 7af0298 3/3: Recognize "CREATE EXTENSION" st


From: Stefan Monnier
Subject: [elpa] externals/sql-indent 7af0298 3/3: Recognize "CREATE EXTENSION" statements (#97)
Date: Tue, 16 Mar 2021 09:45:06 -0400 (EDT)

branch: externals/sql-indent
commit 7af0298513616ddc6acf54a2b77bf5d0123c0102
Author: Alex Harsanyi <AlexHarsanyi@gmail.com>
Commit: Alex Harsanyi <AlexHarsanyi@gmail.com>

    Recognize "CREATE EXTENSION" statements (#97)
    
    Do not consider an "IF" keyword, which is part of a "CREATE EXTENSION"
    statement, to start a block.
    
    ... and also add tests for #95 (I forgot about those)
---
 sql-indent-test.el            | 13 ++++++++++++-
 sql-indent.el                 |  2 +-
 test-data/pr95-io-default.eld |  1 +
 test-data/pr95.sql            | 10 ++++++++++
 test-data/pr97-syn.eld        | 30 ++++++++++++++++++++++++++++++
 test-data/pr97.sql            | 15 +++++++++++++++
 6 files changed, 69 insertions(+), 2 deletions(-)

diff --git a/sql-indent-test.el b/sql-indent-test.el
index 8be6df8..57929d4 100644
--- a/sql-indent-test.el
+++ b/sql-indent-test.el
@@ -457,10 +457,21 @@ information read from DATA-FILE (as generated by
    "test-data/pr92b.sql"
    "test-data/pr92b-syn.eld"))
 
-(ert-deftest sqlind-ert-pr3 ()
+(ert-deftest sqlind-ert-pr93 ()
   (sqlind-ert-check-file-indentation
    "test-data/pr93.sql" "test-data/pr93-io-default.eld"
    (default-value 'sqlind-indentation-offsets-alist)
    (default-value 'sqlind-basic-offset)))
 
+(ert-deftest sqlind-ert-pr95 ()
+  (sqlind-ert-check-file-indentation
+   "test-data/pr95.sql" "test-data/pr95-io-default.eld"
+   (default-value 'sqlind-indentation-offsets-alist)
+   (default-value 'sqlind-basic-offset)))
+
+(ert-deftest sqlind-ert-pr97 ()
+  (sqlind-ert-check-file-syntax
+   "test-data/pr97.sql"
+   "test-data/pr97-syn.eld"))
+
 ;;; sql-indent-test.el ends here
diff --git a/sql-indent.el b/sql-indent.el
index b6ddc6a..44fbb37 100644
--- a/sql-indent.el
+++ b/sql-indent.el
@@ -497,7 +497,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\\|trigger\\|procedure\\|function\\|package\\|body")))))
+         (not (looking-at 
"end\\|schema\\|table\\|view\\|index\\|trigger\\|procedure\\|function\\|package\\|body\\|extension")))))
 
 (defun sqlind-maybe-if-statement ()
   "If (point) is on an IF statement, report its syntax."
diff --git a/test-data/pr95-io-default.eld b/test-data/pr95-io-default.eld
new file mode 100644
index 0000000..c7c0379
--- /dev/null
+++ b/test-data/pr95-io-default.eld
@@ -0,0 +1 @@
+(0 2 2 0 0 0 0 0 2 2 0)
diff --git a/test-data/pr95.sql b/test-data/pr95.sql
new file mode 100644
index 0000000..fa98be4
--- /dev/null
+++ b/test-data/pr95.sql
@@ -0,0 +1,10 @@
+CREATE TABLE IF NOT EXISTS vbox (
+  id bigint(10) unsigned NOT NULL AUTO_INCREMENT,
+  foo varchar(40) NOT NULL,
+
+
+
+
+
+  create_tm timestamp NOT NULL default CURRENT_TIMESTAMP,
+  PRIMARY KEY(id));
diff --git a/test-data/pr97-syn.eld b/test-data/pr97-syn.eld
new file mode 100644
index 0000000..82a6b08
--- /dev/null
+++ b/test-data/pr97-syn.eld
@@ -0,0 +1,30 @@
+(((comment-start . 1)
+  (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((comment-start . 1)
+  (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((comment-start . 129)
+  ((create-statement extension "")
+   . 129))
+ (((syntax-error "end statement closes nothing" 240 240)
+   . 129)
+  ((create-statement extension "")
+   . 129))
+ (((syntax-error "nested create statement" 160 160)
+   . 129))
+ ((comment-start . 129)
+  ((syntax-error "nested create statement" 160 160)
+   . 129))
+ (((syntax-error "nested create statement" 160 160)
+   . 129))
+ (((syntax-error "nested create statement" 160 160)
+   . 129))
+ ((comment-start . 1)
+  (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1)))
+ 
\ No newline at end of file
diff --git a/test-data/pr97.sql b/test-data/pr97.sql
new file mode 100644
index 0000000..93f2895
--- /dev/null
+++ b/test-data/pr97.sql
@@ -0,0 +1,15 @@
+-- -*- mode: sql; sql-product: postgres; -*-
+
+CREATE EXTENSION "uuid-ossp" WITH SCHEMA public;
+
+-- indentation is correct here
+
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public
+  -- invalid syntax, but this treated as a block
+END;
+
+-- indentation is correct here
+
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
+-- autoindents to this level
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]