diff --git a/basis/db/sqlite/sqlite.factor b/basis/db/sqlite/sqlite.factor index e09d7fbc47..545403e678 100644 --- a/basis/db/sqlite/sqlite.factor +++ b/basis/db/sqlite/sqlite.factor @@ -199,7 +199,6 @@ M: sqlite-db-connection persistent-table ( -- assoc ) } ; : insert-trigger ( -- string ) - [ """ CREATE TRIGGER fki_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id BEFORE INSERT ON ${table-name} @@ -207,11 +206,9 @@ M: sqlite-db-connection persistent-table ( -- assoc ) SELECT RAISE(ROLLBACK, 'insert on table "${table-name}" violates foreign key constraint "fki_${table-name}_$table-id}_${foreign-table-name}_${foreign-table-id}_id"') WHERE (SELECT ${foreign-table-id} FROM ${foreign-table-name} WHERE ${foreign-table-id} = NEW.${table-id}) IS NULL; END; - """ interpolate - ] with-string-writer ; + """ interpolate ; : insert-trigger-not-null ( -- string ) - [ """ CREATE TRIGGER fki_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id BEFORE INSERT ON ${table-name} @@ -220,11 +217,9 @@ M: sqlite-db-connection persistent-table ( -- assoc ) WHERE NEW.${table-id} IS NOT NULL AND (SELECT ${foreign-table-id} FROM ${foreign-table-name} WHERE ${foreign-table-id} = NEW.${table-id}) IS NULL; END; - """ interpolate - ] with-string-writer ; + """ interpolate ; : update-trigger ( -- string ) - [ """ CREATE TRIGGER fku_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id BEFORE UPDATE ON ${table-name} @@ -232,11 +227,9 @@ M: sqlite-db-connection persistent-table ( -- assoc ) SELECT RAISE(ROLLBACK, 'update on table "${table-name}" violates foreign key constraint "fku_${table-name}_$table-id}_${foreign-table-name}_${foreign-table-id}_id"') WHERE (SELECT ${foreign-table-id} FROM ${foreign-table-name} WHERE ${foreign-table-id} = NEW.${table-id}) IS NULL; END; - """ interpolate - ] with-string-writer ; + """ interpolate ; : update-trigger-not-null ( -- string ) - [ """ CREATE TRIGGER fku_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id BEFORE UPDATE ON ${table-name} @@ -245,11 +238,9 @@ M: sqlite-db-connection persistent-table ( -- assoc ) WHERE NEW.${table-id} IS NOT NULL AND (SELECT ${foreign-table-id} FROM ${foreign-table-name} WHERE ${foreign-table-id} = NEW.${table-id}) IS NULL; END; - """ interpolate - ] with-string-writer ; + """ interpolate ; : delete-trigger-restrict ( -- string ) - [ """ CREATE TRIGGER fkd_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id BEFORE DELETE ON ${foreign-table-name} @@ -257,19 +248,16 @@ M: sqlite-db-connection persistent-table ( -- assoc ) SELECT RAISE(ROLLBACK, 'delete on table "${foreign-table-name}" violates foreign key constraint "fkd_${table-name}_$table-id}_${foreign-table-name}_${foreign-table-id}_id"') WHERE (SELECT ${foreign-table-id} FROM ${foreign-table-name} WHERE ${foreign-table-id} = OLD.${foreign-table-id}) IS NOT NULL; END; - """ interpolate - ] with-string-writer ; + """ interpolate ; : delete-trigger-cascade ( -- string ) - [ """ CREATE TRIGGER fkd_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id BEFORE DELETE ON ${foreign-table-name} FOR EACH ROW BEGIN DELETE from ${table-name} WHERE ${table-id} = OLD.${foreign-table-id}; END; - """ interpolate - ] with-string-writer ; + """ interpolate ; : can-be-null? ( -- ? ) "sql-spec" get modifiers>> [ +not-null+ = ] any? not ; @@ -284,7 +272,7 @@ M: sqlite-db-connection persistent-table ( -- assoc ) can-be-null? [ insert-trigger sqlite-trigger, update-trigger sqlite-trigger, - ] [ + ] [ insert-trigger-not-null sqlite-trigger, update-trigger-not-null sqlite-trigger, ] if diff --git a/basis/tools/scaffold/scaffold.factor b/basis/tools/scaffold/scaffold.factor index 326aef5cba..3f1a983e14 100644 --- a/basis/tools/scaffold/scaffold.factor +++ b/basis/tools/scaffold/scaffold.factor @@ -332,7 +332,7 @@ ${example-indent} "" ${example-indent} "" ${example-indent}} """ - interpolate + interpolate. ] with-variable ] with-variable ;