remove a bunch of trigger deletion code -- triggers get deleted when tables are dropped
parent
6eaa5aee24
commit
b54833c728
|
@ -223,13 +223,6 @@ M: sqlite-db-connection persistent-table ( -- assoc )
|
||||||
"> interpolate
|
"> interpolate
|
||||||
] with-string-writer ;
|
] with-string-writer ;
|
||||||
|
|
||||||
: drop-insert-trigger ( -- string )
|
|
||||||
[
|
|
||||||
<"
|
|
||||||
DROP TRIGGER fki_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id;
|
|
||||||
"> interpolate
|
|
||||||
] with-string-writer ;
|
|
||||||
|
|
||||||
: update-trigger ( -- string )
|
: update-trigger ( -- string )
|
||||||
[
|
[
|
||||||
<"
|
<"
|
||||||
|
@ -255,13 +248,6 @@ M: sqlite-db-connection persistent-table ( -- assoc )
|
||||||
"> interpolate
|
"> interpolate
|
||||||
] with-string-writer ;
|
] with-string-writer ;
|
||||||
|
|
||||||
: drop-update-trigger ( -- string )
|
|
||||||
[
|
|
||||||
<"
|
|
||||||
DROP TRIGGER fku_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id;
|
|
||||||
"> interpolate
|
|
||||||
] with-string-writer ;
|
|
||||||
|
|
||||||
: delete-trigger-restrict ( -- string )
|
: delete-trigger-restrict ( -- string )
|
||||||
[
|
[
|
||||||
<"
|
<"
|
||||||
|
@ -274,13 +260,6 @@ M: sqlite-db-connection persistent-table ( -- assoc )
|
||||||
"> interpolate
|
"> interpolate
|
||||||
] with-string-writer ;
|
] with-string-writer ;
|
||||||
|
|
||||||
: drop-delete-trigger-restrict ( -- string )
|
|
||||||
[
|
|
||||||
<"
|
|
||||||
DROP TRIGGER fkd_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id;
|
|
||||||
"> interpolate
|
|
||||||
] with-string-writer ;
|
|
||||||
|
|
||||||
: delete-trigger-cascade ( -- string )
|
: delete-trigger-cascade ( -- string )
|
||||||
[
|
[
|
||||||
<"
|
<"
|
||||||
|
@ -292,13 +271,6 @@ M: sqlite-db-connection persistent-table ( -- assoc )
|
||||||
"> interpolate
|
"> interpolate
|
||||||
] with-string-writer ;
|
] with-string-writer ;
|
||||||
|
|
||||||
: drop-delete-trigger-cascade ( -- string )
|
|
||||||
[
|
|
||||||
<"
|
|
||||||
DROP TRIGGER fkd_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id;
|
|
||||||
"> interpolate
|
|
||||||
] with-string-writer ;
|
|
||||||
|
|
||||||
: can-be-null? ( -- ? )
|
: can-be-null? ( -- ? )
|
||||||
"sql-spec" get modifiers>> [ +not-null+ = ] any? not ;
|
"sql-spec" get modifiers>> [ +not-null+ = ] any? not ;
|
||||||
|
|
||||||
|
@ -322,33 +294,22 @@ M: sqlite-db-connection persistent-table ( -- assoc )
|
||||||
delete-trigger-restrict sqlite-trigger,
|
delete-trigger-restrict sqlite-trigger,
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: drop-sqlite-triggers ( -- )
|
: create-db-triggers ( sql-specs -- )
|
||||||
drop-insert-trigger sqlite-trigger,
|
[ modifiers>> [ +foreign-id+ = ] deep-any? ] filter
|
||||||
drop-update-trigger sqlite-trigger,
|
[
|
||||||
delete-cascade? [
|
[ class>> db-table-name "db-table" set ]
|
||||||
drop-delete-trigger-cascade sqlite-trigger,
|
|
||||||
] [
|
|
||||||
drop-delete-trigger-restrict sqlite-trigger,
|
|
||||||
] if ;
|
|
||||||
|
|
||||||
: db-triggers ( sql-specs word -- )
|
|
||||||
'[
|
|
||||||
[ modifiers>> [ +foreign-id+ = ] deep-any? ] filter
|
|
||||||
[
|
[
|
||||||
[ class>> db-table-name "db-table" set ]
|
[ "sql-spec" set ]
|
||||||
|
[ column-name>> "table-id" set ]
|
||||||
|
[ ] tri
|
||||||
|
modifiers>> [ [ +foreign-id+ = ] deep-any? ] filter
|
||||||
[
|
[
|
||||||
[ "sql-spec" set ]
|
[ second db-table-name "foreign-table-name" set ]
|
||||||
[ column-name>> "table-id" set ]
|
[ third "foreign-table-id" set ] bi
|
||||||
[ ] tri
|
create-sqlite-triggers
|
||||||
modifiers>> [ [ +foreign-id+ = ] deep-any? ] filter
|
] each
|
||||||
[
|
] bi
|
||||||
[ second db-table-name "foreign-table-name" set ]
|
] each ;
|
||||||
[ third "foreign-table-id" set ] bi
|
|
||||||
_ execute
|
|
||||||
] each
|
|
||||||
] bi
|
|
||||||
] each
|
|
||||||
] call ; inline
|
|
||||||
|
|
||||||
: sqlite-create-table ( sql-specs class-name -- )
|
: sqlite-create-table ( sql-specs class-name -- )
|
||||||
[
|
[
|
||||||
|
@ -373,15 +334,12 @@ M: sqlite-db-connection persistent-table ( -- assoc )
|
||||||
|
|
||||||
M: sqlite-db-connection create-sql-statement ( class -- statement )
|
M: sqlite-db-connection create-sql-statement ( class -- statement )
|
||||||
[
|
[
|
||||||
! specs name
|
|
||||||
[ sqlite-create-table ]
|
[ sqlite-create-table ]
|
||||||
[ drop \ create-sqlite-triggers db-triggers ] 2bi
|
[ drop create-db-triggers ] 2bi
|
||||||
] query-make ;
|
] query-make ;
|
||||||
|
|
||||||
M: sqlite-db-connection drop-sql-statement ( class -- statements )
|
M: sqlite-db-connection drop-sql-statement ( class -- statements )
|
||||||
[
|
[ nip "drop table " 0% 0% ";" 0% ] query-make ;
|
||||||
nip "drop table " 0% 0% ";" 0%
|
|
||||||
] query-make ;
|
|
||||||
|
|
||||||
M: sqlite-db-connection compound ( string seq -- new-string )
|
M: sqlite-db-connection compound ( string seq -- new-string )
|
||||||
over {
|
over {
|
||||||
|
|
Loading…
Reference in New Issue