@@ -28,6 +28,7 @@ public class Drop implements Statement {
2828 private List <String > parameters ;
2929 private Map <String , List <String >> typeToParameters = new HashMap <>();
3030 private boolean ifExists = false ;
31+ private boolean materialized = false ;
3132
3233 @ Override
3334 public void accept (StatementVisitor statementVisitor ) {
@@ -66,6 +67,14 @@ public void setIfExists(boolean ifExists) {
6667 this .ifExists = ifExists ;
6768 }
6869
70+ public boolean isMaterialized () {
71+ return materialized ;
72+ }
73+
74+ public void setMaterialized (boolean materialized ) {
75+ this .materialized = materialized ;
76+ }
77+
6978 public Map <String , List <String >> getTypeToParameters () {
7079 return typeToParameters ;
7180 }
@@ -76,7 +85,9 @@ public void setTypeToParameters(Map<String, List<String>> typeToParameters) {
7685
7786 @ Override
7887 public String toString () {
79- String sql = "DROP " + type + " "
88+ String sql = "DROP "
89+ + (materialized ? "MATERIALIZED " : "" )
90+ + type + " "
8091 + (ifExists ? "IF EXISTS " : "" ) + name .toString ();
8192
8293 if (type .equals ("FUNCTION" )) {
@@ -106,6 +117,11 @@ public Drop withIfExists(boolean ifExists) {
106117 return this ;
107118 }
108119
120+ public Drop withMaterialized (boolean materialized ) {
121+ this .setMaterialized (materialized );
122+ return this ;
123+ }
124+
109125 public Drop withType (String type ) {
110126 this .setType (type );
111127 return this ;
0 commit comments