{"id":50,"date":"2016-06-26T15:58:57","date_gmt":"2016-06-26T14:58:57","guid":{"rendered":"http:\/\/reldb.org\/wordpress\/?page_id=50"},"modified":"2016-06-26T15:58:57","modified_gmt":"2016-06-26T14:58:57","slug":"current-limitations-and-work-in-progress","status":"publish","type":"page","link":"https:\/\/reldb.org\/c\/index.php\/read\/current-limitations-and-work-in-progress\/","title":{"rendered":"Current Limitations and Work in Progress"},"content":{"rendered":"<h1>Current Limitations and Work in Progress<\/h1>\n<p>All limitations described below will be addressed in future versions of <i>Rel<\/i>.<\/p>\n<h3>Limitations \u2013 <i>Rel<\/i> Server<\/h3>\n<p><b>Nested Transactions:<\/b> The current version of the storage engine \u2013 Oracle&#8217;s (formerly SleepyCat Software&#8217;s) Java edition of the Berkeley DB \u2013 supports low level nested transactions within the API, but throws an exception at runtime to indicate the feature is not implemented yet. If this condition persists, a different storage engine will have to be used. If needed, this will probably be the C version of the Berkeley DB, but a custom storage engine will almost certainly replace it at some point.<\/p>\n<p>As a result, nested transactions that ABORT cause their parent transactions to abort. A nested COMMIT does nothing.<\/p>\n<p><b>User-defined types:<\/b> Multiple-inheritance is not yet supported. This is a work in progress slated for deployment in summer 2013.<\/p>\n<p><b>KEY specifications on virtual relvars:<\/b> KEY constraints on VIRTUAL relvars (views) are accepted but will be ignored.<\/p>\n<p><b>Operators:<\/b> The UPDATES parameter modifier is not implemented yet.<\/p>\n<p><b>Flow control:<\/b> The LEAVE statement is not implemented yet.<\/p>\n<p><b>Optimisation:<\/b> There is none, anywhere, of any kind, except a minimal effort has been made to achieve acceptable JOIN performance. However, since &#8220;premature optimisation is the root of all evil,&#8221; (C. A. R. Hoare) this cannot be considered entirely a bad thing. Future versions of <i>Rel<\/i> will implement appropriate optimisation mechanisms.<\/p>\n<p><b>Substitution operator:<\/b> Due to a quirk in the parser, the UPDATE or substitution operator, which should be specified as, for example&#8230;<\/p>\n<blockquote>\n<pre><code>UPDATE expr (x := x + 1)\r\n<\/code><\/pre>\n<\/blockquote>\n<p>&#8230;must be specified as:<\/p>\n<blockquote>\n<pre><code>UPDATE (expr) (x := x + 1)\r\n<\/code><\/pre>\n<\/blockquote>\n<p>Note the parentheses around the relation or tuple expression &#8216;expr&#8217;. Without the parentheses, the parser will generate an error message.<\/p>\n<p>This will be corrected in a future update.<\/p>\n<p>Note that this limitation does not apply to the UPDATE statement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Current Limitations and Work in Progress All limitations described below will be addressed in future versions of Rel. Limitations \u2013 Rel Server Nested Transactions: The current version of the storage engine \u2013 Oracle&#8217;s (formerly SleepyCat Software&#8217;s) Java edition of the Berkeley DB \u2013 supports low level nested transactions within the API, but throws an exception <a href=\"https:\/\/reldb.org\/c\/index.php\/read\/current-limitations-and-work-in-progress\/\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Current Limitations and Work in Progress<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":17,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-50","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/pages\/50","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/comments?post=50"}],"version-history":[{"count":1,"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/pages\/50\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/pages\/50\/revisions\/51"}],"up":[{"embeddable":true,"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/pages\/17"}],"wp:attachment":[{"href":"https:\/\/reldb.org\/c\/index.php\/wp-json\/wp\/v2\/media?parent=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}