From 44a2d5c4a7860bc58ab01c2364c28795d4d563d0 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Wed, 19 Jun 2024 19:51:17 +0000 Subject: [PATCH] Mapping --- .../service/ViewServiceIntegrationTest.java | 11 ++++++---- .../src/test/resources/init/weather.sql | 2 +- .../java/at/tuwien/mapper/MariaDbMapper.java | 8 ++----- .../main/java/at/tuwien/test/BaseTest.java | 22 ++++++++++--------- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java index eea4d65320..20a769f8ce 100644 --- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java +++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java @@ -86,21 +86,24 @@ public class ViewServiceIntegrationTest extends AbstractUnitTest { assertEquals(VIEW_2_ID, response.getId()); assertNotNull(response.getHeaders()); assertEquals(4, response.getHeaders().size()); - assertEquals(List.of(Map.of("date", 0), Map.of("location", 1), Map.of("mintemp", 2), Map.of("location", 3)), response.getHeaders()); + assertEquals(List.of(Map.of("date", 0), Map.of("loc", 1), Map.of("mintemp", 2), Map.of("rainfall", 3)), response.getHeaders()); assertNotNull(response.getResult()); assertEquals(3, response.getResult().size()); /* row 0 */ assertEquals(Instant.ofEpochSecond(1228089600), response.getResult().get(0).get("date")); - assertEquals("Albury", response.getResult().get(0).get("location")); + assertEquals("Albury", response.getResult().get(0).get("loc")); assertEquals(13.4, response.getResult().get(0).get("mintemp")); + assertEquals(0.6, response.getResult().get(0).get("rainfall")); /* row 1 */ assertEquals(Instant.ofEpochSecond(1228176000), response.getResult().get(1).get("date")); - assertEquals("Albury", response.getResult().get(1).get("location")); + assertEquals("Albury", response.getResult().get(1).get("loc")); assertEquals(7.4, response.getResult().get(1).get("mintemp")); + assertEquals(0.0, response.getResult().get(1).get("rainfall")); /* row 2 */ assertEquals(Instant.ofEpochSecond(1228262400), response.getResult().get(2).get("date")); - assertEquals("Albury", response.getResult().get(2).get("location")); + assertEquals("Albury", response.getResult().get(2).get("loc")); assertEquals(12.9, response.getResult().get(2).get("mintemp")); + assertEquals(0.0, response.getResult().get(2).get("rainfall")); } @Test diff --git a/dbrepo-data-service/rest-service/src/test/resources/init/weather.sql b/dbrepo-data-service/rest-service/src/test/resources/init/weather.sql index 052f23adf8..79755c97bf 100644 --- a/dbrepo-data-service/rest-service/src/test/resources/init/weather.sql +++ b/dbrepo-data-service/rest-service/src/test/resources/init/weather.sql @@ -66,7 +66,7 @@ VALUES ('2022-12-24 17:00:00', 10.0), CREATE VIEW junit2 AS ( -select `date`, `location`, `mintemp`, `rainfall` +select `date`, `location` as loc, `mintemp`, `rainfall` from `weather_aus` where `location` = 'Albury'); diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java index 8b43248271..8cadf146b1 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java @@ -353,12 +353,8 @@ public interface MariaDbMapper { */ default String selectDatasetRawQuery(String databaseName, String tableOrView, List<ColumnDto> columns, Instant timestamp, Long size, Long page) { - final int[] idx = new int[]{0}; - final StringBuilder statement = new StringBuilder("SELECT "); - columns.forEach(column -> statement.append(idx[0]++ > 0 ? "," : "") - .append("`") - .append(column.getInternalName()) - .append("`")); + final StringBuilder statement = new StringBuilder("SELECT ") + .append(String.join(",", columns.stream().map(c -> "`" + c.getInternalName() + "`").toList())); statement.append(" FROM `") .append(databaseName) .append("`.`") diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java index 1b3bd7cd00..b823e1c996 100644 --- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java @@ -4931,13 +4931,13 @@ public abstract class BaseTest { public final static Long VIEW_2_CONTAINER_ID = CONTAINER_1_ID; public final static Long VIEW_2_DATABASE_ID = DATABASE_1_ID; public final static Boolean VIEW_2_PUBLIC = true; - public final static String VIEW_2_QUERY = "select `date`, `location` as loc, `location`, `rainfall`, `mintemp` from `weather_aus` where `location` = 'Albury'"; + public final static String VIEW_2_QUERY = "select `date`, `location` as loc, `mintemp`, `rainfall` from `weather_aus` where `location` = 'Albury'"; public final static String VIEW_2_QUERY_HASH = "987fc946772ffb6d85060262dcb5df419692a1f6772ea995e3dedb53c191e984"; public final static List<ViewColumnDto> VIEW_2_COLUMNS_DTO = List.of( ViewColumnDto.builder() .id(4L) - .name("Date") + .name("date") .internalName("date") .ordinalPosition(1) .columnType(ColumnTypeDto.DATE) @@ -4947,8 +4947,9 @@ public abstract class BaseTest { .build(), ViewColumnDto.builder() .id(5L) - .name("Location") - .internalName("location") + .name("loc") + .internalName("loc") + .alias("loc") .ordinalPosition(2) .columnType(ColumnTypeDto.VARCHAR) .size(255L) @@ -4957,7 +4958,7 @@ public abstract class BaseTest { .build(), ViewColumnDto.builder() .id(6L) - .name("MinTemp") + .name("mintemp") .internalName("mintemp") .ordinalPosition(3) .columnType(ColumnTypeDto.DECIMAL) @@ -4968,11 +4969,12 @@ public abstract class BaseTest { .build(), ViewColumnDto.builder() .id(7L) - .name("Location") - .internalName("location") - .ordinalPosition(2) - .columnType(ColumnTypeDto.VARCHAR) - .size(255L) + .name("rainfall") + .internalName("rainfall") + .ordinalPosition(4) + .columnType(ColumnTypeDto.DECIMAL) + .size(10L) + .d(0L) .isNullAllowed(true) .autoGenerated(false) .build() -- GitLab