From 177488817ddffd9a03c6920ac8f905a670da3967 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Sat, 13 Mar 2021 16:35:13 +0100 Subject: [PATCH] Fix h2 migration Using java source code obviously requires `javac` during migration. --- .../db/migration/h2/V1.21.0__cast_function.sql | 12 +----------- .../docspell/store/impl/h2/CastNumericFun.scala | 12 ++++++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 modules/store/src/main/scala/docspell/store/impl/h2/CastNumericFun.scala diff --git a/modules/store/src/main/resources/db/migration/h2/V1.21.0__cast_function.sql b/modules/store/src/main/resources/db/migration/h2/V1.21.0__cast_function.sql index 146bf3d8..74e1b666 100644 --- a/modules/store/src/main/resources/db/migration/h2/V1.21.0__cast_function.sql +++ b/modules/store/src/main/resources/db/migration/h2/V1.21.0__cast_function.sql @@ -1,12 +1,2 @@ DROP ALIAS IF EXISTS CAST_TO_NUMERIC; -CREATE ALIAS CAST_TO_NUMERIC AS ' -import java.text.*; -import java.math.*; -@CODE -BigDecimal castToNumeric(String s) throws Exception { - try { return new BigDecimal(s); } - catch (Exception e) { - return null; - } -} -' +CREATE ALIAS CAST_TO_NUMERIC FOR "docspell.store.impl.h2.CastNumericFun.castToNumeric"; diff --git a/modules/store/src/main/scala/docspell/store/impl/h2/CastNumericFun.scala b/modules/store/src/main/scala/docspell/store/impl/h2/CastNumericFun.scala new file mode 100644 index 00000000..c35b43e0 --- /dev/null +++ b/modules/store/src/main/scala/docspell/store/impl/h2/CastNumericFun.scala @@ -0,0 +1,12 @@ +package docspell.store.impl.h2 + +import java.math.BigDecimal + +/** This is used from within the H2 database! */ +object CastNumericFun { + def castToNumeric(str: String): BigDecimal = + try new BigDecimal(str) + catch { + case _: Throwable => null + } +}