Skip to content

Commit 2f5bc10

Browse files
committed
HHH-18497 Add xmlconcat function
1 parent 0189d45 commit 2f5bc10

File tree

26 files changed

+354
-1
lines changed

26 files changed

+354
-1
lines changed

documentation/src/main/asciidoc/userguide/chapters/query/hql/QueryLanguage.adoc

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2173,7 +2173,8 @@ it is necessary to enable the `hibernate.query.hql.xml_functions_enabled` config
21732173
21742174
| `xmlelement()` | Constructs an XML element from arguments
21752175
| `xmlcomment()` | Constructs an XML comment from the single argument
2176-
| `xmlforest()` | Constructs an XML forest from thearguments
2176+
| `xmlforest()` | Constructs an XML forest from the arguments
2177+
| `xmlconcat()` | Concatenates multiple XML fragments to each other
21772178
|===
21782179
21792180
@@ -2250,6 +2251,21 @@ include::{xml-example-dir-hql}/XmlForestTest.java[tags=hql-xmlforest-example]
22502251
22512252
WARNING: SAP HANA, MySQL, MariaDB and HSQLDB do not support this function.
22522253
2254+
[[hql-xmlconcat-function]]
2255+
===== `xmlconcat()`
2256+
2257+
Concatenates multiple XML fragments to each other.
2258+
2259+
[[hql-xmlconcat-example]]
2260+
====
2261+
[source, java, indent=0]
2262+
----
2263+
include::{xml-example-dir-hql}/XmlConcatTest.java[tags=hql-xmlconcat-example]
2264+
----
2265+
====
2266+
2267+
WARNING: SAP HANA, MySQL, MariaDB and HSQLDB do not support this function.
2268+
22532269
[[hql-user-defined-functions]]
22542270
==== Native and user-defined functions
22552271

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/DB2LegacyDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
444444
functionFactory.xmlelement();
445445
functionFactory.xmlcomment();
446446
functionFactory.xmlforest();
447+
functionFactory.xmlconcat();
447448
}
448449

449450
@Override

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
421421
functionFactory.xmlelement_h2();
422422
functionFactory.xmlcomment();
423423
functionFactory.xmlforest_h2();
424+
functionFactory.xmlconcat_h2();
424425
}
425426
else {
426427
functionFactory.listagg_groupConcat();

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/OracleLegacyDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
329329
functionFactory.xmlelement();
330330
functionFactory.xmlcomment();
331331
functionFactory.xmlforest();
332+
functionFactory.xmlconcat();
332333
}
333334

334335
@Override

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/PostgreSQLLegacyDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
672672
functionFactory.xmlelement();
673673
functionFactory.xmlcomment();
674674
functionFactory.xmlforest();
675+
functionFactory.xmlconcat();
675676

676677
if ( getVersion().isSameOrAfter( 9, 4 ) ) {
677678
functionFactory.makeDateTimeTimestamp();

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SQLServerLegacyDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
416416
functionFactory.xmlelement_sqlserver();
417417
functionFactory.xmlcomment_sqlserver();
418418
functionFactory.xmlforest_sqlserver();
419+
functionFactory.xmlconcat_sqlserver();
419420
if ( getVersion().isSameOrAfter( 14 ) ) {
420421
functionFactory.listagg_stringAggWithinGroup( "varchar(max)" );
421422
functionFactory.jsonArrayAgg_sqlserver( getVersion().isSameOrAfter( 16 ) );

hibernate-core/src/main/java/org/hibernate/dialect/DB2Dialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
429429
functionFactory.xmlelement();
430430
functionFactory.xmlcomment();
431431
functionFactory.xmlforest();
432+
functionFactory.xmlconcat();
432433
}
433434

434435
@Override

hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
356356
functionFactory.xmlelement_h2();
357357
functionFactory.xmlcomment();
358358
functionFactory.xmlforest_h2();
359+
functionFactory.xmlconcat_h2();
359360
}
360361

361362
/**

hibernate-core/src/main/java/org/hibernate/dialect/OracleDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
419419
functionFactory.xmlelement();
420420
functionFactory.xmlcomment();
421421
functionFactory.xmlforest();
422+
functionFactory.xmlconcat();
422423
}
423424

424425
@Override

hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQLDialect.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
633633
functionFactory.xmlelement();
634634
functionFactory.xmlcomment();
635635
functionFactory.xmlforest();
636+
functionFactory.xmlconcat();
636637

637638
functionFactory.makeDateTimeTimestamp();
638639
// Note that PostgreSQL doesn't support the OVER clause for ordered set-aggregate functions

0 commit comments

Comments
 (0)