Skip to content

Commit 981935c

Browse files
committed
ast poc
1 parent 90c82b8 commit 981935c

File tree

6 files changed

+487
-136
lines changed

6 files changed

+487
-136
lines changed

src/main/java/net/snowflake/client/core/QueryExecDTO.java

+163-136
Original file line numberDiff line numberDiff line change
@@ -12,140 +12,167 @@
1212
* <p>Created by hyu on 6/30/17.
1313
*/
1414
public class QueryExecDTO {
15-
private String sqlText;
16-
17-
@Deprecated private Integer sequenceId;
18-
19-
private Map<String, ParameterBindingDTO> bindings;
20-
21-
private String bindStage;
22-
23-
private boolean describeOnly;
24-
25-
private Map<String, Object> parameters;
26-
27-
// Optional query context sent to the JDBC driver from the Cloud Service.
28-
private QueryContextDTO queryContextDTO;
29-
30-
private String describedJobId;
31-
32-
private long querySubmissionTime;
33-
34-
private boolean isInternal;
35-
36-
// Boolean value that, if true, indicates query should be asynchronous
37-
private boolean asyncExec;
38-
39-
public QueryExecDTO(
40-
String sqlText,
41-
boolean describeOnly,
42-
Integer sequenceId,
43-
Map<String, ParameterBindingDTO> bindings,
44-
String bindStage,
45-
Map<String, Object> parameters,
46-
QueryContextDTO queryContext,
47-
long querySubmissionTime,
48-
boolean internal,
49-
boolean asyncExec) {
50-
this.sqlText = sqlText;
51-
this.describeOnly = describeOnly;
52-
this.sequenceId = sequenceId;
53-
this.bindings = bindings;
54-
this.bindStage = bindStage;
55-
this.parameters = parameters;
56-
this.queryContextDTO = queryContext;
57-
this.querySubmissionTime = querySubmissionTime;
58-
this.isInternal = internal;
59-
this.asyncExec = asyncExec; // indicates whether query should be asynchronous
60-
}
61-
62-
public String getSqlText() {
63-
return sqlText;
64-
}
65-
66-
public void setSqlText(String sqlText) {
67-
this.sqlText = sqlText;
68-
}
69-
70-
@Deprecated
71-
public Integer getSequenceId() {
72-
return sequenceId;
73-
}
74-
75-
@Deprecated
76-
public void setSequenceId(Integer sequenceId) {
77-
this.sequenceId = sequenceId;
78-
}
79-
80-
public Map<String, ParameterBindingDTO> getBindings() {
81-
return bindings;
82-
}
83-
84-
public void setBindings(Map<String, ParameterBindingDTO> bindings) {
85-
this.bindings = bindings;
86-
}
87-
88-
public String getBindStage() {
89-
return bindStage;
90-
}
91-
92-
public void setBindStage(String bindStage) {
93-
this.bindStage = bindStage;
94-
}
95-
96-
public boolean isDescribeOnly() {
97-
return describeOnly;
98-
}
99-
100-
public void setDescribeOnly(boolean describeOnly) {
101-
this.describeOnly = describeOnly;
102-
}
103-
104-
public Map<String, Object> getParameters() {
105-
return parameters;
106-
}
107-
108-
public void setParameters(Map<String, Object> parameters) {
109-
this.parameters = parameters;
110-
}
111-
112-
public QueryContextDTO getqueryContextDTO() {
113-
return queryContextDTO;
114-
}
115-
116-
public void queryContextDTO(QueryContextDTO queryContext) {
117-
this.queryContextDTO = queryContext;
118-
}
119-
120-
public String getDescribedJobId() {
121-
return describedJobId;
122-
}
123-
124-
public void setDescribedJobId(String describedJobId) {
125-
this.describedJobId = describedJobId;
126-
}
127-
128-
public long getQuerySubmissionTime() {
129-
return querySubmissionTime;
130-
}
131-
132-
public void setQuerySubmissionTime(long querySubmissionTime) {
133-
this.querySubmissionTime = querySubmissionTime;
134-
}
135-
136-
public void setIsInternal(boolean isInternal) {
137-
this.isInternal = isInternal;
138-
}
139-
140-
public boolean getIsInternal() {
141-
return this.isInternal;
142-
}
143-
144-
public void setAsyncExec(boolean asyncExec) {
145-
this.asyncExec = asyncExec;
146-
}
147-
148-
public boolean getAsyncExec() {
149-
return this.asyncExec;
150-
}
15+
private String sqlText;
16+
17+
private String dataframeAst;
18+
19+
@Deprecated
20+
private Integer sequenceId;
21+
22+
private Map<String, ParameterBindingDTO> bindings;
23+
24+
private String bindStage;
25+
26+
private boolean describeOnly;
27+
28+
private Map<String, Object> parameters;
29+
30+
// Optional query context sent to the JDBC driver from the Cloud Service.
31+
private QueryContextDTO queryContextDTO;
32+
33+
private String describedJobId;
34+
35+
private long querySubmissionTime;
36+
37+
private boolean isInternal;
38+
39+
// Boolean value that, if true, indicates query should be asynchronous
40+
private boolean asyncExec;
41+
42+
public QueryExecDTO(
43+
String sqlText,
44+
String dataframeAst,
45+
boolean describeOnly,
46+
Integer sequenceId,
47+
Map<String, ParameterBindingDTO> bindings,
48+
String bindStage,
49+
Map<String, Object> parameters,
50+
QueryContextDTO queryContext,
51+
long querySubmissionTime,
52+
boolean internal,
53+
boolean asyncExec) {
54+
this.sqlText = sqlText;
55+
this.dataframeAst = dataframeAst;
56+
this.describeOnly = describeOnly;
57+
this.sequenceId = sequenceId;
58+
this.bindings = bindings;
59+
this.bindStage = bindStage;
60+
this.parameters = parameters;
61+
this.queryContextDTO = queryContext;
62+
this.querySubmissionTime = querySubmissionTime;
63+
this.isInternal = internal;
64+
this.asyncExec = asyncExec; // indicates whether query should be asynchronous
65+
}
66+
67+
public QueryExecDTO(
68+
String sqlText,
69+
boolean describeOnly,
70+
Integer sequenceId,
71+
Map<String, ParameterBindingDTO> bindings,
72+
String bindStage,
73+
Map<String, Object> parameters,
74+
QueryContextDTO queryContext,
75+
long querySubmissionTime,
76+
boolean internal,
77+
boolean asyncExec) {
78+
this(sqlText, "", describeOnly, sequenceId, bindings, bindStage, parameters, queryContext, querySubmissionTime, internal, asyncExec);
79+
}
80+
81+
public String getSqlText() {
82+
return sqlText;
83+
}
84+
85+
public void setSqlText(String sqlText) {
86+
this.sqlText = sqlText;
87+
}
88+
89+
public String getDataframeAst() {
90+
return this.dataframeAst;
91+
}
92+
93+
public void setDataframeAst(String dataframeAst) {
94+
this.dataframeAst = dataframeAst;
95+
}
96+
97+
@Deprecated
98+
public Integer getSequenceId() {
99+
return sequenceId;
100+
}
101+
102+
@Deprecated
103+
public void setSequenceId(Integer sequenceId) {
104+
this.sequenceId = sequenceId;
105+
}
106+
107+
public Map<String, ParameterBindingDTO> getBindings() {
108+
return bindings;
109+
}
110+
111+
public void setBindings(Map<String, ParameterBindingDTO> bindings) {
112+
this.bindings = bindings;
113+
}
114+
115+
public String getBindStage() {
116+
return bindStage;
117+
}
118+
119+
public void setBindStage(String bindStage) {
120+
this.bindStage = bindStage;
121+
}
122+
123+
public boolean isDescribeOnly() {
124+
return describeOnly;
125+
}
126+
127+
public void setDescribeOnly(boolean describeOnly) {
128+
this.describeOnly = describeOnly;
129+
}
130+
131+
public Map<String, Object> getParameters() {
132+
return parameters;
133+
}
134+
135+
public void setParameters(Map<String, Object> parameters) {
136+
this.parameters = parameters;
137+
}
138+
139+
public QueryContextDTO getqueryContextDTO() {
140+
return queryContextDTO;
141+
}
142+
143+
public void queryContextDTO(QueryContextDTO queryContext) {
144+
this.queryContextDTO = queryContext;
145+
}
146+
147+
public String getDescribedJobId() {
148+
return describedJobId;
149+
}
150+
151+
public void setDescribedJobId(String describedJobId) {
152+
this.describedJobId = describedJobId;
153+
}
154+
155+
public long getQuerySubmissionTime() {
156+
return querySubmissionTime;
157+
}
158+
159+
public void setQuerySubmissionTime(long querySubmissionTime) {
160+
this.querySubmissionTime = querySubmissionTime;
161+
}
162+
163+
public void setIsInternal(boolean isInternal) {
164+
this.isInternal = isInternal;
165+
}
166+
167+
public boolean getIsInternal() {
168+
return this.isInternal;
169+
}
170+
171+
public void setAsyncExec(boolean asyncExec) {
172+
this.asyncExec = asyncExec;
173+
}
174+
175+
public boolean getAsyncExec() {
176+
return this.asyncExec;
177+
}
151178
}

src/main/java/net/snowflake/client/core/SFBaseStatement.java

+6
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ public abstract SFBaseResultSet execute(
8383
ExecTimeTelemetryData execTimeData)
8484
throws SQLException, SFException;
8585

86+
public abstract SFBaseResultSet executeDataframeAst(
87+
String dataframeAst,
88+
CallingMethod caller,
89+
ExecTimeTelemetryData execTimeData)
90+
throws SQLException, SFException;
91+
8692
/**
8793
* Execute sql asynchronously. Note that at a minimum, this does not have to be supported; if
8894
* executeAsyncQuery() is called from SnowflakeStatement and the SFConnectionHandler's

0 commit comments

Comments
 (0)