<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket #1137: Remove need for statefulness in vdm</title>
    <link>http://localhost/ticket/1137</link>
    <description>&lt;p&gt;
Statefulness, especially statefulness for relation (esp m2m) is cause of most of the complexity in vdm. It is &lt;em&gt;required&lt;/em&gt; because, atm, revision objects have FKs to continuity objects.
&lt;/p&gt;
&lt;p&gt;
This ticket proposes the following changes:
&lt;/p&gt;
&lt;p&gt;
NB: this could be limited just to case of join tables (leaving state stuff on other tables)
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Remove FKs from revision to continuity (or allow for them to be nullable).
&lt;ul&gt;&lt;li&gt;We could just limit this to m2m stuff
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Delete of an object leads to:
&lt;ul&gt;&lt;li&gt;Deletion of continuity object
&lt;/li&gt;&lt;li&gt;Adding an entry in revision table with state set to deleted (we retain state on revision table)
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
If this is done we will no longer need to worry about filtering on state on relationships as join table will only contain "active" relationships.
&lt;/p&gt;
&lt;p&gt;
If we do this on all tables we remove need for any state awareness in client (e.g. no need to filter tables on active state).
&lt;/p&gt;
&lt;p&gt;
The only disadvantage of this change is that undeletion becomes more problematic (we have to recreate some continuity objects).
&lt;/p&gt;
</description>
    <language>en-us</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/ticket/1137</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
      
        <dc:creator>rgrp</dc:creator>

      <pubDate>Thu, 12 May 2011 14:47:52 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1137#comment:1</link>
      <guid isPermaLink="false">http://localhost/ticket/1137#comment:1</guid>
      <description>
        &lt;p&gt;
Most of this change has been implemented in the changeset branch &lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt; but could be backported reasonably easily to main.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="missing changeset" title="No default repository defined"&gt;[1]&lt;/a&gt;:  &lt;a class="ext-link" href="https://bitbucket.org/okfn/vdm/src/changeset/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://bitbucket.org/okfn/vdm/src/changeset/&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>kindly</dc:creator>

      <pubDate>Thu, 12 May 2011 16:24:09 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1137#comment:2</link>
      <guid isPermaLink="false">http://localhost/ticket/1137#comment:2</guid>
      <description>
        &lt;p&gt;
I am not sure this needs to be done.  I think we should keep the continuity object always in the table, even if it is deleted.  The querying should be done through the logic layer so the deleted state should not be an issue.
&lt;/p&gt;
&lt;p&gt;
The clients should be entirely state aware.
&lt;/p&gt;
&lt;p&gt;
The only thing that needs to be done is to remove all statefullness of relations.  These are the only things that are complicated.
&lt;/p&gt;
&lt;p&gt;
This would make vdm just a simple copy on write mechanism, with the client controlling the state.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>icmurray</dc:creator>

      <pubDate>Mon, 25 Jun 2012 13:46:14 GMT</pubDate>
      <title>owner, status changed</title>
      <link>http://localhost/ticket/1137#comment:3</link>
      <guid isPermaLink="false">http://localhost/ticket/1137#comment:3</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;owner&lt;/strong&gt;
              changed from &lt;em&gt;rgrp&lt;/em&gt; to &lt;em&gt;kindly&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;new&lt;/em&gt; to &lt;em&gt;assigned&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item>
 </channel>
</rss>