]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/specialphrases.php
update classtype tables for special phrases along with the places
[nominatim.git] / utils / specialphrases.php
index 3baf09f255edbeb862bb91577c43b4f80ebee29e..d928d3c2cea5bbb7835b9a7b266671e5e54f8d66 100755 (executable)
@@ -3,6 +3,7 @@
 
         require_once(dirname(dirname(__FILE__)).'/lib/init-cmd.php');
         ini_set('memory_limit', '800M');
+        ini_set('display_errors', 'stderr');
 
         $aCMDOptions = array(
                 "Import and export special phrases",
                                        $sLabel = $aMatch[1];
                                        $sClass = $aMatch[2];
                                        $sType = $aMatch[3];
+                                       # hack around a bug where building=yes was imported with
+                                       # quotes into the wiki
+                                       $sType = preg_replace('/"/', '', $sType);
+                                       # sanity check, in case somebody added garbage in the wiki
+                                       if (preg_match('/^\\w+$/', $sClass) < 1 ||
+                                               preg_match('/^\\w+$/', $sType) < 1) {
+                                               trigger_error("Bad class/type for language $sLanguage: $sClass=$sType");
+                                               exit;
+                                       }       
                                        $aPairs[$sClass.'|'.$sType] = array($sClass, $sType);
 
                                        switch(trim($aMatch[4]))
                        }
                }
 
+        echo "create index idx_placex_classtype on placex (class, type);\n";
+
                foreach($aPairs as $aPair)
                {
+                       if ($aPair[1] == 'highway') continue;
 
+                       echo "drop table if exists place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1]).";\n";
                        echo "create table place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1])." as ";
                        echo "select place_id as place_id,st_centroid(geometry) as centroid from placex where ";
                        echo "class = '".pg_escape_string($aPair[0])."' and type = '".pg_escape_string($aPair[1])."';\n";
                        echo "CREATE INDEX idx_place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1])."_place_id ";
                        echo "ON place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1])." USING btree(place_id);\n";
 
+            echo "GRANT SELECT ON place_classtype_".pg_escape_string($aPair[0])."_".pg_escape_string($aPair[1])." TO \"www-data\";\n";
+
                }
+
+        echo "drop index idx_placex_classtype;\n";
        }