From bd5f95e9640e83343c204071a35fbf958c47ff0c Mon Sep 17 00:00:00 2001 From: "Yi (Alan) Wang" Date: Tue, 28 Nov 2017 10:28:33 -0800 Subject: [PATCH] Fix duplicate fields if having multiple comments (#884) --- .../main/java/wherehows/dao/view/DatasetViewDao.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/wherehows-dao/src/main/java/wherehows/dao/view/DatasetViewDao.java b/wherehows-dao/src/main/java/wherehows/dao/view/DatasetViewDao.java index 28c9098f4d..981ad78fd0 100644 --- a/wherehows-dao/src/main/java/wherehows/dao/view/DatasetViewDao.java +++ b/wherehows-dao/src/main/java/wherehows/dao/view/DatasetViewDao.java @@ -39,14 +39,17 @@ public class DatasetViewDao extends BaseViewDao { } private static final String GET_DATASET_COLUMNS_BY_DATASET_ID = - "select dfd.field_id, dfd.sort_id, dfd.parent_sort_id, dfd.parent_path, dfd.field_name, dfd.data_type, " + "SELECT dfd.field_id, dfd.sort_id, dfd.parent_sort_id, dfd.parent_path, dfd.field_name, dfd.data_type, " + "dfd.is_nullable as nullable, dfd.is_indexed as indexed, dfd.is_partitioned as partitioned, " + "dfd.is_distributed as distributed, c.comment, " + "( SELECT count(*) FROM dict_dataset_field_comment ddfc " + "WHERE ddfc.dataset_id = dfd.dataset_id AND ddfc.field_id = dfd.field_id ) as comment_count " - + "FROM dict_field_detail dfd LEFT JOIN dict_dataset_field_comment ddfc ON " - + "(ddfc.field_id = dfd.field_id AND ddfc.is_default = true) LEFT JOIN field_comments c ON " - + "c.id = ddfc.comment_id WHERE dfd.dataset_id = :datasetId ORDER BY dfd.sort_id"; + + "FROM dict_field_detail dfd " + + "LEFT JOIN dict_dataset_field_comment ddfc ON ddfc.field_id = dfd.field_id " + + " AND ddfc.comment_id = (select max(comment_id) from dict_dataset_field_comment " + + " where field_id = dfd.field_id and is_default = true) " + + "LEFT JOIN field_comments c ON c.id = ddfc.comment_id " + + "WHERE dfd.dataset_id = :datasetId ORDER BY dfd.sort_id"; private static final String GET_DATASET_COLUMN_BY_DATASETID_AND_COLUMNID = "SELECT dfd.field_id, dfd.sort_id, dfd.parent_sort_id, dfd.parent_path, dfd.field_name, dfd.data_type, "