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

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

[elpa] externals/sql-indent 53ee1f7: Syntax after a JOIN statement is no


From: Stefan Monnier
Subject: [elpa] externals/sql-indent 53ee1f7: Syntax after a JOIN statement is now 'select-table (#99)
Date: Wed, 19 May 2021 21:54:01 -0400 (EDT)

branch: externals/sql-indent
commit 53ee1f7a9940908bbd6d3d52541927ef1c5e625a
Author: Alex Harsányi <AlexHarsanyi@gmail.com>
Commit: Alex Harsányi <AlexHarsanyi@gmail.com>

    Syntax after a JOIN statement is now 'select-table (#99)
    
    Updated scanning to recognize a position just before or just after a JOIN
    statement as being a new table definition with a 'select-table syntax.
    
    This changes indentation around JOIN statements and existing tests had to
    change, but overall it will result in better control over the indentation
    rules.
    
    Also updated CI build to use GNU Emacs 27.1
---
 .github/workflows/main.yml      |   2 +-
 sql-indent-test.el              |   9 +
 sql-indent.el                   |  57 +++-
 sql-indent.org                  |   4 +-
 test-data/m-syn.eld             | 124 ++++----
 test-data/pr17-io-default.eld   |   2 +-
 test-data/pr17-io-left.eld      |   2 +-
 test-data/pr17-io-right.eld     |   2 +-
 test-data/pr17-syn.eld          |  22 +-
 test-data/pr60-syn.eld          |  16 +-
 test-data/pr64-syn.eld          | 120 ++++----
 test-data/pr67-syn.eld          | 660 ++++++++++++++++++++--------------------
 test-data/pr68-syn.eld          |  25 +-
 test-data/pr70-syn.eld          | 116 +++----
 test-data/pr73-syn.eld          | 100 +++---
 test-data/pr75-oracle-syn.eld   |  20 +-
 test-data/pr75-postgres-syn.eld |  46 +--
 test-data/pr85-syn.eld          |  96 +++---
 test-data/pr99-syn.eld          | 150 +++++++++
 test-data/pr99.sql              |  64 ++++
 20 files changed, 951 insertions(+), 686 deletions(-)

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 7424994..1b15c3b 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -10,7 +10,7 @@ jobs:
     strategy:
       matrix:
         emacs_version:
-          - 26.3
+          - 27.1
     steps:
     - uses: purcell/setup-emacs@master
       with:
diff --git a/sql-indent-test.el b/sql-indent-test.el
index 57929d4..266a8bd 100644
--- a/sql-indent-test.el
+++ b/sql-indent-test.el
@@ -252,6 +252,10 @@ information read from DATA-FILE (as generated by
     (select-column                 sqlind-indent-select-column
                                    sqlind-align-comma)
     (select-column-continuation    sqlind-indent-select-column)
+    (select-table                  sqlind-indent-select-table
+                                   sqlind-lineup-joins-to-anchor
+                                   sqlind-lineup-open-paren-to-anchor
+                                   sqlind-align-comma)
     (select-table-continuation     sqlind-indent-select-table
                                    sqlind-lineup-joins-to-anchor
                                    sqlind-lineup-open-paren-to-anchor
@@ -474,4 +478,9 @@ information read from DATA-FILE (as generated by
    "test-data/pr97.sql"
    "test-data/pr97-syn.eld"))
 
+(ert-deftest sqlind-ert-pr99 ()
+  (sqlind-ert-check-file-syntax
+   "test-data/pr99.sql"
+   "test-data/pr99-syn.eld"))
+
 ;;; sql-indent-test.el ends here
diff --git a/sql-indent.el b/sql-indent.el
index 44fbb37..c528f78 100644
--- a/sql-indent.el
+++ b/sql-indent.el
@@ -1135,7 +1135,9 @@ statement is found."
                 ;; condition
                 (goto-char pos)
                 (when (or (looking-at sqlind-join-condition-regexp)
-                          (progn (forward-word -1) (looking-at 
sqlind-select-join-regexp)))
+                          (progn (forward-word -1)
+                                  (and (sqlind-same-level-statement (point) 
pos)
+                                       (looking-at 
sqlind-select-join-regexp))))
                   ;; look for the join start, that will be the anchor
                    (let ((jstart (sqlind-find-join-start (point) start)))
                      (when jstart
@@ -1144,15 +1146,44 @@ statement is found."
               ;; if this line starts with a ',' or the previous line starts
               ;; with a ',', we have a new table
               (goto-char pos)
+               ;; NOTE: the combination of tests and movement operations in
+               ;; the when clause is not ideal...
               (when (or (looking-at ",")
+                         (looking-at sqlind-select-join-regexp)
+                         (looking-at "join\\b")
                         (progn
                            (sqlind-backward-syntactic-ws)
-                          (looking-at ",")))
+                           (or (looking-at ",")
+                               (progn
+                                 (forward-word -1)
+                                 (or (looking-at sqlind-select-join-regexp)
+                                     (looking-at "join\\b")
+                                     (looking-at "from\\b"))))))
                 (throw 'finished (cons 'select-table match-pos)))
 
