Mercurial > hg > orthanc-databases
comparison Framework/Plugins/IndexBackend.cpp @ 76:a1c6238b26f8 db-changes
new extension implemented for PostgreSQL: GetChildrenMetadata
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 05 Jan 2019 15:51:25 +0100 |
parents | 52c70007bb87 |
children | 2ee166f77501 |
comparison
equal
deleted
inserted
replaced
75:52c70007bb87 | 76:a1c6238b26f8 |
---|---|
1858 countMainDicomTags, mainDicomTags); | 1858 countMainDicomTags, mainDicomTags); |
1859 | 1859 |
1860 ExecuteSetResourcesContentMetadata(GetManager(), countMetadata, metadata); | 1860 ExecuteSetResourcesContentMetadata(GetManager(), countMetadata, metadata); |
1861 } | 1861 } |
1862 #endif | 1862 #endif |
1863 | |
1864 | |
1865 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 | |
1866 // New primitive since Orthanc 1.5.2 | |
1867 void IndexBackend::GetChildrenMetadata(std::list<std::string>& target, | |
1868 int64_t resourceId, | |
1869 int32_t metadata) | |
1870 { | |
1871 DatabaseManager::CachedStatement statement( | |
1872 STATEMENT_FROM_HERE, manager_, | |
1873 "SELECT value FROM Metadata WHERE type=${metadata} AND " | |
1874 "id IN (SELECT internalId FROM Resources WHERE parentId=${id})"); | |
1875 | |
1876 statement.SetReadOnly(true); | |
1877 statement.SetParameterType("id", ValueType_Integer64); | |
1878 statement.SetParameterType("metadata", ValueType_Integer64); | |
1879 | |
1880 Dictionary args; | |
1881 args.SetIntegerValue("id", static_cast<int>(resourceId)); | |
1882 args.SetIntegerValue("metadata", static_cast<int>(metadata)); | |
1883 | |
1884 ReadListOfStrings(target, statement, args); | |
1885 } | |
1886 #endif | |
1863 } | 1887 } |