[open-ils-commits] [GIT] Evergreen ILS branch master updated. 2dc0b1c3221e5856ed4ba6e58fe97d996f2df697
Evergreen Git
git at git.evergreen-ils.org
Wed Dec 12 11:40:12 EST 2018
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, master has been updated
via 2dc0b1c3221e5856ed4ba6e58fe97d996f2df697 (commit)
via 62fc2eabfa5a7914d9c4000b21b42c2adad394bb (commit)
from 209dd231acd30e77015aa5dc001e0dc9b423e95a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2dc0b1c3221e5856ed4ba6e58fe97d996f2df697
Author: Remington Steed <rjs7 at calvin.edu>
Date: Wed Dec 12 11:36:17 2018 -0500
Docs: Fix screenshot file name
The asciidoc is looking for "My_Lists_dd.png", but the file has a
capitalized extension ".PNG". This commit renames the file to match the
code, since lowercase is our common naming convention.
Signed-off-by: Remington Steed <rjs7 at calvin.edu>
diff --git a/docs/media/My_Lists_dd.PNG b/docs/media/My_Lists_dd.png
similarity index 100%
rename from docs/media/My_Lists_dd.PNG
rename to docs/media/My_Lists_dd.png
commit 62fc2eabfa5a7914d9c4000b21b42c2adad394bb
Author: Remington Steed <rjs7 at calvin.edu>
Date: Mon Nov 26 14:10:36 2018 -0500
Docs: LP#1731048: Update json_query documentation for new join syntax
This commit simply adds the text from the related commit message (see
LP#1527731) to the original DocBook file. NOTE: This documentation is
also available on the wiki, and has been updated there as well:
https://wiki.evergreen-ils.org/doku.php?id=documentation:tutorials:json_query
Signed-off-by: Remington Steed <rjs7 at calvin.edu>
diff --git a/docs/TechRef/JSONTutorial.xml b/docs/TechRef/JSONTutorial.xml
index 5ea28c3..f91678d 100644
--- a/docs/TechRef/JSONTutorial.xml
+++ b/docs/TechRef/JSONTutorial.xml
@@ -2194,6 +2194,82 @@
</sect3>
<sect3>
+ <title>Choosing the Order of JOINs</title>
+ <para>As of Evergreen 3.0.2, we support user-defined join order in cstore and friends.
+ Previously, because the join structure of oils_sql beyond the specification of
+ a single table was only allowed to be represented as a JSON object, it was
+ subject to potential hash key reordering. By supporting an
+ intervening array layer, one can now specify the exact join order of the
+ tables in a join tree.
+
+ For example, given the following JSON object passing through a modern Perl 5
+ interpreter as a nested hash: </para>
+
+ <informalexample>
+ <programlisting language="JSON">
+ {select : {acp:['id'],
+ acn:['record'],
+ acpl:['name']
+ },
+ from : {acp:
+ {acn:{filter:{record:12345}},
+ acpl:null
+ }
+ }
+ }
+ </programlisting>
+ </informalexample>
+
+ <para> the FROM clause of the query may end up as: </para>
+
+ <informalexample>
+ <programlisting language="SQL">
+ FROM acp
+ JOIN acn ON (acp.call_number = acn.id AND acn.record = 12345)
+ JOIN acpl ON (acp.location = acpl.id)
+ </programlisting>
+ </informalexample>
+
+ <para> Or as: </para>
+
+ <informalexample>
+ <programlisting language="SQL">
+ FROM acp
+ JOIN acpl ON (acp.location = acpl.id)
+ JOIN acn ON (acp.call_number = acn.id AND acn.record = 12345)
+ </programlisting>
+ </informalexample>
+
+ <para> In some situations, the join order will matter either to the semantics of the
+ query plan, or to its performance. The following example of the newly
+ supported syntax illustrates how to specify join order: </para>
+
+ <informalexample>
+ <programlisting language="JSON">
+ {select : {acp:['id'],
+ acn:['record'],
+ acpl:['name']
+ },
+ from : {acp:[
+ {acn:{filter:{record:12345}}},
+ 'acpl'
+ ]}
+ }
+ </programlisting>
+ </informalexample>
+
+ <para> And the only FROM clause the can be generated is: </para>
+
+ <informalexample>
+ <programlisting language="SQL">
+ FROM acp
+ JOIN acn ON (acp.call_number = acn.id AND acn.record = 12345)
+ JOIN acpl ON (acp.location = acpl.id)
+ </programlisting>
+ </informalexample>
+ </sect3>
+
+ <sect3>
<title>Things You Can't Do</title>
<para> In a JOIN, as with other SQL constructs, there are some things that you can't do with
a JSON query. </para>
-----------------------------------------------------------------------
Summary of changes:
docs/TechRef/JSONTutorial.xml | 76 +++++++++++++++++++++++
docs/media/{My_Lists_dd.PNG => My_Lists_dd.png} | Bin 13918 -> 13918 bytes
2 files changed, 76 insertions(+), 0 deletions(-)
rename docs/media/{My_Lists_dd.PNG => My_Lists_dd.png} (100%)
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list