-              ;; otherwise, we continue the table definition from the
-              ;; previous line.
-              (throw 'finished (cons 'select-table-continuation match-pos)))
+               (goto-char pos)
+               (let ((limit match-pos))
+                 (if (sqlind-search-backward (point) (regexp-opt (list "," 
"join") 'symbols) limit)
+                     (progn
+                       (goto-char (match-end 0))
+                       (sqlind-forward-syntactic-ws)
+                       (when (looking-at "lateral")
+                         (forward-word 1)
+                         (sqlind-forward-syntactic-ws))
+                      ;; otherwise, we continue the table definition from the
+                      ;; previous line.
+                      (throw 'finished
+                         ;; If, after following all these joins, we got back
+                         ;; to our line, we are in a select-table after all,
+                         ;; otherwise it is a table continuation.
+                         (if (eq (point) pos)
+                             (cons 'select-table match-pos)
+                           (cons 'select-table-continuation (point)))))
+                   (progn               ; this must be the first table in the 
FROM section
+                     (when (looking-at "from\\b")
+                       (forward-word)
+                       (sqlind-forward-syntactic-ws))
+                     (throw 'finished (cons 'select-table-continuation 
(point)))))))
 
              (t
               (throw 'finished
@@ -2373,7 +2404,7 @@ example:
 
 (defun sqlind-lineup-into-nested-statement (syntax _base-indentation)
   "Align the line to the first word inside a nested statement.
-Return the column of the first non-witespace char in a nested
+Return the column of the first non-whitespace char in a nested
 statement.  For example:
 
   (    a,
@@ -2384,9 +2415,17 @@ This function only makes sense in a
 'nested-statement-continuation SYTNAX indentation rule."
   (save-excursion
     (goto-char (sqlind-anchor-point syntax))
-    (forward-char 1)
-    (sqlind-forward-syntactic-ws)
-    (current-column)))
+    (end-of-line)
+    (let ((limit (point)))
+      (goto-char (sqlind-anchor-point syntax))
+      (forward-char 1)
+      (sqlind-forward-syntactic-ws)
+      (if (< (point) limit)
+          (current-column)
+        (progn
+          (goto-char (sqlind-anchor-point syntax))
+          (back-to-indentation)
+          (+ (current-column) sqlind-basic-offset))))))
 
 ;;;;; sqlind-indent-line
 
diff --git a/sql-indent.org b/sql-indent.org
index 049508e..b93d804 100644
--- a/sql-indent.org
+++ b/sql-indent.org
@@ -454,8 +454,8 @@ clause (select, from, where, etc) in which the current 
point is.
    defined and a new one is about to start.
 
  * ~select-table-continuation~ -- line is inside the from clause, inside a
-   table definition which starts on a previous line. Note that ANCHOR still
-   points to the start of the select statement itself.
+   table definition which starts on a previous line. ANCHOR still points to
+   the start of the table definition.
 
  * ~(in-select-clause CLAUSE)~ -- line is inside the select CLAUSE, which can
    be "where", "order by", "group by" or "having".  Note that CLAUSE can never
diff --git a/test-data/m-syn.eld b/test-data/m-syn.eld
index fc31b9c..5811578 100644
--- a/test-data/m-syn.eld
+++ b/test-data/m-syn.eld
@@ -43,73 +43,73 @@
   (statement-continuation . 1))
  ((select-clause . 80)
   (statement-continuation . 1))
- ((select-table-continuation . 411)
-  (statement-continuation . 1))
- ((select-table-continuation . 433)
-  (nested-statement-continuation . 423)
-  (statement-continuation . 423))
- ((select-column . 461)
-  (nested-statement-continuation . 459)
-  (statement-continuation . 459))
- ((select-column . 461)
-  (nested-statement-continuation . 459)
-  (statement-continuation . 459))
- ((select-column . 461)
-  (nested-statement-continuation . 459)
-  (statement-continuation . 459))
- ((select-column-continuation . 461)
-  (nested-statement-continuation . 459)
-  (statement-continuation . 459))
- ((nested-statement-continuation . 614)
-  (statement-continuation . 614))
- ((nested-statement-continuation . 614)
-  (statement-continuation . 614))
- ((nested-statement-continuation . 614)
-  (statement-continuation . 614))
- ((nested-statement-close . 614)
-  (statement-continuation . 614))
- ((select-clause . 461)
-  (nested-statement-continuation . 459)
-  (statement-continuation . 459))
- ((select-table-continuation . 795)
-  (nested-statement-continuation . 459)
-  (statement-continuation . 459))
- ((nested-statement-close . 459)
-  (statement-continuation . 459))
- ((select-clause . 424)
-  (nested-statement-continuation . 423)
-  (statement-continuation . 423))
+ ((select-table . 411)
+  (statement-continuation . 1))
+ ((select-table . 431)
+  (nested-statement-continuation . 421)
+  (statement-continuation . 421))
+ ((select-column . 455)
+  (nested-statement-continuation . 453)
+  (statement-continuation . 453))
+ ((select-column . 455)
+  (nested-statement-continuation . 453)
+  (statement-continuation . 453))
+ ((select-column . 455)
+  (nested-statement-continuation . 453)
+  (statement-continuation . 453))
+ ((select-column-continuation . 455)
+  (nested-statement-continuation . 453)
+  (statement-continuation . 453))
+ ((nested-statement-continuation . 592)
+  (statement-continuation . 592))
+ ((nested-statement-continuation . 592)
+  (statement-continuation . 592))
+ ((nested-statement-continuation . 592)
+  (statement-continuation . 592))
+ ((nested-statement-close . 592)
+  (statement-continuation . 592))
+ ((select-clause . 455)
+  (nested-statement-continuation . 453)
+  (statement-continuation . 453))
+ ((select-table . 753)
+  (nested-statement-continuation . 453)
+  (statement-continuation . 453))
+ ((nested-statement-close . 453)
+  (statement-continuation . 453))
+ ((select-clause . 422)
+  (nested-statement-continuation . 421)
+  (statement-continuation . 421))
  (((in-select-clause "where")
-   . 865)
-  (nested-statement-continuation . 423)
-  (statement-continuation . 423))
- ((nested-statement-close . 423)
-  (statement-continuation . 423))
- ((select-table-continuation . 411)
-  (statement-continuation . 1))
- ((select-table-continuation . 411)
-  (statement-continuation . 1))
- ((select-column . 928)
-  (nested-statement-continuation . 926)
-  (statement-continuation . 926))
- ((select-column . 928)
-  (nested-statement-continuation . 926)
-  (statement-continuation . 926))
- ((select-clause . 928)
-  (nested-statement-continuation . 926)
-  (statement-continuation . 926))
- ((select-table-continuation . 990)
-  (nested-statement-continuation . 926)
-  (statement-continuation . 926))
- ((nested-statement-close . 926)
-  (statement-continuation . 926))
- ((select-join-condition . 908)
+   . 811)
+  (nested-statement-continuation . 421)
+  (statement-continuation . 421))
+ ((nested-statement-close . 421)
+  (statement-continuation . 421))
+ ((select-table . 411)
+  (statement-continuation . 1))
+ ((select-table . 411)
+  (statement-continuation . 1))
+ ((select-column . 866)
+  (nested-statement-continuation . 864)
+  (statement-continuation . 864))
+ ((select-column . 866)
+  (nested-statement-continuation . 864)
+  (statement-continuation . 864))
+ ((select-clause . 866)
+  (nested-statement-continuation . 864)
+  (statement-continuation . 864))
+ ((select-table . 922)
+  (nested-statement-continuation . 864)
+  (statement-continuation . 864))
+ ((nested-statement-close . 864)
+  (statement-continuation . 864))
+ ((select-join-condition . 848)
   (statement-continuation . 1))
  ((select-clause . 80)
   (statement-continuation . 1))
  (((in-select-clause "group by")
-   . 1051)
+   . 975)
   (statement-continuation . 1))
  (((in-select-clause "group by")
-   . 1051)
+   . 975)
   (statement-continuation . 1)))
diff --git a/test-data/pr17-io-default.eld b/test-data/pr17-io-default.eld
index 86bc559..f474d25 100644
--- a/test-data/pr17-io-default.eld
+++ b/test-data/pr17-io-default.eld
@@ -1 +1 @@
-(0 0 0 0 0 0 0 0 9 9 9 7 9 2 1 8 3 0 0 7 7 7 7 7 7 2 9 1 3 3 3 3 3 3 24 31 23 
25 25 25 25 25 8 0 0 1 3 10 3 8 0 0 3 10 1 3 9 3 7 0 0 12 12 12 0 7 7 7 7 7 7 
24 7 24 7 2 31 31 51 51 26 10 10 29 24 14 1 10 1 10 10 0 0 0 0)
+(0 0 0 0 0 0 0 0 9 9 9 7 9 2 1 8 3 0 0 7 7 7 7 7 7 2 9 1 3 3 3 3 3 3 24 31 23 
25 25 25 25 25 8 0 0 1 3 10 3 8 0 0 3 10 1 3 9 3 7 0 0 12 12 12 0 7 7 7 7 7 7 
24 7 24 7 2 31 31 51 51 26 10 8 27 22 12 1 10 1 10 10 0 0 0 0)
diff --git a/test-data/pr17-io-left.eld b/test-data/pr17-io-left.eld
index e055a8e..ba4ff01 100644
--- a/test-data/pr17-io-left.eld
+++ b/test-data/pr17-io-left.eld
@@ -1 +1 @@
-(0 0 0 0 0 0 0 0 10 10 10 7 4 0 0 12 0 0 0 7 7 7 7 7 7 0 7 0 0 0 0 0 0 0 19 26 
19 19 19 19 19 19 0 0 0 0 0 7 0 0 0 0 0 7 0 0 6 0 0 0 0 2 3 3 0 7 7 7 7 7 7 24 
7 24 7 0 29 29 49 49 22 7 2 21 14 6 0 9 0 9 0 0 0 0 0)
+(0 0 0 0 0 0 0 0 10 10 10 7 4 0 0 12 0 0 0 7 7 7 7 7 7 0 7 0 0 0 0 0 0 0 19 26 
19 19 19 19 19 19 0 0 0 0 0 7 0 0 0 0 0 7 0 0 6 0 0 0 0 2 3 3 0 7 7 7 7 7 7 24 
7 24 7 0 29 29 49 49 22 7 6 25 18 10 0 9 0 9 0 0 0 0 0)
diff --git a/test-data/pr17-io-right.eld b/test-data/pr17-io-right.eld
index 9911834..67cc57b 100644
--- a/test-data/pr17-io-right.eld
+++ b/test-data/pr17-io-right.eld
@@ -1 +1 @@
-(0 0 0 0 0 0 0 0 10 10 10 7 4 2 1 13 3 0 0 7 7 7 7 7 7 2 9 1 3 3 3 3 3 3 24 31 
23 25 25 25 25 25 1 0 0 1 3 10 3 1 0 0 3 10 1 3 9 3 1 0 0 12 12 12 0 7 7 7 7 7 
7 24 7 24 7 2 31 31 51 51 26 10 10 29 24 14 1 10 1 10 1 0 0 0 0)
\ No newline at end of file
+(0 0 0 0 0 0 0 0 10 10 10 7 4 2 1 13 3 0 0 7 7 7 7 7 7 2 9 1 3 3 3 3 3 3 24 31 
23 25 25 25 25 25 1 0 0 1 3 10 3 1 0 0 3 10 1 3 9 3 1 0 0 12 12 12 0 7 7 7 7 7 
7 24 7 24 7 2 31 31 51 51 26 10 8 27 22 12 1 10 1 10 1 0 0 0 0)
\ No newline at end of file
diff --git a/test-data/pr17-syn.eld b/test-data/pr17-syn.eld
index 7406365..c620385 100644
--- a/test-data/pr17-syn.eld
+++ b/test-data/pr17-syn.eld
@@ -182,28 +182,28 @@
  ((select-clause . 2231)
   (nested-statement-continuation . 2230)
   (statement-continuation . 2230))
- ((select-table-continuation . 2224)
+ ((select-table . 2224)
   (statement-continuation . 1753))
- ((select-column . 2603)
-  (nested-statement-continuation . 2602)
-  (statement-continuation . 2602))
- ((select-clause . 2603)
-  (nested-statement-continuation . 2602)
-  (statement-continuation . 2602))
- ((select-join-condition . 2591)
+ ((select-column . 2601)
+  (nested-statement-continuation . 2600)
+  (statement-continuation . 2600))
+ ((select-clause . 2601)
+  (nested-statement-continuation . 2600)
+  (statement-continuation . 2600))
+ ((select-join-condition . 2589)
   (statement-continuation . 1753))
  ((select-clause . 1855)
   (statement-continuation . 1753))
  (((in-select-clause "group by")
-   . 2726)
+   . 2718)
   (statement-continuation . 1753))
  ((select-clause . 1855)
   (statement-continuation . 1753))
  (((in-select-clause "order by")
-   . 2755)
+   . 2747)
   (statement-continuation . 1753))
  (((in-select-clause "order by")
-   . 2755)
+   . 2747)
   (statement-continuation . 1753))
  ((comment-start . 33)
   (toplevel . 33))
