mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-12-23 13:06:15 +03:00
return a 500 on database error
This commit is contained in:
parent
57ef20cc7c
commit
4d7e0d97b2
25
lib/lib.php
25
lib/lib.php
@ -1,5 +1,30 @@
|
||||
<?php
|
||||
|
||||
function failInternalError($sError, $sSQL = false, $vDumpVar = false)
|
||||
{
|
||||
header('HTTP/1.0 500 Internal Server Error');
|
||||
header('Content-type: text/html; charset=utf-8');
|
||||
echo "<html><body><h1>Internal Server Error</h1>";
|
||||
echo '<p>Nominatim has encountered an internal error while processing your request. This is most likely because of a bug in the software.</p>';
|
||||
echo "<p><b>Details:</b> ".$sError,"</p>";
|
||||
echo '<p>Feel free to report the bug in the <a href="http://trac.openstreetmap.org">OSM bug database</a>. Please include the error message above an the URL you used.</p>';
|
||||
if (CONST_Debug)
|
||||
{
|
||||
echo "<hr><h2>Debugging Information</h2><br>";
|
||||
if ($sSQL) {
|
||||
echo "<h3>SQL query</h3><code>".$sSQL."</code>";
|
||||
}
|
||||
if ($vDumpVar) {
|
||||
echo "<h3>Result</h3> <code>";
|
||||
var_dump($vDumpVar);
|
||||
echo "</code>";
|
||||
}
|
||||
}
|
||||
echo "\n</body></html>\n";
|
||||
exit;
|
||||
|
||||
}
|
||||
|
||||
function fail($sError, $sUserError = false)
|
||||
{
|
||||
if (!$sUserError) $sUserError = $sError;
|
||||
|
@ -48,11 +48,11 @@
|
||||
$sSQL .= " ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') as isarea,ST_GeometryType(geometry) as geotype, ST_Y(ST_Centroid(geometry)) as lat,ST_X(ST_Centroid(geometry)) as lon ";
|
||||
$sSQL .= " from placex where place_id = $iPlaceID";
|
||||
$aPointDetails = $oDB->getRow($sSQL);
|
||||
IF (PEAR::IsError($aPointDetails))
|
||||
if (PEAR::IsError($aPointDetails))
|
||||
{
|
||||
var_dump($aPointDetails);
|
||||
exit;
|
||||
failInternalError("Could not get details of place object.", $sSQL, $aPointDetails);
|
||||
}
|
||||
|
||||
$aPointDetails['localname'] = $aPointDetails['localname']?$aPointDetails['localname']:$aPointDetails['housenumber'];
|
||||
$fLon = $aPointDetails['lon'];
|
||||
$fLat = $aPointDetails['lat'];
|
||||
@ -77,8 +77,7 @@
|
||||
$aPointPolygon = $oDB->getRow($sSQL);
|
||||
IF (PEAR::IsError($aPointPolygon))
|
||||
{
|
||||
var_dump($aPointPolygon);
|
||||
exit;
|
||||
failInternalError("Could not get bounding box of place object.", $sSQL, $aPointPolygon);
|
||||
}
|
||||
if (preg_match('#POLYGON\\(\\(([- 0-9.,]+)#',$aPointPolygon['outlinestring'],$aMatch))
|
||||
{
|
||||
|
@ -105,8 +105,7 @@
|
||||
$iPlaceID = $aPlace['place_id'];
|
||||
if (PEAR::IsError($iPlaceID))
|
||||
{
|
||||
var_Dump($sSQL, $iPlaceID);
|
||||
exit;
|
||||
failInternalError("Could not determine closest place.", $sSQL, $iPlaceID);
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,8 +117,7 @@
|
||||
$iPlaceID = $oDB->getOne($sSQL);
|
||||
if (PEAR::IsError($iPlaceID))
|
||||
{
|
||||
var_Dump($sSQL, $iPlaceID);
|
||||
exit;
|
||||
failInternalError("Could not get parent for place.", $sSQL, $iPlaceID);
|
||||
}
|
||||
|
||||
if ($iPlaceID && $aPlace['place_id'] && $iMaxRank < 28)
|
||||
@ -129,8 +127,7 @@
|
||||
$iPlaceID = $oDB->getOne($sSQL);
|
||||
if (PEAR::IsError($iPlaceID))
|
||||
{
|
||||
var_Dump($sSQL, $iPlaceID);
|
||||
exit;
|
||||
failInternalError("Could not get larger parent for place.", $sSQL, $iPlaceID);
|
||||
}
|
||||
}
|
||||
if (!$iPlaceID)
|
||||
|
@ -163,8 +163,7 @@
|
||||
$sViewboxSmallSQL = $oDB->getOne($sSQL);
|
||||
if (PEAR::isError($sViewboxSmallSQL))
|
||||
{
|
||||
var_dump($sViewboxSmallSQL);
|
||||
exit;
|
||||
failInternalError("Could not get small viewbox.", $sSQL, $sViewboxSmallSQL);
|
||||
}
|
||||
$sViewboxSmallSQL = "'".$sViewboxSmallSQL."'::geometry";
|
||||
|
||||
@ -172,8 +171,7 @@
|
||||
$sViewboxLargeSQL = $oDB->getOne($sSQL);
|
||||
if (PEAR::isError($sViewboxLargeSQL))
|
||||
{
|
||||
var_dump($sViewboxLargeSQL);
|
||||
exit;
|
||||
failInternalError("Could not get large viewbox.", $sSQL, $sViewboxLargeSQL);
|
||||
}
|
||||
$sViewboxLargeSQL = "'".$sViewboxLargeSQL."'::geometry";
|
||||
}
|
||||
@ -324,8 +322,7 @@
|
||||
$aDatabaseWords = array();
|
||||
if (PEAR::IsError($aDatabaseWords))
|
||||
{
|
||||
var_dump($sSQL, $aDatabaseWords);
|
||||
exit;
|
||||
failInternalError("Could not get word tokens.", $sSQL, $aDatabaseWords);
|
||||
}
|
||||
$aPossibleMainWordIDs = array();
|
||||
foreach($aDatabaseWords as $aToken)
|
||||
@ -789,8 +786,7 @@
|
||||
$aViewBoxPlaceIDs = $oDB->getAll($sSQL);
|
||||
if (PEAR::IsError($aViewBoxPlaceIDs))
|
||||
{
|
||||
var_dump($sSQL, $aViewBoxPlaceIDs);
|
||||
exit;
|
||||
failInternalError("Could not get places for search terms.", $sSQL, $aViewBoxPlaceIDs);
|
||||
}
|
||||
//var_dump($aViewBoxPlaceIDs);
|
||||
// Did we have an viewbox matches?
|
||||
@ -971,8 +967,7 @@
|
||||
|
||||
if (PEAR::IsError($aPlaceIDs))
|
||||
{
|
||||
var_dump($sSQL, $aPlaceIDs);
|
||||
exit;
|
||||
failInternalError("Could not get place IDs from tokens." ,$sSQL, $aPlaceIDs);
|
||||
}
|
||||
|
||||
if (CONST_Debug) var_Dump($aPlaceIDs);
|
||||
@ -1048,8 +1043,7 @@
|
||||
|
||||
if (PEAR::IsError($aSearchResults))
|
||||
{
|
||||
var_dump($sSQL, $aSearchResults);
|
||||
exit;
|
||||
failInternalError("Could not get details for place.", $sSQL, $aSearchResults);
|
||||
}
|
||||
}
|
||||
} // end if ($sQuery)
|
||||
@ -1117,8 +1111,7 @@
|
||||
|
||||
if (PEAR::IsError($aSearchResults))
|
||||
{
|
||||
var_dump($sSQL, $aSearchResults);
|
||||
exit;
|
||||
failInternalError("Could not get details for place (near).", $sSQL, $aSearchResults);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1149,8 +1142,7 @@
|
||||
$aPointPolygon = $oDB->getRow($sSQL);
|
||||
if (PEAR::IsError($aPointPolygon))
|
||||
{
|
||||
var_dump($sSQL, $aPointPolygon);
|
||||
exit;
|
||||
failInternalError("Could not get outline.", $sSQL, $aPointPolygon);
|
||||
}
|
||||
if ($aPointPolygon['place_id'])
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user