protected $bEnableDiffUpdates;
protected $bEnableDebugStatements;
protected $bNoPartitions;
+ protected $bDrop;
protected $oDB = null;
public function __construct(array $aCMDResult)
} else {
$this->bEnableDiffUpdates = false;
}
+
+ $this->bDrop = $aCMDResult['drop'];
}
public function createDB()
if (!$this->sIgnoreErrors && !$this->oDB->getRow('select * from place limit 1')) {
fail('No Data');
}
+
+ if ($this->bDrop) {
+ $this->dropTable('planet_osm_nodes');
+ $this->removeFlatnodeFile();
+ }
}
public function createFunctions()
}
$sTemplate = file_get_contents(CONST_BasePath.'/sql/indices.src.sql');
+ if (!$this->bDrop) {
+ $sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_updates.src.sql');
+ }
if (!$this->dbReverseOnly()) {
$sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_search.src.sql');
}
$this->dropTable($sDrop);
}
+ $this->removeFlatnodeFile();
+ }
+
+ private function removeFlatnodeFile()
+ {
if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
if (file_exists(CONST_Osm2pgsql_Flatnode_File)) {
if ($this->bVerbose) echo 'Deleting '.CONST_Osm2pgsql_Flatnode_File."\n";
DROP INDEX CONCURRENTLY IF EXISTS idx_placex_rank_search;
CREATE INDEX CONCURRENTLY idx_placex_rank_search ON placex USING BTREE (rank_search) {ts:search-index};
CREATE INDEX CONCURRENTLY idx_placex_rank_address ON placex USING BTREE (rank_address) {ts:search-index};
-CREATE INDEX CONCURRENTLY idx_placex_pendingsector ON placex USING BTREE (rank_search,geometry_sector) {ts:address-index} where indexed_status > 0;
CREATE INDEX CONCURRENTLY idx_placex_parent_place_id ON placex USING BTREE (parent_place_id) {ts:search-index} where parent_place_id IS NOT NULL;
CREATE INDEX CONCURRENTLY idx_placex_geometry_reverse_lookupPoint
GRANT SELECT ON table country_osm_grid to "{www-user}";
-CREATE INDEX CONCURRENTLY idx_location_area_country_place_id ON location_area_country USING BTREE (place_id) {ts:address-index};
-
CREATE INDEX CONCURRENTLY idx_osmline_parent_place_id ON location_property_osmline USING BTREE (parent_place_id) {ts:search-index};
CREATE INDEX CONCURRENTLY idx_osmline_parent_osm_id ON location_property_osmline USING BTREE (osm_id) {ts:search-index};
-DROP INDEX CONCURRENTLY IF EXISTS place_id_idx;
-CREATE UNIQUE INDEX CONCURRENTLY idx_place_osm_unique on place using btree(osm_id,osm_type,class,type) {ts:address-index};
-
-
CREATE UNIQUE INDEX CONCURRENTLY idx_postcode_id ON location_postcode USING BTREE (place_id) {ts:search-index};
CREATE INDEX CONCURRENTLY idx_postcode_postcode ON location_postcode USING BTREE (postcode) {ts:search-index};
--- /dev/null
+-- Indices used only during search and update.
+-- These indices are created only after the indexing process is done.
+
+CREATE INDEX CONCURRENTLY idx_placex_pendingsector ON placex USING BTREE (rank_search,geometry_sector) {ts:address-index} where indexed_status > 0;
+
+CREATE INDEX CONCURRENTLY idx_location_area_country_place_id ON location_area_country USING BTREE (place_id) {ts:address-index};
+
+DROP INDEX CONCURRENTLY IF EXISTS place_id_idx;
+CREATE UNIQUE INDEX CONCURRENTLY idx_place_osm_unique on place using btree(osm_id,osm_type,class) {ts:address-index};
$oSetup->index($aCMDResult['index-noanalyse']);
}
+if ($aCMDResult['drop']) {
+ $bDidSomething = true;
+ $oSetup->drop($aCMDResult);
+}
+
if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) {
$bDidSomething = true;
$oSetup->createSearchIndices();
$oSetup->createCountryNames($aCMDResult);
}
-if ($aCMDResult['drop']) {
- $bDidSomething = true;
- $oSetup->drop($aCMDResult);
-}
-
// ******************************************************
// If we did something, repeat the warnings
if (!$bDidSomething) {