diff --git a/test-data/pr60-syn.eld b/test-data/pr60-syn.eld
index 48b7290..a6c1586 100644
--- a/test-data/pr60-syn.eld
+++ b/test-data/pr60-syn.eld
@@ -15,22 +15,22 @@
  ((select-clause . 112)
   ((create-statement view "myview")
    . 1))
- ((select-table-continuation . 208)
+ ((select-table . 208)
   ((create-statement view "myview")
    . 1))
  ((toplevel . 1))
  ((toplevel . 1))
  (((create-statement table "foo")
-   . 282))
- ((select-column . 328)
+   . 280))
+ ((select-column . 326)
   ((create-statement table "foo")
-   . 282))
- ((select-clause . 328)
+   . 280))
+ ((select-clause . 326)
   ((create-statement table "foo")
-   . 282))
- ((select-table-continuation . 424)
+   . 280))
+ ((select-table . 422)
   ((create-statement table "foo")
-   . 282))
+   . 280))
  ((toplevel . 1))
  ((comment-start . 1)
   (toplevel . 1))
diff --git a/test-data/pr64-syn.eld b/test-data/pr64-syn.eld
index 9b77dc5..45a9cb3 100644
--- a/test-data/pr64-syn.eld
+++ b/test-data/pr64-syn.eld
@@ -1,93 +1,93 @@
 (((toplevel . 1))
  ((select-clause . 1)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 29)
+ ((select-join-condition . 27)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 70)
+ ((select-join-condition . 64)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 111)
+ ((select-join-condition . 101)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 151)
+ ((select-join-condition . 137)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 192)
+ ((select-join-condition . 174)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 233)
+ ((select-join-condition . 211)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 276)
+ ((select-join-condition . 250)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table-continuation . 255)
   (statement-continuation . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 314)
-  (statement-continuation . 314))
- ((select-table-continuation . 325)
-  (statement-continuation . 314))
- ((select-join-condition . 342)
-  (statement-continuation . 314))
+ ((select-clause . 291)
+  (statement-continuation . 291))
+ ((select-table . 302)
+  (statement-continuation . 291))
+ ((select-join-condition . 317)
+  (statement-continuation . 291))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 376)
-  (statement-continuation . 376))
- ((select-table-continuation . 387)
-  (statement-continuation . 376))
- ((select-join-condition . 404)
-  (statement-continuation . 376))
- ((select-table-continuation . 387)
-  (statement-continuation . 376))
+ ((select-clause . 349)
+  (statement-continuation . 349))
+ ((select-table . 360)
+  (statement-continuation . 349))
+ ((select-join-condition . 375)
+  (statement-continuation . 349))
+ ((select-table-continuation . 385)
+  (statement-continuation . 349))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 447)
-  (statement-continuation . 447))
- ((select-table-continuation . 458)
-  (statement-continuation . 447))
- ((select-join-condition . 475)
-  (statement-continuation . 447))
- ((select-table-continuation . 458)
-  (statement-continuation . 447))
+ ((select-clause . 426)
+  (statement-continuation . 426))
+ ((select-table . 437)
+  (statement-continuation . 426))
+ ((select-join-condition . 452)
+  (statement-continuation . 426))
+ ((select-table-continuation . 463)
+  (statement-continuation . 426))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 519)
-  (statement-continuation . 519))
- ((select-table-continuation . 530)
-  (statement-continuation . 519))
- ((select-join-condition . 547)
-  (statement-continuation . 519))
- ((select-table-continuation . 530)
-  (statement-continuation . 519))
+ ((select-clause . 505)
+  (statement-continuation . 505))
+ ((select-table . 516)
+  (statement-continuation . 505))
+ ((select-join-condition . 531)
+  (statement-continuation . 505))
+ ((select-table-continuation . 542)
+  (statement-continuation . 505))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 591)
-  (statement-continuation . 591))
- ((select-table-continuation . 602)
-  (statement-continuation . 591))
- ((select-join-condition . 619)
-  (statement-continuation . 591))
- ((select-table-continuation . 602)
-  (statement-continuation . 591))
+ ((select-clause . 584)
+  (statement-continuation . 584))
+ ((select-table . 595)
+  (statement-continuation . 584))
+ ((select-join-condition . 610)
+  (statement-continuation . 584))
+ ((select-table-continuation . 623)
+  (statement-continuation . 584))
  ((toplevel . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 666)
-  (statement-continuation . 666))
- ((select-table-continuation . 677)
-  (statement-continuation . 666))
+ ((select-clause . 668)
+  (statement-continuation . 668))
+ ((select-table . 679)
+  (statement-continuation . 668))
  ((select-join-condition . 694)
-  (statement-continuation . 666))
- ((select-table-continuation . 677)
-  (statement-continuation . 666))
+  (statement-continuation . 668))
+ ((select-table-continuation . 699)
+  (statement-continuation . 668))
  ((toplevel . 1)))
\ No newline at end of file
diff --git a/test-data/pr67-syn.eld b/test-data/pr67-syn.eld
index 26030d1..8738ba4 100644
--- a/test-data/pr67-syn.eld
+++ b/test-data/pr67-syn.eld
@@ -51,10 +51,10 @@
  ((select-clause . 568)
   (nested-statement-continuation . 567)
   (statement-continuation . 567))
