ubuntu-sdk-bugs team mailing list archive
-
ubuntu-sdk-bugs team
-
Mailing list archive
-
Message #00633
[Bug 1271973] Re: Results from U1db.Query contain only indexed fields, not the whole document
This bug was fixed in the package u1db-qt -
0.1.5+14.04.20140313-0ubuntu1
---------------
u1db-qt (0.1.5+14.04.20140313-0ubuntu1) trusty; urgency=low
[ CI bot ]
* No change rebuild against Qt 5.2.1.
[ Christian Dywan ]
* Adopt xvfb.sh script from ui toolkit to run tests
* Sort out build warnings and make them always fatal.
* Implement Database.removeDoc method and use it in unit test
Functionally this is equivalent to replacing the doc with an empty
one. (LP: #1243395)
* Use new-style qmlrunner log option to enable stdout.
* Query improvements and more advanced example. (LP: #1271977,
#1271972, #1266478)
* Store whole document contents in the results and unit test that.
(LP: #1271973)
* Reverse query logic to check non-matching and internally convert
between query syntaxes. (LP: #1284194, #1214538, #1215898)
* Revert r113 and update unit test to verify previous behavior
-- Ubuntu daily release <ps-jenkins@xxxxxxxxxxxxxxxxxxx> Thu, 13 Mar 2014 23:12:40 +0000
** Changed in: u1db-qt (Ubuntu)
Status: New => Fix Released
--
You received this bug notification because you are a member of Ubuntu
SDK bug tracking, which is subscribed to u1db-qt in Ubuntu.
https://bugs.launchpad.net/bugs/1271973
Title:
Results from U1db.Query contain only indexed fields, not the whole
document
Status in U1DB Qt/ QML:
Confirmed
Status in “u1db-qt” package in Ubuntu:
Fix Released
Bug description:
Whe using U1db.Index and U1db.Query to query information from a U1db,
the results returned from a Query should be the entire document, and
instead they are a subset of the document containing only the indexed
fields.
Example code below. Observe that the left-hand ListView is showing
results, but those results are not the whole content of each document;
instead, they contain only the fields in the index. Index queries
should return the whole document. Otherwise queries are almost
useless; they are designed so that you can get a list of the documents
which match the query fields, not just the query fields which match
the query fields. Returning the value of the fields which match the
query is pointless: you must already know those values in order to
construct the query in the first place.
import QtQuick 2.0
import U1db 1.0 as U1db
Rectangle {
width: 600
height: 300
U1db.Database { id: db; path: "u1db-broken-query"; }
U1db.Document {
database: db; docId: "doc1"; create: true
defaults: { "topfield": { "subfield": "subvalue1" }, "toplevelfield": "topvalue1" }
}
U1db.Document {
database: db; docId: "doc2"; create: true
defaults: { "topfield": { "subfield": "subvalue2" }, "toplevelfield": "topvalue2" }
}
U1db.Index {
database: db
id: by_topfield_subfield
expression: ["topfield.subfield"]
}
U1db.Index {
database: db
id: by_toplevelfield
expression: ["toplevelfield.subfield"]
}
U1db.Query { id: qtopsub; index: by_topfield_subfield; query: [{subfield: "*"}] }
U1db.Query { id: qtoplevel; index: by_toplevelfield; query: [{toplevelfield: "*"}] }
Text {
id: h1
width: parent.width / 2
height: 50
anchors.left: parent.left
anchors.top: parent.top
horizontalAlignment: Text.AlignHCenter
text: "ListModel on topfield.subfield"
}
ListView {
anchors.top: h1.bottom
anchors.left: parent.left
width: h1.width
anchors.bottom: parent.bottom
model: qtopsub
delegate: Text {
text: JSON.stringify(model.contents)
}
}
Text {
id: h2
width: parent.width / 2
height: 50
anchors.right: parent.right
anchors.top: parent.top
horizontalAlignment: Text.AlignHCenter
text: "ListModel on toplevelfield"
}
ListView {
anchors.top: h2.bottom
anchors.right: parent.right
width: h2.width
anchors.bottom: parent.bottom
model: qtoplevel
delegate: Text {
text: JSON.stringify(model.contents)
}
}
}
To manage notifications about this bug go to:
https://bugs.launchpad.net/u1db-qt/+bug/1271973/+subscriptions