]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 23 Apr 2014 19:46:08 +0000 (21:46 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 23 Apr 2014 19:46:08 +0000 (21:46 +0200)
lib/log.php
lib/template/details-html.php
sql/functions.sql
utils/setup.php

index 501259d0ed2d48dfc8be60fe97ef5f40a07c268d..59e04d1745baf59f5e96232b59984187188f69df 100644 (file)
@@ -3,7 +3,7 @@
        function logStart(&$oDB, $sType = '', $sQuery = '', $aLanguageList = array())
        {
                $aStartTime = explode('.',microtime(true));
-               if (!$aStartTime[1]) $aStartTime[1] = '0';
+               if (!isset($aStartTime[1])) $aStartTime[1] = '0';
 
                $sOutputFormat = '';
                if (isset($_GET['format'])) $sOutputFormat = $_GET['format'];
index 83df4814f2ea9afec0824cf7b1c98ba3a55fdc9d..51374918c46ca1d47eb26d821b5875b9b17e273c 100644 (file)
@@ -82,7 +82,7 @@
        {
                echo '<img style="float:right;margin-right:40px;" src="'.CONST_Website_BaseURL.'images/mapicons/'.$aPointDetails['icon'].'.n.32.png'.'" alt="'.$aPointDetails['icon'].'" />';
        }
-       echo $aPointDetails['localname'].'</h1>';
+       echo $aPointDetails['localname']."</h1>\n";
        echo '<div class="locationdetails">';
        echo ' <div>Name: ';
        foreach($aPointDetails['aNames'] as $sKey => $sValue)
                echo ' <div class="line"><span class="name">'.$sValue.'</span> ('.$sKey.')</div>';
        }
        echo ' </div>';
-       echo '</div>';
+       echo "</div>\n";
 
-       echo '<h2>Address</h2>';
+       echo "<h2>Address</h2>\n";
        echo '<div class="address">';
        $iPrevRank = 1000000;
        $sPrevLocalName = '';
                echo ', <span class="distance">'.$aAddressLine['distance'].'</span>';
                echo ' <a href="details.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
                echo ')';
-               echo '</div>';
+               echo "</div>\n";
        }
-       echo '</div>';
+       echo "</div>\n";
 
        if ($aLinkedLines)
        {
-               echo '<h2>Linked Places</h2>';
-               echo '<div class=\"linked\">';
+               echo "<h2>Linked Places</h2>\n";
+               echo '<div class="linked">';
                foreach($aLinkedLines as $aAddressLine)
                {       
                        $sOSMType = ($aAddressLine['osm_type'] == 'N'?'node':($aAddressLine['osm_type'] == 'W'?'way':($aAddressLine['osm_type'] == 'R'?'relation':'')));
                        echo '<span class="name">'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'<span class="noname">No Name</span>').'</span>';
                        echo ' (';
                        echo '<span class="type"><span class="label">Type: </span>'.$aAddressLine['class'].':'.$aAddressLine['type'].'</span>';
-                       if ($sOSMType) echo ', <span class="osm"><span class="label"></span>'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
+                       if ($sOSMType) echo ', <span class="osm">'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
                        echo ', <span class="adminlevel">'.$aAddressLine['admin_level'].'</span>';
-                       echo ', <span class="rankaddress">'.$aAddressLine['rank_search_label'].'</span>';
+                       if (isset($aAddressLine['rank_search_label'])) echo ', <span class="rankaddress">'.$aAddressLine['rank_search_label'].'</span>';
 //                     echo ', <span class="area">'.($aAddressLine['fromarea']=='t'?'Polygon':'Point').'</span>';
                        echo ', <span class="distance">'.$aAddressLine['distance'].'</span>';
                        echo ' <a href="details.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
                        echo ')';
-                       echo '</div>';
+                       echo "</div>\n";
                }