- ((select-table-continuation . 602)
+ ((select-table . 602)
   (nested-statement-continuation . 567)
   (statement-continuation . 567))
- ((select-table-continuation . 602)
+ ((select-table . 602)
   (nested-statement-continuation . 567)
   (statement-continuation . 567))
  ((select-clause . 568)
@@ -69,32 +69,32 @@
   ((in-block elsif "")
    . 561))
  (((in-block else "")
-   . 798))
- ((statement-continuation . 813))
- ((select-clause . 836)
-  (statement-continuation . 813))
- ((select-table-continuation . 859)
-  (statement-continuation . 813))
- ((select-table-continuation . 859)
-  (statement-continuation . 813))
- ((select-table-continuation . 859)
-  (statement-continuation . 813))
- ((select-clause . 836)
-  (statement-continuation . 813))
+   . 794))
+ ((statement-continuation . 809))
+ ((select-clause . 832)
+  (statement-continuation . 809))
+ ((select-table . 855)
+  (statement-continuation . 809))
+ ((select-table . 855)
+  (statement-continuation . 809))
+ ((select-table . 855)
+  (statement-continuation . 809))
+ ((select-clause . 832)
+  (statement-continuation . 809))
  (((in-block loop "")
-   . 813))
- ((statement-continuation . 1039))
- ((statement-continuation . 1039))
- ((statement-continuation . 1039))
- ((statement-continuation . 1039))
+   . 809))
+ ((statement-continuation . 1029))
+ ((statement-continuation . 1029))
+ ((statement-continuation . 1029))
+ ((statement-continuation . 1029))
  (((block-end loop "")
-   . 813)
+   . 809)
   ((in-block loop "")
-   . 813))
+   . 809))
  (((block-end if "")
    . 179)
   ((in-block else "")
-   . 798))
+   . 794))
  (((block-end toplevel-block "")
    . 145)
   ((in-begin-block toplevel-block "")
@@ -102,437 +102,437 @@
  ((toplevel . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((declare-statement . 1309))
- ((declare-statement . 1309))
- ((declare-statement . 1309))
+ ((declare-statement . 1299))
+ ((declare-statement . 1299))
+ ((declare-statement . 1299))
  (((block-start begin)
-   . 1309)
-  (declare-statement . 1309))
+   . 1299)
+  (declare-statement . 1299))
  (((in-begin-block toplevel-block "")
-   . 1399))
+   . 1389))
  (((in-begin-block toplevel-block "")
-   . 1399))
+   . 1389))
  (((in-begin-block toplevel-block "")
-   . 1399))
+   . 1389))
  (((in-block if "")
-   . 1461))
+   . 1451))
  (((in-block if "")
-   . 1461))
+   . 1451))
  (((block-start elsif)
-   . 1461)
+   . 1451)
   ((in-block if "")
-   . 1461))
+   . 1451))
  (((in-block elsif "")
-   . 1542))
+   . 1532))
  (((in-block elsif "")
-   . 1542))
+   . 1532))
  (((block-start elsif)
-   . 1542)
+   . 1532)
   ((in-block elsif "")
-   . 1542))
- ((select-clause . 1636)
-  (nested-statement-continuation . 1635)
-  (statement-continuation . 1635))
- ((select-clause . 1636)
-  (nested-statement-continuation . 1635)
-  (statement-continuation . 1635))
+   . 1532))
+ ((select-clause . 1626)
+  (nested-statement-continuation . 1625)
+  (statement-continuation . 1625))
+ ((select-clause . 1626)
+  (nested-statement-continuation . 1625)
+  (statement-continuation . 1625))
  (((in-select-clause "where")
-   . 1699)
-  (nested-statement-continuation . 1635)
-  (statement-continuation . 1635))
+   . 1689)
+  (nested-statement-continuation . 1625)
+  (statement-continuation . 1625))
  (((in-block elsif "")
-   . 1629))
+   . 1619))
  (((in-block elsif "")
-   . 1629))
+   . 1619))
  (((block-start elsif)
-   . 1629)
+   . 1619)
   ((in-block elsif "")
-   . 1629))
- ((select-clause . 1819)
-  (nested-statement-continuation . 1818)
-  (statement-continuation . 1818))
- ((select-table-continuation . 1853)
-  (nested-statement-continuation . 1818)
-  (statement-continuation . 1818))
- ((select-table-continuation . 1853)
-  (nested-statement-continuation . 1818)
-  (statement-continuation . 1818))
- ((select-clause . 1819)
-  (nested-statement-continuation . 1818)
-  (statement-continuation . 1818))
+   . 1619))
+ ((select-clause . 1809)
+  (nested-statement-continuation . 1808)
+  (statement-continuation . 1808))
+ ((select-table . 1843)
+  (nested-statement-continuation . 1808)
+  (statement-continuation . 1808))
+ ((select-table . 1843)
+  (nested-statement-continuation . 1808)
+  (statement-continuation . 1808))
+ ((select-clause . 1809)
+  (nested-statement-continuation . 1808)
+  (statement-continuation . 1808))
  (((in-select-clause "where")
-   . 1969)
-  (nested-statement-continuation . 1818)
-  (statement-continuation . 1818))
+   . 1955)
+  (nested-statement-continuation . 1808)
+  (statement-continuation . 1808))
  (((in-block elsif "")
-   . 1812))
+   . 1802))
  (((in-block elsif "")
-   . 1812))
+   . 1802))
  (((block-start elsif)
-   . 1812)
+   . 1802)
   ((in-block elsif "")
-   . 1812))
- ((select-clause . 2089)
-  (nested-statement-continuation . 2088)
-  (statement-continuation . 2088))
- ((select-table-continuation . 2123)
-  (nested-statement-continuation . 2088)
-  (statement-continuation . 2088))
- ((select-table-continuation . 2123)
-  (nested-statement-continuation . 2088)
-  (statement-continuation . 2088))
- ((select-table-continuation . 2123)
-  (nested-statement-continuation . 2088)
-  (statement-continuation . 2088))
- ((select-clause . 2089)
-  (nested-statement-continuation . 2088)
-  (statement-continuation . 2088))
+   . 1802))
+ ((select-clause . 2075)
+  (nested-statement-continuation . 2074)
+  (statement-continuation . 2074))
+ ((select-table . 2109)
+  (nested-statement-continuation . 2074)
+  (statement-continuation . 2074))
+ ((select-table . 2109)
+  (nested-statement-continuation . 2074)
+  (statement-continuation . 2074))
+ ((select-table . 2109)
+  (nested-statement-continuation . 2074)
+  (statement-continuation . 2074))
+ ((select-clause . 2075)
+  (nested-statement-continuation . 2074)
+  (statement-continuation . 2074))
  (((in-select-clause "where")
-   . 2283)
-  (nested-statement-continuation . 2088)
-  (statement-continuation . 2088))
+   . 2263)
+  (nested-statement-continuation . 2074)
+  (statement-continuation . 2074))
  (((in-block elsif "")
-   . 2082))
+   . 2068))
  (((in-block elsif "")
-   . 2082))
+   . 2068))
  (((block-start else)
-   . 2082)
+   . 2068)
   ((in-block elsif "")
-   . 2082))
+   . 2068))
  (((in-block else "")
-   . 2397))
- ((select-clause . 2422)
-  (statement-continuation . 2412))
- ((select-table-continuation . 2453)
-  (statement-continuation . 2412))
- ((select-table-continuation . 2453)
-  (statement-continuation . 2412))
- ((select-table-continuation . 2453)
-  (statement-continuation . 2412))
- ((select-clause . 2422)
-  (statement-continuation . 2412))
+   . 2377))
+ ((select-clause . 2402)
+  (statement-continuation . 2392))
+ ((select-table . 2433)
+  (statement-continuation . 2392))
+ ((select-table . 2433)
+  (statement-continuation . 2392))
+ ((select-table . 2433)
+  (statement-continuation . 2392))
+ ((select-clause . 2402)
+  (statement-continuation . 2392))
  (((in-select-clause "where")
-   . 2633)
-  (statement-continuation . 2412))
+   . 2607)
+  (statement-continuation . 2392))
  (((in-block loop "")
-   . 2412))
- ((statement-continuation . 2702))
- ((statement-continuation . 2702))
- ((statement-continuation . 2702))
- ((statement-continuation . 2702))
+   . 2392))
+ ((statement-continuation . 2676))
+ ((statement-continuation . 2676))
+ ((statement-continuation . 2676))
+ ((statement-continuation . 2676))
  (((block-end loop "")
-   . 2412)
+   . 2392)
   ((in-block loop "")
-   . 2412))
+   . 2392))
  (((block-end if "")
-   . 1461)
+   . 1451)
   ((in-block else "")
-   . 2397))
+   . 2377))
  (((block-end toplevel-block "")
-   . 1399)
+   . 1389)
   ((in-begin-block toplevel-block "")
-   . 1399))
+   . 1389))
  ((toplevel . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((declare-statement . 2966))
- ((declare-statement . 2966))
+ ((declare-statement . 2940))
+ ((declare-statement . 2940))
  (((block-start begin)
-   . 2966)
-  (declare-statement . 2966))
+   . 2940)
+  (declare-statement . 2940))
  (((in-begin-block toplevel-block "")
-   . 3026))
+   . 3000))
  (((in-begin-block toplevel-block "")
-   . 3026))
+   . 3000))
  (((in-block if "")
-   . 3061))
+   . 3035))
  (((in-block if "")
-   . 3061))
+   . 3035))
  (((block-start elsif)
-   . 3061)
+   . 3035)
   ((in-block if "")
-   . 3061))
- ((select-clause . 3150)
-  (nested-statement-continuation . 3149)
-  (statement-continuation . 3149))
+   . 3035))
+ ((select-clause . 3124)
+  (nested-statement-continuation . 3123)
+  (statement-continuation . 3123))
  (((in-block elsif "")
-   . 3143))
+   . 3117))
  (((in-block elsif "")
-   . 3143))
+   . 3117))
  (((block-start elsif)
-   . 3143)
+   . 3117)
   ((in-block elsif "")
-   . 3143))
- ((select-clause . 3283)
-  (nested-statement-continuation . 3282)
-  (statement-continuation . 3282))
- ((select-table-continuation . 3317)
-  (nested-statement-continuation . 3282)
-  (statement-continuation . 3282))
- ((select-clause . 3283)
-  (nested-statement-continuation . 3282)
-  (statement-continuation . 3282))
- (((in-block elsif "")
-   . 3276))
- (((in-block elsif "")
-   . 3276))
+   . 3117))
+ ((select-clause . 3257)
+  (nested-statement-continuation . 3256)
+  (statement-continuation . 3256))
+ ((select-table . 3291)
+  (nested-statement-continuation . 3256)
+  (statement-continuation . 3256))
+ ((select-clause . 3257)
+  (nested-statement-continuation . 3256)
+  (statement-continuation . 3256))
+ (((in-block elsif "")
+   . 3250))
+ (((in-block elsif "")
+   . 3250))
  (((block-start else)
-   . 3276)
+   . 3250)
   ((in-block elsif "")
-   . 3276))
+   . 3250))
  (((in-block else "")
-   . 3470))
- ((select-clause . 3495)
-  (statement-continuation . 3485))
- ((select-table-continuation . 3526)
-  (statement-continuation . 3485))
- ((select-table-continuation . 3526)
-  (statement-continuation . 3485))
- ((select-table-continuation . 3526)
-  (statement-continuation . 3485))
- ((select-clause . 3495)
-  (statement-continuation . 3485))
+   . 3442))
+ ((select-clause . 3467)
+  (statement-continuation . 3457))
+ ((select-table . 3498)
+  (statement-continuation . 3457))
+ ((select-table . 3498)
+  (statement-continuation . 3457))
+ ((select-table . 3498)
+  (statement-continuation . 3457))
+ ((select-clause . 3467)
+  (statement-continuation . 3457))
  (((in-block loop "")
-   . 3485))
- ((statement-continuation . 3737))
- ((statement-continuation . 3737))
- ((statement-continuation . 3737))
- ((statement-continuation . 3737))
+   . 3457))
+ ((statement-continuation . 3703))
+ ((statement-continuation . 3703))
+ ((statement-continuation . 3703))
+ ((statement-continuation . 3703))
  (((block-end loop "")
-   . 3485)
+   . 3457)
   ((in-block loop "")
-   . 3485))
+   . 3457))
  (((block-end if "")
-   . 3061)
+   . 3035)
   ((in-block else "")
-   . 3470))
+   . 3442))
  (((block-end toplevel-block "")
-   . 3026)
+   . 3000)
   ((in-begin-block toplevel-block "")
-   . 3026))
+   . 3000))
  ((toplevel . 1))
  ((toplevel . 1))
