5353import java .util .stream .Collectors ;
5454
5555import static org .apache .hudi .integ .testsuite .configuration .DeltaConfig .Config .CONFIG_NAME ;
56+ import static org .apache .hudi .integ .testsuite .configuration .DeltaConfig .Config .HIVE_PROPERTIES ;
57+ import static org .apache .hudi .integ .testsuite .configuration .DeltaConfig .Config .HIVE_QUERIES ;
5658import static org .apache .hudi .integ .testsuite .configuration .DeltaConfig .Config .NO_DEPENDENCY_VALUE ;
59+ import static org .apache .hudi .integ .testsuite .configuration .DeltaConfig .Config .PRESTO_PROPERTIES ;
60+ import static org .apache .hudi .integ .testsuite .configuration .DeltaConfig .Config .PRESTO_QUERIES ;
5761
5862/**
5963 * Utility class to SerDe workflow dag.
@@ -172,7 +176,8 @@ private static DagNode convertJsonToDagNode(JsonNode node, String type, String n
172176 DeltaConfig .Config config = DeltaConfig .Config .newBuilder ().withConfigsMap (convertJsonNodeToMap (node ))
173177 .withName (name ).build ();
174178 return (DagNode ) ReflectionUtils .loadClass (generateFQN (type ), config );
175- } catch (ClassNotFoundException e ) {
179+ }
180+ catch (ClassNotFoundException e ) {
176181 throw new RuntimeException (e );
177182 }
178183 }
@@ -192,11 +197,17 @@ private static Map<String, Object> convertJsonNodeToMap(JsonNode node) {
192197 while (itr .hasNext ()) {
193198 Entry <String , JsonNode > entry = itr .next ();
194199 switch (entry .getKey ()) {
195- case DeltaConfig .Config .HIVE_QUERIES :
196- configsMap .put (DeltaConfig .Config .HIVE_QUERIES , getHiveQueries (entry ));
200+ case HIVE_QUERIES :
201+ configsMap .put (HIVE_QUERIES , getQueries (entry ));
202+ break ;
203+ case HIVE_PROPERTIES :
204+ configsMap .put (HIVE_PROPERTIES , getQuerySessionProperties (entry ));
197205 break ;
198- case DeltaConfig .Config .HIVE_PROPERTIES :
199- configsMap .put (DeltaConfig .Config .HIVE_PROPERTIES , getProperties (entry ));
206+ case PRESTO_QUERIES :
207+ configsMap .put (PRESTO_QUERIES , getQueries (entry ));
208+ break ;
209+ case PRESTO_PROPERTIES :
210+ configsMap .put (PRESTO_PROPERTIES , getQuerySessionProperties (entry ));
200211 break ;
201212 default :
202213 configsMap .put (entry .getKey (), getValue (entry .getValue ()));
@@ -206,25 +217,27 @@ private static Map<String, Object> convertJsonNodeToMap(JsonNode node) {
206217 return configsMap ;
207218 }
208219
209- private static List <Pair <String , Integer >> getHiveQueries (Entry <String , JsonNode > entry ) {
220+ private static List <Pair <String , Integer >> getQueries (Entry <String , JsonNode > entry ) {
210221 List <Pair <String , Integer >> queries = new ArrayList <>();
211222 try {
212223 List <JsonNode > flattened = new ArrayList <>();
213224 flattened .add (entry .getValue ());
214- queries = (List <Pair <String , Integer >>)getHiveQueryMapper ().readValue (flattened .toString (), List .class );
215- } catch (Exception e ) {
225+ queries = (List <Pair <String , Integer >>) getQueryMapper ().readValue (flattened .toString (), List .class );
226+ }
227+ catch (Exception e ) {
216228 e .printStackTrace ();
217229 }
218230 return queries ;
219231 }
220232
221- private static List <String > getProperties (Entry <String , JsonNode > entry ) {
233+ private static List <String > getQuerySessionProperties (Entry <String , JsonNode > entry ) {
222234 List <String > properties = new ArrayList <>();
223235 try {
224236 List <JsonNode > flattened = new ArrayList <>();
225237 flattened .add (entry .getValue ());
226- properties = (List <String >)getHivePropertyMapper ().readValue (flattened .toString (), List .class );
227- } catch (Exception e ) {
238+ properties = (List <String >) getQueryEnginePropertyMapper ().readValue (flattened .toString (), List .class );
239+ }
240+ catch (Exception e ) {
228241 e .printStackTrace ();
229242 }
230243 return properties ;
@@ -233,15 +246,20 @@ private static List<String> getProperties(Entry<String, JsonNode> entry) {
233246 private static Object getValue (JsonNode node ) {
234247 if (node .isInt ()) {
235248 return node .asInt ();
236- } else if (node .isLong ()) {
249+ }
250+ else if (node .isLong ()) {
237251 return node .asLong ();
238- } else if (node .isShort ()) {
252+ }
253+ else if (node .isShort ()) {
239254 return node .asInt ();
240- } else if (node .isBoolean ()) {
255+ }
256+ else if (node .isBoolean ()) {
241257 return node .asBoolean ();
242- } else if (node .isDouble ()) {
258+ }
259+ else if (node .isDouble ()) {
243260 return node .asDouble ();
244- } else if (node .isFloat ()) {
261+ }
262+ else if (node .isFloat ()) {
245263 return node .asDouble ();
246264 }
247265 return node .textValue ();
@@ -254,13 +272,20 @@ private static JsonNode createJsonNode(DagNode node, String type) throws IOExcep
254272 while (itr .hasNext ()) {
255273 Entry <String , JsonNode > entry = itr .next ();
256274 switch (entry .getKey ()) {
257- case DeltaConfig .Config .HIVE_QUERIES :
258- ((ObjectNode ) configNode ).put (DeltaConfig .Config .HIVE_QUERIES ,
259- MAPPER .readTree (getHiveQueryMapper ().writeValueAsString (node .getConfig ().getHiveQueries ())));
275+ case HIVE_QUERIES :
276+ ((ObjectNode ) configNode ).put (HIVE_QUERIES ,
277+ MAPPER .readTree (getQueryMapper ().writeValueAsString (node .getConfig ().getHiveQueries ())));
278+ break ;
279+ case HIVE_PROPERTIES :
280+ ((ObjectNode ) configNode ).put (HIVE_PROPERTIES ,
281+ MAPPER .readTree (getQueryEnginePropertyMapper ().writeValueAsString (node .getConfig ().getHiveProperties ())));
282+ case PRESTO_QUERIES :
283+ ((ObjectNode ) configNode ).put (PRESTO_QUERIES ,
284+ MAPPER .readTree (getQueryMapper ().writeValueAsString (node .getConfig ().getHiveQueries ())));
260285 break ;
261- case DeltaConfig . Config . HIVE_PROPERTIES :
262- ((ObjectNode ) configNode ).put (DeltaConfig . Config . HIVE_PROPERTIES ,
263- MAPPER .readTree (getHivePropertyMapper ().writeValueAsString (node .getConfig ().getHiveProperties ())));
286+ case PRESTO_PROPERTIES :
287+ ((ObjectNode ) configNode ).put (PRESTO_PROPERTIES ,
288+ MAPPER .readTree (getQueryEnginePropertyMapper ().writeValueAsString (node .getConfig ().getHiveProperties ())));
264289 break ;
265290 default :
266291 break ;
@@ -293,21 +318,22 @@ public static String toString(InputStream inputStream) throws IOException {
293318 return result .toString ("utf-8" );
294319 }
295320
296- private static ObjectMapper getHiveQueryMapper () {
321+ private static ObjectMapper getQueryMapper () {
297322 SimpleModule module = new SimpleModule ();
298323 ObjectMapper queryMapper = new ObjectMapper ();
299- module .addSerializer (List .class , new HiveQuerySerializer ());
300- module .addDeserializer (List .class , new HiveQueryDeserializer ());
324+ module .addSerializer (List .class , new QuerySerializer ());
325+ module .addDeserializer (List .class , new QueryDeserializer ());
301326 queryMapper .registerModule (module );
302327 return queryMapper ;
303328 }
304329
305- private static final class HiveQuerySerializer extends JsonSerializer <List > {
330+ private static final class QuerySerializer extends JsonSerializer <List > {
306331 Integer index = 0 ;
332+
307333 @ Override
308334 public void serialize (List pairs , JsonGenerator gen , SerializerProvider serializers ) throws IOException {
309335 gen .writeStartObject ();
310- for (Pair pair : (List <Pair >)pairs ) {
336+ for (Pair pair : (List <Pair >) pairs ) {
311337 gen .writeStringField ("query" + index , pair .getLeft ().toString ());
312338 gen .writeNumberField ("result" + index , Integer .parseInt (pair .getRight ().toString ()));
313339 index ++;
@@ -316,7 +342,7 @@ public void serialize(List pairs, JsonGenerator gen, SerializerProvider serializ
316342 }
317343 }
318344
319- private static final class HiveQueryDeserializer extends JsonDeserializer <List > {
345+ private static final class QueryDeserializer extends JsonDeserializer <List > {
320346 @ Override
321347 public List deserialize (JsonParser parser , DeserializationContext context ) throws IOException {
322348 List <Pair <String , Integer >> pairs = new ArrayList <>();
@@ -334,7 +360,8 @@ public List deserialize(JsonParser parser, DeserializationContext context) throw
334360
335361 if (fieldName .contains ("query" )) {
336362 query = parser .getValueAsString ();
337- } else if (fieldName .contains ("result" )) {
363+ }
364+ else if (fieldName .contains ("result" )) {
338365 result = parser .getValueAsInt ();
339366 pairs .add (Pair .of (query , result ));
340367 }
@@ -344,29 +371,30 @@ public List deserialize(JsonParser parser, DeserializationContext context) throw
344371 }
345372 }
346373
347- private static ObjectMapper getHivePropertyMapper () {
374+ private static ObjectMapper getQueryEnginePropertyMapper () {
348375 SimpleModule module = new SimpleModule ();
349376 ObjectMapper propMapper = new ObjectMapper ();
350- module .addSerializer (List .class , new HivePropertySerializer ());
351- module .addDeserializer (List .class , new HivePropertyDeserializer ());
377+ module .addSerializer (List .class , new QueryEnginePropertySerializer ());
378+ module .addDeserializer (List .class , new QueryEnginePropertyDeserializer ());
352379 propMapper .registerModule (module );
353380 return propMapper ;
354381 }
355382
356- private static final class HivePropertySerializer extends JsonSerializer <List > {
383+ private static final class QueryEnginePropertySerializer extends JsonSerializer <List > {
357384 Integer index = 0 ;
385+
358386 @ Override
359387 public void serialize (List props , JsonGenerator gen , SerializerProvider serializers ) throws IOException {
360388 gen .writeStartObject ();
361- for (String prop : (List <String >)props ) {
389+ for (String prop : (List <String >) props ) {
362390 gen .writeStringField ("prop" + index , prop );
363391 index ++;
364392 }
365393 gen .writeEndObject ();
366394 }
367395 }
368396
369- private static final class HivePropertyDeserializer extends JsonDeserializer <List > {
397+ private static final class QueryEnginePropertyDeserializer extends JsonDeserializer <List > {
370398 @ Override
371399 public List deserialize (JsonParser parser , DeserializationContext context ) throws IOException {
372400 List <String > props = new ArrayList <>();
0 commit comments