summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml319
-rwxr-xr-x.gitlab-ci/checkout-tracker-miners.sh2
-rw-r--r--docs/design/contentfw-structural-view.dot80
-rw-r--r--docs/design/tracker-miner-fs.diabin6598 -> 0 bytes
-rw-r--r--docs/design/tracker-store.diabin4860 -> 0 bytes
-rw-r--r--docs/design/tracker-structural-view.dot39
-rw-r--r--docs/reference/libtracker-sparql/examples.xml10
-rw-r--r--docs/reference/libtracker-sparql/examples/readonly-example.c43
-rw-r--r--docs/reference/libtracker-sparql/libtracker-sparql.types2
-rw-r--r--docs/tools/ttlresource2xml.c4
-rw-r--r--docs/website/faq.md2
-rw-r--r--docs/website/overview.md4
-rw-r--r--meson.build3
-rw-r--r--src/libtracker-common/tracker-language.c2
-rw-r--r--src/libtracker-common/tracker-term-utils.c2
-rw-r--r--src/libtracker-data/tracker-class.c2
-rw-r--r--src/libtracker-data/tracker-data-manager.c44
-rw-r--r--src/libtracker-data/tracker-data-update.c23
-rw-r--r--src/libtracker-data/tracker-data-update.h4
-rw-r--r--src/libtracker-data/tracker-db-interface-sqlite.c73
-rw-r--r--src/libtracker-data/tracker-db-interface-sqlite.h3
-rw-r--r--src/libtracker-data/tracker-db-manager.h2
-rw-r--r--src/libtracker-data/tracker-namespace.c2
-rw-r--r--src/libtracker-data/tracker-ontology.c2
-rw-r--r--src/libtracker-data/tracker-property.c4
-rw-r--r--src/libtracker-data/tracker-sparql-parser.c4
-rw-r--r--src/libtracker-data/tracker-sparql.c66
-rw-r--r--src/libtracker-data/tracker-turtle-reader.h2
-rw-r--r--src/libtracker-data/tracker-vtab-triples.c2
-rw-r--r--src/libtracker-sparql/tracker-connection.c14
-rw-r--r--src/libtracker-sparql/tracker-cursor.c12
-rw-r--r--src/libtracker-sparql/tracker-endpoint-dbus.c4
-rw-r--r--src/libtracker-sparql/tracker-endpoint-dbus.h2
-rw-r--r--src/libtracker-sparql/tracker-endpoint-http.c2
-rw-r--r--src/libtracker-sparql/tracker-endpoint-http.h2
-rw-r--r--src/libtracker-sparql/tracker-namespace-manager.c4
-rw-r--r--src/libtracker-sparql/tracker-notifier.c1
-rw-r--r--src/libtracker-sparql/tracker-private.h18
-rw-r--r--src/libtracker-sparql/tracker-resource.c68
-rw-r--r--src/libtracker-sparql/tracker-serializer-json.h2
-rw-r--r--src/libtracker-sparql/tracker-serializer-xml.c2
-rw-r--r--src/libtracker-sparql/tracker-serializer-xml.h2
-rw-r--r--src/libtracker-sparql/tracker-serializer.h2
-rw-r--r--src/libtracker-sparql/tracker-statement.c38
-rw-r--r--src/portal/meson.build1
-rw-r--r--src/portal/tracker-portal-endpoint.c1
-rw-r--r--src/portal/tracker-portal.c1
-rw-r--r--src/tracker/meson.build2
-rw-r--r--src/tracker/tracker-sparql.c14
-rw-r--r--tests/functional-tests/ipc/meson.build2
-rw-r--r--tests/functional-tests/meson.build2
-rw-r--r--tests/libtracker-data/datetime/filter-1.out1
-rw-r--r--tests/libtracker-data/datetime/filter-1.rq9
-rw-r--r--tests/libtracker-data/datetime/filter-2.out1
-rw-r--r--tests/libtracker-data/datetime/filter-2.rq8
-rw-r--r--tests/libtracker-data/datetime/filter-3.out2
-rw-r--r--tests/libtracker-data/datetime/filter-3.rq9
-rw-r--r--tests/libtracker-data/datetime/filter-4.out1
-rw-r--r--tests/libtracker-data/datetime/filter-4.rq9
-rw-r--r--tests/libtracker-data/datetime/filter-5.out2
-rw-r--r--tests/libtracker-data/datetime/filter-5.rq9
-rw-r--r--tests/libtracker-data/meson.build2
-rw-r--r--tests/libtracker-data/tracker-sparql-test.c5
-rw-r--r--tests/libtracker-sparql/statement/cast.out1
-rw-r--r--tests/libtracker-sparql/statement/cast.rq6
-rw-r--r--tests/libtracker-sparql/tracker-fd-test.c129
-rw-r--r--tests/libtracker-sparql/tracker-sparql-test.c4
-rw-r--r--tests/libtracker-sparql/tracker-statement-test.c1
68 files changed, 671 insertions, 469 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 05259f6d6..2cb98c926 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,11 @@
-# The container images used in this pipeline are built from this
-# GitLab project: https://gitlab.gnome.org/GNOME/tracker-oci-images
+include:
+ - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/ci-fairy.yml"
+ - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/alpine.yml'
+ - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/fedora.yml'
+ - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/290b79e0e78eab67a83766f4e9691be554fc4afd/templates/ubuntu.yml'
variables:
+ MESON_TEST_TIMEOUT_MULTIPLIER: 3
# These can be used to see verbose log output from the functional-tests.
# See HACKING.md for more information.
TRACKER_DEBUG: ""
@@ -10,25 +14,228 @@ variables:
MESON_TEST_EXTRA_ARGS: ""
stages:
+ - review
+ - prepare
+ - build
- test
- analysis
- website
-.test_template: &test
- stage: test
+.check-template: &check
+ extends:
+ - .fdo.ci-fairy
+ artifacts:
+ expire_in: 1 week
+ paths:
+ - check-junit-report.xml
+ reports:
+ junit: check-junit-report.xml
+
+check-commit-log:
+ variables:
+ GIT_DEPTH: "100"
+ stage: review
+ script:
+ - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
+ then
+ ci-fairy check-commits --junit-xml=check-junit-report.xml ;
+ else
+ echo "Not a merge request" ;
+ fi
+ <<: *check
+
+check-merge-request:
+ variables:
+ GIT_STRATEGY: none
+ stage: review
+ script:
+ - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
+ then
+ ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-junit-report.xml ;
+ else
+ echo "Not a merge request" ;
+ fi
+ <<: *check
+
+.tracker.fedora@common:
+ variables:
+ BASE_TAG: '2021-05-15.9'
+ FDO_UPSTREAM_REPO: GNOME/tracker
+ FDO_DISTRIBUTION_PACKAGES: 'clang clang-analyzer gcovr git libasan libubsan python3-gobject python3-pip umockdev-devel xmlto'
+ FDO_DISTRIBUTION_EXEC: |
+ dnf install -y 'dnf-command(builddep)' &&
+ dnf builddep -y tracker tracker-miners --setopt=install_weak_deps=False &&
+ dnf clean all &&
+ pip3 install beautifulsoup4 mkdocs mkdocs-cinder tap.py meson
+
+.tracker.ubuntu@common:
+ variables:
+ BASE_TAG: '2021-05-15.5'
+ FDO_UPSTREAM_REPO: GNOME/tracker
+ FDO_DISTRIBUTION_PACKAGES: 'python3-tap umockdev libumockdev-dev upower asciidoc-base git'
+ FDO_DISTRIBUTION_EXEC: |
+ export DEBIAN_FRONTEND=noninteractive &&
+ sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list &&
+ apt-get -yq update && apt-get -yq upgrade &&
+ apt-get -yq build-dep tracker tracker-miners
+
+.tracker.alpine@common:
+ variables:
+ BASE_TAG: '2021-05-15.5'
+ FDO_UPSTREAM_REPO: GNOME/tracker
+ FDO_DISTRIBUTION_PACKAGES: 'alpine-sdk asciidoc bash-completion dbus dbus-dev git glib-dev gobject-introspection-dev gtk-doc icu-dev json-glib-dev libsoup-dev libxml2-dev meson py3-gobject3 py3-setuptools py3-tappy sqlite-dev vala'
+.tracker.fedora:34@x86_64:
+ extends: .tracker.fedora@common
+ variables:
+ FDO_DISTRIBUTION_VERSION: 34
+ FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
+
+.tracker.fedora:rawhide@x86_64:
+ extends: .tracker.fedora@common
+ variables:
+ FDO_DISTRIBUTION_VERSION: rawhide
+ FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
+
+.tracker.fedora:34@aarch64:
+ extends: .tracker.fedora@common
+ variables:
+ FDO_DISTRIBUTION_VERSION: 34
+ FDO_DISTRIBUTION_TAG: "aarch64-${BASE_TAG}"
+ tags:
+ - aarch64
+
+.tracker.ubuntu:rolling@x86_64:
+ extends: .tracker.ubuntu@common
+ variables:
+ FDO_DISTRIBUTION_VERSION: rolling
+ FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
+
+.tracker.alpine:edge@x86_64:
+ extends: .tracker.alpine@common
+ variables:
+ FDO_DISTRIBUTION_VERSION: edge
+ FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
+
+build-fedora-container@x86_64:
+ extends:
+ - .fdo.container-build@fedora
+ - .tracker.fedora:34@x86_64
+ stage: prepare
+ variables:
+ GIT_STRATEGY: none
+ needs:
+ - check-commit-log
+ - check-merge-request
+
+build-fedora-rawhide-container@x86_64:
+ extends:
+ - .fdo.container-build@fedora
+ - .tracker.fedora:rawhide@x86_64
+ stage: prepare
+ variables:
+ GIT_STRATEGY: none
+ needs:
+ - check-commit-log
+ - check-merge-request
+
+build-fedora-container@aarch64:
+ extends:
+ - .fdo.container-build@fedora
+ - .tracker.fedora:34@aarch64
+ stage: prepare
+ variables:
+ GIT_STRATEGY: none
+ needs:
+ - check-commit-log
+ - check-merge-request
+
+build-ubuntu-container@x86_64:
+ extends:
+ - .fdo.container-build@ubuntu
+ - .tracker.ubuntu:rolling@x86_64
+ stage: prepare
+ variables:
+ GIT_STRATEGY: none
+ needs:
+ - check-commit-log
+ - check-merge-request
+
+build-alpine-container@x86_64:
+ extends:
+ - .fdo.container-build@alpine
+ - .tracker.alpine:edge@x86_64
+ stage: prepare
+ variables:
+ GIT_STRATEGY: none
+ needs:
+ - check-commit-log
+ - check-merge-request
+
+.build-template: &build
+ stage: build
+ script:
+ - meson . build -Db_lto=true -Db_coverage=true -Dsystemd_user_services=false -Dtests_tap_protocol=true --prefix /usr
+ - ninja -C build
+ artifacts:
+ expire_in: 1 day
+ paths:
+ - build
+
+build-fedora@x86_64:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:34@x86_64
+ needs:
+ - build-fedora-container@x86_64
+ <<: *build
+
+build-fedora-rawhide@x86_64:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:rawhide@x86_64
+ needs:
+ - build-fedora-rawhide-container@x86_64
+ <<: *build
+
+build-fedora@aarch64:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:34@aarch64
+ needs:
+ - build-fedora-container@aarch64
+ allow_failure: true
+ <<: *build
+
+build-ubuntu-rolling@x86_64:
+ extends:
+ - .fdo.distribution-image@ubuntu
+ - .tracker.ubuntu:rolling@x86_64
+ needs:
+ - build-ubuntu-container@x86_64
+ <<: *build
+
+build-alpine-edge@x86_64:
+ extends:
+ - .fdo.distribution-image@alpine
+ - .tracker.alpine:edge@x86_64
+ needs:
+ - build-alpine-container@x86_64
+ <<: *build
+
+.test-template: &test
+ stage: test
+ variables:
+ G_SLICE: "always-malloc"
+ MALLOC_CHECK_: "3"
script:
- - mkdir build
- cd build
- - meson .. -Db_lto=true -Db_coverage=true -Dsystemd_user_services=false -Dtests_tap_protocol=true
- - ninja
- |
# Remove the many "CI_" variables from the environment. Meson dumps the
# whole environment for every failed test, and that gives a whole
# screenful of junk each time unless we strip these.
unset $(env|grep -o '^CI_[^=]*')
- env LANG=C.UTF-8 LC_ALL=C.UTF-8 dbus-run-session eatmydata meson test --print-errorlogs ${MESON_TEST_EXTRA_ARGS}
-
+ env LANG=C.UTF-8 LC_ALL=C.UTF-8 dbus-run-session meson test --print-errorlogs ${MESON_TEST_EXTRA_ARGS}
after_script:
- |
echo "Distribution: "
@@ -42,51 +249,78 @@ stages:
echo "MESON_TEST_EXTRA_ARGS: ${MESON_TEST_EXTRA_ARGS}"
echo
echo "These values can be set at https://gitlab.gnome.org/GNOME/tracker/pipelines/new"
-
artifacts:
+ expire_in: 1 day
when: always
paths:
- - build/meson-logs/testlog.txt
+ - build
reports:
junit: "build/meson-logs/testlog.junit.xml"
+test-fedora@x86_64:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:34@x86_64
+ needs:
+ - build-fedora@x86_64
+ <<: *test
-test-alpine-edge:
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/alpine:edge
+test-fedora-rawhide@x86_64:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:rawhide@x86_64
+ needs:
+ - build-fedora-rawhide@x86_64
<<: *test
-test-fedora-latest:
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/fedora:latest
+test-fedora@aarch64:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:34@aarch64
+ needs:
+ - build-fedora@aarch64
+ allow_failure: true
<<: *test
-test-ubuntu-rolling:
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/ubuntu:rolling
+test-ubuntu@x86_64:
+ extends:
+ - .fdo.distribution-image@ubuntu
+ - .tracker.ubuntu:rolling@x86_64
+ needs:
+ - build-ubuntu-rolling@x86_64
<<: *test
-test-fedora-rawhide:
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/fedora:rawhide
+test-alpine@x86_64:
+ extends:
+ - .fdo.distribution-image@alpine
+ - .tracker.alpine:edge@x86_64
+ needs:
+ - build-alpine-edge@x86_64
<<: *test
coverage-analysis:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:rawhide@x86_64
stage: analysis
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/fedora:latest
allow_failure: true
script:
- - mkdir -p coverage-build/coveragereport
- - cd coverage-build
- - meson .. -Db_lto=true -Db_coverage=true
- - ninja
- - env LANG=C.UTF-8 LC_ALL=C.UTF-8 dbus-run-session eatmydata meson test --print-errorlogs ${MESON_TEST_EXTRA_ARGS}
+ - cd build
+ - mkdir -p coveragereport
- gcovr --html-details --print-summary --root=.. --exclude=../docs/reference --exclude=../tests --exclude=../utils --exclude=../examples --output coveragereport/index.html
coverage: '/^lines: (\d+\.\d+\%)/'
artifacts:
when: always
paths:
- - coverage-build/coveragereport
+ - build/coveragereport
+ needs:
+ - test-fedora@x86_64
coverity:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:rawhide@x86_64
stage: analysis
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/fedora:latest
allow_failure: true
script:
- curl https://scan.coverity.com/download/linux64 --data "token=$COVERITY_TOKEN&project=Tracker" --output /tmp/coverity_tool.tgz
@@ -100,19 +334,38 @@ coverity:
--form token=$COVERITY_TOKEN --form email=carlosg@gnome.org
--form file=@cov-int.tar.gz --form version="`git describe --tags`"
--form description="gitlab CI build"
+ needs:
+ - build-fedora-rawhide-container@x86_64
only:
- master
+ except:
+ changes:
+ - po/*.po
+
+static-scan:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:rawhide@x86_64
+ stage: analysis
+ needs:
+ - build-fedora-rawhide-container@x86_64
+ script:
+ - meson --buildtype=debug _scan_build
+ - ninja -C _scan_build scan-build
+ artifacts:
+ paths:
+ - _scan_build/meson-logs
+ allow_failure: true
pages:
+ extends:
+ - .fdo.distribution-image@fedora
+ - .tracker.fedora:rawhide@x86_64
stage: website
- image: registry.gitlab.gnome.org/gnome/tracker-oci-images/amd64/fedora:latest
- dependencies: []
- before_script:
- - pip3 install beautifulsoup4 mkdocs mkdocs-cinder
script:
- export install_prefix="$(pwd)/tracker-install"
# Build tracker and install.
- - mkdir build; pushd build; meson .. --prefix="$install_prefix"; ninja install; popd
+ - mkdir website-build; pushd website-build; meson .. --prefix="$install_prefix"; ninja; ninja install; popd
# Build tracker-miners and install any documentation from there as well.
- .gitlab-ci/checkout-tracker-miners.sh
- pushd extra/tracker-miners; mkdir build; pushd build; env PKG_CONFIG_PATH="$install_prefix/lib64/pkgconfig" meson .. --prefix="$install_prefix"; ninja install; popd; popd
@@ -124,6 +377,8 @@ pages:
artifacts:
paths:
- public
+ needs:
+ - build-fedora-rawhide-container@x86_64
only:
- master
- /^sam\/website.*$/
diff --git a/.gitlab-ci/checkout-tracker-miners.sh b/.gitlab-ci/checkout-tracker-miners.sh
index bf1ea0b5b..a3647660a 100755
--- a/.gitlab-ci/checkout-tracker-miners.sh
+++ b/.gitlab-ci/checkout-tracker-miners.sh
@@ -5,7 +5,7 @@ tracker_target=
mkdir extra
cd extra
-git clone https://gitlab.gnome.org/GNOME/tracker-miners.git
+git clone --depth 1 https://gitlab.gnome.org/GNOME/tracker-miners.git
if [ $? -ne 0 ]; then
echo Checkout failed
diff --git a/docs/design/contentfw-structural-view.dot b/docs/design/contentfw-structural-view.dot
deleted file mode 100644
index 33e667b95..000000000
--- a/docs/design/contentfw-structural-view.dot
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Structural view of Content Framework
- *
- * Generate PNG with: dot -Tpng tracker-structural-view.dot
- * View the diagram: dotty tracker-structural-view.dot
-*/
-
-digraph G {
-
- graph [size="640,480"];
- node [shape=box, style=filled, fontsize=11];
- edge [fontsize=11];
-
- { rank=source
- app [label="<<process>>\n\napplication"];
- }
-
- subgraph cluster0 {
- label="Content Framework"
-
- qsparql [label="<<library>>\n\nQsparql"];
- libthumbnailer [label="<<library>>\n\nlibthumbnailer"];
- libcontentaction [label="<<library>>\n\nlibcontentaction"];
- trackerutils [label="<<command-line>>\n\ntracker-utils"];
- tracker [label="<<library>>\n\ntracker\n(see detailed diagram)"];
-
- trackerextract [label="<<process>>\n\ntracker-extract"];
- libtrackerextract [label="<<library>>\n\nlibtracker-extract"];
- trackerextract -> libtrackerextract [label="<<links>>"];
-
- trackerminerfs [label="<<process>>\n\ntracker-miner-fs"];
- libtrackerminer [label="<<library>>\n\nlibtracker-miner"];
-
- tumbler [label="<<process>>\n\ntumbler"];
-
- {rank=same; tracker; trackerminerfs; libtrackerextract};
-
- libthumbnailer -> tumbler [label="<<D-Bus>>"]
- qsparql -> tracker [label="<<link>>"]
-
- trackerminerfs -> trackerextract [label="<<D-Bus>>"]
- trackerminerfs -> libtrackerminer [label="<<Implements>>"]
- trackerminerfs -> tracker [label="<<link>>"]
-
- trackerutils -> tracker [label="<<D-Bus>>"]
- trackerutils -> trackerminerfs [label="<<D-Bus>>"]
-
- }
-
- {
- rank=sink
- extractionlibs [label="<<libraries>>\n\nextraction-libraries"];
- gstreamer [label="<<library>>\n\ngstreamer"];
- libhal [label="<<library>>\n\nlibhal"];
- libquill [label="<<library>>\n\nlibquill"];
- libplayback [label="<<library>>\n\nlibplayback"];
- sqlite [label="<<library>>\n\nsqlite" ];
-
- gio [label="<<library>>\n\nGIO"];
- inotify [label="<<kernel>>\n\ninotify"];
- gio -> inotify;
- }
-
- app -> qsparql [label="<<link>>"]
- app -> libthumbnailer [label="<<link>>"]
- app -> libcontentaction [label="<<link>>"]
-
- trackerextract -> extractionlibs [label="<<link>>"]
- trackerextract -> gstreamer [label="<<link>>"]
- trackerextract -> libplayback [label="<<link>>"]
-
-// trackerstore -> libhal [label="<<link>>"]
-// trackerminerfs -> libhal [label="<<link>>"]
-
- trackerminerfs -> gio [label="<<link>>"]
-
- tumbler -> libquill [label="<<link>>"]
- tracker -> sqlite
-
-}
diff --git a/docs/design/tracker-miner-fs.dia b/docs/design/tracker-miner-fs.dia
deleted file mode 100644
index 66d1b5103..000000000
--- a/docs/design/tracker-miner-fs.dia
+++ /dev/null
Binary files differ
diff --git a/docs/design/tracker-store.dia b/docs/design/tracker-store.dia
deleted file mode 100644
index 515d5ae9b..000000000
--- a/docs/design/tracker-store.dia
+++ /dev/null
Binary files differ
diff --git a/docs/design/tracker-structural-view.dot b/docs/design/tracker-structural-view.dot
deleted file mode 100644
index 38994a563..000000000
--- a/docs/design/tracker-structural-view.dot
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Structural view of tracker
- *
- * Generate PNG with: dot -Tpng tracker-structural-view.dot
- * View the diagram: dotty tracker-structural-view.dot
-*/
-
-digraph G {
-
- graph [size="640,480"];
- node [shape=box, style=filled, fontsize=11];
- edge [fontsize=11];
-
- { rank=source
- qsparql [label="<<library>>\n\nQSparql"];
- }
-
- subgraph cluster0 {
- label="Tracker"
-
- libtrackersparql [label="<<library>>\n\nlibtracker-sparql"]
- store [label="<<process>>\n\ntracker-store"]
- libtrackerdata [label="<<library>>\n\nlibtracker-data"]
- }
-
- {
- rank=sink
- sqlite [label="<<library>>\n\nsqlite" ];
- }
-
- qsparql -> libtrackersparql [label="<<link>>"]
- libtrackersparql -> store [label="<<DBus>>\n(write)"]
- libtrackersparql -> libtrackerdata [label="<<link>>\n(read)"]
- store -> libtrackerdata [label="<<link>>"]
- libtrackerdata -> sqlite [label="<<link>>"]
-
-
-
-}
diff --git a/docs/reference/libtracker-sparql/examples.xml b/docs/reference/libtracker-sparql/examples.xml
index 7c475fd06..b0d1c0ef8 100644
--- a/docs/reference/libtracker-sparql/examples.xml
+++ b/docs/reference/libtracker-sparql/examples.xml
@@ -35,9 +35,12 @@
</para>
<para>
- Once you end up with the query, remember to call <function><link linkend="g-object-unref">g_object_unref</link></function>
- for the <type><link linkend="TrackerSparqlCursor-struct">TrackerSparqlCursor</link></type>. And the same applies to the
- <type><link linkend="TrackerSparqlConnection-struct">TrackerSparqlConnection</link></type> when no longer needed.
+ The <function><link linkend="tracker-sparql-connection-query-statement">tracker_sparql_connection_query_statement</link></function>
+ function can be used to obtain a <link linkend="TrackerSparqlStatement">TrackerSparqlStatement</link> object holding a prepared SPARQL
+ query that can then be executed with <function><link linkend="tracker-sparql-statement-execute">tracker_sparql_statement_execute</link></function>.
+ The query string can contain <systemitem>~name</systemitem> placeholders which can be replaced with arbitrary values before query execution with the
+ <function><link linkend="tracker-sparql-statement-bind-string">tracker_sparql_statement_bind_string</link></function> and similar functions.
+ This allows parsing the query string only once and to execute it multiple times with different parameters with potentially significant performance gains.
</para>
<para>
@@ -133,4 +136,3 @@
</chapter>
</part>
-
diff --git a/docs/reference/libtracker-sparql/examples/readonly-example.c b/docs/reference/libtracker-sparql/examples/readonly-example.c
index 3759e5299..2aafd7e0d 100644
--- a/docs/reference/libtracker-sparql/examples/readonly-example.c
+++ b/docs/reference/libtracker-sparql/examples/readonly-example.c
@@ -5,6 +5,7 @@ int main (int argc, const char **argv)
GError *error = NULL;
TrackerSparqlConnection *connection;
TrackerSparqlCursor *cursor;
+ TrackerSparqlStatement *stmt;
const gchar *query = "SELECT nie:url(?u) WHERE { ?u a nfo:FileDataObject }";
connection = tracker_sparql_connection_bus_new ("org.freedesktop.Tracker3.Miner.Files", NULL, NULL, &error);
@@ -18,9 +19,9 @@ int main (int argc, const char **argv)
/* Make a synchronous query to the store */
cursor = tracker_sparql_connection_query (connection,
- query,
- NULL,
- &error);
+ query,
+ NULL,
+ &error);
if (error) {
/* Some error happened performing the query, not good */
@@ -49,6 +50,42 @@ int main (int argc, const char **argv)
g_object_unref (cursor);
}
+ /* Prepare the statement with tracker_sparql_connection_query_statement */
+ stmt = tracker_sparql_connection_query_statement (connection,
+ query,
+ NULL,
+ &error);
+
+ if (error) {
+ /* Some error happened performing the query, not good */
+ g_printerr ("Couldn't query the Tracker Store: '%s'",
+ error->message);
+ g_clear_error (&error);
+
+ return 1;
+ }
+
+ /* Executes the SPARQL query with the currently bound values and get new cursor */
+ cursor = tracker_sparql_statement_execute (stmt, NULL, &error);
+
+ /* Check results... */
+ if (!cursor) {
+ g_print ("No results found :-/\n");
+ } else {
+ gint i = 0;
+
+ /* Iterate, synchronously, the results... */
+ while (tracker_sparql_cursor_next (cursor, NULL, &error)) {
+ g_print ("Result [%d]: %s\n",
+ i++,
+ tracker_sparql_cursor_get_string (cursor, 0, NULL));
+ }
+
+ g_print ("A total of '%d' results were found\n", i);
+
+ g_object_unref (cursor);
+ }
+
g_object_unref (connection);
return 0;
diff --git a/docs/reference/libtracker-sparql/libtracker-sparql.types b/docs/reference/libtracker-sparql/libtracker-sparql.types
index 6b77ba0e7..6bfc99f9d 100644
--- a/docs/reference/libtracker-sparql/libtracker-sparql.types
+++ b/docs/reference/libtracker-sparql/libtracker-sparql.types
@@ -1,5 +1,3 @@
-#include <libtracker-sparql/tracker-sparql.h>
-
tracker_endpoint_get_type
tracker_endpoint_dbus_get_type
tracker_endpoint_http_get_type
diff --git a/docs/tools/ttlresource2xml.c b/docs/tools/ttlresource2xml.c
index 953366938..784680446 100644
--- a/docs/tools/ttlresource2xml.c
+++ b/docs/tools/ttlresource2xml.c
@@ -442,7 +442,7 @@ print_class_hierarchy (FILE *f,
{
GPtrArray *strings;
gchar *id;
- gint i;
+ gsize i;
strings = class_get_parent_hierarchy_strings (klass, ontology);
@@ -481,7 +481,7 @@ print_flag (FILE *f,
g_fprintf (f, "<alt>%s</alt>", flag_description);
g_fprintf (f, "</inlinemediaobject>");
g_fprintf (f, "</link>");
-};
+}
static void
print_property_table (FILE *f,
diff --git a/docs/website/faq.md b/docs/website/faq.md
index ce5aedc4c..8370cb64d 100644
--- a/docs/website/faq.md
+++ b/docs/website/faq.md
@@ -7,7 +7,7 @@ It's a search engine, and a database.
Tracker Miner FS indexes content from your home directory automatically, so
applications can provide instant search results when you need them.
-See the [overview](overview) for more information.
+See the [overview](../overview) for more information.
## What files will Tracker index?
diff --git a/docs/website/overview.md b/docs/website/overview.md
index 8a1fd6d2f..5d73dd0b8 100644
--- a/docs/website/overview.md
+++ b/docs/website/overview.md
@@ -107,5 +107,9 @@ search application powered by Xapian.
targets very large-scale workloads. It has a much heavier footprint compared to
Tracker.
+[ripgrep-all](https://phiresky.github.io/blog/2019/rga--ripgrep-for-zip-targz-docx-odt-epub-jpg/)
+is a commandline tool that can search for text within many types of file, and
+caches extracted data between runs.
+
See the Wikipedia article on [Desktop
search](https://en.wikipedia.org/wiki/Desktop_search) for more information.
diff --git a/meson.build b/meson.build
index 44e8fbbfc..b142b1835 100644
--- a/meson.build
+++ b/meson.build
@@ -3,7 +3,7 @@ project('tracker', 'c', 'vala',
meson_version: '>=0.51',
default_options: [
'c_std=c99',
- 'warning_level=3'])
+ 'warning_level=2'])
gnome = import('gnome')
i18n = import('i18n')
@@ -321,7 +321,6 @@ build_root = meson.current_build_dir()
po_subdir = join_paths(source_root, 'po')
tracker_internal_libs_dir = join_paths(get_option('prefix'), get_option('libdir'), 'tracker-' + tracker_api_version)
-tracker_install_rpath = ':'.join([tracker_internal_libs_dir, libdir])
# NOTE: We don't use ${TRACKER_API_VERSION} because other content like
# the ontology is installed to the same location.
diff --git a/src/libtracker-common/tracker-language.c b/src/libtracker-common/tracker-language.c
index 42bac1176..b57f24df2 100644
--- a/src/libtracker-common/tracker-language.c
+++ b/src/libtracker-common/tracker-language.c
@@ -83,7 +83,7 @@ static void language_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec);
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerLanguage, tracker_language, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerLanguage, tracker_language, G_TYPE_OBJECT)
static void
tracker_language_class_init (TrackerLanguageClass *klass)
diff --git a/src/libtracker-common/tracker-term-utils.c b/src/libtracker-common/tracker-term-utils.c
index a6d5d3a97..713b8d797 100644
--- a/src/libtracker-common/tracker-term-utils.c
+++ b/src/libtracker-common/tracker-term-utils.c
@@ -80,7 +80,7 @@ fd_term_dimensions (gint fd,
guint *cols,
guint *rows)
{
- struct winsize ws = {};
+ struct winsize ws = { 0 };
if (ioctl(fd, TIOCGWINSZ, &ws) < 0) {
*cols = 0;
diff --git a/src/libtracker-data/tracker-class.c b/src/libtracker-data/tracker-class.c
index c3fcdd2cd..8ad1df4a8 100644
--- a/src/libtracker-data/tracker-class.c
+++ b/src/libtracker-data/tracker-class.c
@@ -52,7 +52,7 @@ struct _TrackerClassPrivate {
static void class_finalize (GObject *object);
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerClass, tracker_class, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerClass, tracker_class, G_TYPE_OBJECT)
static void
tracker_class_class_init (TrackerClassClass *klass)
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index b2e774ee8..775f561a0 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -1204,6 +1204,17 @@ tracker_data_ontology_load_statement (TrackerDataManager *manager,
return;
}
+ if (!tracker_property_get_indexed (property)) {
+ g_critical ("%s: nrl:secondaryindex only applies to nrl:indexed properties", ontology_path);
+ return;
+ }
+
+ if (tracker_property_get_multiple_values (property) ||
+ tracker_property_get_multiple_values (secondary_index)) {
+ g_critical ("%s: nrl:secondaryindex cannot be applied to properties with nrl:maxCardinality higher than one", ontology_path);
+ return;
+ }
+
tracker_property_set_secondary_index (property, secondary_index);
} else if (g_strcmp0 (predicate, TRACKER_PREFIX_NRL "fulltextIndexed") == 0) {
TrackerProperty *property;
@@ -1757,15 +1768,6 @@ tracker_data_ontology_process_changes_post_import (GPtrArray *seen_classes,
}
static void
-tracker_data_ontology_free_seen (GPtrArray *seen)
-{
- if (seen) {
- g_ptr_array_foreach (seen, (GFunc) g_object_unref, NULL);
- g_ptr_array_free (seen, TRUE);
- }
-}
-
-static void
load_ontology_file (TrackerDataManager *manager,
GFile *file,
gboolean in_update,
@@ -3663,8 +3665,8 @@ setup_interface_cb (TrackerDBManager *db_manager,
guint flags;
if (!tracker_data_manager_initialize_iface (data_manager, iface, &error)) {
- g_critical ("Could not set up interface %p: %s",
- iface, error->message);
+ g_critical ("Could not set up interface : %s",
+ error->message);
g_error_free (error);
}
@@ -3994,8 +3996,8 @@ tracker_data_manager_initable_init (GInitable *initable,
GError *n_error = NULL;
gboolean transaction_started = FALSE;
- seen_classes = g_ptr_array_new ();
- seen_properties = g_ptr_array_new ();
+ seen_classes = g_ptr_array_new_with_free_func (g_object_unref);
+ seen_properties = g_ptr_array_new_with_free_func (g_object_unref);
g_debug ("Applying ontologies from %s to existing database", g_file_peek_path (manager->ontology_location));
@@ -4131,8 +4133,8 @@ tracker_data_manager_initable_init (GInitable *initable,
g_warning ("%s", ontology_error->message);
g_error_free (ontology_error);
- tracker_data_ontology_free_seen (seen_classes);
- tracker_data_ontology_free_seen (seen_properties);
+ g_clear_pointer (&seen_classes, g_ptr_array_unref);
+ g_clear_pointer (&seen_properties, g_ptr_array_unref);
tracker_data_ontology_import_finished (manager);
/* as we're processing an ontology change,
@@ -4188,8 +4190,8 @@ tracker_data_manager_initable_init (GInitable *initable,
g_warning ("%s", ontology_error->message);
g_error_free (ontology_error);
- tracker_data_ontology_free_seen (seen_classes);
- tracker_data_ontology_free_seen (seen_properties);
+ g_clear_pointer (&seen_classes, g_ptr_array_unref);
+ g_clear_pointer (&seen_properties, g_ptr_array_unref);
tracker_data_ontology_import_finished (manager);
/* as we're processing an ontology change,
@@ -4306,8 +4308,8 @@ tracker_data_manager_initable_init (GInitable *initable,
g_warning ("%s", ontology_error->message);
g_error_free (ontology_error);
- tracker_data_ontology_free_seen (seen_classes);
- tracker_data_ontology_free_seen (seen_properties);
+ g_clear_pointer (&seen_classes, g_ptr_array_unref);
+ g_clear_pointer (&seen_properties, g_ptr_array_unref);
tracker_data_ontology_import_finished (manager);
/* as we're processing an ontology change,
@@ -4341,8 +4343,8 @@ tracker_data_manager_initable_init (GInitable *initable,
write_ontologies_gvdb (manager, TRUE /* overwrite */, NULL);
}
- tracker_data_ontology_free_seen (seen_classes);
- tracker_data_ontology_free_seen (seen_properties);
+ g_clear_pointer (&seen_classes, g_ptr_array_unref);
+ g_clear_pointer (&seen_properties, g_ptr_array_unref);
/* Reset the is_new flag for all classes and properties */
tracker_data_ontology_import_finished (manager);
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 3091c05e8..cbd2fc46a 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -87,12 +87,12 @@ struct _TrackerDataUpdateBufferProperty {
const gchar *name;
GValue value;
guint delete_all_values : 1;
+ guint delete_value : 1;
};
struct _TrackerDataUpdateBufferTable {
gboolean insert;
gboolean delete_row;
- gboolean delete_value;
gboolean multiple_values;
TrackerClass *class;
/* TrackerDataUpdateBufferProperty */
@@ -139,7 +139,7 @@ enum {
PROP_MANAGER
};
-G_DEFINE_TYPE (TrackerData, tracker_data, G_TYPE_OBJECT);
+G_DEFINE_TYPE (TrackerData, tracker_data, G_TYPE_OBJECT)
static void cache_insert_value (TrackerData *data,
const gchar *table_name,
@@ -641,7 +641,6 @@ cache_delete_all_values (TrackerData *data,
property.delete_all_values = TRUE;
table = cache_ensure_table (data, table_name, TRUE);
- table->delete_value = TRUE;
g_array_append_val (table->properties, property);
}
@@ -656,12 +655,12 @@ cache_delete_value (TrackerData *data,
TrackerDataUpdateBufferProperty property = { 0 };
property.name = field_name;
+ property.delete_value = TRUE;
g_value_init (&property.value, G_VALUE_TYPE (value));
g_value_copy (value, &property.value);
table = cache_ensure_table (data, table_name, multiple_values);
- table->delete_value = TRUE;
g_array_append_val (table->properties, property);
}
@@ -833,12 +832,12 @@ tracker_data_resource_buffer_flush (TrackerData *data,
for (i = 0; i < table->properties->len; i++) {
property = &g_array_index (table->properties, TrackerDataUpdateBufferProperty, i);
- if (table->delete_value && property->delete_all_values) {
+ if (property->delete_all_values) {
stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
"DELETE FROM \"%s\".\"%s\" WHERE ID = ?",
database,
table_name);
- } else if (table->delete_value) {
+ } else if (property->delete_value) {
/* delete rows for multiple value properties */
stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
"DELETE FROM \"%s\".\"%s\" WHERE ID = ? AND \"%s\" = ?",
@@ -969,7 +968,7 @@ tracker_data_resource_buffer_flush (TrackerData *data,
for (i = 0; i < table->properties->len; i++) {
property = &g_array_index (table->properties, TrackerDataUpdateBufferProperty, i);
- if (table->delete_value) {
+ if (property->delete_value) {
/* just set value to NULL for single value properties */
tracker_db_statement_bind_null (stmt, param++);
} else {
@@ -1648,7 +1647,6 @@ get_old_property_values (TrackerData *data,
old_values = get_property_values (data, property, error);
}
- data->resource_buffer->fts_updated = TRUE;
} else {
old_values = get_property_values (data, property, error);
}
@@ -1829,7 +1827,6 @@ bytes_from_gvalue (GValue *gvalue,
datetime = g_value_get_boxed (gvalue);
str = tracker_date_format_iso8601 (datetime);
*bytes = g_bytes_new_take (str, strlen (str) + 1);
- g_free (str);
} else {
g_set_error (error,
TRACKER_SPARQL_ERROR,
@@ -1902,6 +1899,9 @@ cache_insert_metadata_decomposed (TrackerData *data,
super_properties = tracker_property_get_super_properties (property);
multiple_values = tracker_property_get_multiple_values (property);
+ data->resource_buffer->fts_updated |=
+ tracker_property_get_fulltext_indexed (property);
+
while (*super_properties) {
gboolean super_is_multi;
GArray *super_old_values;
@@ -1913,6 +1913,9 @@ cache_insert_metadata_decomposed (TrackerData *data,
return FALSE;
}
+ data->resource_buffer->fts_updated |=
+ tracker_property_get_fulltext_indexed (*super_properties);
+
if (super_is_multi || super_old_values->len == 0) {
change |= cache_insert_metadata_decomposed (data, *super_properties, object,
&new_error);
@@ -2090,8 +2093,6 @@ cache_delete_resource_type_full (TrackerData *data,
if (!single_type) {
if (strcmp (tracker_class_get_uri (class), TRACKER_PREFIX_RDFS "Resource") == 0 &&
g_hash_table_size (data->resource_buffer->tables) == 0) {
- tracker_db_interface_sqlite_fts_delete_id (iface, database, data->resource_buffer->id);
- data->resource_buffer->fts_updated = TRUE;
/* skip subclass query when deleting whole resource
to improve performance */
diff --git a/src/libtracker-data/tracker-data-update.h b/src/libtracker-data/tracker-data-update.h
index 9b6ceee57..a27c066c7 100644
--- a/src/libtracker-data/tracker-data-update.h
+++ b/src/libtracker-data/tracker-data-update.h
@@ -43,10 +43,6 @@ typedef struct _TrackerDataClass TrackerDataClass;
#define TRACKER_IS_DATA_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TRACKER_TYPE_DATA))
#define TRACKER_DATA_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TRACKER_TYPE_DATA, TrackerDataClass))
-typedef struct _TrackerData TrackerData;
-typedef struct _TrackerDataClass TrackerDataClass;
-
-typedef struct _TrackerData TrackerData;
typedef struct _TrackerData TrackerDataUpdate;
typedef void (*TrackerStatementCallback) (gint graph_id,
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c
index 85813d7c9..c6a50add3 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -168,7 +168,7 @@ enum {
G_DEFINE_TYPE_WITH_CODE (TrackerDBInterface, tracker_db_interface, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
- tracker_db_interface_initable_iface_init));
+ tracker_db_interface_initable_iface_init))
G_DEFINE_TYPE (TrackerDBStatement, tracker_db_statement, G_TYPE_INITIALLY_UNOWNED)
@@ -1821,6 +1821,12 @@ stmt_step (sqlite3_stmt *stmt)
}
static void
+stmt_destroy (void *stmt)
+{
+ sqlite3_finalize ((sqlite3_stmt *) stmt);
+}
+
+static void
generate_uuid (sqlite3_context *context,
const gchar *fn,
const gchar *uri_prefix)
@@ -1856,8 +1862,7 @@ generate_uuid (sqlite3_context *context,
} while (result == SQLITE_ROW);
if (store_auxdata) {
- sqlite3_set_auxdata (context, 1, stmt,
- (void (*) (void*)) sqlite3_finalize);
+ sqlite3_set_auxdata (context, 1, (void*) stmt, stmt_destroy);
}
if (result != SQLITE_DONE) {
@@ -1945,8 +1950,7 @@ function_sparql_print_iri (sqlite3_context *context,
}
if (store_auxdata) {
- sqlite3_set_auxdata (context, 1, stmt,
- (void (*) (void*)) sqlite3_finalize);
+ sqlite3_set_auxdata (context, 1, (void*) stmt, stmt_destroy);
}
} else {
sqlite3_result_value (context, argv[0]);
@@ -2357,25 +2361,6 @@ tracker_db_interface_sqlite_fts_create_query (TrackerDBInterface *db_interface,
return g_string_free (insert_str, FALSE);
}
-static gchar *
-tracker_db_interface_sqlite_fts_create_delete_all_query (TrackerDBInterface *db_interface,
- const gchar *database)
-{
- GString *insert_str;
-
- insert_str = g_string_new (NULL);
- g_string_append_printf (insert_str,
- "INSERT INTO \"%s\".fts5 (fts5, rowid %s) "
- "SELECT 'delete', rowid %s FROM \"%s\".fts_view "
- "WHERE rowid = ? AND COALESCE(NULL %s) IS NOT NULL",
- database,
- db_interface->fts_properties,
- db_interface->fts_properties,
- database,
- db_interface->fts_properties);
- return g_string_free (insert_str, FALSE);
-}
-
gboolean
tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface *db_interface,
const gchar *database,
@@ -2475,44 +2460,6 @@ tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface *db_interface,
}
gboolean
-tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *db_interface,
- const gchar *database,
- int id)
-{
- TrackerDBStatement *stmt;
- GError *error = NULL;
- gchar *query;
-
- query = tracker_db_interface_sqlite_fts_create_delete_all_query (db_interface, database);
- stmt = tracker_db_interface_create_statement (db_interface,
- TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
- &error,
- query);
- g_free (query);
-
- if (!stmt || error) {
- if (error) {
- g_warning ("Could not create FTS delete statement: %s",
- error->message);
- g_error_free (error);
- }
- return FALSE;
- }
-
- tracker_db_statement_bind_int (stmt, 0, id);
- tracker_db_statement_execute (stmt, &error);
- g_object_unref (stmt);
-
- if (error) {
- g_warning ("Could not delete FTS content: %s", error->message);
- g_error_free (error);
- return FALSE;
- }
-
- return TRUE;
-}
-
-gboolean
tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
const gchar *database,
GError **error)
@@ -2523,7 +2470,7 @@ tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
void
tracker_db_interface_sqlite_reset_collator (TrackerDBInterface *db_interface)
{
- TRACKER_NOTE (SQLITE, g_message ("Resetting collator in db interface %p", db_interface));
+ TRACKER_NOTE (SQLITE, g_message ("Resetting collator in db interface"));
/* This will overwrite any other collation set before, if any */
if (sqlite3_create_collation_v2 (db_interface->db,
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.h b/src/libtracker-data/tracker-db-interface-sqlite.h
index 1499a3aca..6659fcd10 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.h
+++ b/src/libtracker-data/tracker-db-interface-sqlite.h
@@ -82,9 +82,6 @@ gboolean tracker_db_interface_sqlite_fts_delete_text (TrackerD
int rowid,
const gchar **properties,
const gchar **old_text);
-gboolean tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *interface,
- const gchar *database,
- int rowid);
gboolean tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
const gchar *database,
GError **error);
diff --git a/src/libtracker-data/tracker-db-manager.h b/src/libtracker-data/tracker-db-manager.h
index 7fd99dcbd..66b2b6b5f 100644
--- a/src/libtracker-data/tracker-db-manager.h
+++ b/src/libtracker-data/tracker-db-manager.h
@@ -50,8 +50,6 @@ typedef enum {
TRACKER_DB_MANAGER_SKIP_VERSION_CHECK = 1 << 9,
} TrackerDBManagerFlags;
-typedef struct _TrackerDBManager TrackerDBManager;
-
gboolean tracker_db_manager_db_exists (GFile *cache_location);
TrackerDBManager *tracker_db_manager_new (TrackerDBManagerFlags flags,
diff --git a/src/libtracker-data/tracker-namespace.c b/src/libtracker-data/tracker-namespace.c
index 6cbb1085e..601995910 100644
--- a/src/libtracker-data/tracker-namespace.c
+++ b/src/libtracker-data/tracker-namespace.c
@@ -42,7 +42,7 @@ struct _TrackerNamespacePrivate {
static void namespace_finalize (GObject *object);
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerNamespace, tracker_namespace, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerNamespace, tracker_namespace, G_TYPE_OBJECT)
static void
tracker_namespace_class_init (TrackerNamespaceClass *klass)
diff --git a/src/libtracker-data/tracker-ontology.c b/src/libtracker-data/tracker-ontology.c
index a050755b3..d0e804a71 100644
--- a/src/libtracker-data/tracker-ontology.c
+++ b/src/libtracker-data/tracker-ontology.c
@@ -39,7 +39,7 @@ struct _TrackerOntologyPrivate {
static void ontology_finalize (GObject *object);
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerOntology, tracker_ontology, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerOntology, tracker_ontology, G_TYPE_OBJECT)
static void
tracker_ontology_class_init (TrackerOntologyClass *klass)
diff --git a/src/libtracker-data/tracker-property.c b/src/libtracker-data/tracker-property.c
index a2df9035b..3446a9d8e 100644
--- a/src/libtracker-data/tracker-property.c
+++ b/src/libtracker-data/tracker-property.c
@@ -60,8 +60,6 @@ tracker_uri_to_property_type(const gchar *uri)
return TRACKER_PROPERTY_TYPE_RESOURCE;
}
-typedef struct _TrackerPropertyPrivate TrackerPropertyPrivate;
-
struct _TrackerPropertyPrivate {
gchar *uri;
gchar *name;
@@ -143,7 +141,7 @@ tracker_property_type_get_type (void)
return etype;
}
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerProperty, tracker_property, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerProperty, tracker_property, G_TYPE_OBJECT)
static void
tracker_property_class_init (TrackerPropertyClass *klass)
diff --git a/src/libtracker-data/tracker-sparql-parser.c b/src/libtracker-data/tracker-sparql-parser.c
index b01d626c2..d799f6aa8 100644
--- a/src/libtracker-data/tracker-sparql-parser.c
+++ b/src/libtracker-data/tracker-sparql-parser.c
@@ -26,8 +26,6 @@
#include <string.h>
typedef struct _TrackerRuleState TrackerRuleState;
-typedef struct _TrackerNodeTree TrackerNodeTree;
-typedef struct _TrackerParserNode TrackerParserNode;
typedef struct _TrackerParserState TrackerParserState;
typedef struct _TrackerGrammarParser TrackerGrammarParser;
@@ -635,7 +633,7 @@ tracker_grammar_parser_read (TrackerGrammarParser *parser,
tracker_parser_state_skip_whitespace (state, parser);
- return (g_node_first_child ((GNode *) state->node_tree->root) > 0 &&
+ return (g_node_first_child ((GNode *) state->node_tree->root) &&
parser->query[state->current] == '\0');
}
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 332b295cb..7b11fa44e 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -153,6 +153,7 @@ typedef struct
gboolean convert_to_string;
gboolean in_property_function;
+ gboolean in_relational_expression;
} TrackerSparqlState;
struct _TrackerSparql
@@ -2474,7 +2475,8 @@ _end_triples_block (TrackerSparql *sparql,
first = FALSE;
binding = g_ptr_array_index (triple_context->literal_bindings, i);
- if (binding->data_type == TRACKER_PROPERTY_TYPE_DATETIME) {
+ if (binding->data_type == TRACKER_PROPERTY_TYPE_DATE ||
+ binding->data_type == TRACKER_PROPERTY_TYPE_DATETIME) {
_append_string_printf (sparql, "SparqlTimeSort (%s) = SparqlTimeSort (", tracker_binding_get_sql_expression (binding));
_append_literal_sql (sparql, TRACKER_LITERAL_BINDING (binding));
_append_string (sparql, ") ");
@@ -7413,51 +7415,69 @@ static gboolean
translate_RelationalExpression (TrackerSparql *sparql,
GError **error)
{
+ TrackerStringBuilder *str, *old;
const gchar *old_sep;
+ gboolean in_relational_expression, bool_op = TRUE;
/* RelationalExpression ::= NumericExpression ( '=' NumericExpression | '!=' NumericExpression | '<' NumericExpression | '>' NumericExpression | '<=' NumericExpression | '>=' NumericExpression | 'IN' ExpressionList | 'NOT' 'IN' ExpressionList )?
*/
+ str = _append_placeholder (sparql);
+ old = tracker_sparql_swap_builder (sparql, str);
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
+ tracker_sparql_swap_builder (sparql, old);
+
+ in_relational_expression = sparql->current_state->in_relational_expression;
+ sparql->current_state->in_relational_expression = TRUE;
if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_IN)) {
_append_string (sparql, "IN ");
old_sep = tracker_sparql_swap_current_expression_list_separator (sparql, ", ");
_call_rule (sparql, NAMED_RULE_ExpressionList, error);
tracker_sparql_swap_current_expression_list_separator (sparql, old_sep);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_NOT)) {
_expect (sparql, RULE_TYPE_LITERAL, LITERAL_OP_IN);
_append_string (sparql, "NOT IN ");
old_sep = tracker_sparql_swap_current_expression_list_separator (sparql, ", ");
_call_rule (sparql, NAMED_RULE_ExpressionList, error);
tracker_sparql_swap_current_expression_list_separator (sparql, old_sep);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_EQ)) {
_append_string (sparql, " = ");
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_NE)) {
_append_string (sparql, " != ");
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_LT)) {
_append_string (sparql, " < ");
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_GT)) {
_append_string (sparql, " > ");
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_LE)) {
_append_string (sparql, " <= ");
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
} else if (_accept (sparql, RULE_TYPE_LITERAL, LITERAL_OP_GE)) {
_append_string (sparql, " >= ");
_call_rule (sparql, NAMED_RULE_NumericExpression, error);
- sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
+ } else {
+ /* This is an unary expression */
+ sparql->current_state->in_relational_expression = FALSE;
+ bool_op = FALSE;
+ }
+
+ if (sparql->current_state->in_relational_expression &&
+ (sparql->current_state->expression_type == TRACKER_PROPERTY_TYPE_DATE ||
+ sparql->current_state->expression_type == TRACKER_PROPERTY_TYPE_DATETIME)) {
+ old = tracker_sparql_swap_builder (sparql, str);
+ _prepend_string (sparql, "SparqlTimeSort(");
+ _append_string (sparql, ") ");
+ tracker_sparql_swap_builder (sparql, old);
}
+ if (bool_op)
+ sparql->current_state->expression_type = TRACKER_PROPERTY_TYPE_BOOLEAN;
+
+ sparql->current_state->in_relational_expression = in_relational_expression;
+
return TRUE;
}
@@ -7597,6 +7617,8 @@ translate_PrimaryExpression (TrackerSparql *sparql,
TrackerGrammarNamedRule rule;
TrackerBinding *binding;
TrackerVariable *variable;
+ TrackerStringBuilder *str, *old;
+ gboolean is_datetime_comparison = FALSE;
gchar *name;
/* PrimaryExpression ::= BrackettedExpression | BuiltInCall | iriOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | Var
@@ -7604,6 +7626,9 @@ translate_PrimaryExpression (TrackerSparql *sparql,
rule = _current_rule (sparql);
select_context = TRACKER_SELECT_CONTEXT (sparql->context);
+ str = _append_placeholder (sparql);
+ old = tracker_sparql_swap_builder (sparql, str);
+
switch (rule) {
case NAMED_RULE_NumericLiteral:
case NAMED_RULE_BooleanLiteral:
@@ -7618,6 +7643,11 @@ translate_PrimaryExpression (TrackerSparql *sparql,
_call_rule (sparql, rule, error);
name = _dup_last_string (sparql);
+ is_datetime_comparison =
+ (sparql->current_state->in_relational_expression &&
+ (sparql->current_state->expression_type == TRACKER_PROPERTY_TYPE_DATE ||
+ sparql->current_state->expression_type == TRACKER_PROPERTY_TYPE_DATETIME));
+
if (tracker_context_lookup_variable_by_name (sparql->current_state->context,
name)) {
variable = _last_node_variable (sparql);
@@ -7638,6 +7668,13 @@ translate_PrimaryExpression (TrackerSparql *sparql,
_call_rule (sparql, rule, error);
binding = g_ptr_array_index (select_context->literal_bindings,
select_context->literal_bindings->len - 1);
+ sparql->current_state->expression_type = binding->data_type;
+
+ is_datetime_comparison =
+ (sparql->current_state->in_relational_expression &&
+ (binding->data_type == TRACKER_PROPERTY_TYPE_DATE ||
+ binding->data_type == TRACKER_PROPERTY_TYPE_DATETIME));
+
_append_literal_sql (sparql, TRACKER_LITERAL_BINDING (binding));
break;
case NAMED_RULE_BrackettedExpression:
@@ -7649,6 +7686,13 @@ translate_PrimaryExpression (TrackerSparql *sparql,
g_assert_not_reached ();
}
+ if (is_datetime_comparison) {
+ _prepend_string (sparql, "SparqlTimeSort(");
+ _append_string (sparql, ") ");
+ }
+
+ tracker_sparql_swap_builder (sparql, old);
+
return TRUE;
}
@@ -8951,11 +8995,11 @@ translate_RDFLiteral (TrackerSparql *sparql,
cast = _dup_last_string (sparql);
}
- if (is_parameter && (langtag || cast)) {
+ if (is_parameter && langtag) {
g_free (str);
g_free (langtag);
g_free (cast);
- _raise (PARSE, "Parameter cannot have LANGTAG/^^ modifiers", "RDFLiteral");
+ _raise (PARSE, "Parameter cannot have LANGTAG modifier", "RDFLiteral");
}
if (is_parameter) {
diff --git a/src/libtracker-data/tracker-turtle-reader.h b/src/libtracker-data/tracker-turtle-reader.h
index 2d7846bf0..8663f3cec 100644
--- a/src/libtracker-data/tracker-turtle-reader.h
+++ b/src/libtracker-data/tracker-turtle-reader.h
@@ -28,7 +28,7 @@
G_DECLARE_FINAL_TYPE (TrackerTurtleReader,
tracker_turtle_reader,
TRACKER, TURTLE_READER,
- GObject);
+ GObject)
TrackerTurtleReader * tracker_turtle_reader_new (GInputStream *stream);
TrackerTurtleReader * tracker_turtle_reader_new_for_file (GFile *file,
diff --git a/src/libtracker-data/tracker-vtab-triples.c b/src/libtracker-data/tracker-vtab-triples.c
index 1ef067a68..5aa079ebe 100644
--- a/src/libtracker-data/tracker-vtab-triples.c
+++ b/src/libtracker-data/tracker-vtab-triples.c
@@ -370,6 +370,8 @@ convert_to_string (const gchar *table_name,
return g_strdup_printf ("CAST (t.\"%s\" AS TEXT)",
table_name);
}
+
+ g_assert_not_reached();
}
static void
diff --git a/src/libtracker-sparql/tracker-connection.c b/src/libtracker-sparql/tracker-connection.c
index d21bce3e2..fcb2d2ecd 100644
--- a/src/libtracker-sparql/tracker-connection.c
+++ b/src/libtracker-sparql/tracker-connection.c
@@ -350,10 +350,10 @@ tracker_sparql_connection_update (TrackerSparqlConnection *connection,
g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
g_return_if_fail (!error || !*error);
- return TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->update (connection,
- sparql,
- cancellable,
- error);
+ TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->update (connection,
+ sparql,
+ cancellable,
+ error);
}
/**
@@ -402,9 +402,9 @@ tracker_sparql_connection_update_finish (TrackerSparqlConnection *connection,
g_return_if_fail (G_IS_ASYNC_RESULT (res));
g_return_if_fail (!error || !*error);
- return TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->update_finish (connection,
- res,
- error);
+ TRACKER_SPARQL_CONNECTION_GET_CLASS (connection)->update_finish (connection,
+ res,
+ error);
}
/**
diff --git a/src/libtracker-sparql/tracker-cursor.c b/src/libtracker-sparql/tracker-cursor.c
index 4f2e9a5ae..3e32b3320 100644
--- a/src/libtracker-sparql/tracker-cursor.c
+++ b/src/libtracker-sparql/tracker-cursor.c
@@ -414,7 +414,7 @@ tracker_sparql_cursor_close (TrackerSparqlCursor *cursor)
{
g_return_if_fail (TRACKER_IS_SPARQL_CURSOR (cursor));
- return TRACKER_SPARQL_CURSOR_GET_CLASS (cursor)->close (cursor);
+ TRACKER_SPARQL_CURSOR_GET_CLASS (cursor)->close (cursor);
}
/**
@@ -487,10 +487,10 @@ tracker_sparql_cursor_next_async (TrackerSparqlCursor *cursor,
g_return_if_fail (TRACKER_IS_SPARQL_CURSOR (cursor));
g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
- return TRACKER_SPARQL_CURSOR_GET_CLASS (cursor)->next_async (cursor,
- cancellable,
- callback,
- user_data);
+ TRACKER_SPARQL_CURSOR_GET_CLASS (cursor)->next_async (cursor,
+ cancellable,
+ callback,
+ user_data);
}
/**
@@ -536,5 +536,5 @@ tracker_sparql_cursor_rewind (TrackerSparqlCursor *cursor)
{
g_return_if_fail (TRACKER_IS_SPARQL_CURSOR (cursor));
- return TRACKER_SPARQL_CURSOR_GET_CLASS (cursor)->rewind (cursor);
+ TRACKER_SPARQL_CURSOR_GET_CLASS (cursor)->rewind (cursor);
}
diff --git a/src/libtracker-sparql/tracker-endpoint-dbus.c b/src/libtracker-sparql/tracker-endpoint-dbus.c
index f204ed37b..ea62aa56d 100644
--- a/src/libtracker-sparql/tracker-endpoint-dbus.c
+++ b/src/libtracker-sparql/tracker-endpoint-dbus.c
@@ -169,7 +169,7 @@ query_request_new (TrackerEndpointDBus *endpoint,
stream = g_unix_output_stream_new (fd, TRUE);
buffered_stream = g_buffered_output_stream_new_sized (stream,
- getpagesize ());
+ sysconf (_SC_PAGE_SIZE));
request->data_stream = g_data_output_stream_new (buffered_stream);
g_data_output_stream_set_byte_order (request->data_stream,
@@ -212,7 +212,7 @@ update_request_new (TrackerEndpointDBus *endpoint,
stream = g_unix_input_stream_new (input, TRUE);
request->input_stream = g_data_input_stream_new (stream);
g_buffered_input_stream_set_buffer_size (G_BUFFERED_INPUT_STREAM (request->input_stream),
- getpagesize ());
+ sysconf (_SC_PAGE_SIZE));
g_data_input_stream_set_byte_order (request->input_stream,
G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN);
g_object_unref (stream);
diff --git a/src/libtracker-sparql/tracker-endpoint-dbus.h b/src/libtracker-sparql/tracker-endpoint-dbus.h
index f0ade8a09..8c999f3ec 100644
--- a/src/libtracker-sparql/tracker-endpoint-dbus.h
+++ b/src/libtracker-sparql/tracker-endpoint-dbus.h
@@ -46,7 +46,7 @@ G_BEGIN_DECLS
*/
typedef struct _TrackerEndpointDBus TrackerEndpointDBus;
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (TrackerEndpointDBus, g_object_unref);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (TrackerEndpointDBus, g_object_unref)
TRACKER_AVAILABLE_IN_ALL
GType tracker_endpoint_dbus_get_type (void) G_GNUC_CONST;
diff --git a/src/libtracker-sparql/tracker-endpoint-http.c b/src/libtracker-sparql/tracker-endpoint-http.c
index bf28329f2..3fa99ab01 100644
--- a/src/libtracker-sparql/tracker-endpoint-http.c
+++ b/src/libtracker-sparql/tracker-endpoint-http.c
@@ -29,8 +29,6 @@
#define SERVER_HEADER "Tracker " PACKAGE_VERSION " (https://gitlab.gnome.org/GNOME/tracker/issues/)"
-typedef struct _TrackerEndpointHttp TrackerEndpointHttp;
-
struct _TrackerEndpointHttp {
TrackerEndpoint parent_instance;
SoupServer *server;
diff --git a/src/libtracker-sparql/tracker-endpoint-http.h b/src/libtracker-sparql/tracker-endpoint-http.h
index 97a1c3c65..be6e6f408 100644
--- a/src/libtracker-sparql/tracker-endpoint-http.h
+++ b/src/libtracker-sparql/tracker-endpoint-http.h
@@ -46,7 +46,7 @@ G_BEGIN_DECLS
*/
typedef struct _TrackerEndpointHttp TrackerEndpointHttp;
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (TrackerEndpointHttp, g_object_unref);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (TrackerEndpointHttp, g_object_unref)
TRACKER_AVAILABLE_IN_3_1
GType tracker_endpoint_http_get_type (void) G_GNUC_CONST;
diff --git a/src/libtracker-sparql/tracker-namespace-manager.c b/src/libtracker-sparql/tracker-namespace-manager.c
index 7cac92d90..0d639b55f 100644
--- a/src/libtracker-sparql/tracker-namespace-manager.c
+++ b/src/libtracker-sparql/tracker-namespace-manager.c
@@ -38,7 +38,7 @@ typedef struct {
GHashTable *namespace_to_prefix;
} TrackerNamespaceManagerPrivate;
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerNamespaceManager, tracker_namespace_manager, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerNamespaceManager, tracker_namespace_manager, G_TYPE_OBJECT)
#define GET_PRIVATE(object) (tracker_namespace_manager_get_instance_private (object))
/**
@@ -335,4 +335,4 @@ tracker_namespace_manager_foreach (TrackerNamespaceManager *self,
TrackerNamespaceManagerPrivate *priv = GET_PRIVATE (self);
g_hash_table_foreach (priv->prefix_to_namespace, func, user_data);
-};
+}
diff --git a/src/libtracker-sparql/tracker-notifier.c b/src/libtracker-sparql/tracker-notifier.c
index 9fe293cb9..a6bf2315c 100644
--- a/src/libtracker-sparql/tracker-notifier.c
+++ b/src/libtracker-sparql/tracker-notifier.c
@@ -54,7 +54,6 @@
typedef struct _TrackerNotifierPrivate TrackerNotifierPrivate;
typedef struct _TrackerNotifierSubscription TrackerNotifierSubscription;
-typedef struct _TrackerNotifierEventCache TrackerNotifierEventCache;
struct _TrackerNotifierSubscription {
GDBusConnection *connection;
diff --git a/src/libtracker-sparql/tracker-private.h b/src/libtracker-sparql/tracker-private.h
index 4712476ad..18f4fd273 100644
--- a/src/libtracker-sparql/tracker-private.h
+++ b/src/libtracker-sparql/tracker-private.h
@@ -24,8 +24,6 @@
#include <libtracker-sparql/tracker-cursor.h>
#include <libtracker-sparql/tracker-endpoint-dbus.h>
-typedef struct _TrackerSparqlConnectionClass TrackerSparqlConnectionClass;
-
struct _TrackerSparqlConnectionClass
{
GObjectClass parent_class;
@@ -114,8 +112,6 @@ struct _TrackerSparqlConnectionClass
gchar **path);
};
-typedef struct _TrackerSparqlCursorClass TrackerSparqlCursorClass;
-
struct _TrackerSparqlCursorClass
{
GObjectClass parent_class;
@@ -152,14 +148,10 @@ struct _TrackerSparqlCursorClass
gint (* get_n_columns) (TrackerSparqlCursor *cursor);
};
-typedef struct _TrackerEndpointClass TrackerEndpointClass;
-
struct _TrackerEndpointClass {
GObjectClass parent_class;
};
-typedef struct _TrackerEndpointDBus TrackerEndpointDBus;
-
struct _TrackerEndpointDBus {
TrackerEndpoint parent_instance;
GDBusConnection *dbus_connection;
@@ -194,15 +186,11 @@ struct _TrackerEndpointHttpClass {
struct _TrackerEndpointClass parent_class;
};
-typedef struct _TrackerResourceClass TrackerResourceClass;
-
struct _TrackerResourceClass
{
GObjectClass parent_class;
};
-typedef struct _TrackerSparqlStatementClass TrackerSparqlStatementClass;
-
struct _TrackerSparqlStatementClass
{
GObjectClass parent_class;
@@ -236,8 +224,6 @@ struct _TrackerSparqlStatementClass
void (* clear_bindings) (TrackerSparqlStatement *stmt);
};
-typedef struct _TrackerNotifierClass TrackerNotifierClass;
-
struct _TrackerNotifierClass {
GObjectClass parent_class;
@@ -245,8 +231,6 @@ struct _TrackerNotifierClass {
const GPtrArray *events);
};
-typedef struct _TrackerBatchClass TrackerBatchClass;
-
struct _TrackerBatchClass {
GObjectClass parent_class;
@@ -267,8 +251,6 @@ struct _TrackerBatchClass {
GError **error);
};
-typedef struct _TrackerSerializerClass TrackerSerializerClass;
-
struct _TrackerSerializerClass {
GInputStreamClass parent_class;
};
diff --git a/src/libtracker-sparql/tracker-resource.c b/src/libtracker-sparql/tracker-resource.c
index 265bea835..01c5e38e9 100644
--- a/src/libtracker-sparql/tracker-resource.c
+++ b/src/libtracker-sparql/tracker-resource.c
@@ -42,7 +42,7 @@ typedef struct {
GHashTable *overwrite;
} TrackerResourcePrivate;
-G_DEFINE_TYPE_WITH_PRIVATE (TrackerResource, tracker_resource, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (TrackerResource, tracker_resource, G_TYPE_OBJECT)
#define GET_PRIVATE(object) (tracker_resource_get_instance_private (object))
/**
@@ -287,7 +287,7 @@ tracker_resource_set_gvalue (TrackerResource *self,
g_hash_table_insert (priv->properties, g_strdup (property_uri), our_value);
g_hash_table_insert (priv->overwrite, g_strdup (property_uri), GINT_TO_POINTER (TRUE));
-};
+}
static gboolean
validate_boolean (gboolean value,
@@ -353,7 +353,7 @@ validate_pointer (const void *pointer,
g_hash_table_insert (priv->overwrite, \
g_strdup (property_uri), \
GINT_TO_POINTER (TRUE)); \
- };
+ }
/**
* tracker_resource_set_boolean:
@@ -363,7 +363,7 @@ validate_pointer (const void *pointer,
*
* Sets a single-valued boolean object.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_boolean, gboolean, G_TYPE_BOOLEAN, g_value_set_boolean, validate_boolean);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_boolean, gboolean, G_TYPE_BOOLEAN, g_value_set_boolean, validate_boolean)
/**
* tracker_resource_set_double:
@@ -373,7 +373,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_boolean, gboolean, G_TYPE_BOOLEAN,
*
* Sets a single-valued double object.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_double, double, G_TYPE_DOUBLE, g_value_set_double, validate_double);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_double, double, G_TYPE_DOUBLE, g_value_set_double, validate_double)
/**
* tracker_resource_set_int:
@@ -383,7 +383,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_double, double, G_TYPE_DOUBLE, g_va
*
* Sets a single-valued integer object.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_int, int, G_TYPE_INT, g_value_set_int, validate_int);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_int, int, G_TYPE_INT, g_value_set_int, validate_int)
/**
* tracker_resource_set_int64:
@@ -393,7 +393,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_int, int, G_TYPE_INT, g_value_set_i
*
* Sets a single-valued integer object.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_int64, gint64, G_TYPE_INT64, g_value_set_int64, validate_int64);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_int64, gint64, G_TYPE_INT64, g_value_set_int64, validate_int64)
/**
* tracker_resource_set_relation:
@@ -406,7 +406,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_int64, gint64, G_TYPE_INT64, g_valu
* although in this function the URI will depend on the identifier
* set on @resource.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_set_object, validate_pointer);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_set_object, validate_pointer)
/**
* tracker_resource_set_take_relation: (skip)
@@ -419,7 +419,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_relation, TrackerResource *, TRACKE
* although in this function the URI will depend on the identifier
* set on @resource. This function takes ownership of @resource.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_take_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_take_object, validate_pointer);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_take_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_take_object, validate_pointer)
/**
* tracker_resource_set_string:
@@ -429,7 +429,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_take_relation, TrackerResource *, T
*
* Sets a single-valued string object.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_string, const char *, G_TYPE_STRING, g_value_set_string, validate_pointer);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_string, const char *, G_TYPE_STRING, g_value_set_string, validate_pointer)
/**
* tracker_resource_set_uri:
@@ -441,7 +441,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_string, const char *, G_TYPE_STRING
* produces similar RDF to tracker_resource_set_relation(), although
* it requires that the URI is previously known.
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_uri, const char *, TRACKER_TYPE_URI, g_value_set_string, validate_pointer);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_uri, const char *, TRACKER_TYPE_URI, g_value_set_string, validate_pointer)
/**
* tracker_resource_set_datetime:
@@ -452,7 +452,7 @@ SET_PROPERTY_FOR_GTYPE (tracker_resource_set_uri, const char *, TRACKER_TYPE_URI
* Sets a single-valued GDateTime as a #TrackerResource
* Since: 3.2
*/
-SET_PROPERTY_FOR_GTYPE (tracker_resource_set_datetime, GDateTime *, G_TYPE_DATE_TIME, g_value_set_boxed, validate_pointer);
+SET_PROPERTY_FOR_GTYPE (tracker_resource_set_datetime, GDateTime *, G_TYPE_DATE_TIME, g_value_set_boxed, validate_pointer)
/**
* tracker_resource_add_gvalue:
@@ -513,7 +513,7 @@ tracker_resource_add_gvalue (TrackerResource *self,
if (array_holder != existing_value) {
g_hash_table_insert (priv->properties, g_strdup (property_uri), array_holder);
}
-};
+}
#define ADD_PROPERTY_FOR_GTYPE(name, ctype, gtype, set_function, validate_function) \
void name (TrackerResource *self, \
@@ -566,7 +566,7 @@ tracker_resource_add_gvalue (TrackerResource *self,
g_hash_table_insert (priv->properties, \
g_strdup (property_uri), array_holder); \
} \
- };
+ }
/**
* tracker_resource_add_boolean:
@@ -576,7 +576,7 @@ tracker_resource_add_gvalue (TrackerResource *self,
*
* Adds a boolean object to a multi-valued property.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_boolean, gboolean, G_TYPE_BOOLEAN, g_value_set_boolean, validate_boolean);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_boolean, gboolean, G_TYPE_BOOLEAN, g_value_set_boolean, validate_boolean)
/**
* tracker_resource_add_double:
@@ -586,7 +586,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_boolean, gboolean, G_TYPE_BOOLEAN,
*
* Adds a double object to a multi-valued property.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_double, double, G_TYPE_DOUBLE, g_value_set_double, validate_double);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_double, double, G_TYPE_DOUBLE, g_value_set_double, validate_double)
/**
* tracker_resource_add_int:
@@ -596,7 +596,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_double, double, G_TYPE_DOUBLE, g_va
*
* Adds an integer object to a multi-valued property.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_int, int, G_TYPE_INT, g_value_set_int, validate_int);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_int, int, G_TYPE_INT, g_value_set_int, validate_int)
/**
* tracker_resource_add_int64:
@@ -606,7 +606,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_int, int, G_TYPE_INT, g_value_set_i
*
* Adds an integer object to a multi-valued property.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_int64, gint64, G_TYPE_INT64, g_value_set_int64, validate_int64);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_int64, gint64, G_TYPE_INT64, g_value_set_int64, validate_int64)
/**
* tracker_resource_add_relation:
@@ -619,7 +619,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_int64, gint64, G_TYPE_INT64, g_valu
* although in this function the URI will depend on the identifier
* set on @resource.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_set_object, validate_pointer);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_set_object, validate_pointer)
/**
* tracker_resource_add_take_relation: (skip)
@@ -632,7 +632,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_relation, TrackerResource *, TRACKE
* although in this function the URI will depend on the identifier
* set on @resource. This function takes ownership of @resource.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_take_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_take_object, validate_pointer);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_take_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_take_object, validate_pointer)
/**
@@ -643,7 +643,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_take_relation, TrackerResource *, T
*
* Adds a string object to a multi-valued property.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_string, const char *, G_TYPE_STRING, g_value_set_string, validate_pointer);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_string, const char *, G_TYPE_STRING, g_value_set_string, validate_pointer)
/**
* tracker_resource_add_uri:
@@ -655,7 +655,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_string, const char *, G_TYPE_STRING
* produces similar RDF to tracker_resource_add_relation(), although
* it requires that the URI is previously known.
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_uri, const char *, TRACKER_TYPE_URI, g_value_set_string, validate_pointer);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_uri, const char *, TRACKER_TYPE_URI, g_value_set_string, validate_pointer)
/**
* tracker_resource_add_datetime:
@@ -666,7 +666,7 @@ ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_uri, const char *, TRACKER_TYPE_URI
* Adds GDateTime object to the multi-valued property.
* Since: 3.2
*/
-ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_datetime, GDateTime *, G_TYPE_DATE_TIME, g_value_set_boxed, validate_pointer);
+ADD_PROPERTY_FOR_GTYPE (tracker_resource_add_datetime, GDateTime *, G_TYPE_DATE_TIME, g_value_set_boxed, validate_pointer)
/**
* tracker_resource_get_values:
@@ -742,7 +742,7 @@ GList *tracker_resource_get_values (TrackerResource *self,
} \
\
return get_function (value); \
- };
+ }
/**
* tracker_resource_get_first_boolean:
@@ -753,7 +753,7 @@ GList *tracker_resource_get_values (TrackerResource *self,
*
* Returns: the first boolean object
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_boolean, gboolean, G_TYPE_BOOLEAN, g_value_get_boolean, FALSE);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_boolean, gboolean, G_TYPE_BOOLEAN, g_value_get_boolean, FALSE)
/**
* tracker_resource_get_first_double:
@@ -764,7 +764,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_boolean, gboolean, G_TYPE_BOO
*
* Returns: the first double object
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_double, double, G_TYPE_DOUBLE, g_value_get_double, 0.0);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_double, double, G_TYPE_DOUBLE, g_value_get_double, 0.0)
/**
* tracker_resource_get_first_int:
@@ -775,7 +775,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_double, double, G_TYPE_DOUBLE
*
* Returns: the first integer object
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_int, int, G_TYPE_INT, g_value_get_int, 0);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_int, int, G_TYPE_INT, g_value_get_int, 0)
/**
* tracker_resource_get_first_int64:
@@ -786,7 +786,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_int, int, G_TYPE_INT, g_value
*
* Returns: the first integer object
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_int64, gint64, G_TYPE_INT64, g_value_get_int64, 0);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_int64, gint64, G_TYPE_INT64, g_value_get_int64, 0)
/**
* tracker_resource_get_first_relation:
@@ -797,7 +797,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_int64, gint64, G_TYPE_INT64,
*
* Returns: (transfer none): the first resource object
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_get_object, NULL);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_relation, TrackerResource *, TRACKER_TYPE_RESOURCE, g_value_get_object, NULL)
/**
* tracker_resource_get_first_string:
@@ -808,7 +808,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_relation, TrackerResource *,
*
* Returns: the first string object
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_string, const char *, G_TYPE_STRING, g_value_get_string, NULL);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_string, const char *, G_TYPE_STRING, g_value_get_string, NULL)
/**
* tracker_resource_get_first_uri:
@@ -819,7 +819,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_string, const char *, G_TYPE_
*
* Returns: the first resource object as an URI.
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_uri, const char *, TRACKER_TYPE_URI, g_value_get_string, NULL);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_uri, const char *, TRACKER_TYPE_URI, g_value_get_string, NULL)
/**
* tracker_resource_get_first_datetime:
@@ -831,7 +831,7 @@ GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_uri, const char *, TRACKER_TY
* Returns: the first GDateTime object
* Since: 3.2
*/
-GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_datetime, GDateTime *, G_TYPE_DATE_TIME, g_value_get_boxed, NULL);
+GET_PROPERTY_FOR_GTYPE (tracker_resource_get_first_datetime, GDateTime *, G_TYPE_DATE_TIME, g_value_get_boxed, NULL)
/**
* tracker_resource_get_identifier:
@@ -945,7 +945,7 @@ tracker_resource_compare (TrackerResource *a,
b_priv = GET_PRIVATE (b);
return strcmp (a_priv->identifier, b_priv->identifier);
-};
+}
/**
* tracker_resource_get_properties:
@@ -1623,7 +1623,7 @@ tracker_resource_generate_jsonld (TrackerResource *self,
}
g_hash_table_foreach (priv->properties, generate_jsonld_foreach, data);
-};
+}
static void
generate_jsonld_value (const GValue *value,
diff --git a/src/libtracker-sparql/tracker-serializer-json.h b/src/libtracker-sparql/tracker-serializer-json.h
index ca0d49e47..c55aadc06 100644
--- a/src/libtracker-sparql/tracker-serializer-json.h
+++ b/src/libtracker-sparql/tracker-serializer-json.h
@@ -31,6 +31,6 @@
G_DECLARE_FINAL_TYPE (TrackerSerializerJson,
tracker_serializer_json,
TRACKER, SERIALIZER_JSON,
- TrackerSerializer);
+ TrackerSerializer)
#endif /* TRACKER_SERIALIZER_JSON_H */
diff --git a/src/libtracker-sparql/tracker-serializer-xml.c b/src/libtracker-sparql/tracker-serializer-xml.c
index 9e4b5ec47..057312dfb 100644
--- a/src/libtracker-sparql/tracker-serializer-xml.c
+++ b/src/libtracker-sparql/tracker-serializer-xml.c
@@ -99,7 +99,7 @@ serialize_up_to_position (TrackerSerializerXml *serializer_xml,
xmlTextWriterWriteFormatAttribute (serializer_xml->writer,
XML ("name"),
"%s",
- g_ptr_array_index (serializer_xml->vars, i));
+ (char *) g_ptr_array_index (serializer_xml->vars, i));
xmlTextWriterEndElement (serializer_xml->writer);
}
diff --git a/src/libtracker-sparql/tracker-serializer-xml.h b/src/libtracker-sparql/tracker-serializer-xml.h
index d94bf4eb6..54acfb7db 100644
--- a/src/libtracker-sparql/tracker-serializer-xml.h
+++ b/src/libtracker-sparql/tracker-serializer-xml.h
@@ -31,6 +31,6 @@
G_DECLARE_FINAL_TYPE (TrackerSerializerXml,
tracker_serializer_xml,
TRACKER, SERIALIZER_XML,
- TrackerSerializer);
+ TrackerSerializer)
#endif /* TRACKER_SERIALIZER_XML_H */
diff --git a/src/libtracker-sparql/tracker-serializer.h b/src/libtracker-sparql/tracker-serializer.h
index f948858bb..03dcbbba4 100644
--- a/src/libtracker-sparql/tracker-serializer.h
+++ b/src/libtracker-sparql/tracker-serializer.h
@@ -29,7 +29,7 @@
G_DECLARE_DERIVABLE_TYPE (TrackerSerializer,
tracker_serializer,
TRACKER, SERIALIZER,
- GInputStream);
+ GInputStream)
typedef enum
{
diff --git a/src/libtracker-sparql/tracker-statement.c b/src/libtracker-sparql/tracker-statement.c
index 54cce281c..c3d0ce30b 100644
--- a/src/libtracker-sparql/tracker-statement.c
+++ b/src/libtracker-sparql/tracker-statement.c
@@ -214,9 +214,9 @@ tracker_sparql_statement_bind_boolean (TrackerSparqlStatement *stmt,
g_return_if_fail (TRACKER_IS_SPARQL_STATEMENT (stmt));
g_return_if_fail (name != NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_boolean (stmt,
- name,
- value);
+ TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_boolean (stmt,
+ name,
+ value);
}
/**
@@ -235,9 +235,9 @@ tracker_sparql_statement_bind_int (TrackerSparqlStatement *stmt,
g_return_if_fail (TRACKER_IS_SPARQL_STATEMENT (stmt));
g_return_if_fail (name != NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_int (stmt,
- name,
- value);
+ TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_int (stmt,
+ name,
+ value);
}
/**
@@ -256,9 +256,9 @@ tracker_sparql_statement_bind_double (TrackerSparqlStatement *stmt,
g_return_if_fail (TRACKER_IS_SPARQL_STATEMENT (stmt));
g_return_if_fail (name != NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_double (stmt,
- name,
- value);
+ TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_double (stmt,
+ name,
+ value);
}
/**
@@ -278,9 +278,9 @@ tracker_sparql_statement_bind_string (TrackerSparqlStatement *stmt,
g_return_if_fail (name != NULL);
g_return_if_fail (value != NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_string (stmt,
- name,
- value);
+ TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_string (stmt,
+ name,
+ value);
}
/**
@@ -302,9 +302,9 @@ tracker_sparql_statement_bind_datetime (TrackerSparqlStatement *stmt,
g_return_if_fail (name != NULL);
g_return_if_fail (value != NULL);
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_datetime (stmt,
- name,
- value);
+ TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->bind_datetime (stmt,
+ name,
+ value);
}
/**
@@ -350,10 +350,10 @@ tracker_sparql_statement_execute_async (TrackerSparqlStatement *stmt,
g_return_if_fail (TRACKER_IS_SPARQL_STATEMENT (stmt));
g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
- return TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->execute_async (stmt,
- cancellable,
- callback,
- user_data);
+ TRACKER_SPARQL_STATEMENT_GET_CLASS (stmt)->execute_async (stmt,
+ cancellable,
+ callback,
+ user_data);
}
/**
diff --git a/src/portal/meson.build b/src/portal/meson.build
index b4bb7feb9..c39f6b3da 100644
--- a/src/portal/meson.build
+++ b/src/portal/meson.build
@@ -8,7 +8,6 @@ sources = [
executable('tracker-xdg-portal-@0@'.format(tracker_api_major), sources,
c_args: tracker_c_args,
install: true,
- install_rpath: tracker_install_rpath,
install_dir: get_option('libexecdir'),
dependencies: [tracker_sparql_dep, tracker_common_dep],
include_directories: [commoninc, configinc, srcinc],
diff --git a/src/portal/tracker-portal-endpoint.c b/src/portal/tracker-portal-endpoint.c
index 79028a1b6..5cce3c2c2 100644
--- a/src/portal/tracker-portal-endpoint.c
+++ b/src/portal/tracker-portal-endpoint.c
@@ -29,7 +29,6 @@
#define GRAPH_ALL "*"
#define GRAPH_DEFAULT "default"
-typedef struct _TrackerPortalEndpoint TrackerPortalEndpoint;
typedef struct _TrackerPortalEndpointClass TrackerPortalEndpointClass;
struct _TrackerPortalEndpoint
diff --git a/src/portal/tracker-portal.c b/src/portal/tracker-portal.c
index 2da9adaeb..310fe3e20 100644
--- a/src/portal/tracker-portal.c
+++ b/src/portal/tracker-portal.c
@@ -28,7 +28,6 @@
#include "tracker-portal-endpoint.h"
#include "tracker-portal-utils.h"
-typedef struct _TrackerPortal TrackerPortal;
typedef struct _TrackerSession TrackerSession;
struct _TrackerSession
diff --git a/src/tracker/meson.build b/src/tracker/meson.build
index 882945a42..1cb0a4932 100644
--- a/src/tracker/meson.build
+++ b/src/tracker/meson.build
@@ -26,7 +26,7 @@ executable(command_name, sources,
'-DBINDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('bindir'))),
],
install: true,
- install_rpath: tracker_install_rpath,
+ install_rpath: tracker_internal_libs_dir,
dependencies: [tracker_sparql_dep, tracker_data_dep],
include_directories: [commoninc, configinc, srcinc],
)
diff --git a/src/tracker/tracker-sparql.c b/src/tracker/tracker-sparql.c
index 2841d355f..04fcdff71 100644
--- a/src/tracker/tracker-sparql.c
+++ b/src/tracker/tracker-sparql.c
@@ -609,6 +609,13 @@ tree_node_data_new (const gchar *class,
}
static void
+tree_data_free (gpointer data,
+ gpointer user_data)
+{
+ g_free (data);
+}
+
+static void
tree_node_data_free (NodeData *data)
{
if (data == NULL) {
@@ -616,7 +623,7 @@ tree_node_data_free (NodeData *data)
}
if (data->properties) {
- g_slist_foreach (data->properties, (GFunc) g_free, NULL);
+ g_slist_foreach (data->properties, tree_data_free, NULL);
g_slist_free (data->properties);
}
@@ -631,7 +638,8 @@ tree_new (void)
}
static gboolean
-tree_free_foreach (GNode *node)
+tree_free_foreach (GNode *node,
+ gpointer data)
{
tree_node_data_free (node->data);
return FALSE;
@@ -644,7 +652,7 @@ tree_free (GNode *node)
G_POST_ORDER,
G_TRAVERSE_ALL,
-1,
- (GNodeTraverseFunc) tree_free_foreach,
+ tree_free_foreach,
NULL);
g_node_destroy (node);
}
diff --git a/tests/functional-tests/ipc/meson.build b/tests/functional-tests/ipc/meson.build
index fd8a58cbc..4aaa334b8 100644
--- a/tests/functional-tests/ipc/meson.build
+++ b/tests/functional-tests/ipc/meson.build
@@ -13,4 +13,4 @@ bus_query_cancellation_test = executable('test-bus-query-cancellation',
test('bus-query-cancellation', bus_query_cancellation_test,
env: test_env,
suite: ['functional', 'ipc'],
- timeout: 60)
+ timeout: 30)
diff --git a/tests/functional-tests/meson.build b/tests/functional-tests/meson.build
index c0a3b4bd6..23f514d09 100644
--- a/tests/functional-tests/meson.build
+++ b/tests/functional-tests/meson.build
@@ -51,7 +51,7 @@ foreach test_name: functional_tests
env: test_env,
protocol: protocol,
suite: ['functional'],
- timeout: 60)
+ timeout: 30)
endforeach
subdir('ipc')
diff --git a/tests/libtracker-data/datetime/filter-1.out b/tests/libtracker-data/datetime/filter-1.out
new file mode 100644
index 000000000..4f6581e08
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-1.out
@@ -0,0 +1 @@
+"2010-02-16T11:00:00Z"
diff --git a/tests/libtracker-data/datetime/filter-1.rq b/tests/libtracker-data/datetime/filter-1.rq
new file mode 100644
index 000000000..e0ab2aeb9
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-1.rq
@@ -0,0 +1,9 @@
+SELECT ?d {
+ VALUES ?d {
+ '2010-02-16T11:00:00Z'^^xsd:dateTime
+ '2011-02-16T11:00:00.123Z'^^xsd:dateTime
+ '2012-02-16T11:00:00Z'^^xsd:dateTime
+ }
+ FILTER (?d = '2010-02-16T11:00:00Z'^^xsd:dateTime)
+}
+ORDER BY ?d
diff --git a/tests/libtracker-data/datetime/filter-2.out b/tests/libtracker-data/datetime/filter-2.out
new file mode 100644
index 000000000..edb57a0aa
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-2.out
@@ -0,0 +1 @@
+"2011-02-16T11:00:00.123Z"
diff --git a/tests/libtracker-data/datetime/filter-2.rq b/tests/libtracker-data/datetime/filter-2.rq
new file mode 100644
index 000000000..bcb5ac340
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-2.rq
@@ -0,0 +1,8 @@
+SELECT ?d {
+ VALUES ?d {
+ '2010-02-16T11:00:00Z'^^xsd:dateTime
+ '2011-02-16T11:00:00.123Z'^^xsd:dateTime
+ '2012-02-16T11:00:00Z'^^xsd:dateTime
+ }
+ FILTER (?d = '2011-02-16T11:00:00.123Z'^^xsd:dateTime)
+}
diff --git a/tests/libtracker-data/datetime/filter-3.out b/tests/libtracker-data/datetime/filter-3.out
new file mode 100644
index 000000000..4907aa6a6
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-3.out
@@ -0,0 +1,2 @@
+"2012-02-16T11:00:00Z"
+"2011-02-16T11:00:00.123Z"
diff --git a/tests/libtracker-data/datetime/filter-3.rq b/tests/libtracker-data/datetime/filter-3.rq
new file mode 100644
index 000000000..38257e3c2
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-3.rq
@@ -0,0 +1,9 @@
+SELECT ?d {
+ VALUES ?d {
+ '2010-02-16T11:00:00Z'^^xsd:dateTime
+ '2011-02-16T11:00:00.123Z'^^xsd:dateTime
+ '2012-02-16T11:00:00Z'^^xsd:dateTime
+ }
+ FILTER (?d >= '2011-02-16T11:00:00.123Z'^^xsd:dateTime)
+}
+ORDER BY ?d
diff --git a/tests/libtracker-data/datetime/filter-4.out b/tests/libtracker-data/datetime/filter-4.out
new file mode 100644
index 000000000..edb57a0aa
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-4.out
@@ -0,0 +1 @@
+"2011-02-16T11:00:00.123Z"
diff --git a/tests/libtracker-data/datetime/filter-4.rq b/tests/libtracker-data/datetime/filter-4.rq
new file mode 100644
index 000000000..9e9070c19
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-4.rq
@@ -0,0 +1,9 @@
+SELECT ?d {
+ VALUES ?d {
+ '2010-02-16T11:00:00Z'^^xsd:dateTime
+ '2011-02-16T11:00:00.123Z'^^xsd:dateTime
+ '2012-02-16T11:00:00Z'^^xsd:dateTime
+ }
+ FILTER ('2011-02-16T11:00:00.123Z'^^xsd:dateTime = ?d)
+}
+ORDER BY ?d
diff --git a/tests/libtracker-data/datetime/filter-5.out b/tests/libtracker-data/datetime/filter-5.out
new file mode 100644
index 000000000..4907aa6a6
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-5.out
@@ -0,0 +1,2 @@
+"2012-02-16T11:00:00Z"
+"2011-02-16T11:00:00.123Z"
diff --git a/tests/libtracker-data/datetime/filter-5.rq b/tests/libtracker-data/datetime/filter-5.rq
new file mode 100644
index 000000000..0b2b6dc0b
--- /dev/null
+++ b/tests/libtracker-data/datetime/filter-5.rq
@@ -0,0 +1,9 @@
+SELECT ?d {
+ VALUES ?d {
+ '2010-02-16T11:00:00Z'^^xsd:dateTime
+ '2011-02-16T11:00:00.123Z'^^xsd:dateTime
+ '2012-02-16T11:00:00Z'^^xsd:dateTime
+ }
+ FILTER (?d IN ('2011-02-16T11:00:00.123Z'^^xsd:dateTime, '2012-02-16T11:00:00Z'^^xsd:dateTime, '2013-02-16T11:00:00Z'^^xsd:dateTime))
+}
+ORDER BY ?d
diff --git a/tests/libtracker-data/meson.build b/tests/libtracker-data/meson.build
index e7386b851..3ba1ddf5e 100644
--- a/tests/libtracker-data/meson.build
+++ b/tests/libtracker-data/meson.build
@@ -44,6 +44,6 @@ foreach base_name: libtracker_data_slow_tests
'name': base_name,
'exe': binary,
'suite': ['data', 'slow'],
- 'timeout': 280
+ 'timeout': 100
}
endforeach
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index dc4cdd2c4..aa53bbf41 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -104,6 +104,11 @@ const TestInfo tests[] = {
{ "datetime/functions-timezone-2", "datetime/data-2", FALSE },
{ "datetime/functions-timezone-3", "datetime/data-2", FALSE },
{ "datetime/functions-tz-1", "datetime/data-2", FALSE },
+ { "datetime/filter-1", "datetime/data-1", FALSE },
+ { "datetime/filter-2", "datetime/data-1", FALSE },
+ { "datetime/filter-3", "datetime/data-1", FALSE },
+ { "datetime/filter-4", "datetime/data-1", FALSE },
+ { "datetime/filter-5", "datetime/data-1", FALSE },
{ "describe/describe-single", "describe/data", FALSE },
{ "describe/describe-non-existent", "describe/data", FALSE },
{ "describe/describe-pattern", "describe/data", FALSE },
diff --git a/tests/libtracker-sparql/statement/cast.out b/tests/libtracker-sparql/statement/cast.out
new file mode 100644
index 000000000..5a02e8885
--- /dev/null
+++ b/tests/libtracker-sparql/statement/cast.out
@@ -0,0 +1 @@
+"http://www.w3.org/2001/XMLSchema#"
diff --git a/tests/libtracker-sparql/statement/cast.rq b/tests/libtracker-sparql/statement/cast.rq
new file mode 100644
index 000000000..ee32af1f4
--- /dev/null
+++ b/tests/libtracker-sparql/statement/cast.rq
@@ -0,0 +1,6 @@
+SELECT ?s {
+ ?s nrl:lastModified ?d
+ FILTER ( ?d <= ~arg1^^xsd:dateTime )
+}
+ORDER BY ASC ?d
+LIMIT 1
diff --git a/tests/libtracker-sparql/tracker-fd-test.c b/tests/libtracker-sparql/tracker-fd-test.c
index 2ba589d3a..a896903d5 100644
--- a/tests/libtracker-sparql/tracker-fd-test.c
+++ b/tests/libtracker-sparql/tracker-fd-test.c
@@ -32,14 +32,11 @@ typedef struct {
const gchar *query;
} AsyncData;
-typedef struct {
-} DataFixture;
-
static TrackerSparqlConnection *connection;
gboolean started = FALSE;
static void
-delete_test_data (DataFixture *fixture,
+delete_test_data (gpointer *fixture,
gconstpointer user_data)
{
GError *error = NULL;
@@ -55,7 +52,7 @@ delete_test_data (DataFixture *fixture,
}
static void
-insert_test_data (DataFixture *fixture,
+insert_test_data (gpointer *fixture,
gconstpointer user_data)
{
GError *error = NULL;
@@ -188,23 +185,23 @@ query_and_compare_results (const char *query)
}
static void
-test_tracker_sparql_query_iterate (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate (gpointer *fixture,
+ gconstpointer user_data)
{
query_and_compare_results ("SELECT ?r nie:url(?r) WHERE {?r a nfo:FileDataObject}");
}
static void
-test_tracker_sparql_query_iterate_largerow (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_largerow (gpointer *fixture,
+ gconstpointer user_data)
{
query_and_compare_results ("SELECT nao:identifier(?r) WHERE {?r a nmm:Photo}");
}
/* Runs an invalid query */
static void
-test_tracker_sparql_query_iterate_error (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_error (gpointer *fixture,
+ gconstpointer user_data)
{
TrackerSparqlCursor *cursor;
GError *error = NULL;
@@ -228,8 +225,8 @@ test_tracker_sparql_query_iterate_error (DataFixture *fixture,
/* Runs a query returning an empty set */
static void
-test_tracker_sparql_query_iterate_empty_subprocess (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_empty_subprocess (gpointer *fixture,
+ gconstpointer user_data)
{
TrackerSparqlCursor *cursor;
GError *error = NULL;
@@ -249,8 +246,8 @@ test_tracker_sparql_query_iterate_empty_subprocess (DataFixture *fixture,
}
static void
-test_tracker_sparql_query_iterate_empty (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_empty (gpointer *fixture,
+ gconstpointer user_data)
{
TrackerSparqlCursor *cursor;
GError *error = NULL;
@@ -274,8 +271,8 @@ test_tracker_sparql_query_iterate_empty (DataFixture *fixture,
/* Closes the cursor before all results are read */
static void
-test_tracker_sparql_query_iterate_sigpipe (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_sigpipe (gpointer *fixture,
+ gconstpointer user_data)
{
TrackerSparqlCursor *cursor;
GError *error = NULL;
@@ -292,8 +289,8 @@ test_tracker_sparql_query_iterate_sigpipe (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_fast_small (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_fast_small (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
const gchar *query = "INSERT { _:x a nfo:Image }";
@@ -304,8 +301,8 @@ test_tracker_sparql_update_fast_small (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_fast_large (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_fast_large (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
gchar *lots;
@@ -343,7 +340,7 @@ async_update_array_callback (GObject *source_object,
static void
-test_tracker_sparql_update_array_async (DataFixture *fixture,
+test_tracker_sparql_update_array_async (gpointer *fixture,
gconstpointer user_data)
{
const gchar *queries[6] = { "INSERT { _:a a nfo:Image }",
@@ -393,7 +390,7 @@ async_update_array_empty_callback (GObject *source_object,
}
static void
-test_tracker_sparql_update_array_async_empty (DataFixture *fixture,
+test_tracker_sparql_update_array_async_empty (gpointer *fixture,
gconstpointer user_data)
{
const gchar **queries = NULL;
@@ -421,8 +418,8 @@ test_tracker_sparql_update_array_async_empty (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_fast_error (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_fast_error (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
const gchar *query = "blork blork blork";
@@ -434,8 +431,8 @@ test_tracker_sparql_update_fast_error (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_blank_fast_small (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_blank_fast_small (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
const gchar *query = "INSERT { _:x a nfo:Image }";
@@ -450,8 +447,8 @@ test_tracker_sparql_update_blank_fast_small (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_blank_fast_large (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_blank_fast_large (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
gchar *lots;
@@ -476,8 +473,8 @@ test_tracker_sparql_update_blank_fast_large (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_blank_fast_error (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_blank_fast_error (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
const gchar *query = "blork blork blork";
@@ -492,8 +489,8 @@ test_tracker_sparql_update_blank_fast_error (DataFixture *fixture,
}
static void
-test_tracker_sparql_update_blank_fast_no_blanks (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_blank_fast_no_blanks (gpointer *fixture,
+ gconstpointer user_data)
{
GError *error = NULL;
const gchar *query = "INSERT { <urn:not_blank> a nfo:Image }";
@@ -508,8 +505,8 @@ test_tracker_sparql_update_blank_fast_no_blanks (DataFixture *fixture,
}
static void
-test_tracker_batch_sparql_update_fast (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_batch_sparql_update_fast (gpointer *fixture,
+ gconstpointer user_data)
{
/* GError *error = NULL; */
/* const gchar *query = "INSERT { _:x a nfo:Image }"; */
@@ -557,8 +554,8 @@ async_query_cb (GObject *source_object,
}
static void
-test_tracker_sparql_query_iterate_async (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_async (gpointer *fixture,
+ gconstpointer user_data)
{
const gchar *query = "SELECT ?r nie:url(?r) WHERE {?r a nfo:FileDataObject}";
GMainLoop *main_loop;
@@ -599,8 +596,8 @@ cancel_query_cb (GObject *source_object,
}
static void
-test_tracker_sparql_query_iterate_async_cancel (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_query_iterate_async_cancel (gpointer *fixture,
+ gconstpointer user_data)
{
const gchar *query = "SELECT ?r nie:url(?r) WHERE {?r a nfo:FileDataObject}";
GMainLoop *main_loop;
@@ -637,8 +634,8 @@ async_update_callback (GObject *source_object,
}
static void
-test_tracker_sparql_update_async (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_async (gpointer *fixture,
+ gconstpointer user_data)
{
const gchar *query = "INSERT { _:x a nfo:Image }";
GMainLoop *main_loop;
@@ -678,8 +675,8 @@ cancel_update_cb (GObject *source_object,
}
static void
-test_tracker_sparql_update_async_cancel (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_async_cancel (gpointer *fixture,
+ gconstpointer user_data)
{
GCancellable *cancellable = g_cancellable_new ();
const gchar *query = "INSERT { _:x a nfo:Image }";
@@ -717,8 +714,8 @@ async_update_blank_callback (GObject *source_object,
}
static void
-test_tracker_sparql_update_blank_async (DataFixture *fixture,
- gconstpointer user_data)
+test_tracker_sparql_update_blank_async (gpointer *fixture,
+ gconstpointer user_data)
{
const gchar *query = "INSERT { _:x a nfo:Image }";
GMainLoop *main_loop;
@@ -820,47 +817,47 @@ main (gint argc, gchar **argv)
connection = create_dbus_connection (NULL);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_largerow", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_largerow", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate_largerow, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_error", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_error", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate_error, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_empty", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_empty", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate_empty, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_empty/subprocess", DataFixture, NULL,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_empty/subprocess", gpointer, NULL,
insert_test_data, test_tracker_sparql_query_iterate_empty_subprocess, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_sigpipe", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_sigpipe", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate_sigpipe, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_fast_small", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_fast_small", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_fast_small, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_fast_large", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_fast_large", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_fast_large, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_fast_error", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_fast_error", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_fast_error, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_small", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_small", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_blank_fast_small, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_large", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_large", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_blank_fast_large, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_error", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_error", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_blank_fast_error, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_no_blanks", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_blank_fast_no_blanks", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_blank_fast_no_blanks, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_batch_sparql_update_fast", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_batch_sparql_update_fast", gpointer, NULL, insert_test_data,
test_tracker_batch_sparql_update_fast, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_async", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_async", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate_async, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_async_cancel", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_query_iterate_async_cancel", gpointer, NULL, insert_test_data,
test_tracker_sparql_query_iterate_async_cancel, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_async", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_async", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_async, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_async_cancel", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_async_cancel", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_async_cancel, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_blank_async", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_blank_async", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_blank_async, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_array_async", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_array_async", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_array_async, delete_test_data);
- g_test_add ("/steroids/tracker/tracker_sparql_update_array_async_empty", DataFixture, NULL, insert_test_data,
+ g_test_add ("/steroids/tracker/tracker_sparql_update_array_async_empty", gpointer, NULL, insert_test_data,
test_tracker_sparql_update_array_async_empty, delete_test_data);
return g_test_run ();
diff --git a/tests/libtracker-sparql/tracker-sparql-test.c b/tests/libtracker-sparql/tracker-sparql-test.c
index 70d5a5ef5..c6e1b0e8d 100644
--- a/tests/libtracker-sparql/tracker-sparql-test.c
+++ b/tests/libtracker-sparql/tracker-sparql-test.c
@@ -153,9 +153,7 @@ test_tracker_sparql_cursor_next_async_cb (GObject *source,
*/
if (next == next_to_cancel && finished == 1) {
/* Cancel */
- g_print ("# Cancelling cancellable:%p at count:%d\n",
- cancellables[query],
- next);
+ g_print ("# Cancelling cancellable: at count:%d\n", next);
g_cancellable_cancel (cancellables[query]);
}
diff --git a/tests/libtracker-sparql/tracker-statement-test.c b/tests/libtracker-sparql/tracker-statement-test.c
index 9b26ac410..df9276489 100644
--- a/tests/libtracker-sparql/tracker-statement-test.c
+++ b/tests/libtracker-sparql/tracker-statement-test.c
@@ -50,6 +50,7 @@ TestInfo tests[] = {
{ "offset", "statement/offset.rq", "statement/offset.out", "0" },
{ "offset-2", "statement/offset.rq", "statement/offset-2.out", "1" },
{ "datetime", "statement/datetime.rq", "statement/datetime.out", NULL, NULL, "2020-12-04T04:10:03Z" },
+ { "cast", "statement/cast.rq", "statement/cast.out", "2021-02-24T22:01:02Z" },
};
typedef struct {