Skip to content

Commit faf3468

Browse files
committed
Fix sqldriver to not delete NON update_cascade children
I found when testing 'PRAGMA foreign_keys = ON' that current sqldriver was deleting records that only used foreign-key in drop-downs.. not as update_cascade
1 parent 50fb295 commit faf3468

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

pysimplesql/pysimplesql.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4324,7 +4324,7 @@ def delete_record(self, dataset: DataSet, cascade=True): # TODO: get ON DELETE C
43244324
if cascade:
43254325
for _ in dataset.frm.datasets:
43264326
for r in dataset.frm.relationships:
4327-
if r.parent_table == dataset.table:
4327+
if r.parent_table == dataset.table and r.update_cascade:
43284328
child = self.quote_table(r.child_table)
43294329
fk_column = self.quote_column(r.fk_column)
43304330
q = f'DELETE FROM {child} WHERE {fk_column}={dataset.get_current(dataset.pk_column)}'
@@ -4459,6 +4459,7 @@ def __init__(self, db_path=None, sql_script=None, sqlite3_database=None, sql_com
44594459

44604460
def connect(self, database):
44614461
self.con = sqlite3.connect(database)
4462+
# self.con.execute('PRAGMA foreign_keys = ON') # For testing foreign_key ON DELETE CASCADE
44624463

44634464
def execute(self, query, values=None, silent=False, column_info = None):
44644465
if not silent:logger.info(f'Executing query: {query} {values}')

0 commit comments

Comments
 (0)