From d628a9aa668be7658810027604d63640c111ad07 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Fri, 5 Sep 2003 17:40:47 +0000 Subject: [PATCH] support for NO ACTION --- ChangeLog | 3 +++ libraries/sqlparser.lib.php3 | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index df9a68b74..c15cfb500 100755 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ phpMyAdmin - Changelog $Id$ $Source$ +2003-09-05 Marc Delisle + * libraries/sqlparser.lib.php3: NO ACTION was not correctly treated + 2003-09-03 Michal Cihar * lang/italian: Updated, thanks to Pietro Danesi (danone). diff --git a/libraries/sqlparser.lib.php3 b/libraries/sqlparser.lib.php3 index 150b14014..0dfc0ecae 100644 --- a/libraries/sqlparser.lib.php3 +++ b/libraries/sqlparser.lib.php3 @@ -1383,7 +1383,7 @@ if (!defined('PMA_SQP_LIB_INCLUDED')) { $foreign_key_number = -1; for ($i = 0; $i < $size; $i++) { - // DEBUG echo $arr[$i]['data'] . " " . $arr[$i]['type'] . "
"; + // DEBUG echo "" . $arr[$i]['data'] . " " . $arr[$i]['type'] . "
"; if ($arr[$i]['type'] == 'alpha_reservedWord') { $upper_data = strtoupper($arr[$i]['data']); @@ -1421,7 +1421,16 @@ if (!defined('PMA_SQP_LIB_INCLUDED')) { if ($second_upper_data == 'UPDATE') { $clause = 'on_update'; } - if (isset($clause) && $arr[$i+2]['type'] == 'alpha_reservedWord') { + if (isset($clause) + && ($arr[$i+2]['type'] == 'alpha_reservedWord' + + // ugly workaround because currently, NO is not + // in the list of reserved words in sqlparser.data + // (we got a bug report about not being able to use + // 'no' as an identifier) + || ($arr[$i+2]['type'] == 'alpha_identifier' + && strtoupper($arr[$i+2]['data'])=='NO') ) + ) { $third_upper_data = strtoupper($arr[$i+2]['data']); if ($third_upper_data == 'CASCADE' || $third_upper_data == 'RESTRICT') {