You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ar...@apache.org on 2022/04/22 06:39:53 UTC

[fineract] branch develop updated: Fix for supporting numeric postgres data type in datatables

This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6fcf8ad86 Fix for supporting numeric postgres data type in datatables
6fcf8ad86 is described below

commit 6fcf8ad861ab49e4b9888cbd952e462c81aa9a16
Author: Jose Hernandez <jo...@fintecheando.mx>
AuthorDate: Thu Apr 21 17:15:59 2022 -0500

    Fix for supporting numeric postgres data type in datatables
---
 .../dataqueries/data/ResultsetColumnHeaderData.java      |  3 ++-
 .../service/ReadWriteNonCoreDataServiceImpl.java         | 16 ++++++++++------
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
index 68cbc84f5..b8718b584 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
@@ -157,7 +157,8 @@ public final class ResultsetColumnHeaderData implements Serializable {
     }
 
     private boolean isDecimal() {
-        return "decimal".equalsIgnoreCase(this.columnType) || "NEWDECIMAL".equalsIgnoreCase(this.columnType);
+        return "decimal".equalsIgnoreCase(this.columnType) || "NEWDECIMAL".equalsIgnoreCase(this.columnType)
+                || "numeric".equalsIgnoreCase(this.columnType);
         // Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
     }
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
index 2582e0f79..8eef93a43 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
@@ -149,18 +149,22 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
 
     @Override
     public List<DatatableData> retrieveDatatableNames(final String appTable) {
-
+        Object[] params = new Object[] { this.context.authenticatedUser().getId() };
         // PERMITTED datatables
-        final String sql = "select application_table_name, registered_table_name, entity_subtype " + " from x_registered_table "
-                + " where exists" + " (select 'f'" + " from m_appuser_role ur " + " join m_role r on r.id = ur.role_id"
+        String sql = "select application_table_name, registered_table_name, entity_subtype " + " from x_registered_table " + " where exists"
+                + " (select 'f'" + " from m_appuser_role ur " + " join m_role r on r.id = ur.role_id"
                 + " left join m_role_permission rp on rp.role_id = r.id" + " left join m_permission p on p.id = rp.permission_id"
                 + " where ur.appuser_id = ? and (p.code in ('ALL_FUNCTIONS', 'ALL_FUNCTIONS_READ') or p.code = concat"
-                + "('READ_', registered_table_name))) "
-                + " and application_table_name like ? order by application_table_name, registered_table_name";
+                + "('READ_', registered_table_name))) ";
+        if (appTable != null) {
+            sql = sql + " and application_table_name like ? ";
+            params = new Object[] { this.context.authenticatedUser().getId(), appTable };
+        }
+        sql = sql + " order by application_table_name, registered_table_name";
 
         final List<DatatableData> datatables = new ArrayList<>();
 
-        final SqlRowSet rowSet = jdbcTemplate.queryForRowSet(sql, new Object[] { this.context.authenticatedUser().getId(), appTable }); // NOSONAR
+        final SqlRowSet rowSet = jdbcTemplate.queryForRowSet(sql, params); // NOSONAR
         while (rowSet.next()) {
             final String appTableName = rowSet.getString("application_table_name");
             final String registeredDatatableName = rowSet.getString("registered_table_name");