Re: [Factor-talk] +foreign-id+ seems to protect unused entries too
Am Thu, 25 Aug 2016 15:21:11 +0200 schrieb Björn Lindqvist: > > If I remove ``{ +foreign-id+ node "ID" }`` all works fine. > > > > Do I understand ``+foreign-id+`` wrong ? > > There was a bug in the delete restrict triggers. Should be fixed now. > > > tree "TREE" { > > { "id" "ID"INTEGER +db-assigned-id+ } > > ! { "node""NODE" INTEGER } > > { "node""NODE" INTEGER { +foreign-id+ node "ID" } } > > } define-persistent > > You can also use: { "node" "NODE" INTEGER { +foreign-id+ node "ID" } > +on-delete+ +cascade+ } to get cascading deletes. IME, that is almost > always better than restricting deletes. > > > "test.db" > > [ "rm " prepend system drop ] > > You could use [ ?delete-file ] here. > > Thank you. Now it works. Georg -- ___ Factor-talk mailing list Factor-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/factor-talk
Re: [Factor-talk] +foreign-id+ seems to protect unused entries too
> If I remove ``{ +foreign-id+ node "ID" }`` all works fine. > > Do I understand ``+foreign-id+`` wrong ? There was a bug in the delete restrict triggers. Should be fixed now. > tree "TREE" { > { "id" "ID"INTEGER +db-assigned-id+ } > ! { "node""NODE" INTEGER } > { "node""NODE" INTEGER { +foreign-id+ node "ID" } } > } define-persistent You can also use: { "node" "NODE" INTEGER { +foreign-id+ node "ID" } +on-delete+ +cascade+ } to get cascading deletes. IME, that is almost always better than restricting deletes. > "test.db" > [ "rm " prepend system drop ] You could use [ ?delete-file ] here. -- mvh/best regards Björn Lindqvist -- ___ Factor-talk mailing list Factor-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/factor-talk
[Factor-talk] +foreign-id+ seems to protect unused entries too
In the script below ``delete-tuples`` in line 8 from the end throws an error although the id 2 is not pointed to by any tree entry. If I remove ``{ +foreign-id+ node "ID" }`` all works fine. Do I understand ``+foreign-id+`` wrong ? Georg -- USING: accessors db db.sqlite db.tuples db.types kernel libc prettyprint sequences ; IN: test-script TUPLE: node id ; node "NODE" { { "id" "ID"INTEGER +db-assigned-id+ } } define-persistent TUPLE: tree id node ; tree "TREE" { { "id" "ID"INTEGER +db-assigned-id+ } ! { "node""NODE" INTEGER } { "node""NODE" INTEGER { +foreign-id+ node "ID" } } } define-persistent : .db ( -- ) node tree [ new select-tuples [ . ] each ] bi@ ; : main ( -- ) node new [ insert-tuple ] [ id>> ] bi tree new swap >>node insert-tuple node new insert-tuple .db node new 2 >>id delete-tuples .db ; "test.db" [ "rm " prepend system drop ] [ [ { node tree } ensure-tables main ] with-db ] bi -- ___ Factor-talk mailing list Factor-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/factor-talk