Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit 90b89b6

Browse files
Merge pull request #128 from Trivadis/feature/issue-126-view-column-list
Feature/issue 126 view column list
2 parents 5766092 + 560604a commit 90b89b6

File tree

2 files changed

+191
-0
lines changed

2 files changed

+191
-0
lines changed

settings/sql_developer/trivadis_custom_format_phase2.arbori

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,7 @@ a15_various:
740740
| [node) subquery & [node^) multi_table_insert
741741
| [node) prm_spec & [node-1) ','
742742
| [node) subprg_property
743+
| [node) ')' & [node^) create_view#[114,130)
743744
;
744745

745746
a15_is_or_as:
@@ -749,9 +750,16 @@ a15_is_or_as:
749750
& node-1 = prop^
750751
;
751752

753+
a15_view_column_alias:
754+
[parent) create_view#[114,130)
755+
& [node) alias_in_out_constraints
756+
& parent < node
757+
;
758+
752759
a15_line_break_before:
753760
a15_various
754761
| a15_is_or_as
762+
| a15_view_column_alias
755763
-> {
756764
var node = tuple.get("node");
757765
if (getIndent(node.from).indexOf("\n") == -1) {
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
package com.trivadis.plsql.formatter.settings.tests.issues;
2+
3+
import com.trivadis.plsql.formatter.settings.ConfiguredTestFormatter;
4+
import oracle.dbtools.app.Format;
5+
import org.junit.jupiter.api.BeforeEach;
6+
import org.junit.jupiter.api.Test;
7+
8+
import java.io.IOException;
9+
10+
public class Issue_126_create_view_column_list extends ConfiguredTestFormatter {
11+
12+
@BeforeEach
13+
public void setup() {
14+
getFormatter().options.put("identSpaces", 2);
15+
getFormatter().options.put("idCase", Format.Case.lower);
16+
}
17+
18+
@Test
19+
public void dbms_metadata_view() throws IOException {
20+
getFormatter().options.put(getFormatter().spaceAfterCommas, false);
21+
var input = """
22+
CREATE OR REPLACE FORCE EDITIONABLE VIEW "COVID_COVPN"."DUAL_V" ("DUMMY1", "DUMMY2", "DUMMY3", "DUMMY4", "DUMMY5", "DUMMY6", "DUMMY7", "DUMMY8", "DUMMY9", "DUMMY10", "DUMMY11", "DUMMY12", "DUMMY13", "DUMMY14", "DUMMY15", "DUMMY16", "DUMMY17", "DUMMY18", "DUMMY19", "DUMMY20", "DUMMY21", "DUMMY22", "DUMMY23", "DUMMY24", "DUMMY25", "DUMMY26", "DUMMY27", "DUMMY28", "DUMMY29", "DUMMY30", "DUMMY31", "DUMMY32", "DUMMY33", "DUMMY34", "DUMMY35", "DUMMY36", "DUMMY37", "DUMMY38", "DUMMY39", "DUMMY40", "DUMMY41", "DUMMY42", "DUMMY43", "DUMMY44", "DUMMY45", "DUMMY46", "DUMMY47", "DUMMY48", "DUMMY49", "DUMMY50") AS\s
23+
select dummy dummy1,
24+
dummy dummy2,
25+
dummy dummy3,
26+
dummy dummy4,
27+
dummy dummy5,
28+
dummy dummy6,
29+
dummy dummy7,
30+
dummy dummy8,
31+
dummy dummy9,
32+
dummy dummy10,
33+
dummy dummy11,
34+
dummy dummy12,
35+
dummy dummy13,
36+
dummy dummy14,
37+
dummy dummy15,
38+
dummy dummy16,
39+
dummy dummy17,
40+
dummy dummy18,
41+
dummy dummy19,
42+
dummy dummy20,
43+
dummy dummy21,
44+
dummy dummy22,
45+
dummy dummy23,
46+
dummy dummy24,
47+
dummy dummy25,
48+
dummy dummy26,
49+
dummy dummy27,
50+
dummy dummy28,
51+
dummy dummy29,
52+
dummy dummy30,
53+
dummy dummy31,
54+
dummy dummy32,
55+
dummy dummy33,
56+
dummy dummy34,
57+
dummy dummy35,
58+
dummy dummy36,
59+
dummy dummy37,
60+
dummy dummy38,
61+
dummy dummy39,
62+
dummy dummy40,
63+
dummy dummy41,
64+
dummy dummy42,
65+
dummy dummy43,
66+
dummy dummy44,
67+
dummy dummy45,
68+
dummy dummy46,
69+
dummy dummy47,
70+
dummy dummy48,
71+
dummy dummy49,
72+
dummy dummy50
73+
from dual;
74+
""";
75+
var expected = """
76+
create or replace force editionable view "COVID_COVPN"."DUAL_V" (
77+
"DUMMY1",
78+
"DUMMY2",
79+
"DUMMY3",
80+
"DUMMY4",
81+
"DUMMY5",
82+
"DUMMY6",
83+
"DUMMY7",
84+
"DUMMY8",
85+
"DUMMY9",
86+
"DUMMY10",
87+
"DUMMY11",
88+
"DUMMY12",
89+
"DUMMY13",
90+
"DUMMY14",
91+
"DUMMY15",
92+
"DUMMY16",
93+
"DUMMY17",
94+
"DUMMY18",
95+
"DUMMY19",
96+
"DUMMY20",
97+
"DUMMY21",
98+
"DUMMY22",
99+
"DUMMY23",
100+
"DUMMY24",
101+
"DUMMY25",
102+
"DUMMY26",
103+
"DUMMY27",
104+
"DUMMY28",
105+
"DUMMY29",
106+
"DUMMY30",
107+
"DUMMY31",
108+
"DUMMY32",
109+
"DUMMY33",
110+
"DUMMY34",
111+
"DUMMY35",
112+
"DUMMY36",
113+
"DUMMY37",
114+
"DUMMY38",
115+
"DUMMY39",
116+
"DUMMY40",
117+
"DUMMY41",
118+
"DUMMY42",
119+
"DUMMY43",
120+
"DUMMY44",
121+
"DUMMY45",
122+
"DUMMY46",
123+
"DUMMY47",
124+
"DUMMY48",
125+
"DUMMY49",
126+
"DUMMY50"
127+
) as
128+
select dummy dummy1,
129+
dummy dummy2,
130+
dummy dummy3,
131+
dummy dummy4,
132+
dummy dummy5,
133+
dummy dummy6,
134+
dummy dummy7,
135+
dummy dummy8,
136+
dummy dummy9,
137+
dummy dummy10,
138+
dummy dummy11,
139+
dummy dummy12,
140+
dummy dummy13,
141+
dummy dummy14,
142+
dummy dummy15,
143+
dummy dummy16,
144+
dummy dummy17,
145+
dummy dummy18,
146+
dummy dummy19,
147+
dummy dummy20,
148+
dummy dummy21,
149+
dummy dummy22,
150+
dummy dummy23,
151+
dummy dummy24,
152+
dummy dummy25,
153+
dummy dummy26,
154+
dummy dummy27,
155+
dummy dummy28,
156+
dummy dummy29,
157+
dummy dummy30,
158+
dummy dummy31,
159+
dummy dummy32,
160+
dummy dummy33,
161+
dummy dummy34,
162+
dummy dummy35,
163+
dummy dummy36,
164+
dummy dummy37,
165+
dummy dummy38,
166+
dummy dummy39,
167+
dummy dummy40,
168+
dummy dummy41,
169+
dummy dummy42,
170+
dummy dummy43,
171+
dummy dummy44,
172+
dummy dummy45,
173+
dummy dummy46,
174+
dummy dummy47,
175+
dummy dummy48,
176+
dummy dummy49,
177+
dummy dummy50
178+
from dual;
179+
""";
180+
var actual = formatter.format(input);
181+
assertEquals(expected, actual);
182+
}
183+
}

0 commit comments

Comments
 (0)