@@ -1447,7 +1447,7 @@ public QueryTokenStream visitJsonPassingClause(HqlParser.JsonPassingClauseContex
1447
1447
QueryRendererBuilder builder = QueryRenderer .builder ();
1448
1448
1449
1449
builder .append (QueryTokens .expression (ctx .PASSING ()));
1450
- builder .append (QueryTokenStream .concat (ctx .jsonPassingItem (), this ::visit , TOKEN_COMMA ));
1450
+ builder .append (QueryTokenStream .concat (ctx .aliasedExpressionOrPredicate (), this ::visit , TOKEN_COMMA ));
1451
1451
1452
1452
return builder ;
1453
1453
}
@@ -1482,6 +1482,142 @@ public QueryTokenStream visitJsonTableColumns(HqlParser.JsonTableColumnsContext
1482
1482
return QueryTokenStream .concat (ctx .jsonTableColumn (), this ::visit , TOKEN_COMMA );
1483
1483
}
1484
1484
1485
+ @ Override
1486
+ public QueryTokenStream visitXmlElementFunction (HqlParser .XmlElementFunctionContext ctx ) {
1487
+
1488
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1489
+
1490
+ builder .append (QueryTokens .expression (ctx .NAME ()));
1491
+ builder .append (visit (ctx .identifier ()));
1492
+
1493
+ if (ctx .xmlAttributesFunction () != null ) {
1494
+ builder .append (TOKEN_COMMA );
1495
+ builder .append (visit (ctx .xmlAttributesFunction ()));
1496
+ }
1497
+
1498
+ if (!CollectionUtils .isEmpty (ctx .expressionOrPredicate ())) {
1499
+ builder .append (TOKEN_COMMA );
1500
+ builder .append (QueryTokenStream .concat (ctx .expressionOrPredicate (), this ::visit , TOKEN_COMMA ));
1501
+ }
1502
+
1503
+ return QueryTokenStream .ofFunction (ctx .XMLELEMENT (), builder );
1504
+ }
1505
+
1506
+ @ Override
1507
+ public QueryTokenStream visitXmlAttributesFunction (HqlParser .XmlAttributesFunctionContext ctx ) {
1508
+
1509
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1510
+
1511
+ builder .appendExpression (QueryTokenStream .concat (ctx .aliasedExpressionOrPredicate (), this ::visit , TOKEN_COMMA ));
1512
+
1513
+ return QueryTokenStream .ofFunction (ctx .XMLATTRIBUTES (), builder );
1514
+ }
1515
+
1516
+ @ Override
1517
+ public QueryTokenStream visitXmlForestFunction (HqlParser .XmlForestFunctionContext ctx ) {
1518
+
1519
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1520
+
1521
+ builder .appendExpression (
1522
+ QueryTokenStream .concat (ctx .potentiallyAliasedExpressionOrPredicate (), this ::visit , TOKEN_COMMA ));
1523
+
1524
+ return QueryTokenStream .ofFunction (ctx .XMLFOREST (), builder );
1525
+ }
1526
+
1527
+ @ Override
1528
+ public QueryTokenStream visitXmlPiFunction (HqlParser .XmlPiFunctionContext ctx ) {
1529
+
1530
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1531
+
1532
+ builder .append (QueryTokens .expression (ctx .NAME ()));
1533
+ builder .append (visit (ctx .identifier ()));
1534
+
1535
+ if (ctx .expression () != null ) {
1536
+ builder .append (TOKEN_COMMA );
1537
+ builder .append (visit (ctx .expression ()));
1538
+ }
1539
+
1540
+ return QueryTokenStream .ofFunction (ctx .XMLPI (), builder );
1541
+ }
1542
+
1543
+ @ Override
1544
+ public QueryTokenStream visitXmlQueryFunction (HqlParser .XmlQueryFunctionContext ctx ) {
1545
+
1546
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1547
+
1548
+ builder .appendExpression (visit (ctx .expression (0 )));
1549
+ builder .append (QueryTokens .expression (ctx .PASSING ()));
1550
+ builder .appendExpression (visit (ctx .expression (1 )));
1551
+
1552
+ return QueryTokenStream .ofFunction (ctx .XMLQUERY (), builder );
1553
+ }
1554
+
1555
+ @ Override
1556
+ public QueryTokenStream visitXmlExistsFunction (HqlParser .XmlExistsFunctionContext ctx ) {
1557
+
1558
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1559
+
1560
+ builder .appendExpression (visit (ctx .expression (0 )));
1561
+ builder .append (QueryTokens .expression (ctx .PASSING ()));
1562
+ builder .appendExpression (visit (ctx .expression (1 )));
1563
+
1564
+ return QueryTokenStream .ofFunction (ctx .XMLEXISTS (), builder );
1565
+ }
1566
+
1567
+ @ Override
1568
+ public QueryTokenStream visitXmlAggFunction (HqlParser .XmlAggFunctionContext ctx ) {
1569
+
1570
+ QueryRendererBuilder args = QueryRenderer .builder ();
1571
+
1572
+ args .appendExpression (visit (ctx .expression ()));
1573
+ if (ctx .orderByClause () != null ) {
1574
+ args .appendExpression (visit (ctx .orderByClause ()));
1575
+ }
1576
+
1577
+ QueryTokenStream function = QueryTokenStream .ofFunction (ctx .XMLAGG (), args );
1578
+
1579
+ if (ctx .filterClause () == null && ctx .overClause () == null ) {
1580
+ return function ;
1581
+ }
1582
+
1583
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1584
+ builder .appendExpression (function );
1585
+
1586
+ if (ctx .filterClause () != null ) {
1587
+ builder .appendExpression (visit (ctx .filterClause ()));
1588
+ }
1589
+
1590
+ if (ctx .overClause () != null ) {
1591
+ builder .appendExpression (visit (ctx .overClause ()));
1592
+ }
1593
+
1594
+ return builder ;
1595
+ }
1596
+
1597
+ @ Override
1598
+ public QueryTokenStream visitXmlTableFunction (HqlParser .XmlTableFunctionContext ctx ) {
1599
+
1600
+ QueryRendererBuilder args = QueryRenderer .builder ();
1601
+
1602
+ args .appendExpression (visit (ctx .expression (0 )));
1603
+ args .append (QueryTokens .expression (ctx .PASSING ()));
1604
+ args .appendExpression (visit (ctx .expression (1 )));
1605
+ args .appendExpression (visit (ctx .xmlTableColumnsClause ()));
1606
+
1607
+ return QueryTokenStream .ofFunction (ctx .XMLTABLE (), args );
1608
+ }
1609
+
1610
+ @ Override
1611
+ public QueryTokenStream visitXmlTableColumnsClause (HqlParser .XmlTableColumnsClauseContext ctx ) {
1612
+
1613
+ QueryRendererBuilder builder = QueryRenderer .builder ();
1614
+
1615
+ builder .append (QueryTokens .expression (ctx .COLUMNS ()));
1616
+ builder .append (QueryTokenStream .concat (ctx .xmlTableColumn (), this ::visit , TOKEN_COMMA ));
1617
+
1618
+ return builder ;
1619
+ }
1620
+
1485
1621
@ Override
1486
1622
public QueryTokenStream visitPath (HqlParser .PathContext ctx ) {
1487
1623
return QueryTokenStream .concat (ctx .children , this ::visit , EMPTY_TOKEN );
0 commit comments