]> git.mxchange.org Git - core.git/commitdiff
moved for svn-git transission
authorRoland Häder <roland@mxchange.org>
Sun, 2 Feb 2014 02:28:09 +0000 (02:28 +0000)
committerRoland Häder <roland@mxchange.org>
Sun, 2 Feb 2014 02:28:09 +0000 (02:28 +0000)
18 files changed:
.gitattributes [new file with mode: 0644]
.gitignore [new file with mode: 0644]
chash/LICENSE [new file with mode: 0644]
chash/chash.php [new file with mode: 0644]
commit-rest.sh [new file with mode: 0755]
commit-trunks.sh [new file with mode: 0755]
lfdb2/LICENSE [new file with mode: 0644]
lfdb2/read.php [new file with mode: 0644]
lfdb2/test.data [new file with mode: 0644]
lfdb2/write.php [new file with mode: 0644]
lint.sh [new file with mode: 0755]
mindmaps/Local File Database - NG.mm [new file with mode: 0644]
patch.sh [new file with mode: 0755]
patch_core.sh [new file with mode: 0755]
patch_i.sh [new file with mode: 0755]
prop-set.sh [new file with mode: 0755]
remove-deprecated.sh [new file with mode: 0755]
todo-all.sh [new file with mode: 0755]

diff --git a/.gitattributes b/.gitattributes
new file mode 100644 (file)
index 0000000..e4f59a5
--- /dev/null
@@ -0,0 +1,8 @@
+* text=auto !eol
+chash/LICENSE -text
+chash/chash.php -text
+lfdb2/LICENSE -text
+lfdb2/read.php -text
+lfdb2/test.data -text
+lfdb2/write.php -text
+mindmaps/Local[!!-~]File[!!-~]Database[!!-~]-[!!-~]NG.mm svneol=native#text/xml
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..b2e94f1
--- /dev/null
@@ -0,0 +1,4 @@
+lfdb2/*.bin*
+lfdb2/*.out*
+mindmaps/*.png
+mindmaps/*.svg
diff --git a/chash/LICENSE b/chash/LICENSE
new file mode 100644 (file)
index 0000000..74f55a9
--- /dev/null
@@ -0,0 +1,2 @@
+These contributed codes, mostly by myself, are for testing/experimenting
+purposes only and are provided "AS IS" and "WITHOUT ANY WARRANTY".
\ No newline at end of file
diff --git a/chash/chash.php b/chash/chash.php
new file mode 100644 (file)
index 0000000..a1e91c2
--- /dev/null
@@ -0,0 +1,197 @@
+<?php
+error_reporting(E_ALL | E_STRICT);
+
+/**
+ * Continued-hashing
+ *
+ * @author             Roland Haeder <roland@mxchange.org>
+ * @copyright  Copyright (c) 2013 by Core Developer Team
+ * @license            See LICENSE (public-domain)
+ */
+
+/**
+ * Calculates a simple but stronger hash from given string. No salts are being
+ * added here.
+ *
+ * @param      $str    The string to be hashed
+ * @return     $hash   The hash from string $str
+ */
+function hashString ($str) {
+       // Calculate strong hash from given string
+       $hash = mhash(MHASH_RIPEMD320, $str);
+
+       // Return it hexadecimal-encoded
+       return bin2hex($hash);
+}
+
+/**
+ * Double-hashes given string. This is done by hashing the given string and
+ * then hashing the generated hash again.
+ *
+ * @param      $str    The string to be hashed 4 times
+ * @return     $hash   The generated hash
+ */
+function doubleHashString ($str) {
+       // Generate hash from given hash
+       $hash = hashString(hashString($str));
+
+       // Return it
+       return $hash;
+}
+
+/**
+ * Calculates a "modula-hash" based given two hashes.
+ *
+ * @param      $hash1  Hash 1
+ * @param      $hash2  Hash 2
+ */
+function modulaHash ($hash1, $hash2) {
+       // Both must have same length
+       assert(strlen($hash1) === strlen($hash2));
+
+       // Init new hash
+       $modulaHash = '';
+
+       // "Walk" trough first hash and get every 2 byte of both hashes
+       for ($idx = 0; $idx < strlen($hash1); $idx += 2) {
+               // Init modula value
+               $mod = 0;
+
+               // Get both hash parts and convert to ASCII number
+               $part1 = hexdec(substr($hash1, $idx, 2));
+               $part2 = hexdec(substr($hash2, $idx, 2));
+
+               /*
+                * If part1 is larget part2, part1 is divident and vise-versa. But don't do it
+                * if one is zero
+                */
+               if (($part1 > $part2) && ($part2 > 0)) {
+                       // 'part1' is larger than 'part2'
+                       $mod = $part1 % $part2;
+               } elseif (($part1 < $part2) && ($part1 > 0)) {
+                       // 'part2' is larger than 'part1'
+                       $mod = $part2 % $part1;
+               }
+
+               // "Invert" the result against 255
+               $mod = 255 - $mod;
+
+               // Encode to hex, pre-pad it with zeros and add to new hash
+               $modulaHash .= padHex($mod);
+       } // END - for
+
+       // Modula hash must have same length as input hash
+       assert(strlen($modulaHash) === strlen($hash1));
+
+       // Return modula hash
+       return $modulaHash;
+}
+
+/**
+ * Calculates a "sqrt-hash" based given two hashes and single-hash it
+ *
+ * @param      $hash1  Hash 1
+ * @param      $hash2  Hash 2
+ */
+function sqrtHash ($hash1, $hash2) {
+       // Both must have same length
+       assert(strlen($hash1) === strlen($hash2));
+
+       // Init new hash
+       $sqrtHash = '';
+
+       // "Walk" trough first hash and get every 2 byte of both hashes
+       for ($idx = 0; $idx < strlen($hash1); $idx += 2) {
+               // Init modula value
+               $mod = 0;
+
+               // Get both hash parts and convert to ASCII number
+               $part1 = hexdec(substr($hash1, $idx, 2));
+               $part2 = hexdec(substr($hash2, $idx, 2));
+
+               // Calculate square root of both parts being multiplied and round up, then "invert" it against 255
+               $sqrt = intval(255 - ceil(sqrt($part1 * $part2)));
+
+               // Encode to hex, pre-pad it with zeros and add to new hash
+               $sqrtHash .= padHex($sqrt);
+       } // END - for
+
+       // "sqrt-hash" must have same length as input hash
+       assert(strlen($sqrtHash) === strlen($hash1));
+
+       // Hash reversed "sqrt-hash" again and return it
+       return hashString(strrev($sqrtHash));
+}
+
+/**
+ * Converts a number between 0 and 255 into a zero-padded hexadecimal string
+ *
+ * @param      $num    Number between 0 and 255
+ * @return     $hex    Hexadecimal string, padded with zeros
+ */
+function padHex ($num) {
+       // Must be a integer number and between 0 and 255
+       assert(is_int($num));
+       assert($num >= 0);
+       assert($num <= 255);
+
+       // Convert it
+       $hex = str_pad(dechex($num), 2, '0', STR_PAD_LEFT);
+
+       // ... and return it
+       return $hex;
+}
+
+/*
+ * Calculate "genesis" hashes, please note that these "genesis strings" are now
+ * known to the public as you can read them here in source code and therefore I
+ * will not use them for the real genesis hashes.
+ */
+$hashes = array(
+       // A famous quote from Deus Ex 2 - Invisible War
+       doublehashString('"Informations must be free." - AI Helios'),
+       // My name + URL of my first StatusNet instance
+       doubleHashString('Roland Haeder, http://status.mxchange.org'),
+       // A famous quote from Linus Torwalds
+       doubleHashString('"Software is like sex. Its better when its free." - Linus Torwalds'),
+       // Possible truth ;-)
+       doubleHashString('September 11 is a big lie.'),
+
+       // GNU is not Uni*
+       doubleHashString('GNU is Not Uni*.'),
+       // WINE is not an emulator
+       doubleHashString('WINE Is Not an Emulator.'),
+       // FlightGear - Fly free!
+       doubleHashString('FlightGear - Fly free!'),
+       // Linus Torwalds Quote
+       doubleHashString('Your code is shit.. your argument is shit.'),
+);
+
+// Calculate "modula hash" from 1st/4th and 2nd/3rd
+$modulaHashes = array(
+       // "Block" 0
+       modulaHash($hashes[0], $hashes[3]),
+       modulaHash($hashes[1], $hashes[2]),
+
+       // "Block" 1
+       modulaHash($hashes[4], $hashes[7]),
+       modulaHash($hashes[5], $hashes[6]),
+);
+
+// Calculate "sqrt hash"
+$sqrtHashes = array(
+       sqrtHash($modulaHashes[0], $modulaHashes[1]),
+       sqrtHash($modulaHashes[2], $modulaHashes[3])
+);
+
+// Calulcate modula hash
+$modulaHash = modulaHash($sqrtHashes[0], $sqrtHashes[1]);
+
+// Output results
+print ('hashes=' . print_r($hashes, TRUE));
+print ('modulaHashes=' . print_r($modulaHashes, TRUE));
+print ('sqrtHashes=' . print_r($sqrtHashes, TRUE));
+print ('modulaHash=' . $modulaHash . PHP_EOL);
+
+// [EOF]
+?>
diff --git a/commit-rest.sh b/commit-rest.sh
new file mode 100755 (executable)
index 0000000..423f9ad
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if test "$1" = ""; then
+       echo "Usage: $0 \"<commit-comment>\" [file/directory]"
+       exit 1
+fi
+
+echo "$0: Reading projects..."
+if test "$2" = ""; then
+       LIST=`svn status */ | grep "  " | grep -v "X  " | cut -d " " -f 8 | cut -d "/" -f 1 | sort --unique`
+else
+       LIST=`svn status */*/"$2" | grep "/" | grep -v "X " | cut -d " " -f 8 | cut -d "/" -f 1-2 | sort --unique`
+fi
+
+for repos in ${LIST}; do
+       echo "$0: Committing in ${repos} ..."
+       cd "${repos}" || exit 255
+       svn commit -m "$1" "$2"
+       cd -
+done
+
+exit 0
diff --git a/commit-trunks.sh b/commit-trunks.sh
new file mode 100755 (executable)
index 0000000..5c44dec
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+if test "$1" = ""; then
+       echo "Usage: $0 \"<commit-comment>\""
+       exit 1
+fi
+
+echo "$0: Reading projects..."
+LIST=`find */trunk/application/*/*.php | cut -d "/" -f 1-2 | sort --unique`
+
+for repos in ${LIST}; do
+       echo "$0: Committing in ${repos} ..."
+       cd "${repos}" || exit 255
+       svn commit -m "$1"
+       cd -
+done
+
+exit 0
diff --git a/lfdb2/LICENSE b/lfdb2/LICENSE
new file mode 100644 (file)
index 0000000..74f55a9
--- /dev/null
@@ -0,0 +1,2 @@
+These contributed codes, mostly by myself, are for testing/experimenting
+purposes only and are provided "AS IS" and "WITHOUT ANY WARRANTY".
\ No newline at end of file
diff --git a/lfdb2/read.php b/lfdb2/read.php
new file mode 100644 (file)
index 0000000..8779b65
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+error_reporting(E_ALL | E_STRICT);
+
+define('__STEP_32'  , 3);
+define('__FACTOR_32', 16);
+define('__FORMAT_READ_32', 'I2');
+
+define('__STEP_64'  , 7);
+define('__FACTOR_64', 32);
+define('__FORMAT_READ_64', 'N2');
+
+// Default is 32-bit
+$__factor = constant('__FACTOR_32');
+$__format = constant('__FORMAT_READ_32');
+$__step   = constant('__STEP_32');
+
+if ((isset($_SERVER['argv'][1])) && ($_SERVER['argv'][1] == '-64')) {
+       // Use 64-bit
+       $__factor = constant('__FACTOR_64');
+       $__format = constant('__FORMAT_READ_64');
+       $__step   = constant('__STEP_64');
+} // END - if
+
+$buffer = file_get_contents('test.data.bin' . ($__factor * 2)) or die('Please run write.php first!' . PHP_EOL);
+
+assert(filesize('test.data.bin' . ($__factor * 2)) == strlen($buffer));
+assert((strlen($buffer) % 8) == 0);
+
+print 'Hash(' . strlen($buffer) . ')=' . md5($buffer) . PHP_EOL;
+
+$decoded = '';
+$i = 0;
+for ($pos = 0; $pos < strlen($buffer); $pos += 8) {
+       $part = substr($buffer, $pos, 8);
+       assert(strlen($part) == 8);
+       //print 'part='.md5($part).PHP_EOL;
+       $unpacked = unpack($__format, $part);
+       //print 'unpacked='.print_r($unpacked,true);
+       $unpacked = $unpacked[1] << $__factor | $unpacked[2];
+
+       //print 'unpacked=' . $unpacked . PHP_EOL;
+       for ($i = 0; $i < $__step; $i++) {
+               $factor = pow(256, ($__step - 1 - $i));
+               //print __LINE__.':i=' . $i . ',factor=' . $factor . ',unpacked=' . $unpacked . PHP_EOL;
+               $chr = ($unpacked / $factor);
+               //print __LINE__.':i=' . $i . ',chr=' . $chr . PHP_EOL;
+
+               if ($chr > 0) {
+                       $a = explode('.', $chr);
+                       $chr = $a[0];
+                       //print __LINE__.':i=' . $i . ',chr=' . $chr . ',unpacked=' . $unpacked . PHP_EOL;
+                       $unpacked -= ($chr * $factor);
+                       //print __LINE__.':i=' . $i . ',chr=' . $chr . ',unpacked=' . $unpacked . PHP_EOL;
+               } else {
+                       $chr = $unpacked;
+                       $unpacked = 0;
+               }
+
+               //print 'chr=' . $chr . PHP_EOL;
+               $decoded .= chr($chr);
+       } // END - for
+} // END - for
+
+$decoded = gzuncompress($decoded);
+
+print 'Writing ' . strlen($decoded) . ' bytes to output ...' . PHP_EOL;
+file_put_contents('test.data.out' . ($__factor * 2), $decoded);
+
+// [EOF]
+?>
diff --git a/lfdb2/test.data b/lfdb2/test.data
new file mode 100644 (file)
index 0000000..63376f3
Binary files /dev/null and b/lfdb2/test.data differ
diff --git a/lfdb2/write.php b/lfdb2/write.php
new file mode 100644 (file)
index 0000000..25cdbbd
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+error_reporting(E_ALL | E_STRICT);
+
+define('__STEP_32'  , 3);
+define('__LEFT_32'  , 0xffff0000);
+define('__RIGHT_32' , 0x0000ffff);
+define('__FACTOR_32', 16);
+define('__FORMAT_WRITE_32', 'II');
+
+define('__STEP_64'  , 7);
+define('__LEFT_64'  , 0xffffffff00000000);
+define('__RIGHT_64' , 0x00000000ffffffff);
+define('__FACTOR_64', 32);
+define('__FORMAT_WRITE_64', 'NN');
+
+// Default is 32-bit
+$__factor = constant('__FACTOR_32');
+$__left   = constant('__LEFT_32');
+$__right  = constant('__RIGHT_32');
+$__format = constant('__FORMAT_WRITE_32');
+$__step   = constant('__STEP_32');
+
+if ((isset($_SERVER['argv'][1])) && ($_SERVER['argv'][1] == '-64')) {
+       // Use 64-bit
+       $__factor = constant('__FACTOR_64');
+       $__left   = constant('__LEFT_64');
+       $__right  = constant('__RIGHT_64');
+       $__format = constant('__FORMAT_WRITE_64');
+       $__step   = constant('__STEP_64');
+} // END - if
+
+$str = gzcompress(file_get_contents('test.data'), 9);
+
+$encoded = '';
+
+for ($idx = 0; $idx < strlen($str); $idx += $__step) {
+       $big = 0;
+       for ($i = 0; $i < $__step; $i++) {
+               $factor = ($__step - 1 - $i);
+
+               if (($idx + $i) <= strlen($str)) {
+                       $ord = ord(substr($str, ($idx + $i), 1));
+
+                       $add = $ord * pow(256, $factor);
+
+                       $big += $add;
+
+                       //print 'idx=' . $idx . ',i=' . $i . ',ord=' . $ord . ',factor=' . $factor . ',add=' . $add . ',big=' . $big . PHP_EOL;
+               } // END - if
+       } // END - for
+
+       $l = ($big & $__left) >>$__factor;
+       $r = $big & $__right;
+
+       $unpacked = str_pad(pack($__format, $l, $r), 8, '0', STR_PAD_LEFT);
+       //print 'big=' . $big . ',unpacked('.strlen($unpacked) . ')='.md5($unpacked).PHP_EOL;
+
+       $encoded .= $unpacked;
+} // END - for
+
+print 'Hash(' . strlen($encoded) . ')=' . md5($encoded) . PHP_EOL;
+print 'Encoded ' . strlen($str) . ' bytes into ' . strlen($encoded) . ' bytes ...' . PHP_EOL;
+
+file_put_contents('test.data.bin' . ($__factor * 2), $encoded);
+
+print 'File size is: ' . filesize('test.data.bin' . ($__factor * 2)) . ' bytes.' . PHP_EOL;
+
+// [EOF]
+?>
diff --git a/lint.sh b/lint.sh
new file mode 100755 (executable)
index 0000000..00c4a2c
--- /dev/null
+++ b/lint.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+echo "$0: Analysing PHP scripts for syntax errors (lint) ..."
+LINT=`find -type f -name "*.php" -exec php -l -f {} 2>&1 \; | grep -v "No syntax errors detected in"`
+
+if test "${LINT}" != ""; then
+       echo "${LINT}"
+else
+       echo "$0: No syntax errors found."
+fi
diff --git a/mindmaps/Local File Database - NG.mm b/mindmaps/Local File Database - NG.mm
new file mode 100644 (file)
index 0000000..55d1a8a
--- /dev/null
@@ -0,0 +1,1080 @@
+<map version="1.0.1">
+<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
+<node BACKGROUND_COLOR="#ffff00" COLOR="#000000" CREATED="1346540430244" ID="ID_413943685" MODIFIED="1372099411892">
+<richcontent TYPE="NODE"><html>
+  <head>
+    
+  </head>
+  <body>
+    <p style="text-align: center">
+      <b>Local File Database - NG</b>
+    </p>
+    <p style="text-align: center">
+      <font size="4">Revision: <b>1</b></font>
+    </p>
+    <p style="text-align: center">
+      <font size="4">Short name: <b>LFDB2 </b></font>
+    </p>
+    <p style="text-align: center">
+      <i><font size="4" color="#ff0033"><b>Work in progress!</b></font></i>
+    </p>
+  </body>
+</html>
+</richcontent>
+<font NAME="Dialog" SIZE="20"/>
+<hook NAME="accessories/plugins/RevisionPlugin.properties"/>
+<hook NAME="accessories/plugins/AutomaticLayout.properties"/>
+<node COLOR="#0033ff" CREATED="1346540670719" ID="ID_660363592" MODIFIED="1351543382024" POSITION="right" TEXT="Program design/concept">
+<edge STYLE="sharp_bezier" WIDTH="8"/>
+<font BOLD="true" NAME="Dialog" SIZE="18"/>
+<node COLOR="#00b439" CREATED="1346541218691" ID="ID_1935672088" MODIFIED="1351543382028" TEXT="General class structure">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346541227155" ID="ID_1791161792" MODIFIED="1351543382044" TEXT="Used design patterns">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346541238307" ID="ID_861575201" MODIFIED="1351543382048" TEXT="Provided interface(s)">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346542025714" ID="ID_1461673036" MODIFIED="1351543382061" TEXT="For &quot;querying&quot;">
+<font NAME="Dialog" SIZE="14"/>
+</node>
+<node COLOR="#990000" CREATED="1346542040293" ID="ID_1420341059" MODIFIED="1351543382064" TEXT="For meta data retrieval">
+<font NAME="Dialog" SIZE="14"/>
+</node>
+<node COLOR="#990000" CREATED="1346542075115" ID="ID_505926178" MODIFIED="1351543382066" TEXT="Other purposes">
+<font NAME="Dialog" SIZE="14"/>
+<icon BUILTIN="help"/>
+</node>
+</node>
+</node>
+<node COLOR="#0033ff" CREATED="1346540632815" ID="ID_1890914832" MODIFIED="1351543382068" POSITION="right" TEXT="General ideas/features">
+<edge STYLE="sharp_bezier" WIDTH="8"/>
+<font BOLD="true" NAME="Dialog" SIZE="18"/>
+<node COLOR="#00b439" CREATED="1346540483730" ID="ID_581776449" MODIFIED="1351543382093" TEXT="Based on 2 files">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346542687393" ID="ID_1172644330" MODIFIED="1351546072253" TEXT="Raw (structured) data">
+<arrowlink DESTINATION="ID_1683424442" ENDARROW="Default" ENDINCLINATION="-354;-231;" ID="Arrow_ID_230622914" STARTARROW="None" STARTINCLINATION="1261;0;"/>
+<font NAME="Dialog" SIZE="14"/>
+</node>
+<node COLOR="#990000" CREATED="1346542705504" ID="ID_1302915483" MODIFIED="1351543382104" TEXT="Index file">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1346542717193" ID="ID_904326028" MODIFIED="1351543382105" TEXT="Allows faster access on raw data">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346542744989" ID="ID_305647790" MODIFIED="1351543382106" TEXT="Must be updated by every write access">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346542768626" ID="ID_1615794960" MODIFIED="1351543382107" TEXT="Contains data for all gaps">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1346542837936" ID="ID_900314383" MODIFIED="1351543382108" TEXT="Faster compression">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351428429628" ID="ID_186273074" MODIFIED="1351543382108" TEXT="Can be archived by &quot;NULL-ing&quot; unused areas"/>
+<node COLOR="#111111" CREATED="1351428551920" ID="ID_328508625" MODIFIED="1351543382109" TEXT="Then all NULL-ed areas can be ignored by next rebuild process"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346542826853" ID="ID_967962336" MODIFIED="1351543382121" TEXT="Can be rebuild">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1347915614137" ID="ID_1006501495" MODIFIED="1351543382123" TEXT="Depends on used storage engine">
+<font NAME="Dialog" SIZE="14"/>
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346540517127" ID="ID_976750936" MODIFIED="1351543382135" TEXT="Distributable">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346541373845" ID="ID_1907835503" MODIFIED="1351543382136" TEXT="Local master/slave">
+<font NAME="Dialog" SIZE="14"/>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346540939490" ID="ID_853854853" MODIFIED="1351543382139" TEXT="Fail safety">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346541447690" ID="ID_1331254269" MODIFIED="1351543382140" TEXT="Hashed data">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351428713020" ID="ID_301362575" MODIFIED="1351543382141" TEXT="Allows verification of stored data">
+<node COLOR="#111111" CREATED="1351428736459" ID="ID_984604510" MODIFIED="1351543382142" TEXT="Recalculate hash and compare both"/>
+</node>
+<node COLOR="#111111" CREATED="1351428773488" ID="ID_1452255278" MODIFIED="1351543382149" TEXT="Redundancy becomes possible">
+<node COLOR="#111111" CREATED="1351428794915" ID="ID_1165263400" MODIFIED="1351543382150" TEXT="As nodes will send/receive same data on same hash"/>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1346544247298" ID="ID_1331731103" MODIFIED="1351543382151" TEXT="Binary logfile">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1347916697056" ID="ID_1378441227" MODIFIED="1351543382152" TEXT="Replay of transactions"/>
+<node COLOR="#111111" CREATED="1347916753995" ID="ID_1381029962" MODIFIED="1351543382153" TEXT="Supports distribution over database cluster"/>
+</node>
+<node COLOR="#990000" CREATED="1347916658255" ID="ID_109448402" MODIFIED="1351543382155" TEXT="Redundancy">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1347916667031" ID="ID_64976885" MODIFIED="1351543382156" TEXT="Depends on storage engine"/>
+<node COLOR="#111111" CREATED="1347916672988" ID="ID_1386677073" MODIFIED="1351543382156" TEXT="And/or table/database structure"/>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346541497280" ID="ID_1637997890" MODIFIED="1351543382159" TEXT="Type-safe">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1347915643904" ID="ID_6496282" MODIFIED="1351543382172" TEXT="Bottom-&gt;top organization:">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1347915680510" ID="ID_709798549" MODIFIED="1351543382173" TEXT="1.) Data entry">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351191077498" ID="ID_318086573" MODIFIED="1351543382174" TEXT="Is &quot;atomic&quot;"/>
+</node>
+<node COLOR="#990000" CREATED="1347915700610" ID="ID_632069966" MODIFIED="1351543382176" TEXT="2.) Dataset">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351191035477" ID="ID_1962500729" MODIFIED="1351543382176" TEXT="n-n relation to entries"/>
+</node>
+<node COLOR="#990000" CREATED="1347915734366" ID="ID_653804154" MODIFIED="1351543382177" TEXT="3.) Table">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351191040147" ID="ID_1508237886" MODIFIED="1351543382179" TEXT="n-n relation to datasets"/>
+</node>
+<node COLOR="#990000" CREATED="1347916519589" ID="ID_167347179" MODIFIED="1351543382180" TEXT="4.) Database">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351191055736" ID="ID_1600520779" MODIFIED="1351543382181" TEXT="1-n relation to tables"/>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346608262353" ID="ID_584117157" MODIFIED="1351543382183" TEXT="Performance enhancements">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346541901096" ID="ID_1357419168" MODIFIED="1351543382184" TEXT="Database compression">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1346541915248" ID="ID_63943962" MODIFIED="1351543382185" TEXT="Marking data as &apos;unused&apos;">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346541954871" ID="ID_1494730149" MODIFIED="1351543382185" TEXT="Data file gap removal">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346544289803" ID="ID_335462598" MODIFIED="1351543382186" TEXT="Index compression/cleanup">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346544314340" ID="ID_898620191" MODIFIED="1351543382192" TEXT="Transparent file compression">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346544323084" ID="ID_618559935" MODIFIED="1351543382193" TEXT="Large data compression">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1346608279539" ID="ID_288753607" MODIFIED="1351543382194" TEXT="Pre allocation of database files">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1346608307613" ID="ID_958125601" MODIFIED="1351543382195" TEXT="A pre allocated file doesn&apos;t need to be extended">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1346608332653" ID="ID_1374175180" MODIFIED="1351543382199" TEXT="JIT (just-in-time) expansion of database file should still be possible">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346608361081" ID="ID_338511677" MODIFIED="1351543382200" TEXT="Very performant write operations">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346617689040" ID="ID_1566834391" MODIFIED="1351543382201" TEXT="Whether or not to pre-allocate shall be configurable">
+<font NAME="Dialog" SIZE="12"/>
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346542205341" ID="ID_1815282250" MODIFIED="1351543382203" TEXT="Backup">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1351428245294" ID="ID_406151794" MODIFIED="1351543382205" TEXT="Restore">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346540984018" ID="ID_91063389" MODIFIED="1351543382207" TEXT="Repairing">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346542219500" ID="ID_1719264500" MODIFIED="1351543382210" TEXT="Export/import">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346542873181" ID="ID_1244214807" MODIFIED="1351543382219" TEXT="Access control lines (ACLs)">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346543086304" ID="ID_715669246" MODIFIED="1351543382220" TEXT="Simple/efficient handling">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1346543828043" ID="ID_1393579745" MODIFIED="1351543382221" TEXT="Easy to setup/understand">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543833777" ID="ID_1666577328" MODIFIED="1351543382221" TEXT="Will be applied after user right is applied">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1351194484514" ID="ID_1023883960" MODIFIED="1351543382222" TEXT="No inheriting of &quot;deny&quot;">
+<node COLOR="#111111" CREATED="1351194496066" ID="ID_220472850" MODIFIED="1351543382223" TEXT="This allows a &quot;deny&quot; on a database but explicit &quot;allow&quot; on a specific table"/>
+<node COLOR="#111111" CREATED="1351194524085" ID="ID_238013702" MODIFIED="1351543382223" TEXT="Inheriting is complex to most users">
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1346544634215" ID="ID_1252035348" MODIFIED="1351543382224" TEXT="Cannot be granted to users/groups">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1346544652115" ID="ID_1409012789" MODIFIED="1351543382229" TEXT="ACLs are applied on actual data">
+<font NAME="Dialog" SIZE="12"/>
+<icon BUILTIN="idea"/>
+</node>
+<node COLOR="#111111" CREATED="1351194051755" ID="ID_258640474" MODIFIED="1351543382230" TEXT="Users/groups already have their rights"/>
+</node>
+<node COLOR="#990000" CREATED="1346542862886" ID="ID_1377944107" MODIFIED="1351543382231" TEXT="Allow/deny">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351193968804" ID="ID_1284781899" MODIFIED="1351543382231" TEXT="!General">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543020963" ID="ID_1584034049" MODIFIED="1351543382232" TEXT="Per database">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351194207760" ID="ID_1114145881" MODIFIED="1351543382232" TEXT="Allow full access to database">
+<node COLOR="#111111" CREATED="1351194258627" ID="ID_220793877" MODIFIED="1351543382232" TEXT="Including meta data"/>
+<node COLOR="#111111" CREATED="1351194218730" ID="ID_569241974" MODIFIED="1351543382233" TEXT="Can be limited by individual deny-rules on table/dataset/meta data"/>
+</node>
+<node COLOR="#111111" CREATED="1351194275866" ID="ID_1067915243" MODIFIED="1351543382233" TEXT="Deny access to database">
+<node COLOR="#111111" CREATED="1351194319254" ID="ID_1863319723" MODIFIED="1351543382234" TEXT="Can be explicitly lifted (allowed) to specific tables/datasets or meta data"/>
+<node COLOR="#111111" CREATED="1351194362422" ID="ID_657979229" MODIFIED="1351543382234" TEXT="Need only to be given on databases where the user/group is assigned to"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346544588545" ID="ID_1060603060" MODIFIED="1351543382234" TEXT="Per table">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346544593040" ID="ID_498987426" MODIFIED="1351543382235" TEXT="Per dataset">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346544597826" ID="ID_1489506665" MODIFIED="1351543382235" TEXT="On meta data">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543051971" ID="ID_1181528770" MODIFIED="1351543382236" TEXT="Global locks">
+<font NAME="Dialog" SIZE="12"/>
+<icon BUILTIN="help"/>
+</node>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346542946678" ID="ID_635141767" MODIFIED="1351543382238" TEXT="Credentials">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1351196679021" ID="ID_1304447645" MODIFIED="1351543382242" TEXT="!General">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351194072214" ID="ID_551895161" MODIFIED="1351543382243" TEXT="Read/write permissions"/>
+<node COLOR="#111111" CREATED="1351194859574" ID="ID_1266631298" MODIFIED="1351543382243" TEXT="A &quot;write&quot; always contains &quot;read&quot;"/>
+</node>
+<node COLOR="#990000" CREATED="1346542967309" ID="ID_646140737" MODIFIED="1351543382244" TEXT="Users">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<icon BUILTIN="male2"/>
+<node COLOR="#111111" CREATED="1346543214102" ID="ID_1848076613" MODIFIED="1351543382279" TEXT="Have login and password">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1346544994599" ID="ID_1995049582" MODIFIED="1351543382280" TEXT="Logins are all lower-case">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1346545017357" ID="ID_212018713" MODIFIED="1351543382281" TEXT="Upper-case will be converted">
+<font NAME="Dialog" SIZE="12"/>
+<icon BUILTIN="idea"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346543256538" ID="ID_846939152" MODIFIED="1351543382286" TEXT="Passwords shall be hashed">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351193654941" ID="ID_627546410" MODIFIED="1351543382287" TEXT="And salted for better security">
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346543274276" ID="ID_5506266" MODIFIED="1351543382288" TEXT="Can be locked by &quot;manager&quot; user">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543292790" ID="ID_1559296603" MODIFIED="1351543382288" TEXT="Can be given individual rights">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1346542969666" ID="ID_763972336" MODIFIED="1351543382289" TEXT="Groups">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<icon BUILTIN="group"/>
+<node COLOR="#111111" CREATED="1346545053397" ID="ID_1141642632" MODIFIED="1351545177859" TEXT="A group &quot;bundles&quot; one or more users">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1351197562371" ID="ID_749243651" MODIFIED="1351543382290" TEXT="Can be assigned to groups again"/>
+<node COLOR="#111111" CREATED="1351197567598" ID="ID_1524054475" MODIFIED="1351543382291" TEXT="A &quot;global&quot; group exist for special purposes"/>
+</node>
+<node COLOR="#990000" CREATED="1346543178121" ID="ID_724029672" MODIFIED="1351543382297" TEXT="Organized in own database">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351192911199" ID="ID_1402804927" MODIFIED="1351543382298" TEXT="Which means that the credential data is stored in a database again">
+<icon BUILTIN="idea"/>
+</node>
+<node COLOR="#111111" CREATED="1351544575025" ID="ID_1968809796" MODIFIED="1351544581416" TEXT="Easier handling (again)"/>
+<node COLOR="#111111" CREATED="1351544936169" ID="ID_67061620" MODIFIED="1351544950397" TEXT="First initialization of database system?">
+<icon BUILTIN="help"/>
+<node COLOR="#111111" CREATED="1351544982793" ID="ID_6707182" MODIFIED="1351544996606" TEXT="Requires an &quot;internal&quot; user">
+<node COLOR="#111111" CREATED="1351545001047" ID="ID_1394818716" MODIFIED="1351545008069" TEXT="That user must be assigned to global group"/>
+<node COLOR="#111111" CREATED="1351545013868" ID="ID_507688498" MODIFIED="1351545043788" TEXT="Is only used by the database thread"/>
+<node COLOR="#111111" CREATED="1351545065552" ID="ID_184880847" MODIFIED="1351545075565" TEXT="Possible name: lfdb">
+<icon BUILTIN="help"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351544164269" ID="ID_918353657" MODIFIED="1351544223107" TEXT="Possible database/table structure">
+<node COLOR="#111111" CREATED="1346545100845" ID="ID_881426212" MODIFIED="1351544266194" TEXT="&quot;user&quot;">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351544236614" ID="ID_1451327618" MODIFIED="1351544340210" TEXT="Is the table storing user logins"/>
+<node COLOR="#111111" CREATED="1351544381697" ID="ID_653321506" MODIFIED="1351544383283" TEXT="user_id"/>
+<node COLOR="#111111" CREATED="1351544175968" ID="ID_1966019432" MODIFIED="1351544178285" TEXT="login"/>
+<node COLOR="#111111" CREATED="1351544178825" ID="ID_405484122" MODIFIED="1351544181131" TEXT="password"/>
+<node COLOR="#111111" CREATED="1351544250857" ID="ID_492400481" MODIFIED="1351544253226" TEXT="email"/>
+</node>
+<node COLOR="#111111" CREATED="1351544211817" ID="ID_1700400171" MODIFIED="1351544271204" TEXT="&quot;user_group&quot;">
+<node COLOR="#111111" CREATED="1351544361570" ID="ID_1212060506" MODIFIED="1351544370413" TEXT="Is the table storing user-&gt;group assignments"/>
+<node COLOR="#111111" CREATED="1351544373396" ID="ID_1481968391" MODIFIED="1351544379254" TEXT="user_id"/>
+<node COLOR="#111111" CREATED="1351544384984" ID="ID_1459577988" MODIFIED="1351544387008" TEXT="group_id"/>
+</node>
+<node COLOR="#111111" CREATED="1346545111187" ID="ID_1152871136" MODIFIED="1351544268479" TEXT="&quot;group&quot;">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351544342338" ID="ID_1293481973" MODIFIED="1351544349398" TEXT="Is the table storing group data"/>
+<node COLOR="#111111" CREATED="1351544613213" ID="ID_1243612439" MODIFIED="1351544624664" TEXT="Does NOT include the global group">
+<node COLOR="#111111" CREATED="1351544626040" ID="ID_265048068" MODIFIED="1351544634074" TEXT="As it is a virtual and not a real group"/>
+</node>
+<node COLOR="#111111" CREATED="1351544393019" ID="ID_1726325943" MODIFIED="1351544395159" TEXT="group_id"/>
+<node COLOR="#111111" CREATED="1351544395739" ID="ID_635178451" MODIFIED="1351544397888" TEXT="group_name"/>
+<node COLOR="#111111" CREATED="1351544398216" ID="ID_382786843" MODIFIED="1351544403299" TEXT="group_description"/>
+</node>
+<node COLOR="#111111" CREATED="1351544216504" ID="ID_1738453623" MODIFIED="1351544269904" TEXT="&quot;group_group&quot;">
+<node COLOR="#111111" CREATED="1351544351181" ID="ID_599303970" MODIFIED="1351544360330" TEXT="Is the table storing group-&gt;group assignments"/>
+<node COLOR="#111111" CREATED="1351544406965" ID="ID_1615516830" MODIFIED="1351544411052" TEXT="group_id"/>
+<node COLOR="#111111" CREATED="1351544411256" ID="ID_1460964222" MODIFIED="1351544414789" TEXT="group_parent_id"/>
+</node>
+</node>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346543357333" ID="ID_1568958248" MODIFIED="1351543382305" TEXT="Rights management">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1351197505756" ID="ID_1907836084" MODIFIED="1351543382306" TEXT="!All rights">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351417335847" ID="ID_423508453" MODIFIED="1351543382306" TEXT="Administrative rights">
+<node COLOR="#111111" CREATED="1351414431711" ID="ID_919298037" MODIFIED="1351543382307" TEXT="Admin right">
+<node COLOR="#111111" CREATED="1351414439390" ID="ID_1303579675" MODIFIED="1351543382307" TEXT="Allows granting of &quot;grant&quot; right"/>
+<node COLOR="#111111" CREATED="1351414455058" ID="ID_1840004900" MODIFIED="1351543382314" TEXT="Also allows granting of all other rights"/>
+<node COLOR="#111111" CREATED="1351414526309" ID="ID_1172358466" MODIFIED="1351543382314" TEXT="Allows &quot;raw&quot; access on &quot;users&quot; and &quot;groups&quot; tables"/>
+</node>
+<node COLOR="#111111" CREATED="1351417508141" ID="ID_1318972262" MODIFIED="1351543382315" TEXT="Backup/restore">
+<node COLOR="#111111" CREATED="1351197520411" ID="ID_1639171411" MODIFIED="1351543382315" TEXT="Backup">
+<node COLOR="#111111" CREATED="1351197529585" ID="ID_713102458" MODIFIED="1351543382316" TEXT="Is alias for global read"/>
+<node COLOR="#111111" CREATED="1351197586410" ID="ID_774969103" MODIFIED="1351543382316" TEXT="Assigns user with &quot;global&quot; group and grants &quot;read&quot;"/>
+</node>
+<node COLOR="#111111" CREATED="1351197522904" ID="ID_622438885" MODIFIED="1351543382317" TEXT="Restore">
+<node COLOR="#111111" CREATED="1351197619098" ID="ID_1955108181" MODIFIED="1351543382322" TEXT="Is alias for global write"/>
+<node COLOR="#111111" CREATED="1351197628366" ID="ID_498643774" MODIFIED="1351543382323" TEXT="Assigns user with &quot;global&quot; group and grants &quot;write&quot; but denies &quot;read&quot;"/>
+<node COLOR="#111111" CREATED="1351197658864" ID="ID_97541972" MODIFIED="1351543382324" TEXT="Depends on &quot;enable overwrite existing data&quot; flag">
+<node COLOR="#111111" CREATED="1351197724171" ID="ID_362869875" MODIFIED="1351543382324" TEXT="Enabled means overwrite existing data on restore"/>
+<node COLOR="#111111" CREATED="1351197737846" ID="ID_1126935405" MODIFIED="1351543382325" TEXT="Disabled means abort (throw exception) on already existing data"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351197850490" ID="ID_526181073" MODIFIED="1351543382325" TEXT="Grant">
+<node COLOR="#111111" CREATED="1351414356302" ID="ID_984587275" MODIFIED="1351543382326" TEXT="Allows a user/group to grant rights to other groups/user"/>
+<node COLOR="#111111" CREATED="1351414378568" ID="ID_293085540" MODIFIED="1351543382332" TEXT="Group-granting and user-granting are separated &quot;sub rights&quot;"/>
+<node COLOR="#111111" CREATED="1351414409838" ID="ID_1420073018" MODIFIED="1351543382332" TEXT="Grant cannot be granted by this right"/>
+</node>
+<node COLOR="#111111" CREATED="1351417722510" ID="ID_420712883" MODIFIED="1351543382333" TEXT="Manager">
+<node COLOR="#111111" CREATED="1351417725984" ID="ID_1034578317" MODIFIED="1351543382333" TEXT="Can perform user operations">
+<node COLOR="#111111" CREATED="1351417757906" ID="ID_633511292" MODIFIED="1351543382334" TEXT="Create new user"/>
+<node COLOR="#111111" CREATED="1351417763157" ID="ID_679917616" MODIFIED="1351543382335" TEXT="Change user login/password"/>
+<node COLOR="#111111" CREATED="1351438181271" ID="ID_236433799" MODIFIED="1351543382335" TEXT="Lock user accounts"/>
+<node COLOR="#111111" CREATED="1351417774930" ID="ID_1135136157" MODIFIED="1351543382336" TEXT="Delete user"/>
+</node>
+<node COLOR="#111111" CREATED="1351417849819" ID="ID_526335003" MODIFIED="1351543382340" TEXT="Can perform group operations">
+<node COLOR="#111111" CREATED="1351417768294" ID="ID_170780309" MODIFIED="1351543382341" TEXT="Create new group"/>
+<node COLOR="#111111" CREATED="1351417778585" ID="ID_574094456" MODIFIED="1351543382341" TEXT="Change group data">
+<node COLOR="#111111" CREATED="1351417800291" ID="ID_870367924" MODIFIED="1351543382342" TEXT="Not granting/revoking rights"/>
+</node>
+<node COLOR="#111111" CREATED="1351417868683" ID="ID_1771074246" MODIFIED="1351543382346" TEXT="Assign user to groups"/>
+<node COLOR="#111111" CREATED="1351417881593" ID="ID_1078420209" MODIFIED="1351543382347" TEXT="Assign groups to groups"/>
+</node>
+<node COLOR="#111111" CREATED="1351417906687" ID="ID_732338375" MODIFIED="1351543382348" TEXT="May be allowed to grant some rights">
+<node COLOR="#111111" CREATED="1351417926773" ID="ID_1982721061" MODIFIED="1351543382348" TEXT="Only operational rights as read/write"/>
+<node COLOR="#111111" CREATED="1351417946633" ID="ID_1912508768" MODIFIED="1351543382349" TEXT="This must be granted by account with &apos;admin&apos; right"/>
+<node COLOR="#111111" CREATED="1351418015596" ID="ID_195318139" MODIFIED="1351543382349" TEXT="Backup/restore or maintenance are &quot;administrator tasks&quot;"/>
+<node COLOR="#111111" CREATED="1351418061584" ID="ID_1698857234" MODIFIED="1351543382350" TEXT="This also effects creating new users/groups"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351417309178" ID="ID_1420038864" MODIFIED="1351543382351" TEXT="Maintenance rights">
+<node COLOR="#111111" CREATED="1351197861354" ID="ID_806552195" MODIFIED="1351543382352" TEXT="Maintenance">
+<node COLOR="#111111" CREATED="1351197883240" ID="ID_1166059936" MODIFIED="1351543382353" TEXT="Is like &quot;repair&quot;"/>
+<node COLOR="#111111" CREATED="1351198028347" ID="ID_465537829" MODIFIED="1352492373136" TEXT="Try to fix all organization units and data">
+<node COLOR="#111111" CREATED="1351198080749" ID="ID_427816349" MODIFIED="1351543382354" TEXT="On data itself mean low-level &quot;bitwise&quot; repair"/>
+<node COLOR="#111111" CREATED="1351198097306" ID="ID_1960293341" MODIFIED="1351543382355" TEXT="Rebuild indexes"/>
+<node COLOR="#111111" CREATED="1351198109510" ID="ID_526103275" MODIFIED="1351543382355" TEXT="Try to fix invalid markers or discard entry"/>
+<node COLOR="#111111" CREATED="1351198133437" ID="ID_1474526350" MODIFIED="1351543382356" TEXT="Reporting">
+<node COLOR="#111111" CREATED="1351198158876" ID="ID_671863662" MODIFIED="1351543382356" TEXT="Default is report only unrecoverable errors"/>
+<node COLOR="#111111" CREATED="1351198141092" ID="ID_1921812325" MODIFIED="1351543382357" TEXT="Successes are reported if enabled"/>
+<node COLOR="#111111" CREATED="1351198203194" ID="ID_625284350" MODIFIED="1351543382358" TEXT="Healthy data is only reported if enabled"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351197890663" ID="ID_1386333189" MODIFIED="1351543382359" TEXT="Does NOT include backup/restore">
+<node COLOR="#111111" CREATED="1351197900552" ID="ID_1165271873" MODIFIED="1351543382360" TEXT="As they are very &quot;fatal&quot; rights"/>
+<node COLOR="#111111" CREATED="1351416230234" ID="ID_959928302" MODIFIED="1351543382360" TEXT="Repairing a database/table/dataset is not creating a backup or restoring it from a backup"/>
+<node COLOR="#111111" CREATED="1351416021686" ID="ID_843955993" MODIFIED="1351543382361" TEXT="Rights are granted for a specific purpose">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351417556730" ID="ID_249764778" MODIFIED="1351543382362" TEXT="Change meta data">
+<node COLOR="#111111" CREATED="1351417571149" ID="ID_373360318" MODIFIED="1351543382362" TEXT="Change comments"/>
+<node COLOR="#111111" CREATED="1351417576628" ID="ID_277109768" MODIFIED="1351543382363" TEXT="Operations on organization units">
+<node COLOR="#111111" CREATED="1351417605358" ID="ID_1367076513" MODIFIED="1352492404537" TEXT="Create new OU"/>
+<node COLOR="#111111" CREATED="1351417608041" ID="ID_96066195" MODIFIED="1351543382364" TEXT="Assign to existing OUs"/>
+<node COLOR="#111111" CREATED="1351417613075" ID="ID_979158335" MODIFIED="1351543382365" TEXT="Remove assignments"/>
+<node COLOR="#111111" CREATED="1351418446614" ID="ID_869049608" MODIFIED="1351543382366" TEXT="Shall it be possible to allow &quot;sub rights&quot;?">
+<icon BUILTIN="idea"/>
+<icon BUILTIN="help"/>
+<node COLOR="#111111" CREATED="1351418498628" ID="ID_644876629" MODIFIED="1351543382367" TEXT="These rights then can be explicitly granted"/>
+<node COLOR="#111111" CREATED="1351419720614" ID="ID_713553345" MODIFIED="1351543382371" TEXT="This allows that users/groups can be allowed to create a new OU but not remove assignments"/>
+</node>
+<node COLOR="#111111" CREATED="1351419155624" ID="ID_261825491" MODIFIED="1351543382384" TEXT="Examples">
+<font ITALIC="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351419124431" ID="ID_1802983353" MODIFIED="1351543382394" TEXT="Allows the maintainer to remove wrongly assigned dataset-&gt;table relations"/>
+</node>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351417359445" ID="ID_138100526" MODIFIED="1351543382395" STYLE="fork" TEXT="Operational rights">
+<node COLOR="#111111" CREATED="1351420366875" ID="ID_1925185006" MODIFIED="1351543382395" TEXT="!General">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351420371817" ID="ID_516129886" MODIFIED="1351543382396" TEXT="Are mostly &quot;hidden&quot; in other rights">
+<node COLOR="#111111" CREATED="1351420416605" ID="ID_1116610850" MODIFIED="1351543382396" TEXT="The &quot;backup&quot; right needs reading all data"/>
+<node COLOR="#111111" CREATED="1351420431521" ID="ID_740599145" MODIFIED="1351543382397" TEXT="The &quot;restore&quot; right needs writing all data"/>
+<node COLOR="#111111" CREATED="1351420514165" ID="ID_113690582" MODIFIED="1351543382397" TEXT="Are &quot;hidden rights&quot;"/>
+</node>
+<node COLOR="#111111" CREATED="1351420383087" ID="ID_736004299" MODIFIED="1351543382398" TEXT="But still can be revoked for dataset/table/database if an other right grants it indirectly (&quot;hidden right&quot;)"/>
+</node>
+<node COLOR="#111111" CREATED="1351197515935" ID="ID_1621561435" MODIFIED="1351543382417" TEXT="Read">
+<node COLOR="#111111" CREATED="1351197810067" ID="ID_354306674" MODIFIED="1351543382417" TEXT="Is &quot;read-only&quot; access on data"/>
+<node COLOR="#111111" CREATED="1351416089887" ID="ID_1905193486" MODIFIED="1351543382418" TEXT="This right &quot;hides&quot; write access to some meta data as it is required to update them ">
+<icon BUILTIN="messagebox_warning"/>
+<node COLOR="#111111" CREATED="1351416104837" ID="ID_1762222867" MODIFIED="1351543382419" TEXT="Indexes"/>
+<node COLOR="#111111" CREATED="1351416124856" ID="ID_235376383" MODIFIED="1351543382419" TEXT="Read/write Counters">
+<node COLOR="#111111" CREATED="1351422130014" ID="ID_144976403" MODIFIED="1351543382427" TEXT="Amount of read operations can be updated"/>
+<node COLOR="#111111" CREATED="1351422142022" ID="ID_1456878712" MODIFIED="1351543382428" TEXT="All other counters may only be read"/>
+<node COLOR="#111111" CREATED="1351416149741" ID="ID_647032878" MODIFIED="1351543382428" TEXT="Only if statistics is enabled"/>
+<node COLOR="#111111" CREATED="1351416160133" ID="ID_157111861" MODIFIED="1351543382429" TEXT="Are &quot;expensive&quot; in resources"/>
+</node>
+<node COLOR="#111111" CREATED="1351416128996" ID="ID_1890290411" MODIFIED="1351543382429" TEXT="Read timestamps">
+<node COLOR="#111111" CREATED="1351422105292" ID="ID_1747401087" MODIFIED="1351543382429" TEXT="Inserted"/>
+<node COLOR="#111111" CREATED="1351416134462" ID="ID_1723745972" MODIFIED="1351543382430" TEXT="Last updated"/>
+<node COLOR="#111111" CREATED="1351416139106" ID="ID_292505836" MODIFIED="1351543382430" TEXT="Last deleted?">
+<icon BUILTIN="help"/>
+</node>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351197518197" ID="ID_1201922776" MODIFIED="1351543382431" TEXT="Write">
+<node COLOR="#111111" CREATED="1351422753457" ID="ID_440643089" MODIFIED="1351543382431" TEXT="Allows only writing data to OU &quot;data entry&quot;"/>
+<node COLOR="#111111" CREATED="1351422775123" ID="ID_1449157566" MODIFIED="1351543382432" TEXT="Hides updating meta data">
+<icon BUILTIN="yes"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351417375404" ID="ID_505268897" MODIFIED="1351543382432" TEXT="Virtual rights">
+<node COLOR="#111111" CREATED="1351418920662" ID="ID_601695034" MODIFIED="1351543382439" TEXT="!General">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351418924366" ID="ID_1224339320" MODIFIED="1351543382440" TEXT="Are like some rights grouped together"/>
+<node COLOR="#111111" CREATED="1351422285487" ID="ID_1732190247" MODIFIED="1351543382441" TEXT="Easier granting of detailed rights"/>
+<node COLOR="#111111" CREATED="1351422388826" ID="ID_1718814417" MODIFIED="1351543382441" TEXT="May be managed in distinct database table?">
+<icon BUILTIN="idea"/>
+<icon BUILTIN="help"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1351198479888" ID="ID_1895327534" MODIFIED="1351543382442" TEXT="All rights">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351198483566" ID="ID_173413782" MODIFIED="1351543382442" TEXT="Includes all above rights (&quot;super&quot; user/group)"/>
+<node COLOR="#111111" CREATED="1351416203435" ID="ID_1608302725" MODIFIED="1351543382443" TEXT="More rights can be added on a as-needed basis"/>
+</node>
+<node COLOR="#111111" CREATED="1351420574492" ID="ID_693228780" MODIFIED="1351543382443" TEXT="Operational right">
+<node COLOR="#111111" CREATED="1351420577097" ID="ID_1390685016" MODIFIED="1351543382451" TEXT="Grants &quot;read&quot;/&quot;write&quot; rights together"/>
+<node COLOR="#111111" CREATED="1351420586275" ID="ID_646378564" MODIFIED="1351543382452" TEXT="Mostly desired for web applications that &quot;needs an access to database&quot;"/>
+</node>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1346543367263" ID="ID_291953306" MODIFIED="1351543382454" TEXT="For users and groups separately">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1346543562255" ID="ID_191993514" MODIFIED="1351543382454" TEXT="Group right has highest check priority">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1346543652003" ID="ID_3658619" MODIFIED="1351543382455" TEXT="Always checked first">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543656385" ID="ID_325140622" MODIFIED="1351543382455" TEXT="Users may have no group">
+<font NAME="Dialog" SIZE="12"/>
+<icon BUILTIN="help"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346543618004" ID="ID_898889501" MODIFIED="1351543382456" TEXT="User right has high check priority">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1346543640203" ID="ID_1000432904" MODIFIED="1351543382457" TEXT="Always checked after group right is checked">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543695896" ID="ID_522972973" MODIFIED="1351543382457" TEXT="May grant/deny already granted/denied group right">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543716511" ID="ID_1897248161" MODIFIED="1351543382458" TEXT="Overwrites group right">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1346543751887" ID="ID_848139857" MODIFIED="1351543382458" TEXT="ACLs may further restrict/open access to data">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1346543480076" ID="ID_1946578818" MODIFIED="1351543382459" TEXT="Rights are organized in own database system">
+<font NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351419909291" ID="ID_1894390823" MODIFIED="1351544885112" TEXT="This allows easier maintenance of the system">
+<icon BUILTIN="button_ok"/>
+</node>
+<node COLOR="#111111" CREATED="1351419958176" ID="ID_1718154974" MODIFIED="1351544891624" TEXT="Separated systems must be maintained separately">
+<icon BUILTIN="button_cancel"/>
+<node COLOR="#111111" CREATED="1351419994894" ID="ID_430624148" MODIFIED="1351543382461" TEXT="This may lead to more complex code"/>
+<node COLOR="#111111" CREATED="1351420005877" ID="ID_116597279" MODIFIED="1351543382461" TEXT="Adds &quot;overhead&quot;"/>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1351197472604" ID="ID_1401721994" MODIFIED="1351543382481" TEXT="Rights are granted for specific purposes">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1351415169578" ID="ID_1938086114" MODIFIED="1351543382481" TEXT="Other rights are only explicitly included">
+<node COLOR="#111111" CREATED="1351415194273" ID="ID_1694444359" MODIFIED="1351543382482" TEXT="For example, &apos;admin&apos; right does not include all rights"/>
+</node>
+<node COLOR="#111111" CREATED="1351420264253" ID="ID_1910938880" MODIFIED="1351543382483" TEXT="A user has only specific jobs to perform"/>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346543397785" ID="ID_1513377166" MODIFIED="1351543382484" TEXT="File format upgrade">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+</node>
+<node COLOR="#0033ff" CREATED="1346544139878" ID="ID_830024329" MODIFIED="1351543382501" POSITION="right" TEXT="Database modes">
+<edge STYLE="sharp_bezier" WIDTH="8"/>
+<font BOLD="true" NAME="Dialog" SIZE="18"/>
+<node COLOR="#00b439" CREATED="1346544156427" ID="ID_762269377" MODIFIED="1351543382503" TEXT="Host-only mode">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346544171378" ID="ID_1639603684" MODIFIED="1351543382505" TEXT="Distributed mode">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1346544177053" ID="ID_634850175" MODIFIED="1351543382514" TEXT="Master/slave mode">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+</node>
+<node COLOR="#0033ff" CREATED="1346541018575" ID="ID_1636290985" MODIFIED="1351543382515" POSITION="left" TEXT="Database layout">
+<edge STYLE="sharp_bezier" WIDTH="8"/>
+<font BOLD="true" NAME="Dialog" SIZE="18"/>
+<node COLOR="#00b439" CREATED="1346541583143" ID="ID_1683424442" MODIFIED="1351546072253" TEXT="File layout/structure">
+<edge STYLE="bezier" WIDTH="thin"/>
+<linktarget COLOR="#b0b0b0" DESTINATION="ID_1683424442" ENDARROW="Default" ENDINCLINATION="-354;-231;" ID="Arrow_ID_230622914" SOURCE="ID_1172644330" STARTARROW="None" STARTINCLINATION="1261;0;"/>
+<linktarget COLOR="#ff3333" DESTINATION="ID_1683424442" ENDARROW="Default" ENDINCLINATION="597;-489;" ID="Arrow_ID_453516147" SOURCE="ID_1188869385" STARTARROW="None" STARTINCLINATION="561;-255;"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1346541664448" ID="ID_822294662" MODIFIED="1351543382517" TEXT="Markers">
+<font NAME="Dialog" SIZE="14"/>
+</node>
+<node COLOR="#990000" CREATED="1346541672628" ID="ID_583905834" MODIFIED="1351543382519" TEXT="Hashes">
+<font NAME="Dialog" SIZE="14"/>
+</node>
+<node COLOR="#990000" CREATED="1346541859266" ID="ID_1734291476" MODIFIED="1351543382520" TEXT="Semi-transparent encryption">
+<font NAME="Dialog" SIZE="14"/>
+<icon BUILTIN="help"/>
+</node>
+<node COLOR="#990000" CREATED="1347804496515" ID="ID_529016713" MODIFIED="1351543382521" TEXT="In full binary format">
+<font NAME="Dialog" SIZE="14"/>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346541645366" ID="ID_1921915270" MODIFIED="1351543382522" TEXT="Logical layers">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node COLOR="#990000" CREATED="1349471389103" ID="ID_706206162" MODIFIED="1351543382522" TEXT="Data operation layer">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1349471456154" ID="ID_76306014" MODIFIED="1351543382523" TEXT="General ideas">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1349471465077" ID="ID_501648829" MODIFIED="1351543382524" TEXT="Allows the actual operations be performed on the underlaying layers"/>
+<node COLOR="#111111" CREATED="1349471490973" ID="ID_1380474657" MODIFIED="1351543382524" TEXT="&quot;Sees&quot; the data in an abstract view from top"/>
+<node COLOR="#111111" CREATED="1349471588889" ID="ID_337384700" MODIFIED="1351543382525" TEXT="Provides interfaces for database wrappers">
+<node COLOR="#111111" CREATED="1349471613777" ID="ID_1475235292" MODIFIED="1351543382525" TEXT="Wrappers are like &quot;communicators&quot; or &quot;translators&quot; between programs logic and database system"/>
+<node COLOR="#111111" CREATED="1349471691014" ID="ID_844553793" MODIFIED="1351543382531" TEXT="Makes rest of the application&apos;s logic unaware of how data is being stored"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1349471759169" ID="ID_1098844139" MODIFIED="1351543382531" TEXT="Reading operations">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1349471769180" ID="ID_309985267" MODIFIED="1351543382532" TEXT="&quot;SELECT query&quot;">
+<node COLOR="#111111" CREATED="1349472068669" ID="ID_510859274" MODIFIED="1351543382532" TEXT="Reads data for given criteria"/>
+</node>
+<node COLOR="#111111" CREATED="1349471797957" ID="ID_431891804" MODIFIED="1351543382532" TEXT="Statistical &quot;query&quot;">
+<node COLOR="#111111" CREATED="1349472178578" ID="ID_385531939" MODIFIED="1351543382533" TEXT="Is a special &quot;SELECT&quot; on statistical data structures"/>
+<node COLOR="#111111" CREATED="1349472196310" ID="ID_54846469" MODIFIED="1351543382533" TEXT="Returns only statistical informations about the database">
+<node COLOR="#111111" CREATED="1349472209113" ID="ID_841501457" MODIFIED="1351543382534" TEXT="Performance data"/>
+<node COLOR="#111111" CREATED="1349472217426" ID="ID_10031981" MODIFIED="1351543382534" TEXT="Reliability data"/>
+<node COLOR="#111111" CREATED="1349472235852" ID="ID_911956209" MODIFIED="1351543382535" TEXT="Cluster data"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1349471762461" ID="ID_885836001" MODIFIED="1351543382535" TEXT="Writing operations">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1349471830663" ID="ID_1011868420" MODIFIED="1351543382536" TEXT="&quot;INSERT query&quot;">
+<node COLOR="#111111" CREATED="1349471867013" ID="ID_1139715779" MODIFIED="1351543382536" TEXT="Inserts new data into database"/>
+<node COLOR="#111111" CREATED="1349472360681" ID="ID_1826680669" MODIFIED="1351543382536" TEXT="Can only be executed on tables"/>
+</node>
+<node COLOR="#111111" CREATED="1349471838097" ID="ID_1177546241" MODIFIED="1351543382537" TEXT="&quot;UPDATE query&quot;">
+<node COLOR="#111111" CREATED="1349471887552" ID="ID_457519060" MODIFIED="1351543382537" TEXT="Updates tables to point to other datasets"/>
+<node COLOR="#111111" CREATED="1349473559010" ID="ID_1756257034" MODIFIED="1351543382538" TEXT="Depends on &quot;search criteria&quot; and &quot;update sets&quot;"/>
+<node COLOR="#111111" CREATED="1349471907419" ID="ID_1538524835" MODIFIED="1351543382539" TEXT="The updated data will be inserted as new and then linked in the old table by removing links to old datasets"/>
+</node>
+<node COLOR="#111111" CREATED="1349471842169" ID="ID_18344331" MODIFIED="1351543382545" TEXT="&quot;DELETE query&quot;">
+<node COLOR="#111111" CREATED="1349471988121" ID="ID_1473407996" MODIFIED="1351543382545" TEXT="Removes links in tables to desired datasets">
+<node COLOR="#111111" CREATED="1349472867831" ID="ID_1114550090" MODIFIED="1351543382546" TEXT="This dataset may become orphaned as no table links to it"/>
+</node>
+<node COLOR="#111111" CREATED="1349473086909" ID="ID_1667737921" MODIFIED="1351543382546" TEXT="Can only be executed on tables and datasets">
+<node COLOR="#111111" CREATED="1349473102816" ID="ID_154381298" MODIFIED="1351543382547" TEXT="Data entries cannot be deleted"/>
+<node COLOR="#111111" CREATED="1349473122283" ID="ID_1465374495" MODIFIED="1351543382547" TEXT="Tables and datasets contain references, these can be safely deleted"/>
+<node COLOR="#111111" CREATED="1349473145583" ID="ID_297113642" MODIFIED="1351543382547" TEXT="The actual data in entries is to risky to be deleted"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1349471851280" ID="ID_1734557834" MODIFIED="1351543382548" TEXT="&quot;CREATE query&quot;">
+<node COLOR="#111111" CREATED="1349472792029" ID="ID_673029660" MODIFIED="1351543382548" TEXT="Creates new tables and their datasets including data entries"/>
+<node COLOR="#111111" CREATED="1349472814141" ID="ID_287860817" MODIFIED="1351543382549" TEXT="Can only be executed on databases"/>
+</node>
+<node COLOR="#111111" CREATED="1349471861327" ID="ID_901246685" MODIFIED="1351543382549" TEXT="&quot;ALTER query&quot;">
+<node COLOR="#111111" CREATED="1349472823216" ID="ID_119971166" MODIFIED="1351543382549" TEXT="Alters already existing meta data"/>
+<node COLOR="#111111" CREATED="1349472838300" ID="ID_677610658" MODIFIED="1351543382550" TEXT="Can be executed on tables, datasets and data entries"/>
+</node>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1348606511728" ID="ID_510434232" MODIFIED="1351543382550" TEXT="Data organization layer">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1348606958087" ID="ID_209767319" MODIFIED="1351543382551" TEXT="General ideas">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1351195467440" ID="ID_1963267153" MODIFIED="1351543382551" TEXT="Data &quot;visibility windows&quot;">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1348607025908" ID="ID_227286047" MODIFIED="1351543382552" TEXT="Organizes the data logically"/>
+<node COLOR="#111111" CREATED="1348607120119" ID="ID_268845790" MODIFIED="1351543382552" TEXT="Is also a presentation layer"/>
+<node COLOR="#111111" CREATED="1351196567613" ID="ID_1536278276" MODIFIED="1351543382552" TEXT="ACLs can be assigned from database to dataset"/>
+</node>
+<node COLOR="#111111" CREATED="1346541759057" ID="ID_1585210346" MODIFIED="1351543382553" TEXT="Databases">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1347903412502" ID="ID_1372845377" MODIFIED="1351543382553" TEXT="Binded to storage engine"/>
+<node COLOR="#111111" CREATED="1347909321412" ID="ID_863479559" MODIFIED="1351543382554" TEXT="Widest data-organizational unit">
+<node COLOR="#111111" CREATED="1347909421889" ID="ID_439913085" MODIFIED="1351543382554" TEXT="Reduces the &quot;view&quot; on the datasets to a more narrow window"/>
+<node COLOR="#111111" CREATED="1347913688217" ID="ID_122339721" MODIFIED="1351543382555" TEXT="Does not actually &quot;frame&quot;/reference datasets"/>
+<node COLOR="#111111" CREATED="1347913713902" ID="ID_1362507526" MODIFIED="1351543382555" TEXT="Is like a &quot;table set&quot;">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347909509562" ID="ID_1182941178" MODIFIED="1351543382555" TEXT="May be referenced by one or more tables">
+<node COLOR="#111111" CREATED="1347909972081" ID="ID_1924830814" MODIFIED="1351543382556" TEXT="Loosely tied to tables"/>
+<node COLOR="#111111" CREATED="1347910628050" ID="ID_714324325" MODIFIED="1351543382556" TEXT="May also reference one or more tables">
+<node COLOR="#111111" CREATED="1347910657885" ID="ID_177348442" MODIFIED="1351543382557" TEXT="Must reference at least one table">
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347913594401" ID="ID_1774040074" MODIFIED="1351543382557" TEXT="This allows redundancy independently from used storage engine">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347910049440" ID="ID_1020368928" MODIFIED="1351543382558" TEXT="Names must be unique">
+<node COLOR="#111111" CREATED="1347910742215" ID="ID_1950884571" MODIFIED="1351543382558" TEXT="Must be checked before creation"/>
+<node COLOR="#111111" CREATED="1347910753733" ID="ID_884520385" MODIFIED="1351543382559" TEXT="Throws exception if already created"/>
+<node COLOR="#111111" CREATED="1347910767254" ID="ID_1430258062" MODIFIED="1351543382559" TEXT="May result in delay/network load in distributed storage engines/modes"/>
+</node>
+<node COLOR="#111111" CREATED="1347910288552" ID="ID_402206776" MODIFIED="1351543382560" TEXT="Has unique descriptor">
+<node COLOR="#111111" CREATED="1347910303396" ID="ID_79524194" MODIFIED="1351543382560" TEXT="Access hash">
+<node COLOR="#111111" CREATED="1347911099129" ID="ID_600086806" MODIFIED="1351543382561" TEXT="Will be used to &quot;loosely connect&quot; to tables"/>
+<node COLOR="#111111" CREATED="1347911116683" ID="ID_1207299244" MODIFIED="1351543382561" TEXT="Is the reference &quot;key&quot;"/>
+<node COLOR="#111111" CREATED="1347911511806" ID="ID_609124064" MODIFIED="1351543382561" TEXT="On backup, it will be renamed to name"/>
+</node>
+<node COLOR="#111111" CREATED="1347910329483" ID="ID_447818120" MODIFIED="1351543382562" TEXT="Database name">
+<linktarget COLOR="#006600" DESTINATION="ID_447818120" ENDARROW="Default" ENDINCLINATION="602;0;" ID="Arrow_ID_1348995776" SOURCE="ID_636886196" STARTARROW="None" STARTINCLINATION="602;0;"/>
+<node COLOR="#111111" CREATED="1347911129624" ID="ID_1190653673" MODIFIED="1351543382562" TEXT="Is an alias for the access hash"/>
+<node COLOR="#111111" CREATED="1347911152786" ID="ID_687255923" MODIFIED="1351543382563" TEXT="Shall be used instead of access hash"/>
+<node COLOR="#111111" CREATED="1347911173489" ID="ID_1903262880" MODIFIED="1351543382563" TEXT="Easier to remember"/>
+<node COLOR="#111111" CREATED="1347911176927" ID="ID_1395998657" MODIFIED="1351543382564" TEXT="More compatibility with other engines"/>
+<node COLOR="#111111" CREATED="1347911466507" ID="ID_1286712473" MODIFIED="1351543382564" TEXT="Hash may be different on other database nodes"/>
+<node COLOR="#111111" CREATED="1347911497208" ID="ID_392374407" MODIFIED="1351543382565" TEXT="Will not be stored to backup"/>
+</node>
+<node COLOR="#111111" CREATED="1347910334182" ID="ID_1416170724" MODIFIED="1351543382565" TEXT="Used storage engine">
+<node COLOR="#111111" CREATED="1347911698927" ID="ID_733668834" MODIFIED="1351543382565" TEXT="Depending on engine, includes more data">
+<node COLOR="#111111" CREATED="1347911721828" ID="ID_304015451" MODIFIED="1351543382566" TEXT="For example storing nodes (federated)"/>
+</node>
+<node COLOR="#111111" CREATED="1347912377864" ID="ID_1882832880" MODIFIED="1351543382566" TEXT="Configuration entry per created database (name)"/>
+</node>
+<node COLOR="#111111" CREATED="1347914059340" ID="ID_1159292448" MODIFIED="1351543382567" TEXT="Handling flags">
+<node COLOR="#111111" CREATED="1347914067226" ID="ID_1952362953" MODIFIED="1351543382567" TEXT="Crashed">
+<node COLOR="#111111" CREATED="1347914143123" ID="ID_290890902" MODIFIED="1351543382567" TEXT="May be used if database file(s) is/are corrupted"/>
+</node>
+<node COLOR="#111111" CREATED="1347914083874" ID="ID_616495706" MODIFIED="1351543382568" TEXT="Locked">
+<node COLOR="#111111" CREATED="1347914085358" ID="ID_1894484919" MODIFIED="1351543382568" TEXT="If supported by engine">
+<icon BUILTIN="yes"/>
+</node>
+<node COLOR="#111111" CREATED="1347914124264" ID="ID_1553769192" MODIFIED="1351543382569" TEXT="Including lock owner"/>
+</node>
+<node COLOR="#111111" CREATED="1347914191205" ID="ID_1897033849" MODIFIED="1351543382569" TEXT="Disconnected">
+<node COLOR="#111111" CREATED="1347914194446" ID="ID_482703840" MODIFIED="1351543382570" TEXT="If the storing node has disappeared"/>
+<node COLOR="#111111" CREATED="1347914213558" ID="ID_1125895894" MODIFIED="1351543382570" TEXT="Exact timestamp of disconnection"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347910365769" ID="ID_942539464" MODIFIED="1351543382571" TEXT="Comments"/>
+</node>
+<node COLOR="#111111" CREATED="1346541679742" ID="ID_807168097" MODIFIED="1351543382571" TEXT="Tables">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1347909352134" ID="ID_884064974" MODIFIED="1351543382571" TEXT="Is not tied/connected to database"/>
+<node COLOR="#111111" CREATED="1347909578469" ID="ID_490591838" MODIFIED="1351543382572" TEXT="Datasets/entries are loosely tied to it">
+<node COLOR="#111111" CREATED="1347909590787" ID="ID_1725722751" MODIFIED="1351543382572" TEXT="Allows an other table to be created with same parts of first table"/>
+<node COLOR="#111111" CREATED="1347909613555" ID="ID_330505832" MODIFIED="1351543382573" TEXT="Is based on hashing data entries/sets"/>
+</node>
+<node COLOR="#111111" CREATED="1347909748675" ID="ID_1135617270" MODIFIED="1351543382573" TEXT="Contains hashes to datasets">
+<node COLOR="#111111" CREATED="1347909774238" ID="ID_1814781423" MODIFIED="1351543382575" TEXT="May NOT contain data set hashes">
+<node COLOR="#111111" CREATED="1347909805034" ID="ID_458052280" MODIFIED="1351543382576" TEXT="This adds overload to updating table index">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347909410931" ID="ID_1018281677" MODIFIED="1351543382576" TEXT="Middle-wide organizational unit">
+<node COLOR="#111111" CREATED="1347915444065" ID="ID_795920292" MODIFIED="1351543382577" TEXT="Organizes one or more datasets in a logical unit"/>
+</node>
+<node COLOR="#111111" CREATED="1347909929666" ID="ID_1831742927" MODIFIED="1351543382577" TEXT="May be referenced by one or more datasets"/>
+<node COLOR="#111111" CREATED="1347910055292" ID="ID_490425881" MODIFIED="1351543382578" TEXT="Names must be unique within one database">
+<node COLOR="#111111" CREATED="1347910075894" ID="ID_1953611992" MODIFIED="1351543382578" TEXT="It is a good advice to have unique names across all databases"/>
+<node COLOR="#111111" CREATED="1347910103335" ID="ID_159279786" MODIFIED="1351543382579" TEXT="- as this allows to create federated databases very easily"/>
+</node>
+<node COLOR="#111111" CREATED="1347912407520" ID="ID_1512499455" MODIFIED="1351543382579" TEXT="Has unique descriptor">
+<node COLOR="#111111" CREATED="1347912420810" ID="ID_328184064" MODIFIED="1351543382579" TEXT="Access hash">
+<node COLOR="#111111" CREATED="1347912959028" ID="ID_1203260813" MODIFIED="1351543382580" TEXT="Will be used to &quot;loosely connect&quot; to datasets/databases">
+<node COLOR="#111111" CREATED="1347912975139" ID="ID_299885802" MODIFIED="1351543382580" TEXT="Connecting a table to multiple databases must be supported by underlaying storage engine">
+<icon BUILTIN="messagebox_warning"/>
+<icon BUILTIN="idea"/>
+</node>
+<node COLOR="#111111" CREATED="1347913002915" ID="ID_711015421" MODIFIED="1351543382581" TEXT="Allows n-n relations">
+<icon BUILTIN="button_ok"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347913129784" ID="ID_1589418518" MODIFIED="1351543382581" TEXT="Is the reference &quot;key&quot;"/>
+</node>
+<node COLOR="#111111" CREATED="1347912425798" ID="ID_389669567" MODIFIED="1351543382582" TEXT="Table name">
+<node COLOR="#111111" CREATED="1347914456696" ID="ID_536845262" MODIFIED="1351543382582" TEXT="Alias for access hash"/>
+<node COLOR="#111111" CREATED="1347914465540" ID="ID_1180493687" MODIFIED="1351543382583" TEXT="Easier to remember"/>
+<node COLOR="#111111" CREATED="1347914472610" ID="ID_636886196" MODIFIED="1351543382583" TEXT="... (see database descriptor)">
+<arrowlink COLOR="#006600" DESTINATION="ID_447818120" ENDARROW="Default" ENDINCLINATION="602;0;" ID="Arrow_ID_1348995776" STARTARROW="None" STARTINCLINATION="602;0;"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347913495090" ID="ID_1084668033" MODIFIED="1351543382584" TEXT="Inherited storage engine">
+<node COLOR="#111111" CREATED="1347913500355" ID="ID_995520298" MODIFIED="1351543382584" TEXT="May be overwritten to allow e.g. heap tables within a database"/>
+<node COLOR="#111111" CREATED="1347913524808" ID="ID_112416737" MODIFIED="1351543382585" TEXT="Default is storage engine from database"/>
+<node COLOR="#111111" CREATED="1347913536355" ID="ID_762518114" MODIFIED="1351543382585" TEXT="If multiple databases are referenced all engines must be the same"/>
+</node>
+<node COLOR="#111111" CREATED="1347914588516" ID="ID_845951830" MODIFIED="1351543382585" TEXT="Handling flags">
+<node COLOR="#111111" CREATED="1347914593059" ID="ID_228689757" MODIFIED="1351543382586" TEXT="Crashed">
+<node COLOR="#111111" CREATED="1347914875589" ID="ID_765081704" MODIFIED="1351543382586" TEXT="May cause crashed database">
+<node COLOR="#111111" CREATED="1347914937872" ID="ID_46849301" MODIFIED="1351543382587" TEXT="On supporting engines only"/>
+<node COLOR="#111111" CREATED="1347914950883" ID="ID_1530777026" MODIFIED="1351543382587" TEXT="Some kind of &quot;database-happiness&quot; causes this">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347914600903" ID="ID_54493191" MODIFIED="1351543382587" TEXT="Locked">
+<node COLOR="#111111" CREATED="1347992053241" ID="ID_1762530151" MODIFIED="1351543382588" TEXT="If supported by engine">
+<icon BUILTIN="yes"/>
+</node>
+<node COLOR="#111111" CREATED="1347992066867" ID="ID_212030811" MODIFIED="1351543382588" TEXT="Including lock owner"/>
+</node>
+<node COLOR="#111111" CREATED="1347914618280" ID="ID_324201180" MODIFIED="1351543382589" TEXT="Why no &quot;disconnected&quot;?">
+<icon BUILTIN="idea"/>
+<node COLOR="#111111" CREATED="1347914634435" ID="ID_133989367" MODIFIED="1351543382589" TEXT="Databases get disconnected"/>
+<node COLOR="#111111" CREATED="1347914651390" ID="ID_1263760458" MODIFIED="1351543382590" TEXT="- but not single tables as they depend loosely on databases"/>
+<node COLOR="#111111" CREATED="1347914678162" ID="ID_1109836570" MODIFIED="1351543382590" TEXT="A redundant stored table is possible"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347912951313" ID="ID_1766851891" MODIFIED="1351543382591" TEXT="Comments"/>
+</node>
+<node COLOR="#111111" CREATED="1347897050289" ID="ID_423424642" MODIFIED="1351543382591" TEXT="Datasets">
+<node COLOR="#111111" CREATED="1347994815641" ID="ID_950571320" MODIFIED="1351543382592" TEXT="Is not tied/connected to tables"/>
+<node COLOR="#111111" CREATED="1347994843470" ID="ID_1796989963" MODIFIED="1351543382592" TEXT="Tables/entries are loosely tied to it"/>
+<node COLOR="#111111" CREATED="1347994919830" ID="ID_889594764" MODIFIED="1351543382592" TEXT="Contains hashes to data entries">
+<node COLOR="#111111" CREATED="1348089051854" ID="ID_1770939207" MODIFIED="1351543382593" TEXT="All data entries referenced by used datasets must have same &quot;row&quot; count (n)">
+<arrowlink COLOR="#006600" DESTINATION="ID_366585032" ENDARROW="Default" ENDINCLINATION="696;38;" ID="Arrow_ID_928969794" STARTARROW="None" STARTINCLINATION="781;176;"/>
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347994934200" ID="ID_946163151" MODIFIED="1351543382593" TEXT="Narrow organization unit">
+<node COLOR="#111111" CREATED="1347994965280" ID="ID_1052420685" MODIFIED="1351543382594" TEXT="Organized one or more data entries in a logical unit"/>
+<node COLOR="#111111" CREATED="1347994987506" ID="ID_1636405144" MODIFIED="1351543382594" TEXT="Is part of a complete &quot;data row&quot;">
+<node COLOR="#111111" CREATED="1348088984977" ID="ID_1198804684" MODIFIED="1351543382595" TEXT="Data rows are organized by tables"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347995046025" ID="ID_72430445" MODIFIED="1351543382595" TEXT="Is only referenced by tables, not data entries"/>
+<node COLOR="#111111" CREATED="1347995075495" ID="ID_520335872" MODIFIED="1351543382596" TEXT="Doesn&apos;t have a name">
+<node COLOR="#111111" CREATED="1347995089456" ID="ID_30278784" MODIFIED="1351543382596" TEXT="As rows are not identified by names"/>
+<node COLOR="#111111" CREATED="1347995105327" ID="ID_1702201481" MODIFIED="1351543382596" TEXT="But may has an incremental counter"/>
+</node>
+<node COLOR="#111111" CREATED="1347995143139" ID="ID_1531730507" MODIFIED="1351543382597" TEXT="Has unique descriptor">
+<node COLOR="#111111" CREATED="1347995209997" ID="ID_1057513287" MODIFIED="1351543382597" TEXT="Access hash">
+<node COLOR="#111111" CREATED="1347995570918" ID="ID_438030226" MODIFIED="1351543382598" TEXT="Will be used to &quot;loosely connect&quot; to tables/data entries"/>
+<node COLOR="#111111" CREATED="1347995593391" ID="ID_1336753453" MODIFIED="1351543382598" TEXT="Is the reference &quot;key&quot;"/>
+</node>
+<node COLOR="#111111" CREATED="1348088717509" ID="ID_564622859" MODIFIED="1351543382598" TEXT="Is not being numbered">
+<icon BUILTIN="messagebox_warning"/>
+</node>
+<node COLOR="#111111" CREATED="1347995222215" ID="ID_1382110935" MODIFIED="1351543382599" TEXT="No storage engine is inherited">
+<icon BUILTIN="messagebox_warning"/>
+<node COLOR="#111111" CREATED="1347995748654" ID="ID_535496562" MODIFIED="1351543382599" TEXT="As the &quot;controlling&quot; unit is the table"/>
+<node COLOR="#111111" CREATED="1347995772251" ID="ID_203743846" MODIFIED="1351543382600" TEXT="This makes the dataset independent from used storage engine"/>
+</node>
+<node COLOR="#111111" CREATED="1347995242773" ID="ID_1025533836" MODIFIED="1351543382601" TEXT="Has no handling flags">
+<node COLOR="#111111" CREATED="1347995249004" ID="ID_106008300" MODIFIED="1351543382601" TEXT="As the &quot;controlling&quot; unit is the table"/>
+<node COLOR="#111111" CREATED="1347995274254" ID="ID_672154567" MODIFIED="1351543382602" TEXT="If a row would &quot;crash&quot; the whole table should better crash to forbid further access attempts"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347995317205" ID="ID_834619381" MODIFIED="1351543382602" TEXT="May have comments?">
+<icon BUILTIN="xmag"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347898618286" ID="ID_678684482" MODIFIED="1351543382606" TEXT="Data entries">
+<node COLOR="#111111" CREATED="1348089165715" ID="ID_282023791" MODIFIED="1351543382606" TEXT="Is not tied/connected to datasets"/>
+<node COLOR="#111111" CREATED="1348089770229" ID="ID_1429207106" MODIFIED="1351543382607" TEXT="Smallest organization unit"/>
+<node COLOR="#111111" CREATED="1348090829077" ID="ID_311462320" MODIFIED="1351543382607" TEXT="Is referenced by datasets"/>
+<node COLOR="#111111" CREATED="1348090835240" ID="ID_1699811207" MODIFIED="1351543382608" TEXT="Maybe referenced by tables?">
+<icon BUILTIN="xmag"/>
+</node>
+<node COLOR="#111111" CREATED="1348090967993" ID="ID_366585032" MODIFIED="1351543382608" TEXT="Same entry can exist n times">
+<linktarget COLOR="#006600" DESTINATION="ID_366585032" ENDARROW="Default" ENDINCLINATION="696;38;" ID="Arrow_ID_928969794" SOURCE="ID_1770939207" STARTARROW="None" STARTINCLINATION="781;176;"/>
+</node>
+<node COLOR="#111111" CREATED="1348089929274" ID="ID_75125078" MODIFIED="1351543382609" TEXT="Has a &quot;name&quot; (or key)">
+<node COLOR="#111111" CREATED="1348089942712" ID="ID_1416598036" MODIFIED="1351543382610" TEXT="Is an alias on access hash"/>
+<node COLOR="#111111" CREATED="1348090452219" ID="ID_496761357" MODIFIED="1351543382610" TEXT="As entries are numbered it doesn&apos;t need to be unique"/>
+<node COLOR="#111111" CREATED="1348090609780" ID="ID_447742923" MODIFIED="1351543382610" TEXT="Several entries with same &quot;name&quot; will be handled as &quot;rows&quot;"/>
+</node>
+<node COLOR="#111111" CREATED="1348088659937" ID="ID_448080189" MODIFIED="1351543382611" TEXT="Has unique descriptor">
+<node COLOR="#111111" CREATED="1348088782719" ID="ID_96553416" MODIFIED="1351543382611" TEXT="Access hash">
+<node COLOR="#111111" CREATED="1348090310966" ID="ID_1139835514" MODIFIED="1351543382611" TEXT="Is the reference &quot;key&quot;"/>
+</node>
+<node COLOR="#111111" CREATED="1347995216150" ID="ID_1931457260" MODIFIED="1351543382612" TEXT="&quot;Row&quot; number">
+<node COLOR="#111111" CREATED="1347995681302" ID="ID_1295644459" MODIFIED="1351543382612" TEXT="Whenever a data entry is created, the number increments"/>
+<node COLOR="#111111" CREATED="1347995699266" ID="ID_626496182" MODIFIED="1351543382613" TEXT="Deleting/updating of &quot;row&quot; numbers is not possible"/>
+<node COLOR="#111111" CREATED="1347995715735" ID="ID_1079888298" MODIFIED="1351543382613" TEXT="Deleting a data entry doesn&apos;t decrement number count"/>
+</node>
+<node COLOR="#111111" CREATED="1348089856484" ID="ID_1041510385" MODIFIED="1351543382613" TEXT="Defines a data type which the data has"/>
+<node COLOR="#111111" CREATED="1348088825289" ID="ID_1402142183" MODIFIED="1351543382614" TEXT="Does not inherit storage engine or handling flags"/>
+</node>
+<node COLOR="#111111" CREATED="1348166473883" ID="ID_432965480" MODIFIED="1351543382614" TEXT="Single data entry is made of ...">
+<node COLOR="#111111" CREATED="1348166534327" ID="ID_42823569" MODIFIED="1351543382615" TEXT="Access hash"/>
+<node COLOR="#111111" CREATED="1348166483509" ID="ID_885692020" MODIFIED="1351543382615" TEXT="Entry &quot;name&quot; or &quot;key&quot;"/>
+<node COLOR="#111111" CREATED="1348166539285" ID="ID_1845181339" MODIFIED="1351543382616" TEXT="Data type">
+<node COLOR="#111111" CREATED="1348168340484" ID="ID_1318284868" MODIFIED="1351543382616" TEXT="Type safety is important">
+<icon BUILTIN="yes"/>
+</node>
+<node COLOR="#111111" CREATED="1348168361740" ID="ID_938684564" MODIFIED="1351543382617" TEXT="Mismatching types will cause an exception"/>
+<node COLOR="#111111" CREATED="1348168390174" ID="ID_1040366120" MODIFIED="1351543382617" TEXT="Is represented as hexadecimal number"/>
+</node>
+<node COLOR="#111111" CREATED="1348166558784" ID="ID_602013127" MODIFIED="1351543382617" TEXT="Data value"/>
+<node COLOR="#111111" CREATED="1348088848688" ID="ID_1827228403" MODIFIED="1351543382618" TEXT="Comments"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346541744578" ID="ID_1112036236" MODIFIED="1351543382618" TEXT="Data types">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1348164733507" ID="ID_408959225" MODIFIED="1351543382618" TEXT="Are tied to data entries"/>
+<node COLOR="#111111" CREATED="1348164742879" ID="ID_402066301" MODIFIED="1351543382619" TEXT="Is not an organization unit"/>
+<node COLOR="#111111" CREATED="1348164754345" ID="ID_555748717" MODIFIED="1351543382619" TEXT="Is always referenced by data entries"/>
+<node COLOR="#111111" CREATED="1348164784500" ID="ID_1059405754" MODIFIED="1351543382620" TEXT="Has no &quot;name&quot; or key"/>
+<node COLOR="#111111" CREATED="1348164797658" ID="ID_664340195" MODIFIED="1351543382620" TEXT="Has no descriptor">
+<node COLOR="#111111" CREATED="1348166709503" ID="ID_336179657" MODIFIED="1351543382621" TEXT="As it is no organization unit"/>
+</node>
+<node COLOR="#111111" CREATED="1348164812073" ID="ID_1291865594" MODIFIED="1351543382622" TEXT="Supported data types">
+<node COLOR="#111111" CREATED="1348164901610" ID="ID_426520936" MODIFIED="1351543382622" TEXT="Tiny integer">
+<node COLOR="#111111" CREATED="1348605506502" ID="ID_1026175374" MODIFIED="1351543382622" TEXT="String identifier: ti">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1348164887086" ID="ID_33596741" MODIFIED="1351543382623" TEXT="Small integer">
+<node COLOR="#111111" CREATED="1348605526128" ID="ID_1645132967" MODIFIED="1351543382623" TEXT="String identifier: si"/>
+</node>
+<node COLOR="#111111" CREATED="1348164821176" ID="ID_1666670329" MODIFIED="1351543382623" TEXT="Integer">
+<node COLOR="#111111" CREATED="1348605529428" ID="ID_1964125386" MODIFIED="1351543382624" TEXT="String identifier: in"/>
+</node>
+<node COLOR="#111111" CREATED="1348164890958" ID="ID_774607474" MODIFIED="1351543382624" TEXT="Big integer">
+<node COLOR="#111111" CREATED="1348605544996" ID="ID_894617379" MODIFIED="1351543382625" TEXT="String identifier: bi"/>
+</node>
+<node COLOR="#111111" CREATED="1348164823809" ID="ID_240092736" MODIFIED="1351543382625" TEXT="Float">
+<node COLOR="#111111" CREATED="1348605558719" ID="ID_481618045" MODIFIED="1351543382636" TEXT="String identifier: fl"/>
+</node>
+<node COLOR="#111111" CREATED="1348164835569" ID="ID_95771098" MODIFIED="1351543382637" TEXT="Char">
+<node COLOR="#111111" CREATED="1348605563110" ID="ID_176711801" MODIFIED="1351543382638" TEXT="String identifier: ch"/>
+</node>
+<node COLOR="#111111" CREATED="1348164828048" ID="ID_1968458177" MODIFIED="1351543382638" TEXT="String">
+<node COLOR="#111111" CREATED="1348605566687" ID="ID_1109438228" MODIFIED="1351543382638" TEXT="String identifier: st"/>
+</node>
+<node COLOR="#111111" CREATED="1348164825299" ID="ID_839405785" MODIFIED="1351543382639" TEXT="Boolean">
+<node COLOR="#111111" CREATED="1348605570445" ID="ID_327726408" MODIFIED="1351543382650" TEXT="String identifier: bo"/>
+</node>
+<node COLOR="#111111" CREATED="1348164830871" ID="ID_259473311" MODIFIED="1351543382651" TEXT="Array">
+<node COLOR="#111111" CREATED="1348605573884" ID="ID_1353175990" MODIFIED="1351543382651" TEXT="String identifier: ar"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1346542103803" ID="ID_312384374" MODIFIED="1351543382651" TEXT="No indexes or primary/unique keys">
+<font NAME="Dialog" SIZE="12"/>
+<icon BUILTIN="messagebox_warning"/>
+</node>
+<node COLOR="#111111" CREATED="1346542422821" ID="ID_1395690062" MODIFIED="1351543382652" TEXT="Comments">
+<font NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1348606650551" ID="ID_1432508732" MODIFIED="1351543382652" TEXT="Data storage layer">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1348607368044" ID="ID_1522509826" MODIFIED="1351543382653" TEXT="General ideas">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1348607381294" ID="ID_354358196" MODIFIED="1351543382653" TEXT="Is responsible for storing the data"/>
+<node COLOR="#111111" CREATED="1348607394230" ID="ID_650558677" MODIFIED="1351543382653" TEXT="Storage of data is independent from above layers">
+<node COLOR="#111111" CREATED="1348607426234" ID="ID_532285228" MODIFIED="1351543382654" TEXT="It doesn&apos;t matter how the data is organized"/>
+</node>
+<node COLOR="#111111" CREATED="1348770959605" ID="ID_1668693936" MODIFIED="1355617597896" TEXT="Classes in storage layer act as front-ends">
+<arrowlink DESTINATION="ID_1609252931" ENDARROW="Default" ENDINCLINATION="158;-6;" ID="Arrow_ID_10442914" STARTARROW="None" STARTINCLINATION="158;-6;"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347894952478" ID="ID_553489596" MODIFIED="1351543382654" TEXT="Storage engines">
+<font NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1347910800390" ID="ID_361666086" MODIFIED="1351543382655" TEXT="For all engines">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1347910806204" ID="ID_80593214" MODIFIED="1351543382655" TEXT="Are not the same as database modes"/>
+<node COLOR="#111111" CREATED="1347910821704" ID="ID_267957144" MODIFIED="1351543382656" TEXT="Are only available for databases"/>
+<node COLOR="#111111" CREATED="1347910884420" ID="ID_1293131147" MODIFIED="1351543382656" TEXT="Not all are compatible to all modes"/>
+<node COLOR="#111111" CREATED="1348168548900" ID="ID_1647356270" MODIFIED="1351543382669" TEXT="Identified by hexadecimal number"/>
+<node COLOR="#111111" CREATED="1348866591562" ID="ID_1609252931" MODIFIED="1355617597896" TEXT="Are the file IO frontends">
+<linktarget COLOR="#b0b0b0" DESTINATION="ID_1609252931" ENDARROW="Default" ENDINCLINATION="158;-6;" ID="Arrow_ID_10442914" SOURCE="ID_1668693936" STARTARROW="None" STARTINCLINATION="158;-6;"/>
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895238929" ID="ID_1019946403" MODIFIED="1351543382670" TEXT="Blob file">
+<node COLOR="#111111" CREATED="1347895312295" ID="ID_888594780" MODIFIED="1351543382670" TEXT="Stored on local file system">
+<node COLOR="#111111" CREATED="1347898337240" ID="ID_1188869385" MODIFIED="1351543382670" TEXT="Is this file fomat">
+<arrowlink COLOR="#ff3333" DESTINATION="ID_1683424442" ENDARROW="Default" ENDINCLINATION="597;-489;" ID="Arrow_ID_453516147" STARTARROW="None" STARTINCLINATION="561;-255;"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895325286" ID="ID_237065568" MODIFIED="1351543382671" TEXT="Supports all operations"/>
+<node COLOR="#111111" CREATED="1347895346593" ID="ID_1778738094" MODIFIED="1351543382671" TEXT="Is persistent"/>
+</node>
+<node COLOR="#111111" CREATED="1347898288611" ID="ID_42030705" MODIFIED="1351543382672" TEXT="Hash file">
+<node COLOR="#111111" CREATED="1347898303862" ID="ID_1359778918" MODIFIED="1351543382672" TEXT="Stored on local file system">
+<node COLOR="#111111" CREATED="1347898419343" ID="ID_487696928" MODIFIED="1351543382673" TEXT="Is the previous file format">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347898309637" ID="ID_756266110" MODIFIED="1351543382673" TEXT="Supports all operations"/>
+<node COLOR="#111111" CREATED="1347898314127" ID="ID_1060169944" MODIFIED="1351543382673" TEXT="Is persistent"/>
+</node>
+<node COLOR="#111111" CREATED="1347895254752" ID="ID_1163540267" MODIFIED="1351543382674" TEXT="Heap">
+<node COLOR="#111111" CREATED="1347895330976" ID="ID_276897050" MODIFIED="1351543382680" TEXT="Stored in memory"/>
+<node COLOR="#111111" CREATED="1347895340294" ID="ID_145826147" MODIFIED="1351543382680" TEXT="Supports all operations"/>
+<node COLOR="#111111" CREATED="1347895351785" ID="ID_1164721835" MODIFIED="1351543382681" TEXT="Is non-persistent">
+<node COLOR="#111111" CREATED="1347895572689" ID="ID_1039529514" MODIFIED="1351543382681" TEXT="Looses all data on power loss/shutdown"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895263967" ID="ID_1213358823" MODIFIED="1351543382681" TEXT="Blackhole">
+<node COLOR="#111111" CREATED="1347895360870" ID="ID_463622164" MODIFIED="1351543382682" TEXT="Stored nowhere">
+<node COLOR="#111111" CREATED="1347895751946" ID="ID_620019901" MODIFIED="1351543382682" TEXT="Except table names and structure">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895380120" ID="ID_1029660130" MODIFIED="1351543382683" TEXT="Supports all operations">
+<node COLOR="#111111" CREATED="1347895398743" ID="ID_920096783" MODIFIED="1351543382683" TEXT="&quot;Write&quot; operations are not stored">
+<node COLOR="#111111" CREATED="1347895436895" ID="ID_23365602" MODIFIED="1351543382683" TEXT="&quot;Affected&quot; rows are always zero!">
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895417025" ID="ID_1305980085" MODIFIED="1351543382684" TEXT="&quot;Read&quot; operations will always return zero result"/>
+<node COLOR="#111111" CREATED="1347895485557" ID="ID_1921852746" MODIFIED="1351543382684" TEXT="Even if the result is misleading, no warning is triggered"/>
+</node>
+<node COLOR="#111111" CREATED="1347895386590" ID="ID_206929226" MODIFIED="1351543382685" TEXT="Is virtual">
+<node COLOR="#111111" CREATED="1347895502000" ID="ID_43451927" MODIFIED="1351543382685" TEXT="It is a non-existent &quot;storage&quot;"/>
+<node COLOR="#111111" CREATED="1347895518478" ID="ID_1791822351" MODIFIED="1351543382686" TEXT="All sent data is discarded"/>
+<node COLOR="#111111" CREATED="1347895530242" ID="ID_1072830374" MODIFIED="1351543382686" TEXT="Similar to send data to /dev/null">
+<icon BUILTIN="idea"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895288156" ID="ID_1016970381" MODIFIED="1351543382687" TEXT="Archive">
+<node COLOR="#111111" CREATED="1347895708233" ID="ID_400868272" MODIFIED="1351543382687" TEXT="Stored on local file system"/>
+<node COLOR="#111111" CREATED="1347895663394" ID="ID_1767525606" MODIFIED="1351543382688" TEXT="Supports not all operations">
+<node COLOR="#111111" CREATED="1347895673303" ID="ID_35746771" MODIFIED="1351543382688" TEXT="&quot;Insert&quot; operations work"/>
+<node COLOR="#111111" CREATED="1347895690866" ID="ID_757910127" MODIFIED="1351543382688" TEXT="&quot;Update&quot; or &quot;delete&quot; are not permitted"/>
+<node COLOR="#111111" CREATED="1347895809167" ID="ID_737807217" MODIFIED="1351543382689" TEXT="&quot;Read&quot; operations are supported"/>
+<node COLOR="#111111" CREATED="1347895900655" ID="ID_1086418246" MODIFIED="1351543382689" TEXT="May not support indexes">
+<icon BUILTIN="help"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347895916986" ID="ID_1965965364" MODIFIED="1351543382690" TEXT="Is persistent"/>
+</node>
+<node COLOR="#111111" CREATED="1347896088464" ID="ID_1773711046" MODIFIED="1351543382690" TEXT="Federated">
+<node COLOR="#111111" CREATED="1347896094616" ID="ID_210176852" MODIFIED="1351543382690" TEXT="Stored distributed">
+<node COLOR="#111111" CREATED="1347896220059" ID="ID_160460838" MODIFIED="1351543382691" TEXT="Database is distributed on several physical nodes"/>
+<node COLOR="#111111" CREATED="1347896237087" ID="ID_353156748" MODIFIED="1351543382691" TEXT="It appears as one logical database"/>
+</node>
+<node COLOR="#111111" CREATED="1347896102116" ID="ID_1430910538" MODIFIED="1351543382704" TEXT="Supports all operations"/>
+<node COLOR="#111111" CREATED="1347896107026" ID="ID_616654450" MODIFIED="1351543382705" TEXT="Is persistant and redundant"/>
+<node COLOR="#111111" CREATED="1347896126051" ID="ID_781772212" MODIFIED="1351543382705" TEXT="Is not compatible with all modes">
+<icon BUILTIN="messagebox_warning"/>
+<node COLOR="#111111" CREATED="1347896148283" ID="ID_5700806" MODIFIED="1351543382706" TEXT="&quot;Host-only&quot; is supported"/>
+<node COLOR="#111111" CREATED="1347896201841" ID="ID_208145467" MODIFIED="1351543382706" TEXT="Distributed is NOT supported"/>
+<node COLOR="#111111" CREATED="1347896209348" ID="ID_797343960" MODIFIED="1351543382707" TEXT="Master/slave is NOT supported"/>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1347896609323" ID="ID_790775394" MODIFIED="1351543382707" TEXT="Peer-To-Peer">
+<icon BUILTIN="idea"/>
+<icon BUILTIN="xmag"/>
+<node COLOR="#111111" CREATED="1347896615542" ID="ID_1809443672" MODIFIED="1351543382707" TEXT="Stored decentralized"/>
+<node COLOR="#111111" CREATED="1347896633801" ID="ID_1256115067" MODIFIED="1351543382708" TEXT="Supports all operations"/>
+<node COLOR="#111111" CREATED="1347896639372" ID="ID_1364051912" MODIFIED="1351543382708" TEXT="Is persistant and redundant"/>
+</node>
+</node>
+</node>
+<node COLOR="#990000" CREATED="1348607776611" ID="ID_601635228" MODIFIED="1351543382721" TEXT="Raw data access layer">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node COLOR="#111111" CREATED="1348607891753" ID="ID_1912251373" MODIFIED="1351543382722" TEXT="General ideas">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1348762795482" ID="ID_642646697" MODIFIED="1351543382722" TEXT="Is the &quot;storage backend&quot;">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node COLOR="#111111" CREATED="1348770976729" ID="ID_1262887982" MODIFIED="1351543382723" TEXT="Backend classes lift of the heavy work"/>
+</node>
+<node COLOR="#111111" CREATED="1348608033387" ID="ID_211987598" MODIFIED="1351543382723" TEXT="Depends on the selected storage engine">
+<node COLOR="#111111" CREATED="1348770777328" ID="ID_237843856" MODIFIED="1351543382726" TEXT="An engine based on files (both binary and text formats) will write to hard drive">
+<node COLOR="#111111" CREATED="1348770849306" ID="ID_182856009" MODIFIED="1351543382727" TEXT="Both indexes and data packets are kept on disk"/>
+</node>
+<node COLOR="#111111" CREATED="1348770803538" ID="ID_61658429" MODIFIED="1351543382727" TEXT="A networked engine will write into a TCP/UDP stream">
+<node COLOR="#111111" CREATED="1348770886854" ID="ID_539482397" MODIFIED="1351543382728" TEXT="A DHT is recommended to keep track of the data"/>
+<node COLOR="#111111" CREATED="1348770918175" ID="ID_1502537954" MODIFIED="1351543382728" TEXT="The receiving nodes will store both on disk"/>
+</node>
+</node>
+</node>
+<node COLOR="#111111" CREATED="1348772276127" ID="ID_330882598" MODIFIED="1351543382729" TEXT="File IO backend">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+</node>
+<node COLOR="#111111" CREATED="1348772336935" ID="ID_1946725400" MODIFIED="1351543382729" TEXT="Network IO backend">
+<font BOLD="true" NAME="Dialog" SIZE="12"/>
+</node>
+</node>
+</node>
+<node COLOR="#00b439" CREATED="1346545137974" ID="ID_260747112" MODIFIED="1351543382732" TEXT="Naming scheme">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+</node>
+</node>
+<node COLOR="#0033ff" CREATED="1346541827596" ID="ID_417587233" MODIFIED="1351543382733" POSITION="left" TEXT="&quot;Query language&quot;">
+<edge STYLE="sharp_bezier" WIDTH="8"/>
+<font BOLD="true" NAME="Dialog" SIZE="18"/>
+</node>
+<node COLOR="#0033ff" CREATED="1347920245821" ID="ID_93482239" MODIFIED="1351543382735" POSITION="left" TEXT="License">
+<edge STYLE="sharp_bezier" WIDTH="8"/>
+<font BOLD="true" NAME="Dialog" SIZE="18"/>
+<node COLOR="#00b439" CREATED="1347920258821" ID="ID_1719359335" MODIFIED="1351543382755" TEXT="This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Germany License. To view a copy of this license, visit next link.">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font NAME="Dialog" SIZE="16"/>
+</node>
+<node COLOR="#00b439" CREATED="1347920284551" ID="ID_1012683220" LINK="http://creativecommons.org/licenses/by-sa/3.0/de/" MODIFIED="1351543382761" TEXT="http://creativecommons.org/licenses/by-sa/3.0/de/">
+<edge STYLE="bezier" WIDTH="thin"/>
+<font NAME="Dialog" SIZE="16"/>
+</node>
+</node>
+</node>
+</map>
diff --git a/patch.sh b/patch.sh
new file mode 100755 (executable)
index 0000000..5dbfe7d
--- /dev/null
+++ b/patch.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if test "$1" = ""; then
+       echo "Usage: $0 <patch>"
+       exit
+fi
+
+LIST=`find ??*/trunk/ -maxdepth 0 -type d | sort --unique`
+
+for entry in ${LIST}; do
+       echo "$0: Patching in ${entry} ..."
+       cd "${entry}"
+       patch -p0 < "../../$1"
+       cd -
+done
diff --git a/patch_core.sh b/patch_core.sh
new file mode 100755 (executable)
index 0000000..6d93d1f
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+svn diff inc/ > ../../core/trunk/i || exit 1
+cd ../../core/trunk/ || exit 1
+svn up || exit 1
+sh ../contrib/patch_i.sh "$1" || exit 1
+cd -
+svn up inc/
diff --git a/patch_i.sh b/patch_i.sh
new file mode 100755 (executable)
index 0000000..6690ae0
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+patch -p0 < i || exit 10
+if test "$1" = ""; then
+       svn commit || exit 10
+else
+       svn commit -m "$1" || exit 10
+fi
+rm i
diff --git a/prop-set.sh b/prop-set.sh
new file mode 100755 (executable)
index 0000000..1df2b4c
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+find -type f -name "*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
+find -type f -name "*-" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
+find -type f -name "*_" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
+find -type f -name "_*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
+find -type f -name "*.php" -exec svn propset svn:mime-type "text/plain" {} \;
+find -type f -name "*-" -exec svn propset svn:mime-type "text/plain" {} \;
+find -type f -name "*_" -exec svn propset svn:mime-type "text/plain" {} \;
+find -type f -name "_*.php" -exec svn propset svn:mime-type "text/plain" {} \;
+find -type f -name "*.jpg" -exec svn propset svn:mime-type "image/jpeg" {} \;
+find -type f -name "*.png" -exec svn propset svn:mime-type "image/png" {} \;
+find -type f -name "*.gif" -exec svn propset svn:mime-type "image/gif" {} \;
+find -type f -name "*.txt" -exec svn propset svn:mime-type "text/plain" {} \;
+find -type f -name "*.tpl" -exec svn propset svn:mime-type "text/plain" {} \;
diff --git a/remove-deprecated.sh b/remove-deprecated.sh
new file mode 100755 (executable)
index 0000000..cd8d9f0
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+if ! test -e "svn-externals.txt"; then
+  echo "$0: Please execute this script from root directory."
+  exit 1
+fi
+
+echo "$0: Searching for deprecated PHP scripts ..."
+LIST1=`find -type f -name "*.php" -size 24c -exec grep -H "@DEPRECATED" {} \;`
+
+LIST="${LIST1} ${LIST2}"
+
+if test "${LIST}" != " "; then
+       echo "${LIST}" | cut -d ":" -f 1 | xargs svn --force del
+       sh ./todo-builder.sh
+fi
diff --git a/todo-all.sh b/todo-all.sh
new file mode 100755 (executable)
index 0000000..f3a806a
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+echo "$0: Reading projects..."
+LIST=`find -maxdepth 1 -type d -name "??*" | sort --unique`
+SVN_DIRS="branches tags trunk"
+
+for repos in $LIST; do
+       for svn_dir in $SVN_DIRS; do
+               if test -e "$repos/$svn_dir/todo-builder.sh"; then
+                       echo "$0: Updating TODOs.txt in $repos/$svn_dir"
+                       cd "$repos/$svn_dir/"
+                       sh ./todo-builder.sh
+                       svn add docs/TODOs.txt >/dev/null 2>&1
+                       cd - >/dev/null
+               fi
+       done
+done