Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Second predicate doesn’t filter results of first #95

Open
pwithnall opened this issue Aug 11, 2021 · 0 comments
Open

Second predicate doesn’t filter results of first #95

pwithnall opened this issue Aug 11, 2021 · 0 comments

Comments

@pwithnall
Copy link
Collaborator

pwithnall commented Aug 11, 2021

If I run the two queries:

languages/lang[(text()='en_GB.UTF-8') and (@percentage>50)]|languages/lang[(text()='en_GB') and (@percentage>50)]|languages/lang[(text()='en.UTF-8') and (@percentage>50)]|languages/lang[(text()='en') and (@percentage>50)]
languages/lang[text()='en_GB.UTF-8'][@percentage>50]|languages/lang[text()='en_GB'][@percentage>50]|languages/lang[text()='en.UTF-8'][@percentage>50]|languages/lang[text()='en'][@percentage>50]

on the XML below, they should return the same results. In the second query, the second predicate should filter the results of the first. However, they don’t: the first query returns no results, whereas the second returns the <lang percentage="100">es</lang> element.

I suspect the unions above and most of the XML in the reproducer below are irrelevant, but I’m filing this quickly while working on something else, so haven’t taken the time to trim the reproducer down.

The straightforward workaround is to combine the predicates (as in query 1), and that’s what I’ll do in gnome-software, so I apologise but I don’t plan to come back to this issue. There should be enough information here for someone else to pick it up at some point though.

XML:

<component type="desktop">
    <id>ar.com.softwareperonista.Rockarrolla.desktop</id>
    <translation type="gettext">rockarrolla</translation>
    <name>Rockarrolla</name>
    <summary>A jukebox-like music player</summary>
    <summary xml:lang="es">Un reproductor de música similar a una rockola</summary>
    <description><p>A simple music player with a jukebox-like UI. It shows the albums and their songs in albums and can be added to the playlist with a coin-like system.</p></description>
    <description xml:lang="es"><p>Un reproductor de música con una interfaz similar a una rockola. Muestra los álbumes, las canciones de los álbumes y pueden ser agregadas a la lista de reproducción mediante un sistema similar al de las fichas de una rockola.</p></description>
    <icon type="cached" height="64" width="64">ar.com.softwareperonista.Rockarrolla.png</icon>
    <icon type="cached" height="128" width="128">ar.com.softwareperonista.Rockarrolla.png</icon>
   <categories>
      <category>Audio</category>
      <category>AudioVideo</category>
      <category>Jukebox</category>
      <category>Music</category>
    </categories>
    <kudos>
      <kudo>HiDpiIcon</kudo>
    </kudos>
    <project_license>GPL-3.0</project_license>
    <url type="homepage">https://gitlab.com/softwareperonista/rockarrolla</url>
    <screenshots>
      <screenshot type="default">
        <image type="source">https://gitlab.com/softwareperonista/rockarrolla/-/raw/master/screenshots/main-interface.png</image>
        <image type="thumbnail" height="351" width="624">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/624x351/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="702" width="1248">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1248x702/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
       <image type="thumbnail" height="63" width="112">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/112x63/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="126" width="224">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/224x126/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="423" width="752">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/752x423/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
        <image type="thumbnail" height="846" width="1504">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1504x846/ar.com.softwareperonista.Rockarrolla-1a8555201ce6fc65aab81df975848fb6.png</image>
      </screenshot>
      <screenshot>
        <image type="source">https://gitlab.com/softwareperonista/rockarrolla/-/raw/master/screenshots/stand-by.png</image>
        <image type="thumbnail" height="351" width="624">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/624x351/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="702" width="1248">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1248x702/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
       <image type="thumbnail" height="63" width="112">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/112x63/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="126" width="224">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/224x126/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="423" width="752">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/752x423/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
        <image type="thumbnail" height="846" width="1504">https://dl.flathub.org/repo/screenshots/ar.com.softwareperonista.Rockarrolla-stable/1504x846/ar.com.softwareperonista.Rockarrolla-221b531c4dc5481dc7b01e5c21c693ca.png</image>
      </screenshot>
    </screenshots>
    <content_rating type="oars-1.1"/>
    <releases>
      <release timestamp="1625616000" version="1.0"/>
    </releases>
    <launchable type="desktop-id">ar.com.softwareperonista.Rockarrolla.desktop</launchable>
    <languages>
      <lang percentage="100">es</lang>
    </languages>
    <bundle type="flatpak" runtime="org.gnome.Platform/x86_64/40" sdk="org.gnome.Sdk/x86_64/40">app/ar.com.softwareperonista.Rockarrolla/x86_64/stable</bundle>
  </component>
gnomesysadmins pushed a commit to GNOME/gnome-software that referenced this issue Aug 13, 2021
Due to a bug in libxmlb (I’m currently on version 0.3.3), using two
predicates sequentially doesn’t seem to work. Work around that by
combining the predicates into a single one with an `and` operator.

hughsie/libxmlb#95

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant