return list(packages)
def search_by_filename(self, filename, limit=None):
- packages = self._get_packages("""
- SELECT
- DISTINCT ON (packages.name)
- packages.*
- FROM
- package_files
- LEFT JOIN
- packages ON package_files.pkg_id = packages.id
- WHERE
- package_files.path = %s
- ORDER BY
- packages.name,
- packages.build_time DESC
- LIMIT
- %s
- """, filename, limit,
- )
+ if "*" in filename:
+ filename = filename.replace("*", "%")
+
+ packages = self._get_packages("""
+ SELECT
+ DISTINCT ON (packages.name)
+ packages.*
+ FROM
+ package_files
+ LEFT JOIN
+ packages ON package_files.pkg_id = packages.id
+ WHERE
+ package_files.path LIKE %s
+ ORDER BY
+ packages.name,
+ packages.build_time DESC
+ LIMIT
+ %s
+ """, filename, limit,
+ )
+
+ else:
+ packages = self._get_packages("""
+ SELECT
+ DISTINCT ON (packages.name)
+ packages.*
+ FROM
+ package_files
+ LEFT JOIN
+ packages ON package_files.pkg_id = packages.id
+ WHERE
+ package_files.path = %s
+ ORDER BY
+ packages.name,
+ packages.build_time DESC
+ LIMIT
+ %s
+ """, filename, limit,
+ )
return list(packages)