99 */
1010package net .sf .jsqlparser .statement ;
1111
12- import net .sf .jsqlparser .statement .create .accessmethod .CreateAccessMethod ;
13-
14- import net .sf .jsqlparser .statement .oracle .OracleBlock ;
15- import net .sf .jsqlparser .statement .oracle .OracleAssignment ;
16- import net .sf .jsqlparser .statement .oracle .OracleNullStatement ;
17-
18- import net .sf .jsqlparser .statement .role .CreateRole ;
19- import net .sf .jsqlparser .statement .role .AlterRole ;
20- import net .sf .jsqlparser .statement .grant .Revoke ;
21- import net .sf .jsqlparser .statement .grant .AlterDefaultPrivileges ;
22- import net .sf .jsqlparser .statement .create .trigger .CreateTrigger ;
23- import net .sf .jsqlparser .statement .create .type .CreateType ;
24- import net .sf .jsqlparser .statement .alter .AlterType ;
25- import net .sf .jsqlparser .statement .create .domain .CreateDomain ;
26- import net .sf .jsqlparser .statement .alter .AlterDomain ;
27- import net .sf .jsqlparser .statement .create .extension .CreateExtension ;
28- import net .sf .jsqlparser .statement .alter .AlterExtension ;
29- import net .sf .jsqlparser .statement .create .publication .CreatePublication ;
30- import net .sf .jsqlparser .statement .alter .AlterPublication ;
31- import net .sf .jsqlparser .statement .create .subscription .CreateSubscription ;
32- import net .sf .jsqlparser .statement .create .subscription .SubscriptionOption ;
33- import net .sf .jsqlparser .statement .alter .AlterSubscription ;
34-
12+ import java .util .ArrayList ;
13+ import java .util .EnumSet ;
14+ import java .util .LinkedHashSet ;
15+ import java .util .List ;
16+ import java .util .Locale ;
17+ import java .util .Set ;
18+ import java .util .function .Predicate ;
3519import net .sf .jsqlparser .JSQLParserException ;
3620import net .sf .jsqlparser .expression .AnalyticExpression ;
37- import net .sf .jsqlparser .expression .TranscodingFunction ;
3821import net .sf .jsqlparser .expression .Expression ;
3922import net .sf .jsqlparser .expression .ExpressionVisitor ;
4023import net .sf .jsqlparser .expression .ExpressionVisitorAdapter ;
4124import net .sf .jsqlparser .expression .Function ;
25+ import net .sf .jsqlparser .expression .TranscodingFunction ;
4226import net .sf .jsqlparser .parser .CCJSqlParserUtil ;
4327import net .sf .jsqlparser .statement .alter .Alter ;
28+ import net .sf .jsqlparser .statement .alter .AlterDomain ;
29+ import net .sf .jsqlparser .statement .alter .AlterExtension ;
30+ import net .sf .jsqlparser .statement .alter .AlterPublication ;
4431import net .sf .jsqlparser .statement .alter .AlterSession ;
32+ import net .sf .jsqlparser .statement .alter .AlterSubscription ;
4533import net .sf .jsqlparser .statement .alter .AlterSystemStatement ;
34+ import net .sf .jsqlparser .statement .alter .AlterType ;
4635import net .sf .jsqlparser .statement .alter .RenameTableStatement ;
4736import net .sf .jsqlparser .statement .alter .sequence .AlterSequence ;
4837import net .sf .jsqlparser .statement .analyze .Analyze ;
4938import net .sf .jsqlparser .statement .comment .Comment ;
39+ import net .sf .jsqlparser .statement .create .accessmethod .CreateAccessMethod ;
5040import net .sf .jsqlparser .statement .create .database .CreateDatabase ;
41+ import net .sf .jsqlparser .statement .create .domain .CreateDomain ;
42+ import net .sf .jsqlparser .statement .create .extension .CreateExtension ;
43+ import net .sf .jsqlparser .statement .create .extension .CreateExtensionRepository ;
5144import net .sf .jsqlparser .statement .create .index .CreateIndex ;
45+ import net .sf .jsqlparser .statement .create .macro .CreateMacro ;
5246import net .sf .jsqlparser .statement .create .policy .CreatePolicy ;
47+ import net .sf .jsqlparser .statement .create .publication .CreatePublication ;
5348import net .sf .jsqlparser .statement .create .schema .CreateSchema ;
5449import net .sf .jsqlparser .statement .create .sequence .CreateSequence ;
50+ import net .sf .jsqlparser .statement .create .subscription .CreateSubscription ;
51+ import net .sf .jsqlparser .statement .create .subscription .SubscriptionOption ;
5552import net .sf .jsqlparser .statement .create .synonym .CreateSynonym ;
5653import net .sf .jsqlparser .statement .create .table .CreateTable ;
54+ import net .sf .jsqlparser .statement .create .trigger .CreateTrigger ;
55+ import net .sf .jsqlparser .statement .create .type .CreateType ;
5756import net .sf .jsqlparser .statement .create .view .AlterView ;
5857import net .sf .jsqlparser .statement .create .view .CreateView ;
5958import net .sf .jsqlparser .statement .delete .Delete ;
6059import net .sf .jsqlparser .statement .drop .Drop ;
6160import net .sf .jsqlparser .statement .execute .Execute ;
6261import net .sf .jsqlparser .statement .export .Export ;
62+ import net .sf .jsqlparser .statement .export .ExportDataStatement ;
63+ import net .sf .jsqlparser .statement .grant .AlterDefaultPrivileges ;
6364import net .sf .jsqlparser .statement .grant .Grant ;
65+ import net .sf .jsqlparser .statement .grant .Revoke ;
6466import net .sf .jsqlparser .statement .imprt .Import ;
6567import net .sf .jsqlparser .statement .insert .Insert ;
6668import net .sf .jsqlparser .statement .insert .InsertBulk ;
69+ import net .sf .jsqlparser .statement .load .LoadDataStatement ;
6770import net .sf .jsqlparser .statement .lock .LockStatement ;
6871import net .sf .jsqlparser .statement .merge .Merge ;
72+ import net .sf .jsqlparser .statement .oracle .OracleAssignment ;
73+ import net .sf .jsqlparser .statement .oracle .OracleBlock ;
74+ import net .sf .jsqlparser .statement .oracle .OracleNullStatement ;
6975import net .sf .jsqlparser .statement .refresh .RefreshMaterializedViewStatement ;
76+ import net .sf .jsqlparser .statement .role .AlterRole ;
77+ import net .sf .jsqlparser .statement .role .CreateRole ;
7078import net .sf .jsqlparser .statement .select .FromItemVisitor ;
7179import net .sf .jsqlparser .statement .select .FromItemVisitorAdapter ;
80+ import net .sf .jsqlparser .statement .select .MySqlSelectIntoClause ;
7281import net .sf .jsqlparser .statement .select .PivotVisitor ;
7382import net .sf .jsqlparser .statement .select .PivotVisitorAdapter ;
7483import net .sf .jsqlparser .statement .select .PlainSelect ;
75- import net .sf .jsqlparser .statement .select .MySqlSelectIntoClause ;
7684import net .sf .jsqlparser .statement .select .Select ;
7785import net .sf .jsqlparser .statement .select .SelectItem ;
7886import net .sf .jsqlparser .statement .select .SelectItemVisitor ;
8896import net .sf .jsqlparser .statement .update .Update ;
8997import net .sf .jsqlparser .statement .upsert .Upsert ;
9098
91- import java .util .ArrayList ;
92- import java .util .EnumSet ;
93- import java .util .LinkedHashSet ;
94- import java .util .List ;
95- import java .util .Locale ;
96- import java .util .Set ;
97- import java .util .function .Predicate ;
98- import net .sf .jsqlparser .statement .create .macro .CreateMacro ;
99- import net .sf .jsqlparser .statement .create .extension .CreateExtensionRepository ;
100- import net .sf .jsqlparser .statement .export .ExportDataStatement ;
101- import net .sf .jsqlparser .statement .load .LoadDataStatement ;
102-
10399/**
104100 * Derives a {@link StatementFeatures} verdict from a statement tree.
105101 *
@@ -186,7 +182,7 @@ public static StatementFeatures analyse(Statement statement, Predicate<String> p
186182 Analysis analysis = new Analysis (pureFunctions );
187183 StatementFeatureVisitor visitor = new StatementFeatureVisitor (analysis );
188184 statement .accept (visitor , null );
189- analysis .failLoudIfSilent (statement . getClass (). getSimpleName () );
185+ analysis .failLoudIfSilent ();
190186 return new StatementFeatures (analysis .certain , analysis .uncertain , analysis .unresolved );
191187 }
192188
@@ -219,7 +215,7 @@ public static StatementFeatures analyse(Statements statements,
219215 Analysis analysis = new Analysis (pureFunctions );
220216 StatementFeatureVisitor visitor = new StatementFeatureVisitor (analysis );
221217 statements .accept (visitor , null );
222- analysis .failLoudIfSilent (Statements . class . getSimpleName () );
218+ analysis .failLoudIfSilent ();
223219 return new StatementFeatures (analysis .certain , analysis .uncertain , analysis .unresolved );
224220 }
225221
@@ -309,10 +305,14 @@ void suppressReads(Runnable body) {
309305 }
310306
311307 void opaque (String reference ) {
308+ opaque ();
309+ unresolved (reference );
310+ }
311+
312+ void opaque () {
312313 certain .add (StmtFeature .OPAQUE );
313314 uncertain .addAll (EnumSet .of (StmtFeature .READS_DATA , StmtFeature .RETURNS_RESULT_SET ,
314315 StmtFeature .MODIFIES_DATA , StmtFeature .MODIFIES_SCHEMA ));
315- unresolved (reference );
316316 }
317317
318318 /**
@@ -322,9 +322,9 @@ void opaque(String reference) {
322322 * hand-maintained type table; the price is that a genuinely inert statement is also
323323 * reported opaque, which is the right direction to be wrong in.
324324 */
325- void failLoudIfSilent (String label ) {
325+ void failLoudIfSilent () {
326326 if (certain .isEmpty ()) {
327- opaque (label );
327+ opaque ();
328328 }
329329 }
330330 }
0 commit comments