- ((declare-statement . 4000))
- ((declare-statement . 4000))
+ ((declare-statement . 3966))
+ ((declare-statement . 3966))
  (((block-start begin)
-   . 4000)
-  (declare-statement . 4000))
+   . 3966)
+  (declare-statement . 3966))
  (((in-begin-block toplevel-block "")
-   . 4060))
+   . 4026))
  (((in-begin-block toplevel-block "")
-   . 4060))
+   . 4026))
  (((in-block if "")
-   . 4102))
+   . 4068))
  (((in-block if "")
-   . 4102))
+   . 4068))
  (((block-start elsif)
-   . 4102)
+   . 4068)
   ((in-block if "")
-   . 4102))
- ((select-clause . 4191)
-  (nested-statement-continuation . 4190)
-  (statement-continuation . 4190))
+   . 4068))
+ ((select-clause . 4157)
+  (nested-statement-continuation . 4156)
+  (statement-continuation . 4156))
  (((in-block elsif "")
-   . 4184))
+   . 4150))
  (((in-block elsif "")
-   . 4184))
+   . 4150))
  (((block-start elsif)
-   . 4184)
+   . 4150)
   ((in-block elsif "")
-   . 4184))
- ((select-clause . 4324)
-  (nested-statement-continuation . 4323)
-  (statement-continuation . 4323))
- ((select-table-continuation . 4358)
-  (nested-statement-continuation . 4323)
-  (statement-continuation . 4323))
- ((select-clause . 4324)
-  (nested-statement-continuation . 4323)
-  (statement-continuation . 4323))
- (((in-block elsif "")
-   . 4317))
- (((in-block elsif "")
-   . 4317))
+   . 4150))
+ ((select-clause . 4290)
+  (nested-statement-continuation . 4289)
+  (statement-continuation . 4289))
+ ((select-table . 4324)
+  (nested-statement-continuation . 4289)
+  (statement-continuation . 4289))
+ ((select-clause . 4290)
+  (nested-statement-continuation . 4289)
+  (statement-continuation . 4289))
+ (((in-block elsif "")
+   . 4283))
+ (((in-block elsif "")
+   . 4283))
  (((block-start else)
-   . 4317)
+   . 4283)
   ((in-block elsif "")
-   . 4317))
+   . 4283))
  (((in-block else "")
-   . 4511))
- ((select-clause . 4536)
-  (statement-continuation . 4526))
- ((select-table-continuation . 4567)
-  (statement-continuation . 4526))
- ((select-table-continuation . 4567)
-  (statement-continuation . 4526))
- ((select-table-continuation . 4567)
-  (statement-continuation . 4526))
- ((select-clause . 4536)
-  (statement-continuation . 4526))
+   . 4475))
+ ((select-clause . 4500)
+  (statement-continuation . 4490))
+ ((select-table . 4531)
+  (statement-continuation . 4490))
+ ((select-table . 4531)
+  (statement-continuation . 4490))
+ ((select-table . 4531)
+  (statement-continuation . 4490))
+ ((select-clause . 4500)
+  (statement-continuation . 4490))
  (((in-block loop "")
-   . 4526))
- ((statement-continuation . 4778))
- ((statement-continuation . 4778))
- ((statement-continuation . 4778))
- ((statement-continuation . 4778))
+   . 4490))
+ ((statement-continuation . 4736))
+ ((statement-continuation . 4736))
+ ((statement-continuation . 4736))
+ ((statement-continuation . 4736))
  (((block-end loop "")
-   . 4526)
+   . 4490)
   ((in-block loop "")
-   . 4526))
+   . 4490))
  (((block-end if "")
-   . 4102)
+   . 4068)
   ((in-block else "")
-   . 4511))
+   . 4475))
  (((block-end toplevel-block "")
-   . 4060)
+   . 4026)
   ((in-begin-block toplevel-block "")
-   . 4060))
+   . 4026))
  (((block-end toplevel nil)
-   . 3994)
+   . 3960)
   ((in-begin-block toplevel nil)
-   . 3994))
+   . 3960))
  ((toplevel . 1))
  ((toplevel . 1))
- ((declare-statement . 5041))
- ((declare-statement . 5041))
- ((declare-statement . 5041))
+ ((declare-statement . 4999))
+ ((declare-statement . 4999))
+ ((declare-statement . 4999))
  (((block-start begin)
-   . 5041)
-  (declare-statement . 5041))
+   . 4999)
+  (declare-statement . 4999))
  (((in-begin-block toplevel-block "")
-   . 5133))
+   . 5091))
  (((in-begin-block toplevel-block "")
-   . 5133))
+   . 5091))
  (((in-begin-block toplevel-block "")
-   . 5133))
+   . 5091))
  (((in-block if "")
-   . 5192))
+   . 5150))
  (((in-block if "")
-   . 5192))
+   . 5150))
  (((block-start elsif)
-   . 5192)
+   . 5150)
   ((in-block if "")
-   . 5192))
+   . 5150))
  (((in-block elsif "")
-   . 5274))
+   . 5232))
  (((in-block elsif "")
-   . 5274))
+   . 5232))
  (((block-start elsif)
-   . 5274)
+   . 5232)
   ((in-block elsif "")
-   . 5274))
- ((select-clause . 5369)
-  (nested-statement-continuation . 5368)
-  (statement-continuation . 5368))
+   . 5232))
+ ((select-clause . 5327)
+  (nested-statement-continuation . 5326)
+  (statement-continuation . 5326))
  (((in-select-clause "where")
-   . 5415)
-  (nested-statement-continuation . 5368)
-  (statement-continuation . 5368))
+   . 5373)
+  (nested-statement-continuation . 5326)
+  (statement-continuation . 5326))
  (((in-block elsif "")
-   . 5362))
+   . 5320))
  (((in-block elsif "")
-   . 5362))
+   . 5320))
  (((block-start else)
-   . 5362)
+   . 5320)
   ((in-block elsif "")
-   . 5362))
+   . 5320))
  (((in-block else "")
-   . 5531))
- ((select-clause . 5556)
-  (statement-continuation . 5546))
+   . 5489))
+ ((select-clause . 5514)
+  (statement-continuation . 5504))
  (((in-select-clause "where")
-   . 5598)
-  (statement-continuation . 5546))
+   . 5556)
+  (statement-continuation . 5504))
  (((in-block loop "")
-   . 5546))
- ((statement-continuation . 5669))
- ((statement-continuation . 5669))
+   . 5504))
+ ((statement-continuation . 5627))
+ ((statement-continuation . 5627))
  (((block-end loop "")
-   . 5546)
+   . 5504)
   ((in-block loop "")
-   . 5546))
+   . 5504))
  (((block-end if "")
-   . 5192)
+   . 5150)
   ((in-block else "")
-   . 5531))
+   . 5489))
  (((block-end toplevel-block "")
-   . 5133)
+   . 5091)
   ((in-begin-block toplevel-block "")
-   . 5133))
+   . 5091))
  (((block-end toplevel nil)
-   . 5035)
+   . 4993)
   ((in-begin-block toplevel nil)
-   . 5035))
+   . 4993))
  ((toplevel . 1))
  (((block-start begin)
    . 1)
   (toplevel . 1))
  ((toplevel . 1))
