author | František Kučera <franta-hg@frantovo.cz> |
Mon, 21 Feb 2022 00:43:11 +0100 | |
branch | v_0 |
changeset 329 | 5bc2bb8b7946 |
parent 299 | dd7aeff5ef0c |
permissions | -rw-r--r-- |
23
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
1 |
<stránka |
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
2 |
xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana" |
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
3 |
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"> |
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
4 |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
5 |
<nadpis>Release v0.13</nadpis> |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
6 |
<perex>sixth public release of Relational pipes</perex> |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
7 |
<m:release>v0.13</m:release> |
4
1bb39595a51c
genrování hlavní nabídky #1
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
8 |
|
2
ab9099ff88fa
vkládání zápatí, jmenné prostory, saxon
František Kučera <franta-hg@frantovo.cz>
parents:
1
diff
changeset
|
9 |
<text xmlns="http://www.w3.org/1999/xhtml"> |
ab9099ff88fa
vkládání zápatí, jmenné prostory, saxon
František Kučera <franta-hg@frantovo.cz>
parents:
1
diff
changeset
|
10 |
<p> |
256 | 11 |
We are pleased to introduce you the new development version of <m:name/>. |
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
12 |
This release brings the XMLTable input filter, the SQL transformation and a small improvement in the filesystem input filter: |
241 | 13 |
</p> |
14 |
||
15 |
<ul> |
|
16 |
<li> |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
17 |
<strong>XMLTable input</strong>: |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
18 |
This tool does similar job like the <a href="https://www.postgresql.org/docs/current/functions-xml.html">xmltable</a> function known from SQL. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
19 |
It uses the <a href="https://www.w3.org/TR/xpath/all/">XPath</a> language for selecting parts of the input XML – one XPath expression points to record nodes |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
20 |
and one or more XPath expressions point to attribute nodes/values relatively to particular record node. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
21 |
Thus it is able to produce one or more relations from an arbitrary XML input. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
22 |
The input is parsed at once and converted to DOM in memory i.e. no streaming – thus processing of huge XML files requires appropriate amounts of RAM, on the other hand: |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
23 |
our expression can access whole XML document and pick values not only from currently processed record node. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
24 |
This tool uses the <a href="http://xmlsoft.org/">Libxml2</a> library (XML parser and XPath processor). |
250 | 25 |
</li> |
26 |
||
27 |
<li> |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
28 |
<strong>SQL transformation</strong>: |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
29 |
SQL is one of most powerful languages for processing relational data and the most widespread one. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
30 |
Now it can be used even on-the-fly in shell pipelines – without having any database server running. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
31 |
It is useful for record filtering, JOINing several relations together, doing aggregations or computations. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
32 |
By default everything is done in memory, but with the <code>--file</code> parameter we can use a temporary file |
276
cfaf1fa94154
rename --keep-file to --file-keep
František Kučera <franta-hg@frantovo.cz>
parents:
264
diff
changeset
|
33 |
and with <code>--keep-file</code> we can make it not so temporary (n.b. in the next version this option was renamed to <code>--file-keep</code>). |
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
34 |
This tool uses the <a href="https://www.sqlite.org/">SQLite</a> library. |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
35 |
</li> |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
36 |
|
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
37 |
<li> |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
38 |
<strong>file system input</strong>: |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
39 |
new optional attribute has been added: <code>--file content</code> |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
40 |
which allows getting the text content (currently only in the UTF-8 encoding) of the file which allows us using the file system as a simple database. |
241 | 41 |
</li> |
258
2868d772c27e
Release v0.12 – AWK
František Kučera <franta-hg@frantovo.cz>
parents:
256
diff
changeset
|
42 |
|
241 | 43 |
</ul> |
256 | 44 |
|
241 | 45 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
276
diff
changeset
|
46 |
n.b. the <code>--file</code> and <code>--file-keep</code> have been dropped in <m:a href="release-v0.16">v0.16</m:a> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
276
diff
changeset
|
47 |
(replacement is described in the v0.16 release notes). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
276
diff
changeset
|
48 |
</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
276
diff
changeset
|
49 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
276
diff
changeset
|
50 |
<p> |
256 | 51 |
See the <m:a href="examples">examples</m:a> and <m:a href="screenshots">screenshots</m:a> pages for details. |
151 | 52 |
</p> |
256 | 53 |
|
54 |
<p> |
|
299
dd7aeff5ef0c
fix typo: relasease → release
František Kučera <franta-hg@frantovo.cz>
parents:
297
diff
changeset
|
55 |
Please note that this is still a development release and thus the API (libraries, CLI arguments, formats) might and will change. |
329 | 56 |
Any suggestions, ideas and bug reports are welcome in our <m:a href="contact">mail box</m:a>. |
256 | 57 |
</p> |
151 | 58 |
|
59 |
<h3>Data types</h3> |
|
60 |
<ul> |
|
241 | 61 |
<li m:since="v0.8">boolean</li> |
62 |
<li m:since="v0.8">variable unsigned integer (prototype)</li> |
|
63 |
<li m:since="v0.8">string in UTF-8</li> |
|
151 | 64 |
</ul> |
65 |
<h3>Inputs</h3> |
|
66 |
<ul> |
|
256 | 67 |
<li m:since="v0.11">Recfile</li> |
241 | 68 |
<li m:since="v0.9">XML</li> |
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
69 |
<li m:since="v0.13">XMLTable</li> |
241 | 70 |
<li m:since="v0.9">CSV</li> |
71 |
<li m:since="v0.9">file system</li> |
|
72 |
<li m:since="v0.8">CLI</li> |
|
73 |
<li m:since="v0.8">fstab</li> |
|
151 | 74 |
</ul> |
75 |
<h3>Transformations</h3> |
|
76 |
<ul> |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
77 |
<li m:since="v0.13">sql: filtering and transformations using the SQL language</li> |
258
2868d772c27e
Release v0.12 – AWK
František Kučera <franta-hg@frantovo.cz>
parents:
256
diff
changeset
|
78 |
<li m:since="v0.12">awk: filtering and transformations using the classic AWK tool and language</li> |
250 | 79 |
<li m:since="v0.10">guile: filtering and transformations defined in the Scheme language using GNU Guile</li> |
241 | 80 |
<li m:since="v0.8">grep: regular expression filter, removes unwanted records from the relation</li> |
81 |
<li m:since="v0.8">cut: regular expression attribute cutter (removes or duplicates attributes and can also DROP whole relation)</li> |
|
82 |
<li m:since="v0.8">sed: regular expression replacer</li> |
|
83 |
<li m:since="v0.8">validator: just a pass-through filter that crashes on invalid data</li> |
|
84 |
<li m:since="v0.8">python: highly experimental</li> |
|
151 | 85 |
</ul> |
86 |
<h3>Outputs</h3> |
|
87 |
<ul> |
|
256 | 88 |
<li m:since="v0.11">ASN.1 BER</li> |
89 |
<li m:since="v0.11">Recfile</li> |
|
241 | 90 |
<li m:since="v0.9">CSV</li> |
91 |
<li m:since="v0.8">tabular</li> |
|
92 |
<li m:since="v0.8">XML</li> |
|
93 |
<li m:since="v0.8">nullbyte</li> |
|
94 |
<li m:since="v0.8">GUI in Qt</li> |
|
95 |
<li m:since="v0.8">ODS (LibreOffice)</li> |
|
151 | 96 |
</ul> |
97 |
||
98 |
<p> |
|
219 | 99 |
Instalation was tested on Debian GNU/Linux 9.6. |
100 |
The process should be similar on other distributions. |
|
101 |
</p> |
|
151 | 102 |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
103 |
<m:pre src="examples/release-v0.13.sh" jazyk="bash" odkaz="ano"/> |
151 | 104 |
|
219 | 105 |
<p> |
106 |
<m:name/> are modular thus you can download and install only parts you need (the libraries are needed always). |
|
107 |
Tools <code>out-gui.qt</code> and <code>tr-python</code> require additional libraries and are not built by default. |
|
108 |
</p> |
|
151 | 109 |
|
241 | 110 |
<p> |
111 |
The module <code>relpipe-in-filesystem</code> uses C++ filesystem API which is supported since GCC 8. |
|
112 |
This module can be compiled and seems usable even with GCC 6, but requires some patching (switch to the experimental API): |
|
113 |
</p> |
|
114 |
||
115 |
<m:pre jazyk="bash"><![CDATA[sed 's@#include <filesystem>@#include <experimental/filesystem>@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h |
|
116 |
sed 's@std::filesystem@std::experimental::filesystem@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h |
|
117 |
sed 's/.*PROPERTY CXX_STANDARD.*/#\0/g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/CMakeLists.txt]]></m:pre> |
|
118 |
||
250 | 119 |
<p> |
120 |
The module <code>relpipe-tr-guile</code> uses GNU Guile 2.2 but can also work with 2.0. |
|
121 |
In such case, it requires this patch: |
|
122 |
</p> |
|
123 |
||
124 |
<m:pre jazyk="bash"><![CDATA[sed 's/guile-2\.2/guile-2.0/g' -i "$RELPIPE_SRC"/relpipe-tr-guile.cpp/src/CMakeLists.txt]]></m:pre> |
|
125 |
||
87
25dec6931f18
Lepší odsazení, tabulátory.
František Kučera <franta-hg@frantovo.cz>
parents:
23
diff
changeset
|
126 |
</text> |
4
1bb39595a51c
genrování hlavní nabídky #1
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
127 |
|
1 | 128 |
</stránka> |