--- path_redirect.install 2008-03-04 21:25:09.000000000 -0600 +++ path_redirect.install 2008-03-07 19:33:43.000000000 -0600 @@ -9,7 +9,7 @@ function path_redirect_install() { rid int(10) NOT NULL, path varchar(255) NOT NULL, redirect varchar(255) NOT NULL, - query varchar(50) NOT NULL, + query varchar(255) NOT NULL, fragment varchar(50) NOT NULL, type int(10) NOT NULL, PRIMARY KEY (path), @@ -21,7 +21,7 @@ function path_redirect_install() { rid SERIAL UNIQUE, path varchar(255) NOT NULL PRIMARY KEY, redirect varchar(255) NOT NULL, - query varchar(50) NOT NULL, + query varchar(255) NOT NULL, fragment varchar(50) NOT NULL, type smallint NOT NULL );"); @@ -81,12 +81,22 @@ function path_redirect_update_3() { } /** - * Clear the menu cache since paths have changed. + * Clear the menu cache since paths have changed; increase query string length. */ function path_redirect_update_4() { cache_clear_all(NULL, 'cache_menu'); drupal_set_message(t('Menu paths for the Path Redirect module have been updated.')); - return array(); + switch ($GLOBALS['db_type']) { + case 'mysql': + case 'mysqli': + $ret[] = update_sql("ALTER TABLE {path_redirect} MODIFY query varchar(255) NOT NULL"); + break; + case 'pgsql': + $ret[] = update_sql("ALTER TABLE {path_redirect} ALTER query TYPE varchar(255)"); + break; + } + drupal_set_message(t('Database tables for the Path Redirect module have been updated.')); + return $ret; } function path_redirect_uninstall() { --- path_redirect.module 2008-03-07 18:42:08.000000000 -0600 +++ path_redirect.module 2008-03-07 19:35:25.000000000 -0600 @@ -54,7 +54,7 @@ function path_redirect_init() { path_redirect_goto($r->redirect, ($r->query ? $r->query: NULL), ($r->fragment ? $r->fragment : NULL), $r->type); } } - else if (url($r->redirect) == url($path)) { + else if ($r && url($r->redirect) == url($path)) { watchdog('path_redirect', t('Redirect to %redirect is causing an infinite loop; redirect cancelled.', array('%redirect' => $r->redirect)), WATCHDOG_WARNING, l(t('edit'), 'admin/build/path-redirect/edit/'. $r->rid)); } else if ($r && variable_get('path_redirect_allow_bypass', 0) && !empty($_GET['redirect']) && $_GET['redirect'] === 'no') {