-               echo '</div>';
+               echo "</div>\n";
        }
 
        if ($aPlaceSearchNameKeywords)
                echo '<h2>Name Keywords</h2>';
                foreach($aPlaceSearchNameKeywords as $aRow)
                {
-                       echo '<div>'.$aRow['word_token'].'</div>';
+                       echo '<div>'.$aRow['word_token']."</div>\n";
                }
        }
 
                echo '<h2>Address Keywords</h2>';
                foreach($aPlaceSearchAddressKeywords as $aRow)
                {
-                       echo '<div>'.($aRow['word_token'][0]==' '?'*':'').$aRow['word_token'].'('.$aRow['word_id'].')'.'</div>';
+                       echo '<div>'.($aRow['word_token'][0]==' '?'*':'').$aRow['word_token'].'('.$aRow['word_id'].')'."</div>\n";
                }
        }
 
        if (sizeof($aParentOfLines))
        {
-               echo '<h2>Parent Of:</h2>';
+               echo "<h2>Parent Of:</h2>\n<div>\n";
 
                $aGroupedAddressLines = array();
                foreach($aParentOfLines as $aAddressLine)
                foreach($aGroupedAddressLines as $sGroupHeading => $aParentOfLines)
                {
                        $sGroupHeading = ucwords($sGroupHeading);
-                       echo "<h3>$sGroupHeading</h3>";
+                       echo "<h3>$sGroupHeading</h3>\n";
                foreach($aParentOfLines as $aAddressLine)
                {
                        $aAddressLine['localname'] = $aAddressLine['localname']?$aAddressLine['localname']:$aAddressLine['housenumber'];
                        echo '<div class="line">';
                        echo '<span class="name">'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'<span class="noname">No Name</span>').'</span>';
                        echo ' (';
-//                     echo '<span class="type"><span class="label">Type: </span>'.$aAddressLine['class'].':'.$aAddressLine['type'].'</span>';
-//                     echo ', <span class="adminlevel">'.$aAddressLine['admin_level'].'</span>';
-//                     echo ', <span class="rankaddress">'.$aAddressLine['rank_address'].'</span>';
                        echo '<span class="area">'.($aAddressLine['isarea']=='t'?'Polygon':'Point').'</span>';
                        echo ', <span class="distance">~'.(round($aAddressLine['distance']*69,1)).'&nbsp;miles</span>';
-                       if ($sOSMType) echo ', <span class="osm"><span class="label"></span>'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
+                       if ($sOSMType) echo ', <span class="osm">'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
                        echo ', <a href="details.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
                        echo ')';
-                       echo '</div>';
+                       echo "</div>\n";
                }
                }
                if (sizeof($aParentOfLines) >= 500) {
index 092aa8acdc5931efc1d14a37464579690299eed4..980528aecfec7becea0ff01b273c6216bf359cff 100644 (file)
@@ -1605,17 +1605,13 @@ BEGIN
             END IF;
 
             -- merge in extra tags
-            IF NOT linkedPlacex.extratags IS NULL THEN
-              NEW.extratags := linkedPlacex.extratags || NEW.extratags;
-            END IF;
-
-            IF NOT NEW.extratags ? linkedPlacex.class THEN
-              NEW.extratags := NEW.extratags || hstore(linkedPlacex.class, linkedPlacex.type);
-            END IF;
+            NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
 
             -- mark the linked place (excludes from search results)
             UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
 
+            -- keep a note of the node id in case we need it for wikipedia in a bit
+            linked_node_id := linkedPlacex.osm_id;
           END LOOP;
 
         END LOOP;
@@ -1644,13 +1640,7 @@ BEGIN
                 END IF;
 
                 -- merge in extra tags
-                IF NOT linkedPlacex.extratags IS NULL THEN
-                  NEW.extratags := linkedPlacex.extratags || NEW.extratags;
-                END IF;
-
-                IF NOT NEW.extratags ? linkedPlacex.class THEN
-                  NEW.extratags := NEW.extratags || hstore(linkedPlacex.class, linkedPlacex.type);
-                END IF;
+                NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
 
                 -- mark the linked place (excludes from search results)
                 UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
@@ -1692,11 +1682,7 @@ BEGIN
           name_vector := make_keywords(NEW.name);
 
           -- merge in extra tags
-          NEW.extratags := linkedPlacex.extratags || NEW.extratags;
-
-          IF NOT NEW.extratags ? linkedPlacex.class THEN
-            NEW.extratags := NEW.extratags || hstore(linkedPlacex.class, linkedPlacex.type);
-          END IF;
+          NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
 
           -- mark the linked place (excludes from search results)
           UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
@@ -3096,6 +3082,7 @@ DECLARE
   diameter FLOAT;
   rank INTEGER;
 BEGIN
+  UPDATE placex SET indexed_status = 2 WHERE place_id = placeid;
   SELECT geometry, rank_search FROM placex WHERE place_id = placeid INTO placegeom, rank;
   IF placegeom IS NOT NULL AND ST_IsValid(placegeom) THEN
     IF ST_GeometryType(placegeom) in ('ST_Polygon','ST_MultiPolygon') THEN
index b96e4e7e06fd73937792f38f2675e051b474fb46..edf0b14d460f27156569b65f872f2bb8aa934e6d 100755 (executable)
                {
                        pgsqlRunScript('update country_name set partition = 0');
                }
+
+               // the following will be needed by create_functions later but
+               // is only defined in the subsequently called create_tables.
+               // Create dummies here that will be overwritten by the proper
+               // versions in create-tables.
+               pgsqlRunScript('CREATE TABLE place_boundingbox ()');
+               pgsqlRunScript('create type wikipedia_article_match as ()');
        }
 
        if ($aCMDResult['import-data'] || $aCMDResult['all'])
                }
                fclose($ahPipes[1]);
 
-               proc_close($hProcess);
+               $iReturn = proc_close($hProcess);
+               if ($iReturn > 0)
+               {
+                       fail("pgsql returned with error code ($iReturn)");
+               }
                if ($ahGzipPipes)
                {
                        fclose($ahGzipPipes[1]);
                $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
                if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
                $sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
+               $sCMD .= ' -v ON_ERROR_STOP=1';
                $aDescriptors = array(
                        0 => array('pipe', 'r'),
                        1 => STDOUT, 
                        $sScript = substr($sScript, $written);
                }
                fclose($ahPipes[0]);
-               proc_close($hProcess);
+               $iReturn = proc_close($hProcess);
+               if ($iReturn > 0)
+               {
+                       fail("pgsql returned with error code ($iReturn)");
+               }
        }
 
        function pgsqlRunRestoreData($sDumpFile)
                }
                fclose($ahPipes[1]);
 
-               proc_close($hProcess);
+               $iReturn = proc_close($hProcess);
+               if ($iReturn > 0)
+               {
+                       fail("pgsql returned with error code ($iReturn)");
+               }
        }
 
        function pgsqlRunDropAndRestore($sDumpFile)
                }
                fclose($ahPipes[1]);
 
-               proc_close($hProcess);
+               $iReturn = proc_close($hProcess);
+               if ($iReturn > 0)
+               {
+                       fail("pgsql returned with error code ($iReturn)");
+               }
        }
 
        function passthruCheckReturn($cmd)