package org.onap.vnfsdk.marketplace.db.impl;
 
 import java.util.List;
+import java.util.Map;
 
 import javax.persistence.PersistenceException;
 
         return csars;
     }
 
+    @Override
+    public List<PackageData> getPackageDataSubset(Map<String, String> paramsMap) {
+        SqlSession session = sqlSessionFactory.openSession();
+        List<PackageData> csars = null;
+        try {
+            IMarketplaceMapper mapper = session.getMapper(IMarketplaceMapper.class);
+            csars = mapper.getPackageDataSubset(paramsMap);
+            session.commit();
+        } catch(PersistenceException e) {
+            LOGGER.error("Exception caught {}", e);
+        } finally {
+            session.close();
+        }
+        return csars;
+    }
+
     /**
      * saving the package data object to the DB using the mybatis.
      * <br/>
 
 package org.onap.vnfsdk.marketplace.db.inf;
 
 import java.util.List;
+import java.util.Map;
 
 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
 
 
     List<PackageData> getPackageData(String csarID);
 
+    List<PackageData> getPackageDataSubset(Map<String, String> paramsMap);
+
        void deletePackageData(String csarId);  
           
        void updatePackageData(PackageData oPackageData);
 
 package org.onap.vnfsdk.marketplace.db.mapper;
 
 import java.util.List;
+import java.util.Map;
 
 import org.onap.vnfsdk.marketplace.db.entity.PackageData;
 
     
     List<PackageData> getPackageData(String csarId);
 
+    List<PackageData> getPackageDataSubset(Map<String, String> paramsMap);
+
        void deletePackageData(String csarId);
        
        void updatePackageData(PackageData oPackageData);
 
       throws MarketplaceResourceException {
     logger.info("BaseHandler:start query data .info:" + MarketplaceDbUtil.objectToString(queryParam));
     IMarketplaceDao dao = new MarketplaceDaoImpl();
-    List<PackageData> datas = dao.getAllPackageData();
+    List<PackageData> datas = dao.getPackageDataSubset(queryParam);
     logger.info("BaseHandler: query data end .info:" + MarketplaceDbUtil.objectToString(datas));
     return datas;
   }
 
        WHERE 
        CSARID=#{csarId}
     </select>
-       
+
+    <select id="getPackageDataSubset" resultType="org.onap.vnfsdk.marketplace.db.entity.PackageData" parameterType="java.util.Map">
+        SELECT * FROM CSAR_PACKAGE_TABLE
+        <where>
+            <if test="name != null">
+                NAME like #{name}
+            </if>
+            <if test="version != null">
+                AND VERSION like #{version}
+            </if>
+            <if test="deletionPending != null">
+                AND DELETIONPENDING like #{deletionPending}
+            </if>
+            <if test="type != null">
+                AND TYPE like #{type}
+            </if>
+            <if test="provider != null">
+                AND PROVIDER like #{provider}
+            </if>
+        </where>
+    </select>
+
        <insert id="savePackageData" parameterType="org.onap.vnfsdk.marketplace.db.entity.PackageData">
         INSERT INTO
         CSAR_PACKAGE_TABLE
 
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
         new MockUp<MarketplaceDaoImpl>() {
 
             @Mock
-            public List<PackageData> getAllPackageData() {
+            public List<PackageData> getPackageDataSubset(Map<String, String> queryParam) {
                 return new ArrayList<PackageData>();
             }
         };