18
18
package org .apache .drill .exec .expr .fn .impl .conv ;
19
19
20
20
21
- import io .netty .buffer .DrillBuf ;
22
-
23
21
import javax .inject .Inject ;
24
22
25
23
import org .apache .drill .exec .expr .DrillSimpleFunc ;
32
30
import org .apache .drill .exec .expr .holders .NullableVarCharHolder ;
33
31
import org .apache .drill .exec .expr .holders .VarBinaryHolder ;
34
32
import org .apache .drill .exec .expr .holders .VarCharHolder ;
33
+ import org .apache .drill .exec .physical .resultSet .ResultSetLoader ;
34
+ import org .apache .drill .exec .server .options .OptionManager ;
35
35
import org .apache .drill .exec .vector .complex .writer .BaseWriter .ComplexWriter ;
36
36
37
37
public class JsonConvertFrom {
38
38
39
- static final org .slf4j .Logger logger = org .slf4j .LoggerFactory .getLogger (JsonConvertFrom .class );
40
-
41
39
private JsonConvertFrom () {
42
40
}
43
41
44
42
@ FunctionTemplate (name = "convert_fromJSON" , scope = FunctionScope .SIMPLE , isRandom = true )
45
43
public static class ConvertFromJson implements DrillSimpleFunc {
46
44
47
45
@ Param VarBinaryHolder in ;
48
- @ Inject DrillBuf buffer ;
49
- @ Workspace org .apache .drill .exec .vector .complex .fn .JsonReader jsonReader ;
46
+ @ Inject
47
+ ResultSetLoader loader ;
48
+ @ Workspace
49
+ org .apache .drill .exec .store .easy .json .loader .JsonLoaderImpl .JsonLoaderBuilder jsonLoaderBuilder ;
50
+
51
+ @ Inject
52
+ OptionManager options ;
50
53
51
54
@ Output ComplexWriter writer ;
52
55
53
56
@ Override
54
57
public void setup () {
55
- jsonReader = new org .apache .drill .exec .vector . complex . fn . JsonReader . Builder ( buffer )
56
- . defaultSchemaPathColumns ( )
57
- . build ( );
58
+ jsonLoaderBuilder = new org .apache .drill .exec .store . easy . json . loader . JsonLoaderImpl . JsonLoaderBuilder ( )
59
+ . resultSetLoader ( loader )
60
+ . standardOptions ( options );
58
61
}
59
62
60
63
@ Override
61
64
public void eval () {
62
65
try {
63
- jsonReader .setSource (in .start , in .end , in .buffer );
64
- jsonReader .write (writer );
65
- buffer = jsonReader .getWorkBuf ();
66
+ jsonLoaderBuilder .fromStream (in .start , in .end , in .buffer );
67
+ org .apache .drill .exec .store .easy .json .loader .JsonLoader jsonLoader = jsonLoaderBuilder .build ();
68
+ loader .startBatch ();
69
+ jsonLoader .readBatch ();
70
+ loader .close ();
71
+
66
72
} catch (Exception e ) {
67
73
throw new org .apache .drill .common .exceptions .DrillRuntimeException ("Error while converting from JSON. " , e );
68
74
}
@@ -73,24 +79,33 @@ public void eval() {
73
79
public static class ConvertFromJsonVarchar implements DrillSimpleFunc {
74
80
75
81
@ Param VarCharHolder in ;
76
- @ Inject DrillBuf buffer ;
77
- @ Workspace org .apache .drill .exec .vector .complex .fn .JsonReader jsonReader ;
82
+ @ Workspace
83
+ org .apache .drill .exec .store .easy .json .loader .JsonLoaderImpl .JsonLoaderBuilder jsonLoaderBuilder ;
84
+
85
+ @ Inject
86
+ OptionManager options ;
87
+
88
+ @ Inject
89
+ ResultSetLoader loader ;
78
90
79
91
@ Output ComplexWriter writer ;
80
92
81
93
@ Override
82
94
public void setup () {
83
- jsonReader = new org .apache .drill .exec .vector . complex . fn . JsonReader . Builder ( buffer )
84
- . defaultSchemaPathColumns ( )
85
- . build ( );
95
+ jsonLoaderBuilder = new org .apache .drill .exec .store . easy . json . loader . JsonLoaderImpl . JsonLoaderBuilder ( )
96
+ . resultSetLoader ( loader )
97
+ . standardOptions ( options );
86
98
}
87
99
88
100
@ Override
89
101
public void eval () {
90
102
try {
91
- jsonReader .setSource (in .start , in .end , in .buffer );
92
- jsonReader .write (writer );
93
- buffer = jsonReader .getWorkBuf ();
103
+ jsonLoaderBuilder .fromStream (in .start , in .end , in .buffer );
104
+ org .apache .drill .exec .store .easy .json .loader .JsonLoader jsonLoader = jsonLoaderBuilder .build ();
105
+ loader .startBatch ();
106
+ jsonLoader .readBatch ();
107
+ loader .close ();
108
+
94
109
} catch (Exception e ) {
95
110
throw new org .apache .drill .common .exceptions .DrillRuntimeException ("Error while converting from JSON. " , e );
96
111
}
@@ -101,16 +116,23 @@ public void eval() {
101
116
public static class ConvertFromJsonNullableInput implements DrillSimpleFunc {
102
117
103
118
@ Param NullableVarBinaryHolder in ;
104
- @ Inject DrillBuf buffer ;
105
- @ Workspace org .apache .drill .exec .vector .complex .fn .JsonReader jsonReader ;
119
+
120
+ @ Workspace
121
+ org .apache .drill .exec .store .easy .json .loader .JsonLoaderImpl .JsonLoaderBuilder jsonLoaderBuilder ;
122
+
123
+ @ Inject
124
+ OptionManager options ;
125
+
126
+ @ Inject
127
+ ResultSetLoader loader ;
106
128
107
129
@ Output ComplexWriter writer ;
108
130
109
131
@ Override
110
132
public void setup () {
111
- jsonReader = new org .apache .drill .exec .vector . complex . fn . JsonReader . Builder ( buffer )
112
- . defaultSchemaPathColumns ( )
113
- . build ( );
133
+ jsonLoaderBuilder = new org .apache .drill .exec .store . easy . json . loader . JsonLoaderImpl . JsonLoaderBuilder ( )
134
+ . resultSetLoader ( loader )
135
+ . standardOptions ( options );
114
136
}
115
137
116
138
@ Override
@@ -124,9 +146,11 @@ public void eval() {
124
146
}
125
147
126
148
try {
127
- jsonReader .setSource (in .start , in .end , in .buffer );
128
- jsonReader .write (writer );
129
- buffer = jsonReader .getWorkBuf ();
149
+ jsonLoaderBuilder .fromStream (in .start , in .end , in .buffer );
150
+ org .apache .drill .exec .store .easy .json .loader .JsonLoader jsonLoader = jsonLoaderBuilder .build ();
151
+ loader .startBatch ();
152
+ jsonLoader .readBatch ();
153
+ loader .close ();
130
154
} catch (Exception e ) {
131
155
throw new org .apache .drill .common .exceptions .DrillRuntimeException ("Error while converting from JSON. " , e );
132
156
}
@@ -137,16 +161,23 @@ public void eval() {
137
161
public static class ConvertFromJsonVarcharNullableInput implements DrillSimpleFunc {
138
162
139
163
@ Param NullableVarCharHolder in ;
140
- @ Inject DrillBuf buffer ;
141
- @ Workspace org .apache .drill .exec .vector .complex .fn .JsonReader jsonReader ;
164
+
165
+ @ Workspace
166
+ org .apache .drill .exec .store .easy .json .loader .JsonLoaderImpl .JsonLoaderBuilder jsonLoaderBuilder ;
167
+
168
+ @ Inject
169
+ OptionManager options ;
170
+
171
+ @ Inject
172
+ ResultSetLoader loader ;
142
173
143
174
@ Output ComplexWriter writer ;
144
175
145
176
@ Override
146
177
public void setup () {
147
- jsonReader = new org .apache .drill .exec .vector . complex . fn . JsonReader . Builder ( buffer )
148
- . defaultSchemaPathColumns ( )
149
- . build ( );
178
+ jsonLoaderBuilder = new org .apache .drill .exec .store . easy . json . loader . JsonLoaderImpl . JsonLoaderBuilder ( )
179
+ . resultSetLoader ( loader )
180
+ . standardOptions ( options );
150
181
}
151
182
152
183
@ Override
@@ -160,9 +191,11 @@ public void eval() {
160
191
}
161
192
162
193
try {
163
- jsonReader .setSource (in .start , in .end , in .buffer );
164
- jsonReader .write (writer );
165
- buffer = jsonReader .getWorkBuf ();
194
+ jsonLoaderBuilder .fromStream (in .start , in .end , in .buffer );
195
+ org .apache .drill .exec .store .easy .json .loader .JsonLoader jsonLoader = jsonLoaderBuilder .build ();
196
+ loader .startBatch ();
197
+ jsonLoader .readBatch ();
198
+ loader .close ();
166
199
} catch (Exception e ) {
167
200
throw new org .apache .drill .common .exceptions .DrillRuntimeException ("Error while converting from JSON. " , e );
168
201
}
0 commit comments