- ((declare-statement . 5847))
- ((declare-statement . 5847))
- ((declare-statement . 5847))
- ((declare-statement . 5847))
+ ((declare-statement . 5805))
+ ((declare-statement . 5805))
+ ((declare-statement . 5805))
+ ((declare-statement . 5805))
  (((block-start begin)
-   . 5847)
-  (declare-statement . 5847))
+   . 5805)
+  (declare-statement . 5805))
  (((in-begin-block toplevel-block "")
-   . 5975))
+   . 5933))
  (((in-begin-block toplevel-block "")
-   . 5975))
+   . 5933))
  (((in-begin-block toplevel-block "")
-   . 5975))
+   . 5933))
  (((in-begin-block toplevel-block "")
-   . 5975))
+   . 5933))
  (((in-begin-block toplevel-block "")
-   . 5975))
+   . 5933))
  (((in-block if "")
-   . 6114))
+   . 6072))
  (((in-block if "")
-   . 6114))
+   . 6072))
  (((block-start elsif)
-   . 6114)
+   . 6072)
   ((in-block if "")
-   . 6114))
+   . 6072))
  (((in-block elsif "")
-   . 6196))
+   . 6154))
  (((in-block elsif "")
-   . 6196))
+   . 6154))
  (((block-start elsif)
-   . 6196)
+   . 6154)
   ((in-block elsif "")
-   . 6196))
+   . 6154))
  (((in-block elsif "")
-   . 6284))
+   . 6242))
  (((in-block elsif "")
-   . 6284))
+   . 6242))
  (((block-start else)
-   . 6284)
+   . 6242)
   ((in-block elsif "")
-   . 6284))
+   . 6242))
  (((in-block else "")
-   . 6369))
- ((nested-statement-continuation . 6410)
-  (statement-continuation . 6410))
- ((nested-statement-continuation . 6410)
-  (statement-continuation . 6410))
- ((nested-statement-continuation . 6410)
-  (statement-continuation . 6410))
- ((nested-statement-continuation . 6410)
-  (statement-continuation . 6410))
+   . 6327))
+ ((nested-statement-continuation . 6368)
+  (statement-continuation . 6368))
+ ((nested-statement-continuation . 6368)
+  (statement-continuation . 6368))
+ ((nested-statement-continuation . 6368)
+  (statement-continuation . 6368))
+ ((nested-statement-continuation . 6368)
+  (statement-continuation . 6368))
  (((in-block else "")
-   . 6369))
+   . 6327))
  (((block-end if "")
-   . 6114)
+   . 6072)
   ((in-block else "")
-   . 6369))
+   . 6327))
  (((block-end toplevel-block "")
-   . 5975)
+   . 5933)
   ((in-begin-block toplevel-block "")
-   . 5975))
+   . 5933))
  (((block-end toplevel nil)
-   . 5841)
+   . 5799)
   ((in-begin-block toplevel nil)
-   . 5841))
+   . 5799))
  ((toplevel . 1))
  ((toplevel . 1))
  (((block-start begin)
@@ -540,49 +540,49 @@
   (toplevel . 1))
  ((toplevel . 1))
  (((in-begin-block toplevel nil)
-   . 6762))
- ((declare-statement . 6770))
+   . 6720))
+ ((declare-statement . 6728))
  (((block-start begin)
-   . 6770)
-  (declare-statement . 6770))
+   . 6728)
+  (declare-statement . 6728))
  (((in-begin-block toplevel-block "")
-   . 6804))
+   . 6762))
  (((in-begin-block toplevel-block "")
-   . 6804))
+   . 6762))
  (((in-block if "")
-   . 6834))
+   . 6792))
  (((in-block if "")
-   . 6834))
+   . 6792))
  (((block-start elsif)
-   . 6834)
+   . 6792)
   ((in-block if "")
-   . 6834))
+   . 6792))
  (((in-block elsif "")
-   . 6941))
+   . 6899))
  (((in-block elsif "")
-   . 6941))
+   . 6899))
  (((in-block elsif "")
-   . 6941))
+   . 6899))
  (((block-start else)
-   . 6941)
+   . 6899)
   ((in-block elsif "")
-   . 6941))
+   . 6899))
  (((in-block else "")
-   . 7055))
+   . 7013))
  (((in-block else "")
-   . 7055))
+   . 7013))
  (((block-end if "")
-   . 6834)
+   . 6792)
   ((in-block else "")
-   . 7055))
+   . 7013))
  (((block-end toplevel-block "")
-   . 6804)
+   . 6762)
   ((in-begin-block toplevel-block "")
-   . 6804))
+   . 6762))
  (((block-end toplevel nil)
-   . 6762)
+   . 6720)
   ((in-begin-block toplevel nil)
-   . 6762))
+   . 6720))
  ((toplevel . 1))
  ((toplevel . 1)))
  
diff --git a/test-data/pr68-syn.eld b/test-data/pr68-syn.eld
index 5167ac3..dacd6d8 100644
--- a/test-data/pr68-syn.eld
+++ b/test-data/pr68-syn.eld
@@ -1,18 +1,19 @@
 (((toplevel . 1))
  ((select-clause . 1)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((nested-statement-open . 34)
-  (statement-continuation . 34))
- ((nested-statement-continuation . 34)
-  (statement-continuation . 34))
- ((select-join-condition . 61)
-  (nested-statement-continuation . 34)
-  (statement-continuation . 34))
- ((nested-statement-close . 34)
-  (statement-continuation . 34))
- ((select-join-condition . 29)
+ ((nested-statement-open . 32)
+  (statement-continuation . 32))
+ ((nested-statement-continuation . 32)
+  (statement-continuation . 32))
+ ((select-join-condition . 55)
+  (nested-statement-continuation . 32)
+  (statement-continuation . 32))
+ ((nested-statement-close . 32)
+  (statement-continuation . 32))
+ ((select-join-condition . 27)
   (statement-continuation . 1))
  ((toplevel . 1))
- ((toplevel . 1)))
\ No newline at end of file
+ ((toplevel . 1)))
+ 
\ No newline at end of file
diff --git a/test-data/pr70-syn.eld b/test-data/pr70-syn.eld
index 8b0612f..4c9ec1c 100644
--- a/test-data/pr70-syn.eld
+++ b/test-data/pr70-syn.eld
@@ -3,76 +3,78 @@
   (statement-continuation . 1))
  ((select-clause . 1)
   (statement-continuation . 1))
- ((select-table-continuation . 14)
+ ((select-table . 14)
   (statement-continuation . 1))
- ((select-table-continuation . 14)
+ ((select-table . 14)
   (statement-continuation . 1))
- ((select-join-condition . 34)
+ ((select-join-condition . 30)
   (statement-continuation . 1))
- ((select-join-condition . 34)
+ ((select-join-condition . 30)
   (statement-continuation . 1))
  ((comment-start . 1)
   (statement-continuation . 1))
- ((select-table-continuation . 14)
+ ((select-table . 14)
   (statement-continuation . 1))
- ((nested-statement-open . 132)
-  (statement-continuation . 132))
- ((nested-statement-continuation . 132)
-  (statement-continuation . 132))
- ((select-join-condition . 153)
-  (nested-statement-continuation . 132)
-  (statement-continuation . 132))
- ((select-join-condition . 153)
-  (nested-statement-continuation . 132)
-  (statement-continuation . 132))
- ((nested-statement-close . 132)
-  (statement-continuation . 132))
- ((select-join-condition . 127)
+ ((nested-statement-open . 122)
+  (statement-continuation . 122))
+ ((nested-statement-continuation . 122)
+  (statement-continuation . 122))
+ ((select-join-condition . 139)
+  (nested-statement-continuation . 122)
+  (statement-continuation . 122))
+ ((select-join-condition . 139)
+  (nested-statement-continuation . 122)
+  (statement-continuation . 122))
+ ((nested-statement-close . 122)
+  (statement-continuation . 122))
+ ((select-join-condition . 117)
   (statement-continuation . 1))
- ((select-join-condition . 127)
+ ((select-join-condition . 117)
   (statement-continuation . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-column . 389)
-  (statement-continuation . 389))
- ((select-clause . 389)
-  (statement-continuation . 389))
- ((select-table-continuation . 402)
-  (statement-continuation . 389))
- ((select-table-continuation . 402)
-  (statement-continuation . 389))
- ((select-join-condition . 422)
-  (statement-continuation . 389))
- ((nested-statement-continuation . 443)
-  (statement-continuation . 443))
- ((comment-start . 389)
-  (statement-continuation . 389))
- ((select-table-continuation . 402)
-  (statement-continuation . 389))
- ((nested-statement-open . 606)
-  (statement-continuation . 606))
- ((nested-statement-continuation . 606)
-  (statement-continuation . 606))
- ((select-join-condition . 627)
-  (nested-statement-continuation . 606)
-  (statement-continuation . 606))
- ((nested-statement-continuation . 655)
-  (statement-continuation . 655))
- ((nested-statement-close . 606)
-  (statement-continuation . 606))
- ((select-join-condition . 601)
-  (statement-continuation . 389))
- ((nested-statement-continuation . 771)
-  (statement-continuation . 771))
+ ((select-column . 365)
+  (statement-continuation . 365))
+ ((select-clause . 365)
+  (statement-continuation . 365))
+ ((select-table . 378)
+  (statement-continuation . 365))
+ ((select-table . 378)
+  (statement-continuation . 365))
+ ((select-join-condition . 394)
+  (statement-continuation . 365))
+ ((nested-statement-continuation . 413)
+  (statement-continuation . 413))
+ ((comment-start . 365)
+  (statement-continuation . 365))
+ ((select-table . 378)
+  (statement-continuation . 365))
+ ((nested-statement-open . 570)
+  (statement-continuation . 570))
+ ((nested-statement-continuation . 570)
+  (statement-continuation . 570))
+ ((select-join-condition . 587)
+  (nested-statement-continuation . 570)
+  (statement-continuation . 570))
+ ((nested-statement-continuation . 613)
+  (statement-continuation . 613))
+ ((nested-statement-close . 570)
+  (statement-continuation . 570))
+ ((select-join-condition . 565)
+  (statement-continuation . 365))
+ ((nested-statement-continuation . 723)
+  (statement-continuation . 723))
  ((toplevel . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((nested-statement-continuation . 874)
-  (statement-continuation . 874))
- ((select-join-condition . 885)
-  (nested-statement-continuation . 874)
-  (statement-continuation . 874))
- ((select-clause . 867)
-  (statement-continuation . 867))
+ ((nested-statement-continuation . 824)
+  (statement-continuation . 824))
+ ((select-join-condition . 835)
+  (nested-statement-continuation . 824)
+  (statement-continuation . 824))
+ ((select-clause . 817)
+  (statement-continuation . 817))
  ((toplevel . 1)))
+ 
+
  
\ No newline at end of file
diff --git a/test-data/pr73-syn.eld b/test-data/pr73-syn.eld
index 330bff7..75419b7 100644
--- a/test-data/pr73-syn.eld
+++ b/test-data/pr73-syn.eld
@@ -1,58 +1,58 @@
 (((toplevel . 1))
  ((select-clause . 1)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 30)
+ ((select-join-condition . 28)
   (statement-continuation . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 76)
-  (statement-continuation . 76))
- ((select-clause . 76)
-  (statement-continuation . 76))
- ((select-clause . 76)
-  (statement-continuation . 76))
- ((select-clause . 76)
-  (statement-continuation . 76))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 127)
-  (statement-continuation . 127))
- ((select-clause . 127)
-  (statement-continuation . 127))
- ((select-clause . 127)
-  (statement-continuation . 127))
- ((select-clause . 127)
-  (statement-continuation . 127))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 178)
-  (statement-continuation . 178))
- ((select-clause . 178)
-  (statement-continuation . 178))
- ((select-clause . 178)
-  (statement-continuation . 178))
- ((select-clause . 178)
-  (statement-continuation . 178))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 233)
-  (statement-continuation . 233))
- ((select-clause . 233)
-  (statement-continuation . 233))
- ((select-clause . 233)
-  (statement-continuation . 233))
- ((select-clause . 233)
-  (statement-continuation . 233))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 284)
-  (statement-continuation . 284))
- ((select-clause . 284)
-  (statement-continuation . 284))
- ((select-clause . 284)
-  (statement-continuation . 284))
- ((select-clause . 284)
-  (statement-continuation . 284))
+ ((select-clause . 72)
+  (statement-continuation . 72))
+ ((select-clause . 72)
+  (statement-continuation . 72))
+ ((select-clause . 72)
+  (statement-continuation . 72))
+ ((select-clause . 72)
+  (statement-continuation . 72))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 123)
+  (statement-continuation . 123))
+ ((select-clause . 123)
+  (statement-continuation . 123))
+ ((select-clause . 123)
+  (statement-continuation . 123))
+ ((select-clause . 123)
+  (statement-continuation . 123))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 174)
+  (statement-continuation . 174))
+ ((select-clause . 174)
+  (statement-continuation . 174))
+ ((select-clause . 174)
+  (statement-continuation . 174))
+ ((select-clause . 174)
+  (statement-continuation . 174))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 229)
+  (statement-continuation . 229))
+ ((select-clause . 229)
+  (statement-continuation . 229))
+ ((select-clause . 229)
+  (statement-continuation . 229))
+ ((select-clause . 229)
+  (statement-continuation . 229))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 280)
+  (statement-continuation . 280))
+ ((select-clause . 280)
+  (statement-continuation . 280))
+ ((select-clause . 280)
+  (statement-continuation . 280))
+ ((select-clause . 280)
+  (statement-continuation . 280))
  ((toplevel . 1)))
