+ } else {
+ $sSQL .= "TRUNCATE TABLE us_postcode";
+ }
+ if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
+
+ // add missing postcodes for GB (if available)
+ $sSQL = "INSERT INTO location_postcode";
+ $sSQL .= " (place_id, indexed_status, country_code, postcode, geometry) ";
+ $sSQL .= "SELECT nextval('seq_place'), 1, 'gb', postcode, geometry";
+ $sSQL .= " FROM gb_postcode WHERE postcode NOT IN";
+ $sSQL .= " (SELECT postcode FROM location_postcode";
+ $sSQL .= " WHERE country_code = 'gb')";
+ if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
+
+ if (!$aCMDResult['all']) {
+ $sSQL = "DELETE FROM word WHERE class='place' and type='postcode'";
+ $sSQL .= "and word NOT IN (SELECT postcode FROM location_postcode)";
+ if (!pg_query($oDB->connection, $sSQL)) {
+ fail(pg_last_error($oDB->connection));
+ }
+ }
+ $sSQL = "SELECT count(getorcreate_postcode_id(v)) FROM ";
+ $sSQL .= "(SELECT distinct(postcode) as v FROM location_postcode) p";
+
+ if (!pg_query($oDB->connection, $sSQL)) {
+ fail(pg_last_error($oDB->connection));