mirror of
				https://github.com/sqlite/sqlite.git
				synced 2025-11-03 16:53:36 +03:00 
			
		
		
		
	Fix a problem in the legacy genfkey code to do with column names that require quoting.
FossilOrigin-Name: 273ccbf18af5191807678a0a0c09cda82408b29c
This commit is contained in:
		
							
								
								
									
										12
									
								
								src/shell.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/shell.c
									
									
									
									
									
								
							@@ -876,8 +876,8 @@ static int genfkey_create_triggers(
 | 
			
		||||
    ", '/ref/',    dq(to_tbl)"
 | 
			
		||||
    ", '/key_notnull/', sj('new.' || dq(from_col) || ' IS NOT NULL', ' AND ')"
 | 
			
		||||
 | 
			
		||||
    ", '/fkey_list/', sj(to_col, ', ')"
 | 
			
		||||
    ", '/rkey_list/', sj(from_col, ', ')"
 | 
			
		||||
    ", '/fkey_list/', sj(dq(to_col), ', ')"
 | 
			
		||||
    ", '/rkey_list/', sj(dq(from_col), ', ')"
 | 
			
		||||
 | 
			
		||||
    ", '/cond1/',  sj(multireplace('new./from/ == /to/'"
 | 
			
		||||
                   ", '/from/', dq(from_col)"
 | 
			
		||||
@@ -891,9 +891,9 @@ static int genfkey_create_triggers(
 | 
			
		||||
    ", '/update_action/', CASE on_update "
 | 
			
		||||
      "WHEN 'SET NULL' THEN "
 | 
			
		||||
        "multireplace('UPDATE /tbl/ SET /setlist/ WHERE /where/;' "
 | 
			
		||||
        ", '/setlist/', sj(from_col||' = NULL',', ')"
 | 
			
		||||
        ", '/setlist/', sj(dq(from_col)||' = NULL',', ')"
 | 
			
		||||
        ", '/tbl/',     dq(from_tbl)"
 | 
			
		||||
        ", '/where/',   sj(from_col||' = old.'||dq(to_col),' AND ')"
 | 
			
		||||
        ", '/where/',   sj(dq(from_col)||' = old.'||dq(to_col),' AND ')"
 | 
			
		||||
        ")"
 | 
			
		||||
      "WHEN 'CASCADE' THEN "
 | 
			
		||||
        "multireplace('UPDATE /tbl/ SET /setlist/ WHERE /where/;' "
 | 
			
		||||
@@ -908,9 +908,9 @@ static int genfkey_create_triggers(
 | 
			
		||||
    ", '/delete_action/', CASE on_delete "
 | 
			
		||||
      "WHEN 'SET NULL' THEN "
 | 
			
		||||
        "multireplace('UPDATE /tbl/ SET /setlist/ WHERE /where/;' "
 | 
			
		||||
        ", '/setlist/', sj(from_col||' = NULL',', ')"
 | 
			
		||||
        ", '/setlist/', sj(dq(from_col)||' = NULL',', ')"
 | 
			
		||||
        ", '/tbl/',     dq(from_tbl)"
 | 
			
		||||
        ", '/where/',   sj(from_col||' = old.'||dq(to_col),' AND ')"
 | 
			
		||||
        ", '/where/',   sj(dq(from_col)||' = old.'||dq(to_col),' AND ')"
 | 
			
		||||
        ")"
 | 
			
		||||
      "WHEN 'CASCADE' THEN "
 | 
			
		||||
        "multireplace('DELETE FROM /tbl/ WHERE /where/;' "
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user