]> git.openstreetmap.org Git - nominatim.git/commitdiff
PR review changes
authorEric Stadtherr <estadtherr@caci.com>
Sun, 22 Jul 2018 03:45:23 +0000 (21:45 -0600)
committerEric Stadtherr <estadtherr@caci.com>
Sun, 22 Jul 2018 03:45:23 +0000 (21:45 -0600)
utils/setup.php
utils/update.php

index 50b44a2cc3492f59e22bc1c9267eecb02a306d58..b71e07e0b8c49628603f3234053d3b8953d12778 100755 (executable)
@@ -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;
+}
index 7681c929b6421a99746bc4a289a31e1961532c0c..c70bdf5461e25eac9798f87fd78630e35353d3f0 100755 (executable)
@@ -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');
         }