Loading src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java +1 −11 Original line number Diff line number Diff line Loading @@ -159,16 +159,6 @@ public class NodeDAO { return newNode; } /*private String getAllLevelsChildrenSelector(String path) { String select = "(SELECT path FROM node WHERE node_id = (SELECT node_id FROM node_vos_path WHERE vos_path = ?))::varchar || '"; if (!"/".equals(path)) { select += "."; } select += "*{1,}'"; return select; }*/ private Node getNodeFromResultSet(ResultSet rs) throws SQLException { Node node = NodeUtils.getTypedNode(rs.getString("type")); Loading Loading @@ -291,7 +281,7 @@ public class NodeDAO { } public void renameNode(Long nodeId, String name) { String sql = "UPDATE node SET name = ?\n" String sql = "UPDATE node SET name = ?\n, os_name = COALESCE(os_name, name)" + "WHERE path ~ ('*.' || ?)::lquery"; jdbcTemplate.update(conn -> { Loading src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ */ package it.inaf.oats.vospace.persistence; import it.inaf.oats.vospace.URIUtils; import it.inaf.oats.vospace.datamodel.NodeProperties; import it.inaf.oats.vospace.exception.InternalFaultException; import it.inaf.oats.vospace.persistence.NodeDAO.ShortNodeDescriptor; Loading Loading @@ -239,14 +238,23 @@ public class NodeDAOTest { Optional<Long> rootId = dao.getNodeId(oldPath); assertTrue(rootId.isPresent()); assertEquals("f1", dao.getNodeOsName(oldPath)); dao.renameNode(rootId.get(), "f_pippo"); assertTrue(dao.listNode(oldPath).isEmpty()); assertTrue(dao.listNode(oldPathChild).isEmpty()); // After the first rename the os_name column has to be equal to the old name // to avoid issues with renaming folders where some files have been uploaded assertEquals("f1", dao.getNodeOsName(newPath)); assertTrue(dao.listNode(newPath).isPresent()); assertTrue(dao.listNode(newPathChild).isPresent()); // The second rename mustn't change the os_name column dao.renameNode(rootId.get(), "f_pippo_second_rename"); assertEquals("f1", dao.getNodeOsName("/test1/f_pippo_second_rename")); } @Test Loading Loading
src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java +1 −11 Original line number Diff line number Diff line Loading @@ -159,16 +159,6 @@ public class NodeDAO { return newNode; } /*private String getAllLevelsChildrenSelector(String path) { String select = "(SELECT path FROM node WHERE node_id = (SELECT node_id FROM node_vos_path WHERE vos_path = ?))::varchar || '"; if (!"/".equals(path)) { select += "."; } select += "*{1,}'"; return select; }*/ private Node getNodeFromResultSet(ResultSet rs) throws SQLException { Node node = NodeUtils.getTypedNode(rs.getString("type")); Loading Loading @@ -291,7 +281,7 @@ public class NodeDAO { } public void renameNode(Long nodeId, String name) { String sql = "UPDATE node SET name = ?\n" String sql = "UPDATE node SET name = ?\n, os_name = COALESCE(os_name, name)" + "WHERE path ~ ('*.' || ?)::lquery"; jdbcTemplate.update(conn -> { Loading
src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ */ package it.inaf.oats.vospace.persistence; import it.inaf.oats.vospace.URIUtils; import it.inaf.oats.vospace.datamodel.NodeProperties; import it.inaf.oats.vospace.exception.InternalFaultException; import it.inaf.oats.vospace.persistence.NodeDAO.ShortNodeDescriptor; Loading Loading @@ -239,14 +238,23 @@ public class NodeDAOTest { Optional<Long> rootId = dao.getNodeId(oldPath); assertTrue(rootId.isPresent()); assertEquals("f1", dao.getNodeOsName(oldPath)); dao.renameNode(rootId.get(), "f_pippo"); assertTrue(dao.listNode(oldPath).isEmpty()); assertTrue(dao.listNode(oldPathChild).isEmpty()); // After the first rename the os_name column has to be equal to the old name // to avoid issues with renaming folders where some files have been uploaded assertEquals("f1", dao.getNodeOsName(newPath)); assertTrue(dao.listNode(newPath).isPresent()); assertTrue(dao.listNode(newPathChild).isPresent()); // The second rename mustn't change the os_name column dao.renameNode(rootId.get(), "f_pippo_second_rename"); assertEquals("f1", dao.getNodeOsName("/test1/f_pippo_second_rename")); } @Test Loading