From 49799b09bb65122bec944da3b1f07c7840cacc51 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 16 Jan 2024 17:11:23 +0100
Subject: [PATCH] Hotfix the alias saving

---
 .../java/at/tuwien/mapper/QueryMapper.java     |  2 +-
 .../tuwien/service/impl/QueryServiceImpl.java  | 18 +++++++++---------
 dbrepo-ui/components/query/SubsetList.vue      |  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/QueryMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/QueryMapper.java
index 5b3aca08aa..4c232eafce 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/QueryMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/QueryMapper.java
@@ -744,7 +744,7 @@ public interface QueryMapper {
             }
             final TableColumn aliasColumn = optionalColumn.get();
             if (item.getAlias() != null) {
-                aliasColumn.setAlias(item.getAlias().getName());
+                aliasColumn.setAlias(item.getAlias().getName().replace("`", ""));
             }
             log.trace("found column with internal name {} and alias {}", aliasColumn.getInternalName(), aliasColumn.getAlias());
             columns.add(aliasColumn);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/QueryServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/QueryServiceImpl.java
index a27845c75c..70a1e6cc2b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/QueryServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/QueryServiceImpl.java
@@ -140,7 +140,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
             return connection.prepareStatement(statement);
         } catch (SQLException e) {
             log.error("Failed to prepare statement: {}", e.getMessage());
-            throw new QueryMalformedException("Failed to prepare statement", e);
+            throw new QueryMalformedException("Failed to prepare statement: " + e.getMessage(), e);
         }
     }
 
@@ -159,7 +159,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
             return queryMapper.resultListToQueryResultDto(columns, resultSet);
         } catch (SQLException e) {
             log.error("Failed to execute and map time-versioned query: {}", e.getMessage());
-            throw new TableMalformedException("Failed to execute and map time-versioned query", e);
+            throw new TableMalformedException("Failed to execute and map time-versioned query: " + e.getMessage(), e);
         } finally {
             dataSource.close();
         }
@@ -179,7 +179,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
             return queryMapper.resultSetToNumber(resultSet);
         } catch (SQLException e) {
             log.error("Failed to map object: {}", e.getMessage());
-            throw new TableMalformedException("Failed to map object", e);
+            throw new TableMalformedException("Failed to map object: " + e.getMessage(), e);
         } finally {
             dataSource.close();
         }
@@ -188,13 +188,13 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
     @Override
     @Transactional(readOnly = true)
     public QueryResultDto tableFindAll(Long databaseId, Long tableId, Instant timestamp, Long page,
-                                       Long size, Principal principal) throws TableNotFoundException, DatabaseNotFoundException,
-            ImageNotSupportedException, TableMalformedException, QueryMalformedException {
+                                       Long size, Principal principal) throws TableNotFoundException,
+            DatabaseNotFoundException, TableMalformedException, QueryMalformedException, ImageNotSupportedException {
         /* find */
         final Table table = tableService.find(databaseId, tableId);
         /* run query */
-        String statement = queryMapper.tableToRawFindAllQuery(table, timestamp, size, page);
-        return executeNonPersistent(databaseId, statement, table.getColumns());
+        return executeNonPersistent(databaseId, queryMapper.tableToRawFindAllQuery(table, timestamp, size, page),
+                table.getColumns());
     }
 
     @Override
@@ -213,7 +213,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
             return queryMapper.resultListToQueryResultDto(view.getColumns(), resultSet);
         } catch (SQLException e) {
             log.error("Failed to map object: {}", e.getMessage());
-            throw new TableMalformedException("Failed to map object", e);
+            throw new TableMalformedException("Failed to map object: " + e.getMessage(), e);
         } finally {
             dataSource.close();
         }
@@ -258,7 +258,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
             preparedStatement.executeUpdate();
         } catch (SQLException e) {
             log.error("Failed to execute query and/or export file: {}", e.getMessage());
-            throw new FileStorageException("Failed to execute query and/or export file", e);
+            throw new FileStorageException("Failed to execute query and/or export file: " + e.getMessage(), e);
         } finally {
             dataSource.close();
         }
diff --git a/dbrepo-ui/components/query/SubsetList.vue b/dbrepo-ui/components/query/SubsetList.vue
index 032574e66b..9a75e6f142 100644
--- a/dbrepo-ui/components/query/SubsetList.vue
+++ b/dbrepo-ui/components/query/SubsetList.vue
@@ -89,7 +89,7 @@ export default {
           this.queries = queries
         })
         .catch((error) => {
-          if (error.response.status === 405) {
+          if (error.response.status === 403 || error.response.status === 405) {
             this.isAuthorizationError = true
             return
           }
-- 
GitLab