Skip to content

Commit 1a5db3b

Browse files
committed
HHH-18892 add hex() function
1 parent c73a12c commit 1a5db3b

File tree

14 files changed

+38
-1
lines changed

14 files changed

+38
-1
lines changed

documentation/src/main/asciidoc/querylanguage/Expressions.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,7 @@ Naturally, there are a good number of functions for working with strings.
841841
| `replace()` | Replace every occurrence of a pattern in a string | `replace(str, patt, rep)` | ✔ / ✖
842842
| `repeat()` | Concatenate a string with itself multiple times | `repeat(str, times)` | ✖ / ✖
843843
| `collate()` | Select a collation | `collate(p.name as collation)` | ✖ / ✖
844+
| `hex()` | Encode a binary value as a hexadecimal string | `hex(image.bytes)` | ✖ / ✖
844845
|===
845846

846847
Let's take a closer look at just some of these.

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
503503
);
504504
functionContributions.getFunctionRegistry().registerAlternateKey( "truncate", "trunc" );
505505

506+
functionFactory.hex( "encode(?1, 'hex')" );
506507
functionFactory.sha( "digest(?1, 'sha256')" );
507508
functionFactory.md5( "digest(?1, 'md5')" );
508509
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
453453
functionFactory.unnest_db2( getMaximumSeriesSize() );
454454
functionFactory.generateSeries_recursive( getMaximumSeriesSize(), false, true );
455455

456+
functionFactory.hex( "hex(?1)" );
456457
functionFactory.sha( "hash(?1, 2)" );
457458
functionFactory.md5( "hash(?1, 0)" );
458459
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
369369
functionFactory.generateSeries_h2( getMaximumSeriesSize() );
370370
functionFactory.jsonTable_h2( getMaximumArraySize() );
371371

372+
functionFactory.hex( "rawtohex(?1)" );
372373
functionFactory.sha( "hash('SHA-256', ?1)" );
373374
functionFactory.md5( "hash('MD5', ?1)" );
374375
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
518518
// functionFactory.xmlextract();
519519
functionFactory.generateSeries_hana( getMaximumSeriesSize() );
520520

521+
functionFactory.hex( "to_hex(?1)" );
521522
functionFactory.sha( "hash_sha256(?1)" );
522523
functionFactory.md5( "hash_md5(?1)" );
523524
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
222222
functionContributions.getTypeConfiguration(),
223223
SqlAstNodeRenderingMode.NO_PLAIN_PARAMETER
224224
) );
225+
226+
functionFactory.hex( "hex(?1)" );
225227
}
226228

227229
/**

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
687687
functionFactory.generateSeries_recursive( getMaximumSeriesSize(), false, false );
688688
}
689689

690+
functionFactory.hex( "hex(?1)" );
690691
functionFactory.sha( "unhex(sha2(?1, 256))" );
691692
functionFactory.md5( "unhex(md5(?1))" );
692693
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
441441
functionFactory.generateSeries_recursive( getMaximumSeriesSize(), true, false );
442442
functionFactory.jsonTable_oracle();
443443

444+
functionFactory.hex( "rawtohex(?1)" );
444445
functionFactory.sha( "standard_hash(?1, 'SHA256')" );
445446
functionFactory.md5( "standard_hash(?1, 'MD5')" );
446447
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
690690
}
691691
functionFactory.generateSeries( null, "ordinality", false );
692692

693+
functionFactory.hex( "encode(?1, 'hex')" );
693694
functionFactory.sha( "sha256(?1)" );
694695
functionFactory.md5( "decode(md5(?1), 'hex')" );
695696
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,7 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio
488488
}
489489
}
490490

491+
functionFactory.hex( "convert(varchar(MAX), ?1, 2)" );
491492
functionFactory.sha( "hashbytes('SHA2_256', ?1)" );
492493
functionFactory.md5( "hashbytes('MD5', ?1)" );
493494
}

0 commit comments

Comments
 (0)