PR review changes

This commit is contained in:
Eric Stadtherr 2018-07-21 21:45:23 -06:00
parent 1d81c17335
commit c1beefd543
2 changed files with 30 additions and 14 deletions

View File

@ -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;
}

View File

@ -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');
}