\ No newline at end of file
diff --git a/test-data/pr75-oracle-syn.eld b/test-data/pr75-oracle-syn.eld
index 1b1851e..35af409 100644
--- a/test-data/pr75-oracle-syn.eld
+++ b/test-data/pr75-oracle-syn.eld
@@ -19,26 +19,26 @@
  ((select-clause . 233)
   ((create-statement view "myview")
    . 196))
- ((select-table-continuation . 329)
+ ((select-table . 329)
   ((create-statement view "myview")
    . 196))
  ((toplevel . 1))
  ((toplevel . 1))
  (((create-statement table "foo")
-   . 403))
+   . 401))
  (((create-statement table "foo")
-   . 403))
+   . 401))
  (((create-statement table "foo")
-   . 403))
- ((select-column . 525)
+   . 401))
+ ((select-column . 523)
   ((create-statement table "foo")
-   . 403))
- ((select-clause . 525)
+   . 401))
+ ((select-clause . 523)
   ((create-statement table "foo")
-   . 403))
- ((select-table-continuation . 621)
+   . 401))
+ ((select-table . 619)
   ((create-statement table "foo")
-   . 403))
+   . 401))
  ((toplevel . 1))
  ((comment-start . 1)
   (toplevel . 1))
diff --git a/test-data/pr75-postgres-syn.eld b/test-data/pr75-postgres-syn.eld
index d874f20..811fb69 100644
--- a/test-data/pr75-postgres-syn.eld
+++ b/test-data/pr75-postgres-syn.eld
@@ -9,50 +9,50 @@
  ((select-clause . 52)
   ((create-statement table "mytable")
    . 1))
- ((select-table-continuation . 148)
+ ((select-table . 148)
   ((create-statement table "mytable")
    . 1))
  ((toplevel . 1))
  ((toplevel . 1))
  (((create-statement table "mytable")
-   . 222))
- ((select-column . 273)
+   . 220))
+ ((select-column . 271)
   ((create-statement table "mytable")
-   . 222))
- ((select-clause . 273)
+   . 220))
+ ((select-clause . 271)
   ((create-statement table "mytable")
-   . 222))
- ((select-table-continuation . 369)
+   . 220))
+ ((select-table . 367)
   ((create-statement table "mytable")
-   . 222))
+   . 220))
  ((toplevel . 1))
  ((toplevel . 1))
  (((create-statement view "myview")
-   . 443))
- ((select-column . 480)
+   . 439))
+ ((select-column . 476)
   ((create-statement view "myview")
-   . 443))
- ((select-clause . 480)
+   . 439))
+ ((select-clause . 476)
   ((create-statement view "myview")
-   . 443))
- ((select-table-continuation . 576)
+   . 439))
+ ((select-table . 572)
   ((create-statement view "myview")
-   . 443))
+   . 439))
  ((toplevel . 1))
  ((toplevel . 1))
  (((create-statement table "foo")
-   . 650))
+   . 644))
  (((create-statement table "foo")
-   . 650))
- ((select-column . 698)
+   . 644))
+ ((select-column . 692)
   ((create-statement table "foo")
-   . 650))
- ((select-clause . 698)
+   . 644))
+ ((select-clause . 692)
   ((create-statement table "foo")
-   . 650))
- ((select-table-continuation . 794)
+   . 644))
+ ((select-table . 788)
   ((create-statement table "foo")
-   . 650))
+   . 644))
  ((toplevel . 1))
  ((comment-start . 1)
   (toplevel . 1))
diff --git a/test-data/pr85-syn.eld b/test-data/pr85-syn.eld
index 7710e7d..6396890 100644
--- a/test-data/pr85-syn.eld
+++ b/test-data/pr85-syn.eld
@@ -1,57 +1,57 @@
 (((toplevel . 1))
  ((select-clause . 1)
   (statement-continuation . 1))
- ((select-table-continuation . 12)
+ ((select-table . 12)
   (statement-continuation . 1))
- ((select-join-condition . 30)
+ ((select-join-condition . 28)
   (statement-continuation . 1))
  ((toplevel . 1))
  ((toplevel . 1))
- ((select-clause . 82)
-  (statement-continuation . 82))
- ((select-table-continuation . 93)
-  (statement-continuation . 82))
- ((select-table-continuation . 93)
-  (statement-continuation . 82))
- ((select-join-condition . 111)
-  (statement-continuation . 82))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 172)
-  (statement-continuation . 172))
- ((select-table-continuation . 183)
-  (statement-continuation . 172))
- ((select-table-continuation . 183)
-  (statement-continuation . 172))
- ((select-join-condition . 201)
-  (statement-continuation . 172))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 290)
-  (statement-continuation . 290))
- ((select-table-continuation . 301)
-  (statement-continuation . 290))
- ((select-join-condition . 319)
-  (statement-continuation . 290))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 372)
-  (statement-continuation . 372))
- ((select-table-continuation . 383)
-  (statement-continuation . 372))
- ((select-table-continuation . 383)
-  (statement-continuation . 372))
- ((select-join-condition . 401)
-  (statement-continuation . 372))
- ((toplevel . 1))
- ((toplevel . 1))
- ((select-clause . 496)
-  (statement-continuation . 496))
- ((select-table-continuation . 507)
-  (statement-continuation . 496))
- ((select-table-continuation . 507)
-  (statement-continuation . 496))
- ((select-join-condition . 525)
-  (statement-continuation . 496))
+ ((select-clause . 78)
+  (statement-continuation . 78))
+ ((select-table . 89)
+  (statement-continuation . 78))
+ ((select-table . 89)
+  (statement-continuation . 78))
+ ((select-join-condition . 105)
+  (statement-continuation . 78))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 162)
+  (statement-continuation . 162))
+ ((select-table . 173)
+  (statement-continuation . 162))
+ ((select-table . 173)
+  (statement-continuation . 162))
+ ((select-join-condition . 189)
+  (statement-continuation . 162))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 274)
+  (statement-continuation . 274))
+ ((select-table . 285)
+  (statement-continuation . 274))
+ ((select-join-condition . 301)
+  (statement-continuation . 274))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 352)
+  (statement-continuation . 352))
+ ((select-table . 363)
+  (statement-continuation . 352))
+ ((select-table . 363)
+  (statement-continuation . 352))
+ ((select-join-condition . 379)
+  (statement-continuation . 352))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-clause . 470)
+  (statement-continuation . 470))
+ ((select-table . 481)
+  (statement-continuation . 470))
+ ((select-table . 481)
+  (statement-continuation . 470))
+ ((select-join-condition . 497)
+  (statement-continuation . 470))
  ((toplevel . 1)))
  
