From: Eric Stadtherr Date: Sun, 22 Jul 2018 03:45:23 +0000 (-0600) Subject: PR review changes X-Git-Tag: v3.2.0~36^2~5 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/c1beefd543974541f265d0f8df3a402d0e7a23e5 PR review changes --- diff --git a/utils/setup.php b/utils/setup.php index 50b44a2c..b71e07e0 100755 --- a/utils/setup.php +++ b/utils/setup.php @@ -159,17 +159,8 @@ if ($aCMDResult['setup-db'] || $aCMDResult['all']) { exit(1); } - // Try accessing the C module, so we know early if something is wrong - // and can simply error out. - $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '"; - $sSQL .= $sModulePath."/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT"; - $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);'; - $oResult = $oDB->query($sSQL); - - if (PEAR::isError($oResult)) { - echo "\nERROR: Failed to load nominatim module. Reason:\n"; - echo $oResult->userinfo."\n\n"; - exit(1); + if (!checkModulePresence()) { + fail('error loading nominatim.so module'); } if (!file_exists(CONST_ExtraDataPath.'/country_osm_grid.sql.gz')) { @@ -252,6 +243,11 @@ if ($aCMDResult['import-data'] || $aCMDResult['all']) { if ($aCMDResult['create-functions'] || $aCMDResult['all']) { info('Create Functions'); $bDidSomething = true; + + if (!checkModulePresence()) { + fail('error loading nominatim.so module'); + } + create_sql_functions($aCMDResult); } @@ -949,3 +945,23 @@ function create_sql_functions($aCMDResult) } pgsqlRunScript($sTemplate); } + +function checkModulePresence() +{ + // Try accessing the C module, so we know early if something is wrong + // and can simply error out. + $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '"; + $sSQL .= $sModulePath."/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT"; + $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);'; + $oResult = $oDB->query($sSQL); + + $bResult = true; + + if (PEAR::isError($oResult)) { + echo "\nERROR: Failed to load nominatim module. Reason:\n"; + echo $oResult->userinfo."\n\n"; + $bResult = false; + } + + return $bResult; +} diff --git a/utils/update.php b/utils/update.php index 7681c929..c70bdf54 100755 --- a/utils/update.php +++ b/utils/update.php @@ -16,7 +16,7 @@ $aCMDOptions array('init-updates', '', 0, 1, 0, 0, 'bool', 'Set up database for updating'), array('check-for-updates', '', 0, 1, 0, 0, 'bool', 'Check if new updates are available'), - array('update-functions', '', 0, 1, 0, 0, 'bool', 'Update trigger functions to support differential updates'), + array('no-update-functions', '', 0, 1, 0, 0, 'bool', 'Do not update trigger functions to support differential updates (assuming the diff update logic is already present)'), array('import-osmosis', '', 0, 1, 0, 0, 'bool', 'Import updates once'), array('import-osmosis-all', '', 0, 1, 0, 0, 'bool', 'Import updates forever'), array('no-index', '', 0, 1, 0, 0, 'bool', 'Do not index the new data'), @@ -98,10 +98,10 @@ if ($aResult['init-updates']) { echo "and have set up CONST_Pyosmium_Binary to point to pyosmium-get-changes.\n"; fail('pyosmium-get-changes not found or not usable'); } - if ($aResult['update-functions']) { + if (!$aResult['no-update-functions']) { $sSetup = CONST_InstallPath.'/utils/setup.php'; $iRet = -1; - passthru($argv[0].' '.$sSetup.' --create-functions --enable-diff-updates', $iRet); + passthru($sSetup.' --create-functions --enable-diff-updates', $iRet); if ($iRet != 0) { fail('Error running setup script'); }