\ No newline at end of file
diff --git a/test-data/pr99-syn.eld b/test-data/pr99-syn.eld
new file mode 100644
index 0000000..979192a
--- /dev/null
+++ b/test-data/pr99-syn.eld
@@ -0,0 +1,150 @@
+(((comment-start . 1)
+  (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-column . 73)
+  (statement-continuation . 73))
+ ((select-clause . 73)
+  (statement-continuation . 73))
+ ((comment-start . 103)
+  (nested-statement-open . 103)
+  (statement-continuation . 103))
+ ((comment-start . 103)
+  (nested-statement-continuation . 103)
+  (statement-continuation . 103))
+ ((nested-statement-continuation . 103)
+  (statement-continuation . 103))
+ ((select-column . 177)
+  (nested-statement-continuation . 103)
+  (statement-continuation . 103))
+ ((select-column . 177)
+  (nested-statement-continuation . 103)
+  (statement-continuation . 103))
+ ((select-clause . 177)
+  (nested-statement-continuation . 103)
+  (statement-continuation . 103))
+ ((nested-statement-continuation . 271)
+  (statement-continuation . 271))
+ ((nested-statement-continuation . 271)
+  (statement-continuation . 271))
+ ((select-table-continuation . 256)
+  (nested-statement-continuation . 103)
+  (statement-continuation . 103))
+ ((select-table-continuation . 103)
+  (statement-continuation . 73))
+ ((select-table . 98)
+  (statement-continuation . 73))
+ ((comment-start . 472)
+  (nested-statement-open . 472)
+  (statement-continuation . 472))
+ ((nested-statement-continuation . 472)
+  (statement-continuation . 472))
+ ((select-clause . 526)
+  (nested-statement-continuation . 472)
+  (statement-continuation . 472))
+ ((nested-statement-open . 551)
+  (statement-continuation . 551))
+ ((nested-statement-continuation . 551)
+  (statement-continuation . 551))
+ ((nested-statement-continuation . 551)
+  (statement-continuation . 551))
+ ((nested-statement-continuation . 551)
+  (statement-continuation . 551))
+ ((select-table-continuation . 551)
+  (nested-statement-continuation . 472)
+  (statement-continuation . 472))
+ ((select-table-continuation . 472)
+  (statement-continuation . 73))
+ ((select-join-condition . 462)
+  (statement-continuation . 73))
+ ((select-table . 98)
+  (statement-continuation . 73))
+ ((nested-statement-open . 973)
+  (statement-continuation . 973))
+ ((comment-start . 973)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((select-column . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((case-clause-item-cont . 1127)
+  (select-column-continuation . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ (((block-end case "")
+   . 1089)
+  (select-column-continuation . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((select-column . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((select-column . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((select-column . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((select-column . 984)
+  (nested-statement-continuation . 973)
+  (statement-continuation . 973))
+ ((select-table-continuation . 973)
+  (statement-continuation . 73))
+ ((select-table . 98)
+  (statement-continuation . 73))
+ ((comment-start . 1649)
+  (nested-statement-open . 1649)
+  (statement-continuation . 1649))
+ ((nested-statement-continuation . 1649)
+  (statement-continuation . 1649))
+ ((select-column . 1716)
+  (nested-statement-continuation . 1649)
+  (statement-continuation . 1649))
+ ((nested-statement-open . 1742)
+  (statement-continuation . 1742))
+ ((nested-statement-continuation . 1742)
+  (statement-continuation . 1742))
+ ((nested-statement-close . 1742)
+  (statement-continuation . 1742))
+ ((select-column-continuation . 1716)
+  (nested-statement-continuation . 1649)
+  (statement-continuation . 1649))
+ ((nested-statement-close . 1649)
+  (statement-continuation . 1649))
+ ((toplevel . 1))
+ ((comment-start . 1)
+  (toplevel . 1))
+ ((comment-start . 1)
+  (toplevel . 1))
+ ((comment-start . 1)
+  (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((select-column . 2025)
+  (statement-continuation . 2025))
+ ((select-column . 2025)
+  (statement-continuation . 2025))
+ ((select-column . 2025)
+  (statement-continuation . 2025))
+ ((select-column . 2025)
+  (statement-continuation . 2025))
+ ((select-column . 2025)
+  (statement-continuation . 2025))
+ ((select-clause . 2025)
+  (statement-continuation . 2025))
+ ((select-table . 2227)
+  (statement-continuation . 2025))
+ ((select-table . 2227)
+  (statement-continuation . 2025))
+ ((select-table . 2227)
+  (statement-continuation . 2025))
+ ((select-table-continuation . 2311)
+  (statement-continuation . 2025))
+ ((select-clause . 2025)
+  (statement-continuation . 2025))
+ (((in-select-clause "where")
+   . 2501)
+  (statement-continuation . 2025))
+ (((in-select-clause "where")
+   . 2501)
+  (statement-continuation . 2025)))
\ No newline at end of file
diff --git a/test-data/pr99.sql b/test-data/pr99.sql
new file mode 100644
index 0000000..2629011
--- /dev/null
+++ b/test-data/pr99.sql
@@ -0,0 +1,64 @@
+-- SQL from https://ddrscott.github.io/blog/2017/what-the-sql-lateral/
+
+SELECT
+  t2.up_seconds
+  from (
+    -- build virtual table of all hours between
+    -- a date range
+    SELECT
+      start_ts,
+      start_ts + interval '1 hour' AS end_ts
+      FROM generate_series('2017-03-01'::date,
+                           '2017-03-03'::timestamp - interval '1 hour',
+                           interval '1 hour')
+             AS t(start_ts))
+         AS cal
+       LEFT JOIN (
+         -- build virtual table of uptimes
+         SELECT *
+           FROM (
+             VALUES
+             ('2017-03-01 01:15:00-06'::timestamp, '2017-03-01 
02:15:00-06'::timestamp),
+             ('2017-03-01 08:00:00-06', '2017-03-01 20:00:00-06'),
+             ('2017-03-02 19:00:00-06', null))
+                  AS t(start_ts, end_ts))
+                   AS uptime
+           ON cal.end_ts > uptime.start_ts AND cal.start_ts <= 
coalesce(uptime.end_ts, current_timestamp)
+       JOIN LATERAL (
+         SELECT
+         -- will use `first_ts` and `last_ts` to calculate uptime duration
+           CASE WHEN uptime.start_ts IS NOT NULL THEN
+                                                 greatest(uptime.start_ts, 
cal.start_ts)
+           END                                               AS first_ts,
+           least(cal.end_ts, uptime.end_ts)                  AS last_ts,
+           date_trunc('day', cal.start_ts)::date             AS cal_date,
+           extract(hour from cal.start_ts)                   AS cal_hour,
+           extract(epoch from age(cal.end_ts, cal.start_ts)) AS cal_seconds)
+                      as t1 ON true
+       JOIN LATERAL (
+         -- calculate uptime seconds for the time slice
+         SELECT
+           coalesce(
+             extract(epoch FROM age(last_ts, first_ts)),
+             0
+           )
+             AS up_seconds
+       ) t2 ON true;
+
+-- SQL from 
https://github.com/alex-hhh/emacs-sql-indent/issues/99#issuecomment-833821835
+--
+-- newline after JOIN LATERAL is correctly detected.
+
+SELECT reports.diagnostic_report_version_id,
+       image_descriptors.order,
+       image_descriptors.descriptor,
+       files.file_name as name,
+       files.file_id as id,
+       files.content_type
+  FROM diagnostic_report_versions as reports,
+       files
+  JOIN LATERAL
+       jsonb_to_recordset(jsonb_path_query_array(reports.tree, 'strict 
$.children.report.children.images.children.*'))
+       AS image_descriptors("name" text, "order" text, "descriptor" jsonb)
+ WHERE reports.diagnostic_report_version_id = 
files.diagnostic_report_version_id
+   AND files.file_id = image_descriptors.NAME



reply via email to

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