diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6898352b..5deebbb7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,21 @@
All notable changes to this project will be documented in this file.
+## Unreleased
+2024-10-31
+
+### Added
+- New update process for NZ Imagery Survey Index
+- A separate update process (overwrite) for nz coastlines and islands
+- New status button to see if ref data is available for update
+
+### Changed
+- Update process for Admin Bdys layers is now via WFS
+
+### Fixed
+- Fixed update process for topo50 layers
+
+
## 4.0.0
2022-09-15
diff --git a/buildings/gui/alter_building_relationships.py b/buildings/gui/alter_building_relationships.py
index 46e6f710..45cf2a03 100644
--- a/buildings/gui/alter_building_relationships.py
+++ b/buildings/gui/alter_building_relationships.py
@@ -1487,15 +1487,15 @@ def copy_and_match_removed_building(self):
suburb = self.db.execute_no_commit(sql, (building_outline_id,))
suburb = suburb.fetchall()[0][0]
sql = buildings_select.building_outlines_town_city_id_by_building_outline_id
- town_city = self.db.execute_no_commit(sql, (building_outline_id,))
- town_city = town_city.fetchall()[0][0]
+ # town_city = self.db.execute_no_commit(sql, (building_outline_id,))
+ # town_city = town_city.fetchall()[0][0]
sql = (
buildings_select.building_outlines_territorial_authority_id_by_building_outline
)
territorial_auth = self.db.execute_no_commit(sql, (building_outline_id,))
territorial_auth = territorial_auth.fetchall()[0][0]
# insert outline into building_bulk_load.bulk_load_outlines
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s, %s)"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s)"
bulk_load_id = self.db.execute_no_commit(
sql,
(
@@ -1505,7 +1505,6 @@ def copy_and_match_removed_building(self):
capture_method,
capture_source,
suburb,
- town_city,
territorial_auth,
geometry,
),
diff --git a/buildings/gui/bulk_load_changes.py b/buildings/gui/bulk_load_changes.py
index c4f2c8f3..4c4ab99a 100644
--- a/buildings/gui/bulk_load_changes.py
+++ b/buildings/gui/bulk_load_changes.py
@@ -70,28 +70,18 @@ def populate_edit_comboboxes(self):
self.edit_dialog.cmb_ta.addItem(name)
self.edit_dialog.ids_ta.append(id_ta)
- # populate suburb combobox
+ # populate suburb/town combobox
result = self.edit_dialog.db.execute_return(
reference_select.suburb_locality_intersect_geom,
(self.edit_dialog.geom,),
)
self.edit_dialog.ids_suburb = []
- for (id_suburb, name) in result.fetchall():
- if name is not None:
- self.edit_dialog.cmb_suburb.addItem(name)
+ for (id_suburb, suburb_locality, town_city) in result.fetchall():
+ if suburb_locality is not None:
+ self.edit_dialog.cmb_suburb.addItem(suburb_locality)
+ self.edit_dialog.cmb_town.addItem(town_city)
self.edit_dialog.ids_suburb.append(id_suburb)
- # populate town combobox
- result = self.edit_dialog.db.execute_return(
- reference_select.town_city_intersect_geometry, (self.edit_dialog.geom,)
- )
- self.edit_dialog.cmb_town.addItem("")
- self.edit_dialog.ids_town = [None]
- for (id_town, name) in result.fetchall():
- if name is not None:
- self.edit_dialog.cmb_town.addItem(name)
- self.edit_dialog.ids_town.append(id_town)
-
def get_comboboxes_values(self):
# bulk load status
@@ -138,21 +128,16 @@ def get_comboboxes_values(self):
index = self.edit_dialog.cmb_suburb.currentIndex()
suburb = self.edit_dialog.ids_suburb[index]
- # town
- index = self.edit_dialog.cmb_town.currentIndex()
- town = self.edit_dialog.ids_town[index]
-
# territorial Authority
index = self.edit_dialog.cmb_ta.currentIndex()
t_a = self.edit_dialog.ids_ta[index]
else:
- capture_source_id, suburb, town, t_a = None, None, None, None
+ capture_source_id, suburb, t_a = None, None, None
return (
bulk_load_status_id,
capture_method_id,
capture_source_id,
suburb,
- town,
t_a,
)
@@ -167,7 +152,7 @@ def enable_UI_functions(self):
self.edit_dialog.cmb_ta.clear()
self.edit_dialog.cmb_ta.setEnabled(1)
self.edit_dialog.cmb_town.clear()
- self.edit_dialog.cmb_town.setEnabled(1)
+ self.edit_dialog.cmb_town.setEnabled(0)
self.edit_dialog.cmb_suburb.clear()
self.edit_dialog.cmb_suburb.setEnabled(1)
self.edit_dialog.btn_edit_save.setEnabled(1)
@@ -241,12 +226,12 @@ def edit_save_clicked(self, commit_status):
"""When bulk load frame btn_edit_save clicked"""
self.edit_dialog.db.open_cursor()
- _, capture_method_id, capture_source_id, suburb, town, t_a = (
+ _, capture_method_id, capture_source_id, suburb, t_a = (
self.get_comboboxes_values()
)
# insert into bulk_load_outlines table
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, NULL, 2, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, NULL, 2, %s, %s, %s, %s, %s);"
result = self.edit_dialog.db.execute_no_commit(
sql,
(
@@ -254,7 +239,6 @@ def edit_save_clicked(self, commit_status):
capture_method_id,
capture_source_id,
suburb,
- town,
t_a,
self.edit_dialog.geom,
),
@@ -429,17 +413,12 @@ def select_comboboxes_value(self):
index = self.edit_dialog.ids_ta.index(result.fetchall()[0][0])
self.edit_dialog.cmb_ta.setCurrentIndex(index)
- # town locality
- sql = "SELECT buildings_reference.town_city_intersect_polygon(%s);"
- result = self.edit_dialog.db.execute_return(sql, (self.edit_dialog.geom,))
- index = self.edit_dialog.ids_town.index(result.fetchall()[0][0])
- self.edit_dialog.cmb_town.setCurrentIndex(index)
-
# suburb locality
sql = "SELECT buildings_reference.suburb_locality_intersect_polygon(%s);"
result = self.edit_dialog.db.execute_return(sql, (self.edit_dialog.geom,))
index = self.edit_dialog.ids_suburb.index(result.fetchall()[0][0])
self.edit_dialog.cmb_suburb.setCurrentIndex(index)
+ self.edit_dialog.cmb_town.setCurrentIndex(index)
class EditAttribute(BulkLoadChanges):
@@ -477,7 +456,7 @@ def edit_save_clicked(self, commit_status):
"""When bulk load frame btn_edit_save clicked"""
self.edit_dialog.db.open_cursor()
- bulk_load_status_id, capture_method_id, capture_source_id, suburb, town, t_a = (
+ bulk_load_status_id, capture_method_id, capture_source_id, suburb, t_a = (
self.get_comboboxes_values()
)
@@ -525,7 +504,7 @@ def edit_save_clicked(self, commit_status):
# remove outline from added table
sql = "SELECT buildings_bulk_load.added_delete_bulk_load_outlines(%s);"
self.edit_dialog.db.execute_no_commit(sql, (i,))
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_update_attributes(%s, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_update_attributes(%s, %s, %s, %s, %s, %s);"
self.edit_dialog.db.execute_no_commit(
sql,
(
@@ -534,7 +513,6 @@ def edit_save_clicked(self, commit_status):
capture_method_id,
capture_source_id,
suburb,
- town,
t_a,
),
)
@@ -549,7 +527,7 @@ def edit_save_clicked(self, commit_status):
sql = "SELECT buildings_bulk_load.delete_deleted_description(%s);"
self.edit_dialog.db.execute_no_commit(sql, (i,))
# change attributes
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_update_attributes(%s, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_update_attributes(%s, %s, %s, %s, %s, %s);"
self.edit_dialog.db.execute_no_commit(
sql,
(
@@ -558,7 +536,6 @@ def edit_save_clicked(self, commit_status):
capture_method_id,
capture_source_id,
suburb,
- town,
t_a,
),
)
@@ -611,7 +588,6 @@ def is_correct_selections(self):
ls.append(feature.attributes()[5])
ls.append(feature.attributes()[6])
ls.append(feature.attributes()[7])
- ls.append(feature.attributes()[8])
if ls not in feats:
feats.append(ls)
# if selected features have different attributes (not allowed)
@@ -735,23 +711,16 @@ def select_comboboxes_value(self):
# suburb
result = self.edit_dialog.db.execute_return(
- reference_select.suburb_locality_name_by_bulk_outline_id,
+ reference_select.suburb_locality_town_city_by_bulk_outline_id,
(self.edit_dialog.bulk_load_outline_id,),
)
- result = result.fetchall()[0][0]
+ result1, result2 = result.fetchall()[0]
self.edit_dialog.cmb_suburb.setCurrentIndex(
- self.edit_dialog.cmb_suburb.findText(result)
+ self.edit_dialog.cmb_suburb.findText(result1)
)
-
- # town city
- result = self.edit_dialog.db.execute_return(
- reference_select.town_city_name_by_bulk_outline_id,
- (self.edit_dialog.bulk_load_outline_id,),
- )
- result = result.fetchall()
- if result:
+ if result2:
self.edit_dialog.cmb_town.setCurrentIndex(
- self.edit_dialog.cmb_town.findText(result[0][0])
+ self.edit_dialog.cmb_town.findText(result2)
)
else:
self.edit_dialog.cmb_town.setCurrentIndex(0)
@@ -859,7 +828,7 @@ def edit_save_clicked(self, commit_status):
"""When bulk load frame btn_edit_save clicked"""
self.edit_dialog.db.open_cursor()
- _, capture_method_id, _, _, _, _ = self.get_comboboxes_values()
+ _, capture_method_id, _, _, _ = self.get_comboboxes_values()
self.edit_dialog.edit_geometry_saved.emit(list(self.edit_dialog.geoms.keys()))
@@ -868,9 +837,7 @@ def edit_save_clicked(self, commit_status):
# insert into bulk_load_outlines table
for qgsfId, geom in list(self.edit_dialog.split_geoms.items()):
attributes = self.new_attrs[qgsfId]
- if not attributes[7]:
- attributes[7] = None
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, NULL, 2, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, NULL, 2, %s, %s, %s, %s, %s);"
result = self.edit_dialog.db.execute_no_commit(
sql,
(
@@ -879,7 +846,6 @@ def edit_save_clicked(self, commit_status):
attributes[5],
attributes[6],
attributes[7],
- attributes[8],
geom,
),
)
diff --git a/buildings/gui/comparisons.py b/buildings/gui/comparisons.py
index 47c7358b..56e52704 100644
--- a/buildings/gui/comparisons.py
+++ b/buildings/gui/comparisons.py
@@ -54,7 +54,7 @@ def compare_outlines(self, commit_status):
# insert new outline into existing subset extracts
sql = "SELECT buildings_bulk_load.existing_subset_extracts_insert(%s, %s, %s);"
result = self.db.execute_no_commit(
- sql, (ls[0], self.current_dataset, ls[10])
+ sql, (ls[0], self.current_dataset, ls[9])
)
else:
# update supplied dataset id of existing outline
diff --git a/buildings/gui/edit_dialog.py b/buildings/gui/edit_dialog.py
index 26e6170b..aa758f0c 100644
--- a/buildings/gui/edit_dialog.py
+++ b/buildings/gui/edit_dialog.py
@@ -73,6 +73,7 @@ def __init__(self, parent_frame, parent=None):
self.completer_box()
self.cmb_status.currentIndexChanged.connect(self.enable_le_deletion_reason)
+ self.cmb_suburb.currentIndexChanged.connect(self.cmb_suburb_changed)
self.rejected.connect(self.close_dialog)
def init_dialog(self):
@@ -324,6 +325,11 @@ def enable_le_deletion_reason(self):
self.le_deletion_reason.setDisabled(1)
self.le_deletion_reason.clear()
+ @pyqtSlot(int)
+ def cmb_suburb_changed(self, index):
+ """Update cmb_town with the index from cmb_suburb"""
+ self.cmb_town.setCurrentIndex(index)
+
@pyqtSlot(list)
def liqa_on_edit_geometry_saved(self, ids):
"""Update LIQA when geometry edited"""
diff --git a/buildings/gui/production_changes.py b/buildings/gui/production_changes.py
index d628fa17..7ffa0332 100644
--- a/buildings/gui/production_changes.py
+++ b/buildings/gui/production_changes.py
@@ -4,6 +4,7 @@
# -*- coding: utf-8 -*-\
from collections import OrderedDict
+from qgis.PyQt.QtCore import pyqtSlot
from qgis.PyQt.QtWidgets import QToolButton, QMessageBox
from qgis.core import QgsFeatureRequest
from qgis.utils import Qgis, iface
@@ -84,27 +85,17 @@ def populate_edit_comboboxes(self):
self.edit_dialog.cmb_ta.addItem(name)
self.edit_dialog.ids_ta.append(id_ta)
- # populate suburb combobox
+ # populate suburb/town combobox
result = self.edit_dialog.db.execute_return(
reference_select.suburb_locality_intersect_geom, (self.edit_dialog.geom,)
)
self.edit_dialog.ids_suburb = []
- for (id_suburb, name) in result.fetchall():
- if name is not None:
- self.edit_dialog.cmb_suburb.addItem(name)
+ for (id_suburb, suburb_locality, town_city) in result.fetchall():
+ if suburb_locality is not None:
+ self.edit_dialog.cmb_suburb.addItem(suburb_locality)
+ self.edit_dialog.cmb_town.addItem(town_city)
self.edit_dialog.ids_suburb.append(id_suburb)
- # populate town combobox
- result = self.edit_dialog.db.execute_return(
- reference_select.town_city_intersect_geometry, (self.edit_dialog.geom,)
- )
- self.edit_dialog.cmb_town.addItem("")
- self.edit_dialog.ids_town = [None]
- for (id_town, name) in result.fetchall():
- if name is not None:
- self.edit_dialog.cmb_town.addItem(name)
- self.edit_dialog.ids_town.append(id_town)
-
def get_comboboxes_values(self):
"""Returns values in comboboxes"""
if self.edit_dialog.layout_capture_method.isVisible():
@@ -149,16 +140,12 @@ def get_comboboxes_values(self):
index = self.edit_dialog.cmb_suburb.currentIndex()
suburb = self.edit_dialog.ids_suburb[index]
- # town
- index = self.edit_dialog.cmb_town.currentIndex()
- town = self.edit_dialog.ids_town[index]
-
# territorial Authority
index = self.edit_dialog.cmb_ta.currentIndex()
t_a = self.edit_dialog.ids_ta[index]
else:
- capture_source_id, lifecycle_stage_id, suburb, town, t_a = (None, None, None, None, None)
- return (capture_method_id, capture_source_id, lifecycle_stage_id, suburb, town, t_a)
+ capture_source_id, lifecycle_stage_id, suburb, t_a = (None, None, None, None)
+ return (capture_method_id, capture_source_id, lifecycle_stage_id, suburb, t_a)
def enable_UI_functions(self):
"""
@@ -173,7 +160,7 @@ def enable_UI_functions(self):
self.edit_dialog.cmb_ta.clear()
self.edit_dialog.cmb_ta.setEnabled(1)
self.edit_dialog.cmb_town.clear()
- self.edit_dialog.cmb_town.setEnabled(1)
+ self.edit_dialog.cmb_town.setEnabled(0)
self.edit_dialog.cmb_suburb.clear()
self.edit_dialog.cmb_suburb.setEnabled(1)
self.edit_dialog.btn_edit_save.setEnabled(1)
@@ -247,17 +234,17 @@ def edit_save_clicked(self, commit_status):
"""
self.edit_dialog.db.open_cursor()
- capture_method_id, capture_source_id, lifecycle_stage_id, suburb, town, t_a = self.get_comboboxes_values()
+ capture_method_id, capture_source_id, lifecycle_stage_id, suburb, t_a = self.get_comboboxes_values()
# insert into buildings
sql = "SELECT buildings.buildings_insert();"
result = self.edit_dialog.db.execute_no_commit(sql)
building_id = result.fetchall()[0][0]
# insert into building_outlines table
- sql = "SELECT buildings.building_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings.building_outlines_insert(%s, %s, %s, %s, %s, %s, %s);"
result = self.edit_dialog.db.execute_no_commit(
sql,
- (building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb, town, t_a, self.edit_dialog.geom),
+ (building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb, t_a, self.edit_dialog.geom),
)
self.edit_dialog.outline_id = result.fetchall()[0][0]
@@ -434,17 +421,12 @@ def select_comboboxes_value(self):
index = self.edit_dialog.ids_ta.index(result.fetchall()[0][0])
self.edit_dialog.cmb_ta.setCurrentIndex(index)
- # town locality
- sql = "SELECT buildings_reference.town_city_intersect_polygon(%s);"
- result = self.edit_dialog.db.execute_return(sql, (self.edit_dialog.geom,))
- index = self.edit_dialog.ids_town.index(result.fetchall()[0][0])
- self.edit_dialog.cmb_town.setCurrentIndex(index)
-
- # suburb locality
+ # suburb locality / town city
sql = "SELECT buildings_reference.suburb_locality_intersect_polygon(%s);"
result = self.edit_dialog.db.execute_return(sql, (self.edit_dialog.geom,))
index = self.edit_dialog.ids_suburb.index(result.fetchall()[0][0])
self.edit_dialog.cmb_suburb.setCurrentIndex(index)
+ self.edit_dialog.cmb_town.setCurrentIndex(index)
class EditAttribute(ProductionChanges):
@@ -487,13 +469,13 @@ def edit_save_clicked(self, commit_status):
"""
self.edit_dialog.db.open_cursor()
- capture_method_id, capture_source_id, lifecycle_stage_id, suburb, town, t_a = self.get_comboboxes_values()
+ capture_method_id, capture_source_id, lifecycle_stage_id, suburb, t_a = self.get_comboboxes_values()
if len(self.edit_dialog.ids) > 0:
for i in self.edit_dialog.ids:
- sql = "SELECT buildings.building_outlines_update_attributes(%s, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings.building_outlines_update_attributes(%s, %s, %s, %s, %s, %s);"
self.edit_dialog.db.execute_no_commit(
- sql, (i, capture_method_id, capture_source_id, lifecycle_stage_id, suburb, town, t_a)
+ sql, (i, capture_method_id, capture_source_id, lifecycle_stage_id, suburb, t_a)
)
sql = "SELECT buildings.building_outlines_update_modified_date(%s);"
self.edit_dialog.db.execute_no_commit(sql, (i,))
@@ -647,7 +629,6 @@ def is_correct_selections(self):
ls.append(feature.attributes()[4])
ls.append(feature.attributes()[5])
ls.append(feature.attributes()[6])
- ls.append(feature.attributes()[7])
if ls not in feats:
feats.append(ls)
# if selected features have different attributes (not allowed)
@@ -708,18 +689,12 @@ def select_comboboxes_value(self):
# suburb
result = self.edit_dialog.db.execute_return(
- reference_select.suburb_locality_name_by_building_outline_id, (self.edit_dialog.building_outline_id,)
- )
- result = result.fetchall()[0][0]
- self.edit_dialog.cmb_suburb.setCurrentIndex(self.edit_dialog.cmb_suburb.findText(result))
-
- # town city
- result = self.edit_dialog.db.execute_return(
- reference_select.town_city_name_by_building_outline_id, (self.edit_dialog.building_outline_id,)
+ reference_select.suburb_locality_town_city_by_building_outline_id, (self.edit_dialog.building_outline_id,)
)
- result = result.fetchall()
- if result:
- self.edit_dialog.cmb_town.setCurrentIndex(self.edit_dialog.cmb_town.findText(result[0][0]))
+ result1, result2 = result.fetchall()[0]
+ self.edit_dialog.cmb_suburb.setCurrentIndex(self.edit_dialog.cmb_suburb.findText(result1))
+ if result2:
+ self.edit_dialog.cmb_town.setCurrentIndex(self.edit_dialog.cmb_town.findText(result2))
else:
self.edit_dialog.cmb_town.setCurrentIndex(0)
@@ -771,20 +746,18 @@ def edit_save_clicked(self, commit_status):
"""
self.edit_dialog.db.open_cursor()
- capture_method_id, _, _, _, _, _ = self.get_comboboxes_values()
+ capture_method_id, _, _, _, _= self.get_comboboxes_values()
if len(self.edit_dialog.split_geoms) > 0:
for qgsfId, geom in list(self.edit_dialog.split_geoms.items()):
attributes = self.new_attrs[qgsfId]
- if not attributes[6]:
- attributes[6] = None
# New building
sql = "SELECT buildings.buildings_insert();"
result = self.edit_dialog.db.execute_no_commit(sql)
building_id = result.fetchall()[0][0]
# new building outline
- sql = "SELECT buildings.building_outlines_insert(%s, %s, %s, 1, %s, %s, %s, %s);"
+ sql = "SELECT buildings.building_outlines_insert(%s, %s, %s, 1, %s, %s, %s);"
result = self.edit_dialog.db.execute_no_commit(
sql,
(
@@ -793,7 +766,6 @@ def edit_save_clicked(self, commit_status):
attributes[3],
attributes[5],
attributes[6],
- attributes[7],
geom
),
)
@@ -809,7 +781,7 @@ def edit_save_clicked(self, commit_status):
building_id = result.fetchall()[0][0]
# new building outline
- sql = "SELECT buildings.building_outlines_insert(%s, %s, %s, 1, %s, %s, %s, %s);"
+ sql = "SELECT buildings.building_outlines_insert(%s, %s, %s, 1, %s, %s, %s);"
result = self.edit_dialog.db.execute_no_commit(
sql,
(
@@ -818,7 +790,6 @@ def edit_save_clicked(self, commit_status):
attributes[3],
attributes[5],
attributes[6],
- attributes[7],
self.edit_dialog.geoms[key]
),
)
diff --git a/buildings/gui/reference_data.py b/buildings/gui/reference_data.py
index 47268604..5532da2f 100644
--- a/buildings/gui/reference_data.py
+++ b/buildings/gui/reference_data.py
@@ -3,22 +3,76 @@
import os.path
from functools import partial
+from qgis.core import QgsVectorLayer
from qgis.PyQt import uic
from qgis.PyQt.QtCore import pyqtSlot, Qt
-from qgis.PyQt.QtWidgets import QFrame, QLineEdit, QMessageBox, QApplication, QCheckBox
+from qgis.PyQt.QtWidgets import (
+ QDialog,
+ QFrame,
+ QMessageBox,
+ QApplication,
+ QCheckBox,
+ QTableWidget,
+ QTableWidgetItem,
+ QVBoxLayout,
+)
from qgis.PyQt.QtGui import QIcon
from buildings.gui.error_dialog import ErrorDialog
-from buildings.reference_data import topo50
+from buildings.reference_data import topo50, admin_bdys, other_reference
from buildings.sql import buildings_bulk_load_select_statements as bulk_load_select
from buildings.sql import buildings_reference_select_statements as reference_select
from buildings.utilities import database as db
+from buildings.utilities.warnings import buildings_warning
+from buildings.utilities.config import read_config_file
+
+try:
+ DB_CONFIG = read_config_file()["api"]
+except RuntimeError as error:
+ buildings_warning("Config file error", str(error), "critical")
+ raise error
+API_KEY_LINZ = DB_CONFIG["linz"]
+API_KEY_STATSNZ = DB_CONFIG["statsnz"]
__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
FORM_CLASS, _ = uic.loadUiType(
os.path.join(os.path.dirname(__file__), "reference_data.ui")
)
+DATASET_LINZ = [
+ "canal_polygons",
+ "lagoon_polygons",
+ "lake_polygons",
+ "pond_polygons",
+ "river_polygons",
+ "swamp_polygons",
+ "hut_points",
+ "shelter_points",
+ "bivouac_points",
+ "protected_areas_polygons",
+ "coastlines_and_islands",
+ "suburb_locality",
+ "nz_imagery_survey_index",
+]
+DATASET_STATSNZ = ["territorial_authority"]
+
+DATASET_TOPO50 = [
+ "canal_polygons",
+ "lagoon_polygons",
+ "lake_polygons",
+ "pond_polygons",
+ "river_polygons",
+ "swamp_polygons",
+ "hut_points",
+ "shelter_points",
+ "bivouac_points",
+ "protected_areas_polygons",
+ "coastlines_and_islands",
+]
+DATASET_ADMIN_BDYS = ["suburb_locality", "territorial_authority"]
+
+DATASET_OTHER = ["nz_imagery_survey_index"]
+
class UpdateReferenceData(QFrame, FORM_CLASS):
def __init__(self, dockwidget, parent=None):
@@ -31,40 +85,30 @@ def __init__(self, dockwidget, parent=None):
self.error_dialog = None
self.message = ""
self.msgbox = self.message_box()
- self.btn_view_key.setIcon(
- QIcon(os.path.join(__location__, "..", "icons", "view_password.png"))
- )
# disable all check boxes if a curret dataset exists
sql = bulk_load_select.supplied_dataset_latest_id_and_dates
result = self.db.execute_return(sql)
if result is None:
self.enable_checkboxes()
- self.le_key.setDisabled(1)
- self.btn_view_key.setDisabled(1)
else:
result = result.fetchone()
process = result[1]
transfer = result[2]
if process is not None and transfer is not None:
self.enable_checkboxes()
- self.le_key.setDisabled(1)
- self.btn_view_key.setDisabled(1)
else:
self.disable_checkboxes()
# set up signals and slots
- self.btn_view_key.pressed.connect(self.view_key)
- self.btn_view_key.released.connect(self.hide_key)
- self.le_key.editingFinished.connect(self.hide_key)
self.grbx_topo.toggled.connect(self.check_all_topo)
self.grbx_admin.toggled.connect(self.check_all_admin)
+ self.grbx_other.toggled.connect(self.check_all_other)
self.btn_exit.clicked.connect(self.exit_clicked)
self.btn_update.clicked.connect(
partial(self.update_clicked, commit_status=True)
)
- for box in self.grbx_topo.findChildren(QCheckBox):
- box.clicked.connect(self.chbx_clicked)
+ self.btn_status.clicked.connect(self.btn_status_clicked)
def close_cursor(self):
self.db.close_cursor()
@@ -76,6 +120,7 @@ def enable_checkboxes(self):
"""Enable frame"""
self.grbx_topo.setEnabled(1)
self.grbx_admin.setEnabled(1)
+ self.grbx_other.setEnabled(1)
self.chbx_canals.setEnabled(1)
self.chbx_coastline_and_islands.setEnabled(1)
self.chbx_lagoons.setEnabled(1)
@@ -88,17 +133,17 @@ def enable_checkboxes(self):
self.chbx_bivouacs.setEnabled(1)
self.chbx_protected_areas.setEnabled(1)
self.chbx_suburbs.setEnabled(1)
- self.chbx_town.setEnabled(1)
self.chbx_ta.setEnabled(1)
+ self.chbx_imagery.setEnabled(1)
self.btn_update.setEnabled(1)
# clear message
self.lb_message.setText("")
def disable_checkboxes(self):
"""Disable frame (when outlines dataset in progress)"""
- self.le_key.setDisabled(1)
self.grbx_topo.setDisabled(1)
self.grbx_admin.setDisabled(1)
+ self.grbx_other.setDisabled(1)
self.chbx_canals.setDisabled(1)
self.chbx_coastline_and_islands.setDisabled(1)
self.chbx_lagoons.setDisabled(1)
@@ -111,9 +156,8 @@ def disable_checkboxes(self):
self.chbx_bivouacs.setDisabled(1)
self.chbx_protected_areas.setDisabled(1)
self.chbx_suburbs.setDisabled(1)
- self.chbx_town.setDisabled(1)
self.chbx_ta.setDisabled(1)
- self.btn_view_key.setDisabled(1)
+ self.chbx_imagery.setDisabled(1)
self.btn_update.setDisabled(1)
# add message
self.lb_message.setText(
@@ -121,14 +165,45 @@ def disable_checkboxes(self):
)
@pyqtSlot()
- def view_key(self):
- """Called when view key button pressed"""
- self.le_key.setEchoMode(QLineEdit.Normal)
+ def btn_status_clicked(self):
+ QApplication.setOverrideCursor(Qt.WaitCursor)
+ dialog = QDialog()
+ tbl = QTableWidget()
+ tbl.setColumnCount(6)
+ tbl.setHorizontalHeaderLabels(
+ ["Dataset", "Last Updated", "New Updates", "Insert", "Update", "Delete"]
+ )
+ for dataset in DATASET_LINZ + DATASET_STATSNZ:
+ api_key = self.check_api_key(dataset)
+ if api_key is None:
+ return
+ if dataset in DATASET_TOPO50:
+ status = topo50.check_status_topo50(api_key, dataset)
+ elif dataset in DATASET_ADMIN_BDYS:
+ status = admin_bdys.check_status_admin_bdys(api_key, dataset)
+ else:
+ status = other_reference.check_status_imagery_survey_index(
+ api_key, dataset
+ )
- @pyqtSlot()
- def hide_key(self):
- """Called when view key button released/editing of text finished"""
- self.le_key.setEchoMode(QLineEdit.Password)
+ row_tbl = tbl.rowCount()
+ tbl.setRowCount(row_tbl + 1)
+ tbl.setItem(row_tbl, 0, QTableWidgetItem(status["dataset"]))
+ tbl.setItem(row_tbl, 1, QTableWidgetItem(status["last_updated"]))
+ tbl.setItem(row_tbl, 2, QTableWidgetItem(status["new_updates"]))
+ tbl.setItem(row_tbl, 3, QTableWidgetItem(status["insert"]))
+ tbl.setItem(row_tbl, 4, QTableWidgetItem(status["update"]))
+ tbl.setItem(row_tbl, 5, QTableWidgetItem(status["delete"]))
+ tbl.resizeRowsToContents()
+ tbl.resizeColumnsToContents()
+ dialogWidth = tbl.horizontalHeader().length() + 100
+ dialogHeight = tbl.verticalHeader().length() + 100
+ dialog.setFixedSize(dialogWidth, dialogHeight)
+ layout = QVBoxLayout()
+ dialog.setLayout(layout)
+ layout.addWidget(tbl)
+ QApplication.restoreOverrideCursor()
+ dialog.exec()
@pyqtSlot()
def update_clicked(self, commit_status=True):
@@ -137,8 +212,9 @@ def update_clicked(self, commit_status=True):
QApplication.setOverrideCursor(Qt.WaitCursor)
# setup
self.message = ""
- self.api_key = self.le_key.text()
self.updates = []
+ if self.db._open_cursor is None:
+ self.db.open_cursor()
# canals
if self.chbx_canals.isChecked():
self.topo_layer_processing("canal_polygons")
@@ -169,92 +245,18 @@ def update_clicked(self, commit_status=True):
# protected areas
if self.chbx_protected_areas.isChecked():
self.topo_layer_processing("protected_areas_polygons")
- # coastlines and islands (placeholder)
+ # coastlines and islands (overwrite the existing table)
if self.chbx_coastline_and_islands.isChecked():
- self.message += "The coastlines and islands table must be updated manually"
- if self.db._open_cursor is None:
- self.db.open_cursor()
+ self.topo_layer_processing("coastlines_and_islands")
# suburb localities
if self.chbx_suburbs.isChecked():
- # update building_outlines suburb values (changed, deleted & added)
- # delete remove suburbs and update modified suburbs
- db.execute_no_commit("SELECT buildings_reference.building_outlines_update_changed_and_deleted_suburb();")
- # add new suburbs and update building outlines
- db.execute_no_commit("SELECT buildings_reference.building_outlines_update_added_suburb();")
- # update messages and log
- self.update_message("updated", "suburb_locality")
- self.updates.append("suburb_locality")
- # town_city
- if self.chbx_town.isChecked():
- town_list = []
- # delete existing areas where the external id is no longer in the town_city table
- result = db.execute_no_commit(
- "SELECT buildings_reference.town_city_delete_removed_areas();"
- )
- if result is not None:
- town_list.extend(result.fetchone()[0])
- # modify all existing areas to check they are up to date
- result = db.execute_no_commit(
- "SELECT buildings_reference.town_city_insert_new_areas();"
- )
- if result is not None:
- town_list.extend(result.fetchone()[0])
- # insert into table ids in nz_localities that are not in town_city
- result = db.execute_no_commit(
- "SELECT buildings_reference.town_city_update_areas();"
- )
- if result is not None:
- town_list.extend(result.fetchone()[0])
- # update bulk_load_outlines town/city values
- db.execute_no_commit(
- "SELECT buildings_bulk_load.bulk_load_outlines_update_all_town_cities(%s);",
- (town_list,),
- )
- # update building outlines town/city values
- db.execute_no_commit(
- "SELECT buildings.building_outlines_update_town_city(%s);", (town_list,)
- )
- # update messages and log
- self.update_message("updated", "town_city")
- self.updates.append("town_city")
+ self.admin_bdy_layer_processing("suburb_locality")
# territorial authority and grid
if self.chbx_ta.isChecked():
- ta_list = []
- # delete removed TA areas
- result = db.execute_no_commit(
- "SELECT buildings_reference.territorial_auth_delete_areas();"
- )
- if result is not None:
- ta_list.extend(result.fetchone()[0])
- # Insert TA areas
- result = db.execute_no_commit(
- "SELECT buildings_reference.territorial_auth_insert_areas();"
- )
- if result is not None:
- ta_list.extend(result.fetchone()[0])
- # Update new TA areas
- result = db.execute_no_commit(
- "SELECT buildings_reference.territorial_auth_update_areas();"
- )
- if result is not None:
- ta_list.extend(result.fetchone()[0])
- # update bulk_load_outlines territorial authority values
- db.execute_no_commit(
- "SELECT buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(%s);",
- (ta_list,),
- )
- # update building outlines territorial authority values
- db.execute_no_commit(
- "SELECT buildings.building_outlines_update_territorial_authority(%s);",
- (ta_list,),
- )
- # update message and log
- self.update_message("updated", "territorial_authority")
- self.updates.append("territorial_authority")
- # refresh grid
- db.execute_no_commit(reference_select.refresh_ta_grid_view)
- self.update_message("updated", "territorial_authority_grid")
- self.updates.append("territorial_authority_grid")
+ self.admin_bdy_layer_processing("territorial_authority")
+ # nz imagery survey index
+ if self.chbx_imagery.isChecked():
+ self.other_layer_processing("nz_imagery_survey_index")
# create log for this update
if len(self.updates) > 0:
@@ -265,10 +267,10 @@ def update_clicked(self, commit_status=True):
# final message box
if self.message == "":
self.message = "No layers were updated."
- self.msgbox.setText(self.message)
- self.msgbox.exec_()
if commit_status:
self.db.commit_open_cursor()
+ self.msgbox.setText(self.message)
+ self.msgbox.exec_()
@pyqtSlot()
def exit_clicked(self):
@@ -291,37 +293,19 @@ def close_frame(self):
@pyqtSlot()
def check_all_topo(self):
- """ Called when combobox to check all topo layers is toggled"""
+ """Called when combobox to check all topo layers is toggled"""
if self.grbx_topo.isChecked():
for box in self.grbx_topo.findChildren(QCheckBox):
box.setChecked(True)
box.setEnabled(1)
- self.chbx_clicked()
else:
for box in self.grbx_topo.findChildren(QCheckBox):
box.setChecked(False)
box.setEnabled(1)
- self.chbx_clicked()
-
- @pyqtSlot()
- def chbx_clicked(self):
- """Called when topo checkboxes are checked"""
- if not self.loop_topo_boxes():
- self.le_key.setDisabled(1)
- self.btn_view_key.setDisabled(1)
-
- def loop_topo_boxes(self):
- """loops through topo check boxes returns true if one is checked and enables api key features"""
- for box in self.grbx_topo.findChildren(QCheckBox):
- if box.isChecked():
- self.le_key.setEnabled(1)
- self.btn_view_key.setEnabled(1)
- return True
- return False
@pyqtSlot()
def check_all_admin(self):
- """ Called when combobox to check all admin layers is toggled"""
+ """Called when combobox to check all admin layers is toggled"""
if self.grbx_admin.isChecked():
for box in self.grbx_admin.findChildren(QCheckBox):
box.setChecked(True)
@@ -331,6 +315,18 @@ def check_all_admin(self):
box.setChecked(False)
box.setEnabled(1)
+ @pyqtSlot()
+ def check_all_other(self):
+ """Called when combobox to check all admin layers is toggled"""
+ if self.grbx_other.isChecked():
+ for box in self.grbx_other.findChildren(QCheckBox):
+ box.setChecked(True)
+ box.setEnabled(1)
+ else:
+ for box in self.grbx_other.findChildren(QCheckBox):
+ box.setChecked(False)
+ box.setEnabled(1)
+
def message_box(self):
return QMessageBox(
QMessageBox.Information, "Note", self.message, buttons=QMessageBox.Ok
@@ -343,41 +339,79 @@ def request_error(self):
"\n ---------------------- REQUEST ERROR ---------"
"----------------- \n\nSomething appears to have gone"
" wrong with requesting the changeset, first please"
- " check you entered the correct api key if this is correct"
+ " check you entered the correct api key in config file"
" then please inform a developer."
)
self.error_dialog.show()
QApplication.restoreOverrideCursor()
- def topo_layer_processing(self, layer):
- """Processes to run for all topo layers"""
- if not self.check_api_key():
+ def topo_layer_processing(self, dataset):
+ """Processes to run for topo layers"""
+ api_key = self.check_api_key(dataset)
+ if api_key is None:
return
- status = topo50.update_topo50(self.api_key, layer)
- self.update_message(status, "{}_polygons".format(layer))
- if status != "error":
- self.updates.append(layer)
+ if dataset == "coastlines_and_islands":
+ status = topo50.update_coastlines_and_islands(api_key, dataset, self.db)
+ else:
+ status = topo50.update_topo50(api_key, dataset, self.db)
+ self.update_message(status, dataset)
+ if status == "updated":
+ self.updates.append(dataset)
- def check_api_key(self):
- # check for API key
- if self.api_key == "":
- self.error_dialog = ErrorDialog()
- self.error_dialog.fill_report(
- "\n------------- NO API KEY -------------"
- "\n\nPlease enter a koordinates api key to"
- " update the reference data."
+ def admin_bdy_layer_processing(self, dataset):
+ """Processes to run for admin bdy layers"""
+ api_key = self.check_api_key(dataset)
+ if api_key is None:
+ return
+ status, ids_bo = admin_bdys.update_admin_bdys(api_key, dataset, self.db)
+ if status == "updated":
+ self.update_message(
+ status,
+ f"{dataset} ({len(ids_bo)} building outlines modified)",
)
- self.error_dialog.show()
- QApplication.restoreOverrideCursor()
- return False
- return True
+ self.updates.append(dataset)
+ if dataset == "territorial_authority":
+ self.db.execute_no_commit(reference_select.refresh_ta_grid_view)
+ self.update_message("updated", "territorial_authority_grid")
+ self.updates.append("territorial_authority_grid")
+ else:
+ self.update_message(status, dataset)
+
+ def other_layer_processing(self, dataset):
+ """Processes to run for other layers"""
+ api_key = self.check_api_key(dataset)
+ if api_key is None:
+ return
+ if dataset == "nz_imagery_survey_index":
+ status = other_reference.update_imagery_survey_index(
+ api_key, dataset, self.db
+ )
+ self.update_message(status, dataset)
+ if status == "updated":
+ self.updates.append(dataset)
+
+ def check_api_key(self, layer):
+ # check for API key
+ if layer in DATASET_LINZ:
+ return API_KEY_LINZ
+ elif layer in DATASET_STATSNZ:
+ return API_KEY_STATSNZ
+ self.error_dialog = ErrorDialog()
+ self.error_dialog.fill_report(
+ "\n------------- NO API KEY -------------"
+ "\n\nPlease enter a koordinates api key to"
+ " update the reference data."
+ )
+ self.error_dialog.show()
+ QApplication.restoreOverrideCursor()
+ return None
def update_message(self, status, name):
"""add to message for display at end of processing"""
if status == "current":
- self.message += "The {} table was up to date\n".format(name)
+ self.message += "The table {} was up to date\n".format(name)
if status == "updated":
- self.message += "The {} table has been updated\n".format(name)
+ self.message += "The table {} has been updated\n".format(name)
if status == "error":
- self.message += "The request errored on the {} table\n".format(name)
+ self.message += "The request errored on the table {}\n".format(name)
self.request_error()
diff --git a/buildings/gui/reference_data.ui b/buildings/gui/reference_data.ui
index f0ae3178..afdb1532 100644
--- a/buildings/gui/reference_data.ui
+++ b/buildings/gui/reference_data.ui
@@ -54,73 +54,36 @@
-
-
- -
-
-
-
-
-
-
-
-
- Kx API Key:
-
-
-
- -
-
-
- QLineEdit::Password
-
-
-
- -
-
-
-
- 30
- 16777215
-
-
-
-
-
-
-
-
-
-
-
+
- Qt::Vertical
-
-
- QSizePolicy::Fixed
+ Qt::Horizontal
- 20
- 10
+ 40
+ 20
-
-
-
- Qt::Vertical
-
-
- QSizePolicy::Fixed
+
+
+
+ 0
+ 0
+
-
-
- 20
- 10
-
+
+ Status
-
+
+
+
+ -
+
-
@@ -206,7 +169,7 @@
-
- Coastlines and Islands
+ Coastlines and Islands (Overwrite existing)
@@ -252,16 +215,34 @@
-
-
+
- Town City
+ Territorial Authority
+
+
+
+ -
+
+
+ Other reference
+
+
+ false
+
+
+ true
+
+
+ false
+
+
-
-
+
- Territorial Authority
+ NZ Imagery Survey Index
diff --git a/buildings/reference_data/admin_bdys.py b/buildings/reference_data/admin_bdys.py
new file mode 100644
index 00000000..fa48a12d
--- /dev/null
+++ b/buildings/reference_data/admin_bdys.py
@@ -0,0 +1,269 @@
+from builtins import str
+from collections import Counter
+
+# script to update canal data
+
+from buildings.sql import buildings_reference_select_statements as reference_select
+from buildings.utilities import database as db
+from qgis.core import QgsGeometry, QgsVectorLayer
+
+# TODO: review if the filter works
+LAYERS = {
+ "suburb_locality": {
+ "layer_id": 113764,
+ "primary_id": "id",
+ "url_base": "https://data.linz.govt.nz",
+ "cql_filter": "&cql_filter=type = 'Conservation Land' OR type = 'Island' OR type = 'Locality' OR type ='Suburb'",
+ },
+ "territorial_authority": {
+ "layer_id": 39939,
+ "primary_id": "TA_Code",
+ "url_base": "https://datafinder.stats.govt.nz",
+ "cql_filter": "",
+ },
+}
+
+URI = "{1}/services;key={0}/wfs/layer-{2}-changeset?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&typeNames=layer-{2}-changeset&viewparams=from:{3};to:{4}{5}&SRSNAME=EPSG:2193&outputFormat=json"
+
+
+def last_update(column_name):
+
+ # get last update of layer date from log
+ from_var = db.execute_return(
+ reference_select.log_select_last_update.format(column_name)
+ )
+ from_var = from_var.fetchone()
+ if from_var is None:
+ # default to beginning of 2018
+ from_var = (
+ "2018-01-01T02:15:47.317439" # TODO: check if we should use another date
+ )
+ else:
+ from_var = str(from_var[0]).split("+")[0]
+ from_var = from_var.split(" ")
+ from_var = from_var[0] + "T" + from_var[1]
+ return from_var
+
+
+def current_date():
+ to_var = db.execute_return("SELECT now();")
+ to_var = to_var.fetchone()[0]
+ to_var = str(to_var).split("+")[0]
+ to_var = to_var.split(" ")
+ to_var = to_var[0] + "T" + to_var[1]
+ return to_var
+
+
+def check_status_admin_bdys(kx_api_key, dataset):
+ # get last update of layer date from log
+ from_var = last_update(dataset)
+
+ # current date
+ to_var = current_date()
+
+ layer = QgsVectorLayer(
+ URI.format(
+ kx_api_key,
+ LAYERS[dataset]["url_base"],
+ LAYERS[dataset]["layer_id"],
+ from_var,
+ to_var,
+ LAYERS[dataset]["cql_filter"],
+ )
+ )
+ if not layer.isValid():
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "error",
+ "insert": "error",
+ "update": "error",
+ "delete": "error",
+ }
+
+ if layer.featureCount() == 0:
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "",
+ "insert": "0",
+ "update": "0",
+ "delete": "0",
+ }
+ counts = Counter([feat["__change__"] for feat in layer.getFeatures()])
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "Available",
+ "insert": str(counts["INSERT"]),
+ "update": str(counts["UPDATE"]),
+ "delete": str(counts["DELETE"]),
+ }
+
+
+def update_admin_bdys(kx_api_key, dataset, dbconn: db):
+ # get last update of layer date from log
+ from_var = last_update(dataset)
+
+ # current date
+ to_var = current_date()
+
+ layer = QgsVectorLayer(
+ URI.format(
+ kx_api_key,
+ LAYERS[dataset]["url_base"],
+ LAYERS[dataset]["layer_id"],
+ from_var,
+ to_var,
+ LAYERS[dataset]["cql_filter"],
+ )
+ )
+
+ if not layer.isValid():
+ # something went wrong
+ return "error", []
+
+ if layer.featureCount() == 0:
+ return "current", []
+
+ external_id = LAYERS[dataset]["primary_id"]
+
+ ids_attr_updates = []
+ geoms_diff = []
+ for feature in layer.getFeatures():
+ if feature.attribute("__change__") == "DELETE":
+ geoms_diff.append(feature.geometry())
+ sql = "SELECT buildings_reference.{}_delete_by_external_id(%s)".format(
+ dataset
+ )
+ dbconn.execute_no_commit(sql, (feature[external_id],))
+
+ elif feature.attribute("__change__") == "UPDATE":
+ if dataset == "suburb_locality":
+ # get attribute differences
+ result = dbconn.execute_return(
+ reference_select.suburb_locality_attribute_updates,
+ (
+ feature[external_id],
+ correct_name_format(feature["name"]),
+ correct_name_format(feature["major_name"]),
+ ),
+ )
+ result = result.fetchone()
+ if result is not None:
+ ids_attr_updates.append(result[0])
+
+ # get geometry differences
+ result = dbconn.execute_return(
+ reference_select.suburb_locality_shape_updates,
+ (
+ feature.geometry().asWkt(),
+ feature[external_id],
+ ),
+ )
+ result = result.fetchone()
+ if result is not None:
+ geoms_diff.append(QgsGeometry.fromWkt(result[0]))
+
+ sql = "SELECT buildings_reference.suburb_locality_update_by_external_id(%s, %s, %s, %s)"
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature[external_id],
+ correct_name_format(feature["name"]),
+ correct_name_format(feature["major_name"]),
+ feature.geometry().asWkt(),
+ ),
+ )
+ else:
+ # get attribute differences
+ result = dbconn.execute_return(
+ reference_select.territorial_authority_attribute_updates,
+ (
+ feature[external_id],
+ correct_name_format(feature["name"]),
+ ),
+ )
+ result = result.fetchone()
+ if result is not None:
+ ids_attr_updates.append(result[0])
+
+ # get geometry differences
+ result = dbconn.execute_return(
+ reference_select.territorial_authority_shape_updates,
+ (
+ feature.geometry().asWkt(),
+ feature[external_id],
+ ),
+ )
+ result = result.fetchone()
+ if result is not None:
+ geoms_diff.append(QgsGeometry.fromWkt(result[0]))
+
+ sql = "SELECT buildings_reference.territorial_authority_update_by_external_id(%s, %s, %s)"
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature[external_id],
+ correct_name_format(feature["name"]),
+ feature.geometry().asWkt(),
+ ),
+ )
+
+ elif feature.attribute("__change__") == "INSERT":
+ # Check if feature is already in reference table
+ result = dbconn.execute_return(
+ reference_select.select_admin_bdy_id_by_external_id.format(dataset),
+ (feature[external_id],),
+ )
+ result = result.fetchone()
+ if result is not None:
+ dbconn.rollback_open_cursor()
+ raise Exception(
+ "INSERT type feature exists in buildings db. Please contact devs."
+ )
+ geoms_diff.append(feature.geometry())
+ if dataset == "suburb_locality":
+ sql = (
+ "SELECT buildings_reference.suburb_locality_insert(%s, %s, %s, %s)"
+ )
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature[external_id],
+ correct_name_format(feature["name"]),
+ correct_name_format(feature["major_name"]),
+ feature.geometry().asWkt(),
+ ),
+ )
+ else:
+ sql = "SELECT buildings_reference.territorial_authority_insert(%s, %s, %s)"
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature[external_id],
+ correct_name_format(feature["name"]),
+ feature.geometry().asWkt(),
+ ),
+ )
+ geom_union = QgsGeometry.unaryUnion(geoms_diff).asWkt()
+ sql = "SELECT buildings_reference.{}_attribute_update_building_outlines(%s)".format(
+ dataset
+ )
+ result = dbconn.execute_no_commit(sql, (ids_attr_updates,))
+ ids_bo = [r[0] for r in result.fetchall() if r[0] is not None]
+
+ sql = "SELECT buildings_reference.{}_geometry_update_building_outlines(%s)".format(
+ dataset
+ )
+ result = dbconn.execute_no_commit(sql, (geom_union,))
+ ids_bo.extend(
+ [r[0] for r in result.fetchall() if r[0] not in ids_bo and r[0] is not None]
+ )
+ return "updated", ids_bo
+
+
+def correct_name_format(name):
+ if not name:
+ name = ""
+ return str(name)
diff --git a/buildings/reference_data/other_reference.py b/buildings/reference_data/other_reference.py
new file mode 100644
index 00000000..c72a8021
--- /dev/null
+++ b/buildings/reference_data/other_reference.py
@@ -0,0 +1,197 @@
+from builtins import str
+from collections import Counter
+
+
+# script to update canal data
+
+from buildings.sql import buildings_reference_select_statements as reference_select
+from buildings.utilities import database as db
+from qgis.core import QgsVectorLayer
+from qgis.PyQt.QtCore import Qt, QVariant
+
+LDS_LAYER_IDS = {
+ "nz_imagery_survey_index": 95677,
+}
+
+
+URI = "https://data.linz.govt.nz/services;key={1}/wfs/layer-{0}-changeset?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&typeNames=layer-{0}-changeset&viewparams=from:{2};to:{3}{4}&SRSNAME=EPSG:2193&outputFormat=json"
+
+
+def last_update(column_name):
+
+ # get last update of layer date from log
+ from_var = db.execute_return(
+ reference_select.log_select_last_update.format(column_name)
+ )
+ from_var = from_var.fetchone()
+ if from_var is None:
+ # default to beginning of 2018
+ from_var = "2018-01-01T02:15:47.317439"
+ else:
+ from_var = str(from_var[0]).split("+")[0]
+ from_var = from_var.split(" ")
+ from_var = from_var[0] + "T" + from_var[1]
+ return from_var
+
+
+def current_date():
+ to_var = db.execute_return("SELECT now();")
+ to_var = to_var.fetchone()[0]
+ to_var = str(to_var).split("+")[0]
+ to_var = to_var.split(" ")
+ to_var = to_var[0] + "T" + to_var[1]
+ return to_var
+
+
+def check_status_imagery_survey_index(kx_api_key, dataset):
+ # get last update of layer date from log
+ from_var = last_update("imagery_survey_index")
+
+ # current date
+ to_var = current_date()
+
+ cql_filter = ""
+ layer = QgsVectorLayer(
+ URI.format(LDS_LAYER_IDS[dataset], kx_api_key, from_var, to_var, cql_filter)
+ )
+ if not layer.isValid():
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "error",
+ "insert": "error",
+ "update": "error",
+ "delete": "error",
+ }
+
+ if layer.featureCount() == 0:
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "",
+ "insert": "0",
+ "update": "0",
+ "delete": "0",
+ }
+ counts = Counter([feat["__change__"] for feat in layer.getFeatures()])
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "Available",
+ "insert": str(counts["INSERT"]),
+ "update": str(counts["UPDATE"]),
+ "delete": str(counts["DELETE"]),
+ }
+
+
+def update_imagery_survey_index(kx_api_key, dataset, dbconn):
+ if dataset != "nz_imagery_survey_index":
+ return "error"
+
+ # get last update of layer date from log
+ from_var = last_update("imagery_survey_index")
+
+ # current date
+ to_var = current_date()
+
+ cql_filter = ""
+ external_id = "imagery_survey_id"
+
+ layer = QgsVectorLayer(
+ URI.format(LDS_LAYER_IDS[dataset], kx_api_key, from_var, to_var, cql_filter)
+ )
+ if not layer.isValid():
+ # something went wrong
+ return "error"
+
+ if layer.featureCount() == 0:
+ return "current"
+
+ for feature in layer.getFeatures():
+ if feature.attribute("__change__") == "DELETE":
+ sql = "DELETE FROM buildings_reference.nz_imagery_survey_index WHERE imagery_survey_id = %s;"
+ dbconn.execute_no_commit(sql, (feature[external_id],))
+
+ elif feature.attribute("__change__") == "INSERT":
+ sql = "SELECT True FROM buildings_reference.nz_imagery_survey_index WHERE imagery_survey_id = %s;"
+ result = dbconn.execute_return(
+ sql,
+ (feature[external_id],),
+ )
+ result = result.fetchone()
+ if result is None:
+ sql = """
+ INSERT INTO buildings_reference.nz_imagery_survey_index (
+ imagery_survey_id,
+ name,
+ imagery_id,
+ index_id,
+ set_order,
+ ground_sample_distance,
+ accuracy,
+ supplier,
+ licensor,
+ flown_from,
+ flown_to,
+ shape)
+ VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, ST_SetSRID(ST_GeometryFromText(%s), 2193))
+ """
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature[external_id],
+ correct_attribute_format(feature["name"]),
+ correct_attribute_format(feature["imagery_id"]),
+ correct_attribute_format(feature["index_id"]),
+ correct_attribute_format(feature["set_order"]),
+ correct_attribute_format(feature["ground_sample_distance"]),
+ correct_attribute_format(feature["accuracy"]),
+ correct_attribute_format(feature["supplier"]),
+ correct_attribute_format(feature["licensor"]),
+ feature["flown_from"].toString(Qt.ISODate),
+ feature["flown_to"].toString(Qt.ISODate),
+ feature.geometry().asWkt(),
+ ),
+ )
+
+ elif feature.attribute("__change__") == "UPDATE":
+ sql = """
+ UPDATE buildings_reference.nz_imagery_survey_index
+ SET
+ name = %s,
+ imagery_id = %s,
+ index_id = %s,
+ set_order = %s,
+ ground_sample_distance = %s,
+ accuracy = %s,
+ supplier = %s,
+ licensor = %s,
+ flown_from = %s,
+ flown_to = %s,
+ shape = ST_SetSRID(ST_GeometryFromText(%s), 2193)
+ WHERE imagery_survey_id = %s;
+ """
+ dbconn.execute_no_commit(
+ sql,
+ (
+ correct_attribute_format(feature["name"]),
+ correct_attribute_format(feature["imagery_id"]),
+ correct_attribute_format(feature["index_id"]),
+ correct_attribute_format(feature["set_order"]),
+ correct_attribute_format(feature["ground_sample_distance"]),
+ correct_attribute_format(feature["accuracy"]),
+ correct_attribute_format(feature["supplier"]),
+ correct_attribute_format(feature["licensor"]),
+ feature["flown_from"].toString(Qt.ISODate),
+ feature["flown_to"].toString(Qt.ISODate),
+ feature.geometry().asWkt(),
+ feature[external_id],
+ ),
+ )
+ return "updated"
+
+
+def correct_attribute_format(value):
+ if type(value) == QVariant and value.isNull():
+ return None
+ return value
diff --git a/buildings/reference_data/topo50.py b/buildings/reference_data/topo50.py
index 11fa8955..49b79be1 100644
--- a/buildings/reference_data/topo50.py
+++ b/buildings/reference_data/topo50.py
@@ -1,4 +1,7 @@
from builtins import str
+from collections import Counter
+
+
# script to update canal data
from buildings.sql import buildings_reference_select_statements as reference_select
@@ -16,9 +19,17 @@
"shelter_points": 50245,
"bivouac_points": 50239,
"protected_areas_polygons": 53564,
+ "coastlines_and_islands": 51153,
}
-URI = "srsname='EPSG:2193' typename='data.linz.govt.nz:layer-{0}-changeset' url=\"https://data.linz.govt.nz/services;key={1}/wfs/layer-{0}-changeset?viewparams=from:{2};to:{3}{4}\""
+LDS_LAYER_HAS_NAME = [
+ "hut_points",
+ "shelter_points",
+ "bivouac_points",
+ "protected_areas_polygons",
+]
+
+URI = "https://data.linz.govt.nz/services;key={1}/wfs/layer-{0}-changeset?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&typeNames=layer-{0}-changeset&viewparams=from:{2};to:{3}{4}&SRSNAME=EPSG:2193&outputFormat=json"
def last_update(column_name):
@@ -47,7 +58,66 @@ def current_date():
return to_var
-def update_topo50(kx_api_key, dataset):
+def check_status_topo50(kx_api_key, dataset):
+ if "polygon" in dataset:
+ column_name = dataset.replace("_polygons", "")
+ elif "point" in dataset:
+ column_name = dataset.replace("_points", "")
+ else:
+ column_name = dataset
+
+ # get last update of layer date from log
+ from_var = last_update(column_name)
+
+ # current date
+ to_var = current_date()
+
+ cql_filter = ""
+ if dataset == "hut_points":
+ cql_filter = "&cql_filter=bldg_use='hut'"
+ elif dataset == "shelter_points":
+ cql_filter = "&cql_filter=bldg_use='shelter'"
+ elif dataset == "protected_areas_polygons":
+ cql_filter = "&cql_filter=type = 'Conservation Area' OR type = 'National Park' OR type ='Wildlife Area'"
+
+ external_id = "t50_fid"
+ if dataset == "protected_areas_polygons":
+ external_id = "napalis_id"
+
+ layer = QgsVectorLayer(
+ URI.format(LDS_LAYER_IDS[dataset], kx_api_key, from_var, to_var, cql_filter)
+ )
+ if not layer.isValid():
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "error",
+ "insert": "error",
+ "update": "error",
+ "delete": "error",
+ }
+
+ if layer.featureCount() == 0:
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "",
+ "insert": "0",
+ "update": "0",
+ "delete": "0",
+ }
+ counts = Counter([feat["__change__"] for feat in layer.getFeatures()])
+ return {
+ "dataset": dataset,
+ "last_updated": from_var,
+ "new_updates": "Available",
+ "insert": str(counts["INSERT"]),
+ "update": str(counts["UPDATE"]),
+ "delete": str(counts["DELETE"]),
+ }
+
+
+def update_topo50(kx_api_key, dataset, dbconn):
# Get name of column in reference log table
if "polygon" in dataset:
@@ -76,11 +146,8 @@ def update_topo50(kx_api_key, dataset):
external_id = "napalis_id"
layer = QgsVectorLayer(
- URI.format(LDS_LAYER_IDS[dataset], kx_api_key, from_var, to_var, cql_filter),
- "changeset",
- "WFS",
+ URI.format(LDS_LAYER_IDS[dataset], kx_api_key, from_var, to_var, cql_filter)
)
-
if not layer.isValid():
# something went wrong
return "error"
@@ -93,52 +160,93 @@ def update_topo50(kx_api_key, dataset):
sql = "SELECT buildings_reference.{}_delete_by_external_id(%s)".format(
dataset
)
- db.execute(sql, (feature.attribute(external_id),))
+ dbconn.execute_no_commit(sql, (feature.attribute(external_id),))
elif feature.attribute("__change__") == "INSERT":
if "polygon" in dataset:
- result = db.execute_return(
+ result = dbconn.execute_return(
reference_select.select_polygon_id_by_external_id.format(
column_name
),
(feature.attribute(external_id),),
)
elif "point" in dataset:
- result = db.execute_return(
+ result = dbconn.execute_return(
reference_select.select_point_id_by_external_id.format(column_name),
(feature.attribute(external_id),),
)
result = result.fetchone()
if result is None:
- sql = "SELECT buildings_reference.{}_insert(%s, %s, %s)".format(dataset)
- db.execute(
+ if dataset in LDS_LAYER_HAS_NAME:
+ sql = "SELECT buildings_reference.{}_insert(%s, %s, %s)".format(
+ dataset
+ )
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature.attribute(external_id),
+ correct_name_format(feature["name"]),
+ feature.geometry().asWkt(),
+ ),
+ )
+ else:
+ sql = "SELECT buildings_reference.{}_insert(%s, %s)".format(dataset)
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature.attribute(external_id),
+ feature.geometry().asWkt(),
+ ),
+ )
+
+ elif feature.attribute("__change__") == "UPDATE":
+ if dataset in LDS_LAYER_HAS_NAME:
+ sql = "SELECT buildings_reference.{}_update_by_external_id(%s, %s, %s)".format(
+ dataset
+ )
+ dbconn.execute_no_commit(
sql,
(
feature.attribute(external_id),
correct_name_format(feature["name"]),
- feature.geometry().exportToWkt(),
+ feature.geometry().asWkt(),
+ ),
+ )
+ else:
+ sql = "SELECT buildings_reference.{}_update_shape_by_external_id(%s, %s)".format(
+ dataset
+ )
+ dbconn.execute_no_commit(
+ sql,
+ (
+ feature.attribute(external_id),
+ feature.geometry().asWkt(),
),
)
+ return "updated"
- elif feature.attribute("__change__") == "UPDATE":
- sql = "SELECT buildings_reference.{}_update_by_external_id(%s, %s, %s)".format(
- dataset
- )
- db.execute(
- sql,
- (
- feature.attribute(external_id),
- correct_name_format(feature["name"]),
- feature.geometry().exportToWkt(),
- ),
- )
+
+def update_coastlines_and_islands(kx_api_key, dataset, dbconn):
+ if dataset != "coastlines_and_islands":
+ return "error"
+ layer = QgsVectorLayer(
+ "https://data.linz.govt.nz/services;key={1}/wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=layer-{0}&outputFormat=json".format(
+ LDS_LAYER_IDS[dataset], kx_api_key
+ )
+ )
+ if not layer.isValid():
+ return "error"
+ # clear the table and insert all data via WFS
+ dbconn.execute_no_commit("DELETE FROM buildings_reference.coastlines_and_islands;")
+ for feature in layer.getFeatures():
+ sql = "INSERT INTO buildings_reference.coastlines_and_islands(external_coastline_and_island_id, shape) VALUES (%s, ST_SetSRID(ST_GeometryFromText(%s), 2193))"
+ dbconn.execute_no_commit(
+ sql, (feature["TARGET_FID"], feature.geometry().asWkt())
+ )
return "updated"
def correct_name_format(name):
- if name:
- if "'" in name:
- name = "{}".format(name.replace("'", "''"))
- else:
+ if not name:
name = ""
return str(name)
diff --git a/buildings/sql/buildings_reference_select_statements.py b/buildings/sql/buildings_reference_select_statements.py
index 1e03f8cc..9c1540e9 100644
--- a/buildings/sql/buildings_reference_select_statements.py
+++ b/buildings/sql/buildings_reference_select_statements.py
@@ -15,9 +15,8 @@
- suburb_locality
- suburb_locality_intersect_geom (geometry)
- - suburb_locality_name
- - suburb_locality_name_by_building_outline_id (building_outline_id)
- - suburb_locality_name_by_bulk_outline_id (bulk_load_outline_id)
+ - suburb_locality_town_city_by_building_outline_id (building_outline_id)
+ - suburb_locality_town_city_by_bulk_outline_id (bulk_load_outline_id)
- territorial_authority
- territorial_authority_intersect_geom (geometry)
@@ -94,36 +93,54 @@
WHERE external_{0}_points_id = %s;
"""
+# admin boundaries
+
+select_admin_bdy_id_by_external_id = """
+SELECT {0}_id
+FROM buildings_reference.{0}
+WHERE external_{0}_id = %s;
+"""
+
# suburb locality
suburb_locality_intersect_geom = """
-SELECT suburb_locality_id, name
+SELECT suburb_locality_id, suburb_locality, town_city
FROM buildings_reference.suburb_locality
WHERE shape && ST_Expand(%s::Geometry, 1000)
-ORDER BY name;
+ORDER BY suburb_locality;
"""
-suburb_locality_name = """
-SELECT DISTINCT name
-FROM buildings_reference.suburb_locality;
-"""
-
-suburb_locality_name_by_building_outline_id = """
-SELECT name
+suburb_locality_town_city_by_building_outline_id = """
+SELECT suburb_locality, town_city
FROM buildings_reference.suburb_locality sl,
buildings.building_outlines bo
WHERE sl.suburb_locality_id = bo.suburb_locality_id
AND bo.building_outline_id = %s;
"""
-suburb_locality_name_by_bulk_outline_id = """
-SELECT name
+suburb_locality_town_city_by_bulk_outline_id = """
+SELECT suburb_locality, town_city
FROM buildings_reference.suburb_locality sl,
buildings_bulk_load.bulk_load_outlines blo
WHERE sl.suburb_locality_id = blo.suburb_locality_id
AND blo.bulk_load_outline_id = %s;
"""
+suburb_locality_attribute_updates = """
+SELECT suburb_locality_id
+FROM buildings_reference.suburb_locality
+WHERE external_suburb_locality_id = %s
+AND NOT (suburb_locality = %s AND town_city = %s)
+"""
+
+suburb_locality_shape_updates = """
+SELECT ST_AsText(
+ ST_SymDifference(shape, ST_SetSRID(ST_GeometryFromText(%s), 2193), 0.001)
+ ) AS diff
+FROM buildings_reference.suburb_locality
+WHERE external_suburb_locality_id = %s
+"""
+
# territorial Authority
territorial_authority_intersect_geom = """
@@ -154,38 +171,23 @@
AND blo.bulk_load_outline_id = %s;
"""
-# territorial authority grid
-
-refresh_ta_grid_view = """
-REFRESH MATERIALIZED VIEW buildings_reference.territorial_authority_grid;
-"""
-
-# town city
-
-town_city_intersect_geometry = """
-SELECT town_city_id, name
-FROM buildings_reference.town_city
-WHERE ST_Intersects(shape, ST_Buffer(%s::Geometry, 1000))
-ORDER BY name
+territorial_authority_attribute_updates = """
+SELECT territorial_authority_id
+FROM buildings_reference.territorial_authority
+WHERE external_territorial_authority_id = %s
+AND NOT name = %s
"""
-town_city_name = """
-SELECT DISTINCT name
-FROM buildings_reference.town_city;
+territorial_authority_shape_updates = """
+SELECT ST_AsText(
+ ST_SymDifference(shape, ST_SetSRID(ST_GeometryFromText(%s), 2193), 0.001)
+ ) AS diff
+FROM buildings_reference.territorial_authority
+WHERE external_territorial_authority_id = %s
"""
-town_city_name_by_building_outline_id = """
-SELECT name
-FROM buildings_reference.town_city tc,
- buildings.building_outlines bo
-WHERE tc.town_city_id = bo.town_city_id
-AND bo.building_outline_id = %s;
-"""
+# territorial authority grid
-town_city_name_by_bulk_outline_id = """
-SELECT name
-FROM buildings_reference.town_city tc,
- buildings_bulk_load.bulk_load_outlines blo
-WHERE tc.town_city_id = blo.town_city_id
-AND blo.bulk_load_outline_id = %s;
+refresh_ta_grid_view = """
+REFRESH MATERIALIZED VIEW buildings_reference.territorial_authority_grid;
"""
diff --git a/buildings/tests/config.ini b/buildings/tests/config.ini
index 5e730085..da207457 100644
--- a/buildings/tests/config.ini
+++ b/buildings/tests/config.ini
@@ -7,3 +7,7 @@ password = buildings
[logging]
logfile = ~/buildings.log
+
+[api]
+linz =
+statsnz =
\ No newline at end of file
diff --git a/buildings/tests/gui/test_processes_add_bulk_load.py b/buildings/tests/gui/test_processes_add_bulk_load.py
index 16d82f05..162c86b4 100644
--- a/buildings/tests/gui/test_processes_add_bulk_load.py
+++ b/buildings/tests/gui/test_processes_add_bulk_load.py
@@ -83,7 +83,7 @@ def test_ui_on_geometry_drawn(self):
self.assertTrue(self.edit_dialog.cmb_capture_method.isEnabled())
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEquals(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
self.assertEquals(self.edit_dialog.cmb_capture_source.currentText(), "1- Imagery One- NZ Aerial Imagery")
@@ -117,7 +117,7 @@ def test_draw_circle_option(self):
self.assertTrue(self.edit_dialog.cmb_capture_method.isEnabled())
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEquals(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
@@ -149,7 +149,7 @@ def test_reset_clicked(self):
self.assertTrue(self.edit_dialog.cmb_capture_method.isEnabled())
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEquals(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
@@ -157,7 +157,6 @@ def test_reset_clicked(self):
self.edit_dialog.cmb_capture_method.setCurrentIndex(1)
self.edit_dialog.cmb_capture_source.setCurrentIndex(0)
self.edit_dialog.cmb_ta.setCurrentIndex(1)
- self.edit_dialog.cmb_town.setCurrentIndex(0)
self.edit_dialog.cmb_suburb.setCurrentIndex(1)
# click reset button
self.edit_dialog.btn_edit_reset.click()
@@ -211,13 +210,12 @@ def test_new_outline_insert(self):
self.assertTrue(self.edit_dialog.cmb_capture_method.isEnabled())
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEquals(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
# change indexes of comboboxes
self.edit_dialog.cmb_capture_source.setCurrentIndex(0)
self.edit_dialog.cmb_ta.setCurrentIndex(0)
- self.edit_dialog.cmb_town.setCurrentIndex(0)
self.edit_dialog.cmb_suburb.setCurrentIndex(0)
self.edit_dialog.change_instance.edit_save_clicked(False)
sql = "SELECT COUNT(bulk_load_outline_id) FROM buildings_bulk_load.bulk_load_outlines;"
diff --git a/buildings/tests/gui/test_processes_add_production.py b/buildings/tests/gui/test_processes_add_production.py
index 4d3646cc..f5ffc3fc 100644
--- a/buildings/tests/gui/test_processes_add_production.py
+++ b/buildings/tests/gui/test_processes_add_production.py
@@ -87,7 +87,7 @@ def test_ui_on_geometry_drawn(self):
self.assertTrue(self.edit_dialog.cmb_capture_method.isEnabled())
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertEqual(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
@@ -123,7 +123,7 @@ def test_draw_circle_option(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
@@ -154,7 +154,7 @@ def test_reset_clicked(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
@@ -162,7 +162,6 @@ def test_reset_clicked(self):
self.edit_dialog.cmb_capture_method.setCurrentIndex(1)
self.edit_dialog.cmb_capture_source.setCurrentIndex(0)
self.edit_dialog.cmb_ta.setCurrentIndex(1)
- self.edit_dialog.cmb_town.setCurrentIndex(0)
self.edit_dialog.cmb_suburb.setCurrentIndex(1)
self.edit_dialog.cmb_lifecycle_stage.setCurrentIndex(2)
# click reset button
@@ -216,7 +215,7 @@ def test_new_outline_insert(self):
self.assertTrue(self.edit_dialog.cmb_capture_method.isEnabled())
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertEqual(self.edit_dialog.cmb_capture_method.currentText(), "Trace Orthophotography")
@@ -225,7 +224,6 @@ def test_new_outline_insert(self):
self.edit_dialog.cmb_capture_source.setCurrentIndex(0)
self.edit_dialog.cmb_lifecycle_stage.setCurrentIndex(2)
self.edit_dialog.cmb_ta.setCurrentIndex(0)
- self.edit_dialog.cmb_town.setCurrentIndex(0)
self.edit_dialog.cmb_suburb.setCurrentIndex(0)
self.edit_dialog.change_instance.edit_save_clicked(False)
sql = "SELECT COUNT(building_outline_id) FROM buildings.building_outlines;"
diff --git a/buildings/tests/gui/test_processes_comparison.py b/buildings/tests/gui/test_processes_comparison.py
index f13df543..f471e9d5 100644
--- a/buildings/tests/gui/test_processes_comparison.py
+++ b/buildings/tests/gui/test_processes_comparison.py
@@ -158,7 +158,7 @@ def test_outline_add_during_qa(self):
result = db._execute(sql)
supplied_dataset_id = result.fetchall()[0][0]
# Add one outline in both bulk_load_outlines and added table
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s);"
result = db._execute(
sql,
(
@@ -168,7 +168,6 @@ def test_outline_add_during_qa(self):
1,
1001,
101,
- 1001,
10001,
"0103000020910800000100000005000000EA7ABCBF6AA83C414C38B255343155417C46175878A83C413A28764134315541C18607A978A83C417A865C33323155412FBBAC106BA83C417A865C3332315541EA7ABCBF6AA83C414C38B25534315541",
),
diff --git a/buildings/tests/gui/test_processes_comparison_not_intersect.py b/buildings/tests/gui/test_processes_comparison_not_intersect.py
index 1beedf49..de929244 100644
--- a/buildings/tests/gui/test_processes_comparison_not_intersect.py
+++ b/buildings/tests/gui/test_processes_comparison_not_intersect.py
@@ -165,7 +165,7 @@ def test_add_during_qa(self):
result = db._execute(sql)
result = result.fetchall()[0][0]
# Add one outline in both bulk_load_outlines and added table
- sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s, %s);"
+ sql = "SELECT buildings_bulk_load.bulk_load_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s);"
result = db._execute(
sql,
(
@@ -175,7 +175,6 @@ def test_add_during_qa(self):
1,
1001,
104,
- 1004,
10001,
"0103000020910800000100000005000000F311221BB7AA3C41046171A564315541D2712DB1CCAA3C41046171A56431554115066169CDAA3C41E20FFCA060315541751FEF95B7AA3C414353AFBF60315541F311221BB7AA3C41046171A564315541",
),
diff --git a/buildings/tests/gui/test_processes_edit_attribute_bulk_load.py b/buildings/tests/gui/test_processes_edit_attribute_bulk_load.py
index 22433b3d..162d0cae 100644
--- a/buildings/tests/gui/test_processes_edit_attribute_bulk_load.py
+++ b/buildings/tests/gui/test_processes_edit_attribute_bulk_load.py
@@ -108,7 +108,7 @@ def test_ui_on_geom_selected(self):
self.assertFalse(self.edit_dialog.le_deletion_reason.isEnabled())
self.assertEqual(self.edit_dialog.le_deletion_reason.text(), "")
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_status.currentText(), "Supplied")
@@ -123,6 +123,10 @@ def test_ui_on_geom_selected(self):
self.assertEqual(self.edit_dialog.cmb_town.currentText(), "Wellington")
self.assertEqual(self.edit_dialog.cmb_suburb.currentText(), "Aro Valley")
+ # test cmb_suburb trigger function in edit_dialog.py
+ self.edit_dialog.cmb_suburb.setCurrentIndex(self.edit_dialog.cmb_suburb.findText("Hokowhitu"))
+ self.assertEqual(self.edit_dialog.cmb_town.currentText(), "Palmerston North")
+
def test_select_geom_before_edit(self):
"""UI and Canvas behave correctly when geometry is selected before edits button clicked"""
self.bulk_load_frame.edit_dialog.close()
@@ -158,7 +162,7 @@ def test_select_geom_before_edit(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_status.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_status.currentText(), "Supplied")
@@ -233,7 +237,7 @@ def test_select_multiple_geom_before_edit(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_status.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_status.currentText(), "Supplied")
self.assertEqual(
@@ -388,14 +392,11 @@ def test_save_clicked(self):
self.edit_dialog.cmb_ta.setCurrentIndex(
self.edit_dialog.cmb_ta.findText("Manawatu-Whanganui")
)
- self.edit_dialog.cmb_town.setCurrentIndex(
- self.edit_dialog.cmb_town.findText("Palmerston North")
- )
self.edit_dialog.cmb_suburb.setCurrentIndex(
self.edit_dialog.cmb_suburb.findText("Hokowhitu")
)
self.bulk_load_frame.change_instance.edit_save_clicked(False)
- sql = "SELECT bulk_load_status_id, capture_method_id, suburb_locality_id, town_city_id, territorial_authority_id FROM buildings_bulk_load.bulk_load_outlines WHERE bulk_load_outline_id = %s"
+ sql = "SELECT bulk_load_status_id, capture_method_id, suburb_locality_id, territorial_authority_id FROM buildings_bulk_load.bulk_load_outlines WHERE bulk_load_outline_id = %s"
result = db._execute(sql, (self.edit_dialog.bulk_load_outline_id,))
result = result.fetchall()[0]
# status
@@ -408,19 +409,15 @@ def test_save_clicked(self):
capture_method = db._execute(sql, (result[1],))
capture_method = capture_method.fetchall()[0][0]
self.assertEqual("Unknown", capture_method)
- # suburb
- sql = "SELECT name FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
+ # suburb/town
+ sql = "SELECT suburb_locality, town_city FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
suburb = db._execute(sql, (result[2],))
- suburb = suburb.fetchall()[0][0]
+ suburb, town = suburb.fetchall()[0]
self.assertEqual("Hokowhitu", suburb)
- # town
- sql = "SELECT name FROM buildings_reference.town_city WHERE town_city_id = %s;"
- town_city = db._execute(sql, (result[3],))
- town_city = town_city.fetchall()[0][0]
- self.assertEqual("Palmerston North", town_city)
+ self.assertEqual("Palmerston North", town)
# territorial Authority
sql = "SELECT name FROM buildings_reference.territorial_authority WHERE territorial_authority_id = %s;"
- territorial_authority = db._execute(sql, (result[4],))
+ territorial_authority = db._execute(sql, (result[3],))
territorial_authority = territorial_authority.fetchall()[0][0]
self.assertEqual("Manawatu-Whanganui", territorial_authority)
@@ -493,15 +490,12 @@ def test_edit_mutiple_attributes(self):
self.edit_dialog.cmb_ta.setCurrentIndex(
self.edit_dialog.cmb_ta.findText("Manawatu-Whanganui")
)
- self.edit_dialog.cmb_town.setCurrentIndex(
- self.edit_dialog.cmb_town.findText("Palmerston North")
- )
self.edit_dialog.cmb_suburb.setCurrentIndex(
self.edit_dialog.cmb_suburb.findText("Hokowhitu")
)
self.bulk_load_frame.change_instance.edit_save_clicked(False)
for i in self.edit_dialog.ids:
- sql = "SELECT bulk_load_status_id, capture_method_id, suburb_locality_id, town_city_id, territorial_authority_id FROM buildings_bulk_load.bulk_load_outlines WHERE bulk_load_outline_id = %s;"
+ sql = "SELECT bulk_load_status_id, capture_method_id, suburb_locality_id, territorial_authority_id FROM buildings_bulk_load.bulk_load_outlines WHERE bulk_load_outline_id = %s;"
result = db._execute(sql, (i,))
result = result.fetchall()[0]
# status
@@ -514,16 +508,12 @@ def test_edit_mutiple_attributes(self):
capture_method = db._execute(sql, (result[1],))
capture_method = capture_method.fetchall()[0][0]
self.assertEqual("Unknown", capture_method)
- # suburb
- sql = "SELECT name FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
+ # suburb/town
+ sql = "SELECT suburb_locality, town_city FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
suburb = db._execute(sql, (result[2],))
- suburb = suburb.fetchall()[0][0]
+ suburb, town = suburb.fetchall()[0]
self.assertEqual("Hokowhitu", suburb)
- # town
- sql = "SELECT name FROM buildings_reference.town_city WHERE town_city_id = %s;"
- town_city = db._execute(sql, (result[3],))
- town_city = town_city.fetchall()[0][0]
- self.assertEqual("Palmerston North", town_city)
+ self.assertEqual("Palmerston North", town)
# territorial Authority
sql = "SELECT name FROM buildings_reference.territorial_authority WHERE territorial_authority_id = %s;"
territorial_authority = db._execute(sql, (result[4],))
diff --git a/buildings/tests/gui/test_processes_edit_attribute_production.py b/buildings/tests/gui/test_processes_edit_attribute_production.py
index b63c2ea7..42e4e885 100644
--- a/buildings/tests/gui/test_processes_edit_attribute_production.py
+++ b/buildings/tests/gui/test_processes_edit_attribute_production.py
@@ -88,7 +88,7 @@ def test_ui_on_geom_selected(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_lifecycle_stage.currentText(), "Current")
@@ -178,16 +178,13 @@ def test_save_clicked(self):
self.edit_dialog.cmb_ta.setCurrentIndex(
self.edit_dialog.cmb_ta.findText("Manawatu-Whanganui")
)
- self.edit_dialog.cmb_town.setCurrentIndex(
- self.edit_dialog.cmb_town.findText("Palmerston North")
- )
self.edit_dialog.cmb_suburb.setCurrentIndex(
self.edit_dialog.cmb_suburb.findText("Hokowhitu")
)
self.edit_dialog.change_instance.edit_save_clicked(False)
- sql = "SELECT lifecycle_stage_id, capture_method_id, suburb_locality_id, town_city_id, territorial_authority_id FROM buildings.building_outlines WHERE building_outline_id = %s"
+ sql = "SELECT lifecycle_stage_id, capture_method_id, suburb_locality_id, territorial_authority_id FROM buildings.building_outlines WHERE building_outline_id = %s"
result = db._execute(sql, (self.edit_dialog.building_outline_id,))
result = result.fetchall()[0]
# lifecycle_stage
@@ -202,19 +199,15 @@ def test_save_clicked(self):
capture_method = db._execute(sql, (result[1],))
capture_method = capture_method.fetchall()[0][0]
self.assertEqual("Unknown", capture_method)
- # suburb
- sql = "SELECT name FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
+ # suburb/town
+ sql = "SELECT suburb_locality, town_city FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
suburb = db._execute(sql, (result[2],))
- suburb = suburb.fetchall()[0][0]
+ suburb, town = suburb.fetchall()[0]
self.assertEqual("Hokowhitu", suburb)
- # town
- sql = "SELECT name FROM buildings_reference.town_city WHERE town_city_id = %s;"
- town_city = db._execute(sql, (result[3],))
- town_city = town_city.fetchall()[0][0]
- self.assertEqual("Palmerston North", town_city)
+ self.assertEqual("Palmerston North", town)
# territorial Authority
sql = "SELECT name FROM buildings_reference.territorial_authority WHERE territorial_authority_id = %s;"
- territorial_authority = db._execute(sql, (result[4],))
+ territorial_authority = db._execute(sql, (result[3],))
territorial_authority = territorial_authority.fetchall()[0][0]
self.assertEqual("Manawatu-Whanganui", territorial_authority)
@@ -287,9 +280,6 @@ def test_edit_mutiple_attributes(self):
self.edit_dialog.cmb_ta.setCurrentIndex(
self.edit_dialog.cmb_ta.findText("Manawatu-Whanganui")
)
- self.edit_dialog.cmb_town.setCurrentIndex(
- self.edit_dialog.cmb_town.findText("Palmerston North")
- )
self.edit_dialog.cmb_suburb.setCurrentIndex(
self.edit_dialog.cmb_suburb.findText("Hokowhitu")
)
@@ -297,7 +287,7 @@ def test_edit_mutiple_attributes(self):
self.edit_dialog.change_instance.edit_save_clicked(False)
for i in self.edit_dialog.ids:
- sql = "SELECT lifecycle_stage_id, capture_method_id, suburb_locality_id, town_city_id, territorial_authority_id FROM buildings.building_outlines WHERE building_outline_id = %s;"
+ sql = "SELECT lifecycle_stage_id, capture_method_id, suburb_locality_id, territorial_authority_id FROM buildings.building_outlines WHERE building_outline_id = %s;"
result = db._execute(sql, (i,))
result = result.fetchall()[0]
# lifecycle_stage
@@ -310,19 +300,15 @@ def test_edit_mutiple_attributes(self):
capture_method = db._execute(sql, (result[1],))
capture_method = capture_method.fetchall()[0][0]
self.assertEqual("Unknown", capture_method)
- # suburb
- sql = "SELECT name FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
+ # suburb/town
+ sql = "SELECT suburb_locality, town_city FROM buildings_reference.suburb_locality WHERE suburb_locality_id = %s;"
suburb = db._execute(sql, (result[2],))
- suburb = suburb.fetchall()[0][0]
+ suburb, town = suburb.fetchall()[0]
self.assertEqual("Hokowhitu", suburb)
- # town
- sql = "SELECT name FROM buildings_reference.town_city WHERE town_city_id = %s;"
- town_city = db._execute(sql, (result[3],))
- town_city = town_city.fetchall()[0][0]
- self.assertEqual("Palmerston North", town_city)
+ self.assertEqual("Palmerston North", town)
# territorial Authority
sql = "SELECT name FROM buildings_reference.territorial_authority WHERE territorial_authority_id = %s;"
- territorial_authority = db._execute(sql, (result[4],))
+ territorial_authority = db._execute(sql, (result[3],))
territorial_authority = territorial_authority.fetchall()[0][0]
self.assertEqual("Manawatu-Whanganui", territorial_authority)
self.assertEqual(len(self.edit_dialog.ids), 4)
@@ -446,7 +432,7 @@ def test_select_geom_before_edit(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_lifecycle_stage.currentText(), "Current")
@@ -521,7 +507,7 @@ def test_select_multiple_geom_before_edit(self):
self.assertTrue(self.edit_dialog.cmb_capture_source.isEnabled())
self.assertTrue(self.edit_dialog.cmb_lifecycle_stage.isEnabled())
self.assertTrue(self.edit_dialog.cmb_ta.isEnabled())
- self.assertTrue(self.edit_dialog.cmb_town.isEnabled())
+ self.assertFalse(self.edit_dialog.cmb_town.isEnabled())
self.assertTrue(self.edit_dialog.cmb_suburb.isEnabled())
self.assertEqual(self.edit_dialog.cmb_lifecycle_stage.currentText(), "Current")
@@ -715,9 +701,6 @@ def test_modified_date_on_save(self):
self.edit_dialog.cmb_ta.setCurrentIndex(
self.edit_dialog.cmb_ta.findText("Manawatu-Whanganui")
)
- self.edit_dialog.cmb_town.setCurrentIndex(
- self.edit_dialog.cmb_town.findText("Palmerston North")
- )
self.edit_dialog.cmb_suburb.setCurrentIndex(
self.edit_dialog.cmb_suburb.findText("Hokowhitu")
)
diff --git a/buildings/tests/gui/test_processes_update_reference_data_admin_bdys.py b/buildings/tests/gui/test_processes_update_reference_data_admin_bdys.py
deleted file mode 100644
index 69aec1f5..00000000
--- a/buildings/tests/gui/test_processes_update_reference_data_admin_bdys.py
+++ /dev/null
@@ -1,212 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-################################################################################
-#
-# Copyright 2018 Crown copyright (c)
-# Land Information New Zealand and the New Zealand Government.
-# All rights reserved
-#
-# This program is released under the terms of the 3 clause BSD license. See the
-# LICENSE file for more information.
-#
-################################################################################
-
- Tests: Reference Data GUI setup confirm default settings
-
- ***************************************************************************/
-"""
-
-import unittest
-
-from qgis.PyQt.QtCore import Qt, QTimer
-from qgis.PyQt.QtWidgets import QMessageBox
-from qgis.utils import plugins
-
-from buildings.utilities import database as db
-
-
-class SetUpReferenceData(unittest.TestCase):
- """Test Reference Data GUI initial setup confirm default settings"""
-
- def setUp(self):
- """Runs before each test."""
- self.building_plugin = plugins.get("buildings")
- self.building_plugin.main_toolbar.actions()[0].trigger()
- self.dockwidget = self.building_plugin.dockwidget
- sub_menu = self.dockwidget.lst_sub_menu
- sub_menu.setCurrentItem(sub_menu.findItems("Reference Data", Qt.MatchExactly)[0])
- self.reference_frame = self.dockwidget.current_frame
-
- def tearDown(self):
- """Runs after each test."""
- self.reference_frame.db.rollback_open_cursor()
- self.reference_frame.btn_exit.click()
-
- # Commented out as this was failing, but it was uncleear why, and seemed
- # plausibly to do with incorrect test data rather than any actual code error
- # proper. Should be more fulsomely investigated in future.
- # def test_suburb_locality_table_update(self):
- # """Check buildings_reference.suburb_locality table updates correctly."""
- # # insert building outline to check for deleted suburb id
- # if self.reference_frame.db._open_cursor is None:
- # self.reference_frame.db.open_cursor()
- # insert_building = "SELECT buildings.buildings_insert();"
- # insert_building_outline = "SELECT buildings.building_outlines_insert(%s, %s, %s, %s, %s, %s, %s, %s);"
- # result = self.reference_frame.db.execute_no_commit(insert_building)
- # building_id = result.fetchone()[0]
- # result = self.reference_frame.db.execute_no_commit(
- # insert_building_outline,
- # (
- # building_id,
- # 11,
- # 1002,
- # 1,
- # 101,
- # 1002,
- # 10002,
- # "010300002091080000010000000500000054A0D29477AA3C4194E310ED71315541D10AA5B679AA3C415417E8DD643155410DA2D440E3AA3C4104CAAD99643155414BD7BD51E4AA3C4171B36E867331554154A0D29477AA3C4194E310ED71315541",
- # ),
- # )
- # building_outline_id = result.fetchone()[0]
-
- # # run reference update
- # self.reference_frame.chbx_suburbs.setChecked(True)
-
- # btn_ok = self.reference_frame.msgbox.button(QMessageBox.Ok)
- # QTimer.singleShot(500, btn_ok.click)
-
- # self.reference_frame.update_clicked(commit_status=False)
-
- # # deleted suburb locality
- # sql_removed = "SELECT count(*)::integer FROM buildings_reference.suburb_locality WHERE external_suburb_locality_id = 104;"
- # result = db._execute(sql_removed)
- # count_removed = result.fetchone()[0]
- # self.assertEqual(count_removed, 0)
- # sql_building_in_removed_area = "SELECT suburb_locality_id from buildings.building_outlines WHERE building_outline_id = %s;"
- # result = db._execute(sql_building_in_removed_area, (building_outline_id,))
- # suburb_id_of_removed_building = result.fetchone()[0]
- # self.assertEqual(suburb_id_of_removed_building, 101)
-
- # # new suburb locality
- # sql_added = "SELECT count(*)::integer FROM buildings_reference.suburb_locality WHERE external_suburb_locality_id = 105;"
- # result = db._execute(sql_added)
- # count_added = result.fetchone()[0]
- # self.assertEqual(count_added, 1)
- # # updated suburb locality
- # sql_updated = "SELECT name FROM buildings_reference.suburb_locality WHERE external_suburb_locality_id = 101;"
- # result = db._execute(sql_updated)
- # name_updated = result.fetchone()[0]
- # self.assertEqual(name_updated, "Kelburn North")
- # # check last modified date
- # sql_date = "SELECT last_modified FROM buildings.building_outlines WHERE building_outline_id = 1021;"
- # modified_date = db._execute(sql_date)
- # modified_date = result.fetchone()[0]
- # self.assertNotEqual(modified_date, "NULL")
- # sql_date = "SELECT last_modified FROM buildings.building_outlines WHERE building_outline_id = 1022;"
- # modified_date = db._execute(sql_date)
- # modified_date = result.fetchone()[0]
- # self.assertIsNone(modified_date)
- # # check building_outlines
- # sql_bo = "SELECT count(DISTINCT suburb_locality_id)::integer FROM buildings.building_outlines;"
- # result = db._execute(sql_bo)
- # bo_suburb_update = result.fetchone()[0]
- # self.assertEqual(bo_suburb_update, 4)
- # sql_select_building_in_changed_region = "SELECT suburb_locality_id FROM buildings.building_outlines WHERE building_outline_id = 1005;"
- # result = db._execute(sql_select_building_in_changed_region)
- # suburb_id_bo_in_changed_region = result.fetchone()[0]
- # self.assertEqual(suburb_id_bo_in_changed_region, 103)
- # # check suburb locality only adds types locality, suburb, island, park_reserve
- # sql_added = (
- # "SELECT count(*)::integer FROM buildings_reference.suburb_locality WHERE external_suburb_locality_id = 106;"
- # )
- # result = db._execute(sql_added)
- # count_added = result.fetchone()[0]
- # self.assertEqual(count_added, 0)
- # # check suburb locality island with null suburb_4th is added
- # sql_added = (
- # "SELECT count(*)::integer FROM buildings_reference.suburb_locality WHERE external_suburb_locality_id = 108;"
- # )
- # result = db._execute(sql_added)
- # count_added = result.fetchone()[0]
- # self.assertEqual(count_added, 1)
-
- def test_town_city_table_update(self):
- """Check buildings_reference.town_city table updates correctly."""
- self.reference_frame.chbx_town.setChecked(True)
-
- btn_ok = self.reference_frame.msgbox.button(QMessageBox.Ok)
- QTimer.singleShot(500, btn_ok.click)
-
- self.reference_frame.update_clicked(commit_status=False)
-
- # deleted town city
- sql_removed = "SELECT count(*)::integer FROM buildings_reference.town_city WHERE external_city_id = 1002;"
- result = db._execute(sql_removed)
- count_removed = result.fetchone()[0]
- self.assertEqual(count_removed, 0)
- # new town city
- sql_added = "SELECT count(*)::integer FROM buildings_reference.town_city WHERE external_city_id = 1003;"
- result = db._execute(sql_added)
- count_added = result.fetchone()[0]
- self.assertEqual(count_added, 1)
- # updated town city
- sql_upated = "SELECT name FROM buildings_reference.town_city WHERE external_city_id = 1001;"
- result = db._execute(sql_upated)
- name_updated = result.fetchone()[0]
- self.assertEqual(name_updated, "Wellington City")
- # check bulk_load_outlines
- sql_blo = "SELECT count(DISTINCT town_city_id)::integer FROM buildings_bulk_load.bulk_load_outlines;"
- result = db._execute(sql_blo)
- blo_town_update = result.fetchone()[0]
- self.assertEqual(blo_town_update, 2)
- # check building_outlines
- sql_bo = "SELECT count(DISTINCT town_city_id)::integer FROM buildings.building_outlines;"
- result = db._execute(sql_bo)
- bo_town_update = result.fetchone()[0]
- self.assertEqual(bo_town_update, 2)
-
- def test_territorial_authority_table_update(self):
- """Check buildings_reference.territorial_authority table updates correctly"""
- self.reference_frame.chbx_ta.setChecked(True)
-
- btn_ok = self.reference_frame.msgbox.button(QMessageBox.Ok)
- QTimer.singleShot(500, btn_ok.click)
-
- self.reference_frame.update_clicked(commit_status=False)
-
- # deleted TA
- sql_removed = "SELECT count(*)::integer FROM buildings_reference.territorial_authority WHERE external_territorial_authority_id = 10002;"
- result = db._execute(sql_removed)
- count_removed = result.fetchone()[0]
- self.assertEqual(count_removed, 0)
- # added TA
- sql_added = "SELECT count(*)::integer FROM buildings_reference.territorial_authority WHERE external_territorial_authority_id = 10003;"
- result = db._execute(sql_added)
- count_added = result.fetchone()[0]
- self.assertEqual(count_added, 1)
- # Check TA Grid view has been refreshed
- sql_removed_grid = """
- SELECT count(*)::integer
- FROM buildings_reference.territorial_authority_grid
- WHERE external_territorial_authority_id = 10002;
- """
- result = db._execute(sql_removed_grid)
- count_removed_grid = result.fetchone()[0]
- self.assertEqual(count_removed_grid, 0)
- sql_added_grid = """
- SELECT count(*)::integer
- FROM buildings_reference.territorial_authority_grid
- WHERE external_territorial_authority_id = 10003;"""
- result = db._execute(sql_added_grid)
- count_added_grid = result.fetchone()[0]
- self.assertTrue(count_added_grid > 0)
- # check bulk_load_outlines
- sql_blo = "SELECT count(DISTINCT territorial_authority_id)::integer FROM buildings_bulk_load.bulk_load_outlines;"
- result = db._execute(sql_blo)
- blo_ta_update = result.fetchone()[0]
- self.assertEqual(blo_ta_update, 2)
- # check building_outlines
- sql_bo = "SELECT count(DISTINCT territorial_authority_id)::integer FROM buildings.building_outlines;"
- result = db._execute(sql_bo)
- bo_ta_update = result.fetchone()[0]
- self.assertEqual(bo_ta_update, 2)
diff --git a/buildings/tests/gui/test_setup_reference_data.py b/buildings/tests/gui/test_setup_reference_data.py
index 5d6a8d80..42679b72 100644
--- a/buildings/tests/gui/test_setup_reference_data.py
+++ b/buildings/tests/gui/test_setup_reference_data.py
@@ -43,9 +43,9 @@ def tearDown(self):
def test_disabled_on_start(self):
"""Test ui options disabled on opening as there is a current dataset"""
- self.assertFalse(self.reference_frame.le_key.isEnabled())
self.assertFalse(self.reference_frame.grbx_topo.isEnabled())
self.assertFalse(self.reference_frame.grbx_admin.isEnabled())
+ self.assertFalse(self.reference_frame.grbx_other.isEnabled())
self.assertFalse(self.reference_frame.chbx_canals.isEnabled())
self.assertFalse(self.reference_frame.chbx_lagoons.isEnabled())
self.assertFalse(self.reference_frame.chbx_lakes.isEnabled())
@@ -53,15 +53,10 @@ def test_disabled_on_start(self):
self.assertFalse(self.reference_frame.chbx_rivers.isEnabled())
self.assertFalse(self.reference_frame.chbx_swamps.isEnabled())
self.assertFalse(self.reference_frame.chbx_suburbs.isEnabled())
- self.assertFalse(self.reference_frame.chbx_town.isEnabled())
self.assertFalse(self.reference_frame.chbx_ta.isEnabled())
self.assertFalse(self.reference_frame.btn_update.isEnabled())
self.assertTrue(self.reference_frame.btn_exit.isEnabled())
-
- def test_lineedit_key(self):
- """Check line edit is in password mode to hide key"""
- self.reference_frame.le_key.setText("testing")
- self.assertEqual(self.reference_frame.le_key.echoMode(), QLineEdit.Password)
+ self.assertTrue(self.reference_frame.btn_status.isEnabled())
def test_groupbx_check(self):
"""Check changing of group boxes changes the correct checkboxes"""
@@ -73,7 +68,6 @@ def test_groupbx_check(self):
self.assertTrue(self.reference_frame.chbx_rivers.isChecked())
self.assertTrue(self.reference_frame.chbx_swamps.isChecked())
self.assertFalse(self.reference_frame.chbx_suburbs.isChecked())
- self.assertFalse(self.reference_frame.chbx_town.isChecked())
self.assertFalse(self.reference_frame.chbx_ta.isChecked())
self.reference_frame.grbx_topo.setChecked(False)
self.assertFalse(self.reference_frame.chbx_canals.isChecked())
@@ -84,7 +78,6 @@ def test_groupbx_check(self):
self.assertFalse(self.reference_frame.chbx_swamps.isChecked())
self.reference_frame.grbx_admin.setChecked(True)
self.assertTrue(self.reference_frame.chbx_suburbs.isChecked())
- self.assertTrue(self.reference_frame.chbx_town.isChecked())
self.assertTrue(self.reference_frame.chbx_ta.isChecked())
self.assertFalse(self.reference_frame.chbx_canals.isChecked())
self.assertFalse(self.reference_frame.chbx_lagoons.isChecked())
@@ -94,5 +87,16 @@ def test_groupbx_check(self):
self.assertFalse(self.reference_frame.chbx_swamps.isChecked())
self.reference_frame.grbx_admin.setChecked(False)
self.assertFalse(self.reference_frame.chbx_suburbs.isChecked())
- self.assertFalse(self.reference_frame.chbx_town.isChecked())
self.assertFalse(self.reference_frame.chbx_ta.isChecked())
+ self.reference_frame.grbx_other.setChecked(True)
+ self.assertTrue(self.reference_frame.chbx_imagery.isChecked())
+ self.assertFalse(self.reference_frame.chbx_suburbs.isChecked())
+ self.assertFalse(self.reference_frame.chbx_ta.isChecked())
+ self.assertFalse(self.reference_frame.chbx_canals.isChecked())
+ self.assertFalse(self.reference_frame.chbx_lagoons.isChecked())
+ self.assertFalse(self.reference_frame.chbx_lakes.isChecked())
+ self.assertFalse(self.reference_frame.chbx_ponds.isChecked())
+ self.assertFalse(self.reference_frame.chbx_rivers.isChecked())
+ self.assertFalse(self.reference_frame.chbx_swamps.isChecked())
+ self.reference_frame.grbx_other.setChecked(False)
+ self.assertFalse(self.reference_frame.chbx_imagery.isChecked())
diff --git a/buildings/utilities/config.py b/buildings/utilities/config.py
index 1ae7b088..6edc15f2 100644
--- a/buildings/utilities/config.py
+++ b/buildings/utilities/config.py
@@ -11,6 +11,7 @@
CONFIG_FILE_PATH = os.path.join(QgsApplication.qgisSettingsDirPath(), "buildings", "config.ini")
CONFIG_SCHEMA = {
"database": ["host", "port", "dbname", "user", "password"],
+ "api": ["linz", "statsnz"],
"logging": ["logfile"]
}
diff --git a/buildings/utilities/database.py b/buildings/utilities/database.py
index 53cd2164..0ccd8aae 100644
--- a/buildings/utilities/database.py
+++ b/buildings/utilities/database.py
@@ -34,7 +34,9 @@
_open_cursor = None
try:
- _conn = psycopg2.connect(host=_host, port=_port, database=_dbname, user=_user, password=_pw)
+ _conn = psycopg2.connect(
+ host=_host, port=_port, database=_dbname, user=_user, password=_pw
+ )
except psycopg2.DatabaseError as error:
_conn = None
buildings_warning("Database Error", str(error), "critical")
@@ -64,7 +66,9 @@ def connect():
"""Connect to DB"""
global _conn
try:
- _conn = psycopg2.connect(host=_host, port=_port, database=_dbname, user=_user, password=_pw)
+ _conn = psycopg2.connect(
+ host=_host, port=_port, database=_dbname, user=_user, password=_pw
+ )
except psycopg2.DatabaseError as error:
_conn = None
buildings_warning("Database Error", str(error), "critical")
@@ -118,7 +122,7 @@ def execute_return(sql, data=None):
def execute(sql, data=None):
- """ Execute an update or insert statement with no return
+ """Execute an update or insert statement with no return
@param sql: sql statement
@type sql: string
@@ -144,13 +148,13 @@ def execute_no_commit(sql, data=None):
except psycopg2.DatabaseError as error:
_conn.rollback()
buildings_warning("Database Error", str(error), "critical")
- return None
+ raise error
except psycopg2.InterfaceError as error:
# Raise the error
cursor.close()
_conn.rollback()
buildings_warning("Interface Error", str(error), "critical")
- return None
+ raise error
return cursor
@@ -171,7 +175,7 @@ def close_cursor():
def set_uri():
- """ Creates a QgsDataSourceUri with connection
+ """Creates a QgsDataSourceUri with connection
@return: QGIS URI object
@rtype: qgis.core.QgsDataSourceUri
diff --git a/db/sql/deploy/buildings/functions/building_outlines.sql b/db/sql/deploy/buildings/functions/building_outlines.sql
index 4c397b59..555becc5 100644
--- a/db/sql/deploy/buildings/functions/building_outlines.sql
+++ b/db/sql/deploy/buildings/functions/building_outlines.sql
@@ -2,13 +2,19 @@
BEGIN;
+DROP FUNCTION buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry);
+
+DROP FUNCTION buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer);
+
+DROP FUNCTION IF EXISTS buildings.building_outlines_update_town_city(integer[]);
+
--------------------------------------------
-- buildings.building_outlines
-- Functions:
-- building_outlines_insert (add new entry to building outlines table)
-- params: integer building_id, integer capture_method_id, integer capture_source_id
- -- integer lifecycle_stage_id, integer suburb_locality_id, integer town_city_id
+ -- integer lifecycle_stage_id, integer suburb_locality_id
-- integer territorial_authority_id, timestamp begin_lifespan, shape geometry
-- return: new building_outline_id
@@ -18,7 +24,7 @@ BEGIN;
-- building_outlines_update_attributes (update the attributes of specified outline)
-- params: integer building_outline_id, integer capture_method_id, integer lifecycle_stage_id,
- -- integer town_city_id, integer territorial_authority_id, timestamp begin_lifespan,
+ -- integer territorial_authority_id, timestamp begin_lifespan,
-- shape geometry
--return: number of outlines updated (should only be one)
@@ -46,17 +52,13 @@ BEGIN;
-- params: integer[] list of territorial_authorities buildings must be within
-- return: count(integer) number of outlines updated
--- building_outlines_update_town_city (Replace the town/city values with the intersection result)
- -- params: integer[] list of town_city_ids building must be within
- -- return: count(integer) number of outlines updated
-
--------------------------------------------
-- Functions
-- building_outlines_insert (add new entry to building outlines table)
-- params: integer building_id, integer capture_method_id, integer capture_source_id
- -- integer lifecycle_stage_id, integer suburb_locality_id, integer town_city_id
+ -- integer lifecycle_stage_id, integer suburb_locality_id
-- integer territorial_authority_id, timestamp begin_lifespan, shape geometry
-- return: new building_outline_id
@@ -66,7 +68,6 @@ CREATE OR REPLACE FUNCTION buildings.building_outlines_insert(
, p_capture_source_id integer
, p_lifecycle_stage_id integer
, p_suburb_locality_id integer
- , p_town_city_id integer
, p_territorial_authority_id integer
, p_shape geometry
)
@@ -80,7 +81,6 @@ $$
, capture_source_id
, lifecycle_stage_id
, suburb_locality_id
- , town_city_id
, territorial_authority_id
, begin_lifespan
, shape
@@ -92,7 +92,6 @@ $$
, p_capture_source_id
, p_lifecycle_stage_id
, p_suburb_locality_id
- , p_town_city_id
, p_territorial_authority_id
, DEFAULT
, p_shape
@@ -102,7 +101,7 @@ $$
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry) IS
+COMMENT ON FUNCTION buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, geometry) IS
'Insert new building outline into table';
@@ -120,7 +119,6 @@ $$
, supplied.capture_source_id
, 1
, supplied.suburb_locality_id
- , supplied.town_city_id
, supplied.territorial_authority_id
, supplied.shape
)
@@ -136,7 +134,7 @@ COMMENT ON FUNCTION buildings.building_outlines_insert_bulk(integer, integer) IS
-- building_outlines_update_attributes (update the attributes of specified outline)
-- params: integer building_outline_id, integer capture_method_id, integer lifecycle_stage_id,
- -- integer town_city_id, integer territorial_authority_id, timestamp begin_lifespan,
+ -- integer territorial_authority_id, timestamp begin_lifespan,
-- shape geometry
--return: number of outlines updated (should only be one)
@@ -146,7 +144,6 @@ CREATE OR REPLACE FUNCTION buildings.building_outlines_update_attributes(
, p_capture_source_id integer
, p_lifecycle_stage_id integer
, p_suburb_locality_id integer
- , p_town_city_id integer
, p_territorial_authority_id integer
)
RETURNS integer AS
@@ -159,8 +156,7 @@ $$
, capture_source_id = $3
, lifecycle_stage_id = $4
, suburb_locality_id = $5
- , town_city_id = $6
- , territorial_authority_id = $7
+ , territorial_authority_id = $6
WHERE building_outline_id = $1
RETURNING *
)
@@ -169,7 +165,7 @@ $$
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer) IS
+COMMENT ON FUNCTION buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer) IS
'Update attributes in building_outlines table';
@@ -318,33 +314,4 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings.building_outlines_update_territorial_authority(integer[]) IS
'Replace the TA values with the intersection result for all buildings in building_outlines';
--- building_outlines_update_town_city (Replace the town/city values with the intersection result)
- -- params: integer[] list of town_city_ids building must be within
- -- return: count(integer) number of outlines updated
-
-CREATE OR REPLACE FUNCTION buildings.building_outlines_update_town_city(integer[])
-RETURNS integer AS
-$$
-
- WITH update_town_city AS (
- UPDATE buildings.building_outlines outlines
- SET town_city_id = town_city_intersect.town_city_intersect_polygon
- FROM (
- SELECT
- buildings_reference.town_city_intersect_polygon(outlines.shape)
- , outlines.building_outline_id
- FROM buildings.building_outlines outlines
- ) town_city_intersect
- WHERE outlines.building_outline_id = town_city_intersect.building_outline_id
- AND town_city_id = ANY($1)
- RETURNING *
- )
- SELECT count(*)::integer FROM update_town_city;
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings.building_outlines_update_town_city(integer[]) IS
-'Replace the town/city values with the intersection result for all buildings in buildings.building_outlines';
-
COMMIT;
diff --git a/db/sql/deploy/buildings/functions/building_outlines@v4.0.0-dev1.sql b/db/sql/deploy/buildings/functions/building_outlines@v4.0.0-dev1.sql
new file mode 100644
index 00000000..4c397b59
--- /dev/null
+++ b/db/sql/deploy/buildings/functions/building_outlines@v4.0.0-dev1.sql
@@ -0,0 +1,350 @@
+-- Deploy nz-buildings:buildings/functions/building_outlines to pg
+
+BEGIN;
+
+--------------------------------------------
+-- buildings.building_outlines
+
+-- Functions:
+-- building_outlines_insert (add new entry to building outlines table)
+ -- params: integer building_id, integer capture_method_id, integer capture_source_id
+ -- integer lifecycle_stage_id, integer suburb_locality_id, integer town_city_id
+ -- integer territorial_authority_id, timestamp begin_lifespan, shape geometry
+ -- return: new building_outline_id
+
+-- building_outlines_insert_bulk (Create new added records in building outlines table)
+ -- params: integer building_outline_id, integer bulk_load_outline_id
+ -- return: building_outline_id
+
+-- building_outlines_update_attributes (update the attributes of specified outline)
+ -- params: integer building_outline_id, integer capture_method_id, integer lifecycle_stage_id,
+ -- integer town_city_id, integer territorial_authority_id, timestamp begin_lifespan,
+ -- shape geometry
+ --return: number of outlines updated (should only be one)
+
+-- building_outlines_update_capture_method (update capture method attribute)
+ -- params integer building_outline_id, integer capture_method_id
+ -- return: integer count number of outlines updated
+
+-- building_outlines_update_end_lifespan (update the end lifespan attr of an outline)
+ -- params: integer[]
+ -- return: count of outlines updated
+
+-- building_outlines_update_modified_date (update the modified date attr of building to now)
+ -- params: integer, building_outline_id
+ -- return: number of outlines updated
+
+-- building_outlines_update_modified_date_by_building_id (update the modified date attr of building to now)
+ -- params: integer, building_id
+ -- return: number of outlines updated
+
+-- building outlines_update_shape (update the geometry of specified outline)
+ -- params: shape to update to geometry, integer building_outline_id
+ --return: number of outlines updated (should only be one)
+
+-- building_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+-- building_outlines_update_town_city (Replace the town/city values with the intersection result)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+--------------------------------------------
+
+-- Functions
+
+-- building_outlines_insert (add new entry to building outlines table)
+ -- params: integer building_id, integer capture_method_id, integer capture_source_id
+ -- integer lifecycle_stage_id, integer suburb_locality_id, integer town_city_id
+ -- integer territorial_authority_id, timestamp begin_lifespan, shape geometry
+ -- return: new building_outline_id
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_insert(
+ p_building_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_lifecycle_stage_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+ , p_shape geometry
+)
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings.building_outlines(
+ building_outline_id
+ , building_id
+ , capture_method_id
+ , capture_source_id
+ , lifecycle_stage_id
+ , suburb_locality_id
+ , town_city_id
+ , territorial_authority_id
+ , begin_lifespan
+ , shape
+ )
+ VALUES (
+ DEFAULT -- sequence
+ , p_building_id
+ , p_capture_method_id
+ , p_capture_source_id
+ , p_lifecycle_stage_id
+ , p_suburb_locality_id
+ , p_town_city_id
+ , p_territorial_authority_id
+ , DEFAULT
+ , p_shape
+ )
+ RETURNING building_outline_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry) IS
+'Insert new building outline into table';
+
+
+-- building_outlines_insert_bulk (Create new added records in building outlines table)
+ -- params: integer building_outline_id, integer bulk_load_outline_id
+ -- return: building_outline_id
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_insert_bulk(integer, integer)
+RETURNS integer AS
+$$
+
+ SELECT buildings.building_outlines_insert (
+ $1
+ , supplied.capture_method_id
+ , supplied.capture_source_id
+ , 1
+ , supplied.suburb_locality_id
+ , supplied.town_city_id
+ , supplied.territorial_authority_id
+ , supplied.shape
+ )
+ FROM buildings_bulk_load.bulk_load_outlines supplied
+ WHERE supplied.bulk_load_outline_id = $2
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_insert_bulk(integer, integer) IS
+'Create new added records in building outlines table';
+
+
+-- building_outlines_update_attributes (update the attributes of specified outline)
+ -- params: integer building_outline_id, integer capture_method_id, integer lifecycle_stage_id,
+ -- integer town_city_id, integer territorial_authority_id, timestamp begin_lifespan,
+ -- shape geometry
+ --return: number of outlines updated (should only be one)
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_attributes(
+ p_building_outline_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_lifecycle_stage_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_attributes AS (
+ UPDATE buildings.building_outlines
+ SET
+ capture_method_id = $2
+ , capture_source_id = $3
+ , lifecycle_stage_id = $4
+ , suburb_locality_id = $5
+ , town_city_id = $6
+ , territorial_authority_id = $7
+ WHERE building_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_attributes;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer) IS
+'Update attributes in building_outlines table';
+
+
+-- building_outlines_update_capture_method (update capture method attribute)
+ -- params integer building_outline_id, integer capture_method_id
+ -- return: integer count number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_capture_method(
+ p_building_outline_id integer
+ , p_capture_method_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_capture_method AS(
+ UPDATE buildings.building_outlines
+ SET capture_method_id = $2
+ WHERE building_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_capture_method;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_capture_method(integer, integer) IS
+'Update capture method in building_outlines table';
+
+
+-- building_outlines_update_end_lifespan (update the end lifespan attr of an outline)
+ -- params: integer[]
+ -- return: count of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_end_lifespan(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_building_outlines AS (
+ UPDATE buildings.building_outlines
+ SET end_lifespan = now()
+ WHERE building_outline_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_building_outlines;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_end_lifespan(integer[]) IS
+'Update end_lifespan in building outlines table';
+
+-- building_outlines_update_modified_date (update the modified date attr of building to now)
+ -- params: integer, building_outline_id
+ -- return: number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_modified_date(integer)
+ RETURNS integer AS
+$$
+ WITH update_buildings AS (
+ UPDATE buildings.building_outlines
+ SET last_modified = now()
+ WHERE building_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_buildings;
+
+$$ LANGUAGE sql;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_modified_date(integer) IS
+'Update modified_date of outline in building_outlines table';
+
+
+-- building_outlines_update_modified_date_by_building_id (update the modified date attr of building to now)
+ -- params: integer, building_id
+ -- return: number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_modified_date_by_building_id(integer)
+ RETURNS integer AS
+$$
+ WITH update_buildings AS (
+ UPDATE buildings.building_outlines
+ SET last_modified = now()
+ WHERE building_outline_id in (
+ SELECT building_outline_id
+ FROM buildings.building_outlines
+ WHERE building_id = $1
+ AND end_lifespan is NULL
+ )
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_buildings;
+
+$$ LANGUAGE sql;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_modified_date_by_building_id(integer) IS
+'Update modified_date of outline in building_outlines table by building_id';
+
+-- building outlines_update_shape (update the geometry of specified outline)
+ -- params: shape to update to geometry, integer building_outline_id
+ -- return: number of outlines updated (should only be one)
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_shape(geometry, integer)
+RETURNS integer AS
+$$
+
+ WITH update_buildings AS (
+ UPDATE buildings.building_outlines
+ SET shape = $1
+ WHERE building_outline_id = $2
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_buildings;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_shape(geometry, integer) IS
+'Update shape in building_outlines table';
+
+-- building_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_territorial_authority(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_territorial_auth AS (
+ UPDATE buildings.building_outlines outlines
+ SET territorial_authority_id = territorial_authority_intersect.territorial_authority_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.territorial_authority_intersect_polygon(outlines.shape)
+ , outlines.building_outline_id
+ FROM buildings.building_outlines outlines
+ ) territorial_authority_intersect
+ WHERE outlines.building_outline_id = territorial_authority_intersect.building_outline_id
+ AND territorial_authority_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_territorial_auth;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_territorial_authority(integer[]) IS
+'Replace the TA values with the intersection result for all buildings in building_outlines';
+
+-- building_outlines_update_town_city (Replace the town/city values with the intersection result)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_town_city(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_town_city AS (
+ UPDATE buildings.building_outlines outlines
+ SET town_city_id = town_city_intersect.town_city_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.town_city_intersect_polygon(outlines.shape)
+ , outlines.building_outline_id
+ FROM buildings.building_outlines outlines
+ ) town_city_intersect
+ WHERE outlines.building_outline_id = town_city_intersect.building_outline_id
+ AND town_city_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_town_city;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_town_city(integer[]) IS
+'Replace the town/city values with the intersection result for all buildings in buildings.building_outlines';
+
+COMMIT;
diff --git a/db/sql/deploy/buildings/remove_building_outlines_ta_not_null_constraint.sql b/db/sql/deploy/buildings/remove_building_outlines_ta_not_null_constraint.sql
new file mode 100644
index 00000000..cedf6fb6
--- /dev/null
+++ b/db/sql/deploy/buildings/remove_building_outlines_ta_not_null_constraint.sql
@@ -0,0 +1,8 @@
+-- Deploy nz-buildings:buildings/remove_building_outlines_ta_not_null_constraint to pg
+
+BEGIN;
+
+ALTER TABLE buildings.building_outlines
+ALTER COLUMN territorial_authority_id DROP NOT NULL;
+
+COMMIT;
diff --git a/db/sql/deploy/buildings/remove_building_outlines_town_city_id_column.sql b/db/sql/deploy/buildings/remove_building_outlines_town_city_id_column.sql
new file mode 100644
index 00000000..25483918
--- /dev/null
+++ b/db/sql/deploy/buildings/remove_building_outlines_town_city_id_column.sql
@@ -0,0 +1,8 @@
+-- Deploy nz-buildings:buildings/remove_building_outlines_town_city_id_column to pg
+
+BEGIN;
+
+ALTER TABLE buildings.building_outlines
+DROP COLUMN town_city_id;
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines.sql b/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines.sql
index e7ca5597..09e54d5c 100644
--- a/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines.sql
+++ b/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines.sql
@@ -2,6 +2,12 @@
BEGIN;
+
+DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, integer, geometry);
+DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer);
+DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_update_town_city(integer);
+DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[]);
+
--------------------------------------------
-- buildings_bulk_load.bulk_load_outlines
@@ -11,7 +17,7 @@ BEGIN;
-- params: integer supplied_dataset_id, integer external_outline_id
-- integer external_outline_id, integer bulk_load_status_id
-- integer capture_method_id, integer suburb_locality_id
- -- integer town_city_id, integer territorial_authority_id,
+ -- integer territorial_authority_id,
-- geometry shape
-- return: integer new bulk_load_outline_id
@@ -27,7 +33,7 @@ BEGIN;
-- bulk_load_outlines_update_attributes (update the attributes of an outlines)
-- params: integer bulk_load_outline_id, integer bulk_load_status_id, integer
-- capture_method_id, integer capture_source_id, integer suburb_locality_id
- -- integer town_city_id, integer territorial_authority_id, geometry shape
+ -- integer territorial_authority_id, geometry shape
-- return: count of number of outlines updated
-- bulk_load_outlines_update_bulk_load_status (Update bulk load status in bulk_load_outlines table)
@@ -54,14 +60,6 @@ BEGIN;
-- params: integer[] list of territorial_authorities buildings must be within
-- return: count(integer) number of outlines updated
--- bulk_load_outlines_update_town_city (Replace the town/city values with the intersection)
- -- params: integer supplied_dataset_id
- -- return: count(integer) number of outlines updated
-
--- bulk_load_outlines_update_all_town_cities (Replace the town/city values with the intersection)
- -- params: integer[] list of town_city_ids building must be within
- -- return: count(integer) number of outlines updated
-
--------------------------------------------
-- Functions
@@ -70,7 +68,7 @@ BEGIN;
-- params: integer supplied_dataset_id, integer external_outline_id
-- integer external_outline_id, integer bulk_load_status_id
-- integer capture_method_id, integer suburb_locality_id
- -- integer town_city_id, integer territorial_authority_id
+ -- integer territorial_authority_id
-- geometry shape
-- return: integer new bulk_load_outline_id
@@ -81,7 +79,6 @@ CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_insert(
, p_capture_method_id integer
, p_capture_source_id integer
, p_suburb_locality_id integer
- , p_town_city_id integer
, p_territorial_authority_id integer
, p_shape geometry
)
@@ -96,7 +93,6 @@ $$
, capture_method_id
, capture_source_id
, suburb_locality_id
- , town_city_id
, territorial_authority_id
, begin_lifespan
, shape
@@ -109,7 +105,6 @@ $$
, p_capture_method_id
, p_capture_source_id
, p_suburb_locality_id
- , p_town_city_id
, p_territorial_authority_id
, now()
, p_shape
@@ -119,7 +114,7 @@ $$
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, integer, geometry) IS
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry) IS
'Insert new bulk load outline';
-- bulk_load_outlines_insert_supplied (insert supplied outlines into bulk_load_outlines)
@@ -144,7 +139,6 @@ $$
, capture_method_id
, capture_source_id
, suburb_locality_id
- , town_city_id
, territorial_authority_id
, begin_lifespan
, shape
@@ -156,7 +150,6 @@ $$
, p_capture_method_id
, p_capture_source_id
, buildings_reference.suburb_locality_intersect_polygon(shape)
- , buildings_reference.town_city_intersect_polygon(shape)
, buildings_reference.territorial_authority_grid_intersect_polygon(shape)
, now()
, shape
@@ -203,7 +196,7 @@ COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_remove_small_building
-- bulk_load_outlines_update_attributes (update the attributes of an outlines)
-- params: integer bulk_load_outline_id, integer bulk_load_status_id, integer
-- capture_method_id, integer capture_source_id, integer suburb_locality_id
- -- integer town_city_id, integer territorial_authority_id, geometry shape
+ -- integer territorial_authority_id, geometry shape
-- return: count of number of outlines updated
CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(
@@ -212,7 +205,6 @@ CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_attribu
, p_capture_method_id integer
, p_capture_source_id integer
, p_suburb_locality_id integer
- , p_town_city_id integer
, p_territorial_authority_id integer
)
RETURNS integer AS
@@ -225,8 +217,7 @@ $$
, capture_method_id = $3
, capture_source_id = $4
, suburb_locality_id = $5
- , town_city_id = $6
- , territorial_authority_id = $7
+ , territorial_authority_id = $6
WHERE bulk_load_outline_id = $1
RETURNING *
)
@@ -235,7 +226,7 @@ $$
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer) IS
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer) IS
'Update attributes in bulk_load_outlines table';
-- bulk_load_outlines_update_bulk_load_status (Update bulk load status in bulk_load_outlines table)
@@ -397,62 +388,4 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[]) IS
'Replace the TA values with the intersection result for all buildings in bulk_load_outlines';
--- bulk_load_outlines_update_town_city (Replace the town/city values with the intersection)
- -- params: integer supplied_dataset_id
- -- return: count(integer) number of outlines updated
-
-CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_town_city(integer)
-RETURNS integer AS
-$$
-
- WITH update_town_city AS (
- UPDATE buildings_bulk_load.bulk_load_outlines outlines
- SET town_city_id = town_city_intersect.town_city_intersect_polygon
- FROM (
- SELECT
- buildings_reference.town_city_intersect_polygon(outlines.shape)
- , outlines.bulk_load_outline_id
- FROM buildings_bulk_load.bulk_load_outlines outlines
- ) town_city_intersect
- WHERE outlines.bulk_load_outline_id = town_city_intersect.bulk_load_outline_id
- AND outlines.supplied_dataset_id = $1
- RETURNING *
- )
- SELECT count(*)::integer FROM update_town_city;
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_town_city(integer) IS
-'Replace the town/city values with the intersection results for a supplied bulk loaded dataset';
-
--- bulk_load_outlines_update_all_town_cities (Replace the town/city values with the intersection)
- -- params: integer[] list of town_city_ids building must be within
- -- return: count(integer) number of outlines updated
-
-CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[])
-RETURNS integer AS
-$$
-
- WITH update_town_city AS (
- UPDATE buildings_bulk_load.bulk_load_outlines outlines
- SET town_city_id = town_city_intersect.town_city_intersect_polygon
- FROM (
- SELECT
- buildings_reference.town_city_intersect_polygon(outlines.shape)
- , outlines.bulk_load_outline_id
- FROM buildings_bulk_load.bulk_load_outlines outlines
- ) town_city_intersect
- WHERE outlines.bulk_load_outline_id = town_city_intersect.bulk_load_outline_id
- AND town_city_id = ANY($1)
- RETURNING *
- )
- SELECT count(*)::integer FROM update_town_city;
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[]) IS
-'Replace the town/city values with the intersection result for all buildings in buildings_bulk_load.bulk_load_outlines';
-
COMMIT;
diff --git a/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql b/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql
new file mode 100644
index 00000000..e7ca5597
--- /dev/null
+++ b/db/sql/deploy/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql
@@ -0,0 +1,458 @@
+-- Deploy nz-buildings:buildings_bulk_load/functions/bulk_load_outlines to pg
+
+BEGIN;
+
+--------------------------------------------
+-- buildings_bulk_load.bulk_load_outlines
+
+-- Functions:
+
+-- bulk_load_outlines_insert (insert new bulk load outline)
+ -- params: integer supplied_dataset_id, integer external_outline_id
+ -- integer external_outline_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id,
+ -- geometry shape
+ -- return: integer new bulk_load_outline_id
+
+-- bulk_load_outlines_insert_supplied (insert supplied outlines into bulk_load_outlines)
+ -- params: integer supplied_dataset_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer capture_source_id
+ -- return: integer count of supplied outlines added
+
+-- bulk_load_outlines_remove_small_buildings (change bulk load status of buildings less than 10sqm)
+ -- params: integer supplied_dataset_id
+ -- return: number of small buildings that have been removed
+
+-- bulk_load_outlines_update_attributes (update the attributes of an outlines)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id, integer
+ -- capture_method_id, integer capture_source_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id, geometry shape
+ -- return: count of number of outlines updated
+
+-- bulk_load_outlines_update_bulk_load_status (Update bulk load status in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id
+ -- return: integer count of building outlines updated
+
+-- bulk_load_outlines_update_capture_method (Update capture method in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer capture_method_id
+ -- return: integer count of building outlines updated
+
+-- bulk_load_outlines_update_shape (update the shape of an outline)
+ -- params: geometry, integer bulk_load_outline_id
+ -- return: number of outlines with updated shapes
+
+-- bulk_load_outlines_update_suburb (replace suburb values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of building outlines updated
+
+-- bulk_load_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+-- bulk_load_outlines_update_all_territorial_authorities (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+-- bulk_load_outlines_update_town_city (Replace the town/city values with the intersection)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+-- bulk_load_outlines_update_all_town_cities (Replace the town/city values with the intersection)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+--------------------------------------------
+
+-- Functions
+
+-- bulk_load_outlines_insert (insert new bulk load outline)
+ -- params: integer supplied_dataset_id, integer external_outline_id
+ -- integer external_outline_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id
+ -- geometry shape
+ -- return: integer new bulk_load_outline_id
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_insert(
+ p_supplied_dataset_id integer
+ , p_external_outline_id integer
+ , p_bulk_load_status_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+ , p_shape geometry
+)
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings_bulk_load.bulk_load_outlines(
+ bulk_load_outline_id
+ , supplied_dataset_id
+ , external_outline_id
+ , bulk_load_status_id
+ , capture_method_id
+ , capture_source_id
+ , suburb_locality_id
+ , town_city_id
+ , territorial_authority_id
+ , begin_lifespan
+ , shape
+ )
+ VALUES (
+ DEFAULT -- sequence
+ , p_supplied_dataset_id
+ , p_external_outline_id
+ , p_bulk_load_status_id
+ , p_capture_method_id
+ , p_capture_source_id
+ , p_suburb_locality_id
+ , p_town_city_id
+ , p_territorial_authority_id
+ , now()
+ , p_shape
+ )
+ RETURNING bulk_load_outline_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, integer, geometry) IS
+'Insert new bulk load outline';
+
+-- bulk_load_outlines_insert_supplied (insert supplied outlines into bulk_load_outlines)
+ -- params: integer supplied_dataset_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer capture_source_id
+ -- return: integer count of supplied outlines added
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_insert_supplied(
+ p_supplied_dataset_id integer
+ , p_bulk_load_status_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH insert_supplied AS (
+ INSERT INTO buildings_bulk_load.bulk_load_outlines(
+ supplied_dataset_id
+ , external_outline_id
+ , bulk_load_status_id
+ , capture_method_id
+ , capture_source_id
+ , suburb_locality_id
+ , town_city_id
+ , territorial_authority_id
+ , begin_lifespan
+ , shape
+ )
+ SELECT
+ supplied_dataset_id
+ , external_outline_id
+ , p_bulk_load_status_id
+ , p_capture_method_id
+ , p_capture_source_id
+ , buildings_reference.suburb_locality_intersect_polygon(shape)
+ , buildings_reference.town_city_intersect_polygon(shape)
+ , buildings_reference.territorial_authority_grid_intersect_polygon(shape)
+ , now()
+ , shape
+ FROM buildings_bulk_load.supplied_outlines s
+ WHERE s.supplied_dataset_id = p_supplied_dataset_id
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM insert_supplied;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_insert_supplied(integer, integer, integer, integer) IS
+'Insert supplied outlines into bulk load outlines';
+
+
+-- bulk_load_outlines_remove_small_buildings (change bulk load status of buildings less than 10sqm)
+ -- params: integer supplied_dataset_id
+ -- return: number of small buildings that have been removed
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_remove_small_buildings(integer)
+RETURNS integer AS
+$$
+
+ WITH small_buildings AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET bulk_load_status_id = 3
+ WHERE bulk_load_outline_id IN (
+ SELECT bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines
+ WHERE ST_Area(shape) < 10
+ )
+ AND supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM small_buildings;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_remove_small_buildings(integer) IS
+'Update bulk load status in bulk_load_outlines table of outlines less than 10sqm';
+
+-- bulk_load_outlines_update_attributes (update the attributes of an outlines)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id, integer
+ -- capture_method_id, integer capture_source_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id, geometry shape
+ -- return: count of number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(
+ p_bulk_load_outline_id integer
+ , p_bulk_load_status_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_attributes AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET
+ bulk_load_status_id = $2
+ , capture_method_id = $3
+ , capture_source_id = $4
+ , suburb_locality_id = $5
+ , town_city_id = $6
+ , territorial_authority_id = $7
+ WHERE bulk_load_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_attributes;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer) IS
+'Update attributes in bulk_load_outlines table';
+
+-- bulk_load_outlines_update_bulk_load_status (Update bulk load status in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id
+ -- return: integer count of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_bulk_load_status(
+ p_bulk_load_outline_id integer
+ , p_bulk_load_status_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_bulk_load_status AS(
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET bulk_load_status_id = $2
+ WHERE bulk_load_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_bulk_load_status;
+
+$$ LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_bulk_load_status(integer, integer) IS
+'Update bulk load status in bulk_load_outlines table';
+
+
+-- bulk_load_outlines_update_capture_method (Update capture method in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer capture_method_id
+ -- return: integer count of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_capture_method(
+ p_bulk_load_outline_id integer
+ , p_capture_method_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_capture_method AS(
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET capture_method_id = $2
+ WHERE bulk_load_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_capture_method;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_capture_method(integer, integer) IS
+'Update capture method in bulk_load_outlines table';
+
+-- bulk_load_outlines_update_shape (update the shape of an outline)
+ -- params: geometry, integer bulk_load_outline_id
+ -- return: number of outlines with updated shapes
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_shape(geometry, integer)
+RETURNS integer AS
+$$
+
+ WITH update_shape AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET shape = $1
+ WHERE bulk_load_outline_id = $2
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_shape;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_shape(geometry, integer) IS
+'Update shape in bulk_load_outlines table';
+
+-- bulk_load_outlines_update_suburb (replace suburb values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_suburb(integer)
+RETURNS integer AS
+$$
+
+ WITH update_suburb AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET suburb_locality_id = suburb_locality_intersect.suburb_locality_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.suburb_locality_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) suburb_locality_intersect
+ WHERE outlines.bulk_load_outline_id = suburb_locality_intersect.bulk_load_outline_id
+ AND outlines.supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_suburb;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_suburb(integer) IS
+'Replace suburb values with the intersection result of buildings from a supplied dataset in the bulk_load_outlines table';
+
+-- bulk_load_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_territorial_authority(integer)
+RETURNS integer AS
+$$
+
+ WITH update_territorial_auth AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET territorial_authority_id = territorial_authority_intersect.territorial_authority_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.territorial_authority_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) territorial_authority_intersect
+ WHERE outlines.bulk_load_outline_id = territorial_authority_intersect.bulk_load_outline_id
+ AND outlines.supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_territorial_auth;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_territorial_authority(integer) IS
+'Replace the TA values with the intersection result';
+
+-- bulk_load_outlines_update_all_territorial_authorities (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_territorial_auth AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET territorial_authority_id = territorial_authority_intersect.territorial_authority_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.territorial_authority_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) territorial_authority_intersect
+ WHERE outlines.bulk_load_outline_id = territorial_authority_intersect.bulk_load_outline_id
+ AND territorial_authority_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_territorial_auth;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[]) IS
+'Replace the TA values with the intersection result for all buildings in bulk_load_outlines';
+
+-- bulk_load_outlines_update_town_city (Replace the town/city values with the intersection)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_town_city(integer)
+RETURNS integer AS
+$$
+
+ WITH update_town_city AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET town_city_id = town_city_intersect.town_city_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.town_city_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) town_city_intersect
+ WHERE outlines.bulk_load_outline_id = town_city_intersect.bulk_load_outline_id
+ AND outlines.supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_town_city;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_town_city(integer) IS
+'Replace the town/city values with the intersection results for a supplied bulk loaded dataset';
+
+-- bulk_load_outlines_update_all_town_cities (Replace the town/city values with the intersection)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_town_city AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET town_city_id = town_city_intersect.town_city_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.town_city_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) town_city_intersect
+ WHERE outlines.bulk_load_outline_id = town_city_intersect.bulk_load_outline_id
+ AND town_city_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_town_city;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[]) IS
+'Replace the town/city values with the intersection result for all buildings in buildings_bulk_load.bulk_load_outlines';
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql b/db/sql/deploy/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql
new file mode 100644
index 00000000..a92ccbb8
--- /dev/null
+++ b/db/sql/deploy/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql
@@ -0,0 +1,8 @@
+-- Deploy nz-buildings:buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint to pg
+
+BEGIN;
+
+ALTER TABLE buildings_bulk_load.bulk_load_outlines
+ALTER COLUMN territorial_authority_id DROP NOT NULL;
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql b/db/sql/deploy/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql
new file mode 100644
index 00000000..8405f874
--- /dev/null
+++ b/db/sql/deploy/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql
@@ -0,0 +1,8 @@
+-- Deploy nz-buildings:buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column to pg
+
+BEGIN;
+
+ALTER TABLE buildings_bulk_load.bulk_load_outlines
+DROP COLUMN town_city_id;
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_lds/functions/populate_buildings_lds.sql b/db/sql/deploy/buildings_lds/functions/populate_buildings_lds.sql
index 89f05ba0..a7e7502e 100644
--- a/db/sql/deploy/buildings_lds/functions/populate_buildings_lds.sql
+++ b/db/sql/deploy/buildings_lds/functions/populate_buildings_lds.sql
@@ -31,9 +31,9 @@ $$
buildings.building_id
, COALESCE(building_name.building_name, '') AS name
, COALESCE(use.value, 'Unknown') AS use
- , suburb_locality.name AS suburb_locality
- , COALESCE(town_city.name, '') AS town_city
- , territorial_authority.name AS territorial_authority
+ , suburb_locality.suburb_locality AS suburb_locality
+ , COALESCE(suburb_locality.town_city, '') AS town_city
+ , COALESCE(territorial_authority.name, 'Area Outside Territorial Authority') AS territorial_authority
, capture_method.value AS capture_method
, capture_source_group.value AS capture_source_group
, LEFT(capture_source.external_source_id, 4)::integer AS capture_source_id
@@ -55,8 +55,7 @@ $$
JOIN buildings_reference.nz_imagery_survey_index ON LEFT(capture_source.external_source_id, 4)::integer = nz_imagery_survey_index.imagery_survey_id
JOIN buildings_common.capture_source_group USING (capture_source_group_id)
JOIN buildings_reference.suburb_locality ON suburb_locality.suburb_locality_id = building_outlines.suburb_locality_id
- LEFT JOIN buildings_reference.town_city ON town_city.town_city_id = building_outlines.town_city_id
- JOIN buildings_reference.territorial_authority ON territorial_authority.territorial_authority_id = building_outlines.territorial_authority_id
+ LEFT JOIN buildings_reference.territorial_authority ON territorial_authority.territorial_authority_id = building_outlines.territorial_authority_id
WHERE building_outlines.end_lifespan IS NULL
AND buildings.end_lifespan IS NULL
ORDER BY buildings.building_id
@@ -147,9 +146,9 @@ $$
, buildings.building_id
, COALESCE(building_name.building_name, '') AS name
, COALESCE(use.value, 'Unknown') AS use
- , suburb_locality.name AS suburb_locality
- , COALESCE(town_city.name, '') AS town_city
- , territorial_authority.name AS territorial_authority
+ , suburb_locality.suburb_locality AS suburb_locality
+ , COALESCE(suburb_locality.town_city, '') AS town_city
+ , COALESCE(territorial_authority.name, 'Area Outside Territorial Authority') AS territorial_authority
, capture_method.value AS capture_method
, capture_source_group.value AS capture_source_group
, LEFT(capture_source.external_source_id, 4)::integer AS capture_source_id
@@ -174,8 +173,7 @@ $$
JOIN buildings_reference.nz_imagery_survey_index ON LEFT(capture_source.external_source_id, 4)::integer = nz_imagery_survey_index.imagery_survey_id
JOIN buildings_common.capture_source_group USING (capture_source_group_id)
JOIN buildings_reference.suburb_locality ON suburb_locality.suburb_locality_id = building_outlines.suburb_locality_id
- LEFT JOIN buildings_reference.town_city ON town_city.town_city_id = building_outlines.town_city_id
- JOIN buildings_reference.territorial_authority ON territorial_authority.territorial_authority_id = building_outlines.territorial_authority_id
+ LEFT JOIN buildings_reference.territorial_authority ON territorial_authority.territorial_authority_id = building_outlines.territorial_authority_id
LEFT JOIN deleted_in_production USING (building_outline_id)
LEFT JOIN building_outline_lifecycle USING (building_outline_id)
ORDER BY building_outlines.building_outline_id
diff --git a/db/sql/deploy/buildings_reference/add_log_column_nz_imagery_survey_index.sql b/db/sql/deploy/buildings_reference/add_log_column_nz_imagery_survey_index.sql
new file mode 100644
index 00000000..6240076b
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/add_log_column_nz_imagery_survey_index.sql
@@ -0,0 +1,7 @@
+-- Deploy nz-buildings:buildings_reference/add_log_column_nz_imagery_survey_index to pg
+
+BEGIN;
+
+ALTER TABLE buildings_reference.reference_update_log ADD imagery_survey_index boolean DEFAULT False;
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_reference/drop_town_city.sql b/db/sql/deploy/buildings_reference/drop_town_city.sql
new file mode 100644
index 00000000..c38daf78
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/drop_town_city.sql
@@ -0,0 +1,10 @@
+-- Deploy nz-buildings:buildings_reference/drop_town_city_table to pg
+
+BEGIN;
+
+DROP TABLE buildings_reference.town_city;
+
+ALTER TABLE buildings_reference.reference_update_log
+DROP COLUMN town_city;
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/reference_update_log.sql b/db/sql/deploy/buildings_reference/functions/reference_update_log.sql
index f5d677e3..0afd61bc 100644
--- a/db/sql/deploy/buildings_reference/functions/reference_update_log.sql
+++ b/db/sql/deploy/buildings_reference/functions/reference_update_log.sql
@@ -24,19 +24,23 @@ CREATE OR REPLACE FUNCTION buildings_reference.reference_update_log_insert_log(p
RETURNS integer AS
$$
- INSERT INTO buildings_reference.reference_update_log (river, lake, pond, swamp, lagoon, canal, coastlines_and_islands, capture_source_area, territorial_authority, territorial_authority_grid, suburb_locality, town_city)
- VALUES(CASE WHEN ('river' = ANY(p_list)) THEN True ELSE False END,
- CASE WHEN ('lake' = ANY(p_list)) THEN True ELSE False END,
- CASE WHEN ('pond' = ANY(p_list)) THEN True ELSE False END,
- CASE WHEN ('swamp' = ANY(p_list)) THEN True ELSE False END,
- CASE WHEN ('lagoon' = ANY(p_list)) THEN True ELSE False END,
- CASE WHEN ('canal' = ANY(p_list)) THEN True ELSE False END,
+ INSERT INTO buildings_reference.reference_update_log (river, lake, pond, swamp, lagoon, canal, coastlines_and_islands, capture_source_area, territorial_authority, territorial_authority_grid, suburb_locality, hut, shelter, bivouac, protected_areas, imagery_survey_index)
+ VALUES(CASE WHEN ('river_polygons' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('lake_polygons' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('pond_polygons' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('swamp_polygons' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('lagoon_polygons' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('canal_polygons' = ANY(p_list)) THEN True ELSE False END,
CASE WHEN ('coastlines_and_islands' = ANY(p_list)) THEN True ELSE False END,
CASE WHEN ('capture_source_area' = ANY(p_list)) THEN True ELSE False END,
CASE WHEN ('territorial_authority' = ANY(p_list)) THEN True ELSE False END,
CASE WHEN ('territorial_authority_grid' = ANY(p_list)) THEN True ELSE False END,
CASE WHEN ('suburb_locality' = ANY(p_list)) THEN True ELSE False END,
- CASE WHEN ('town_city' = ANY(p_list)) THEN True ELSE False END
+ CASE WHEN ('hut_points' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('shelter_points' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('bivouac_points' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('protected_areas_polygons' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('nz_imagery_survey_index' = ANY(p_list)) THEN True ELSE False END
)
RETURNING update_id;
diff --git a/db/sql/deploy/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql b/db/sql/deploy/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql
new file mode 100644
index 00000000..f5d677e3
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql
@@ -0,0 +1,49 @@
+-- Deploy nz-buildings:buildings_reference/functions/reference_update_log to pg
+
+BEGIN;
+
+--------------------------------------------
+-- buildings_reference.reference_update_log
+
+-- Functions
+
+-- reference_update_log_insert_log
+ -- params: list varchar the columns to be set as true
+ -- return: integer update_id
+
+--------------------------------------------
+
+-- Functions
+
+-- reference_update_log_insert_log
+ -- params: list varchar the columns to be set as true
+ -- return: integer update_id
+
+
+CREATE OR REPLACE FUNCTION buildings_reference.reference_update_log_insert_log(p_list varchar[])
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings_reference.reference_update_log (river, lake, pond, swamp, lagoon, canal, coastlines_and_islands, capture_source_area, territorial_authority, territorial_authority_grid, suburb_locality, town_city)
+ VALUES(CASE WHEN ('river' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('lake' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('pond' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('swamp' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('lagoon' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('canal' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('coastlines_and_islands' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('capture_source_area' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('territorial_authority' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('territorial_authority_grid' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('suburb_locality' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('town_city' = ANY(p_list)) THEN True ELSE False END
+ )
+ RETURNING update_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.reference_update_log_insert_log(varchar[]) IS
+'Insert new log into reference log table';
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/suburb_locality.sql b/db/sql/deploy/buildings_reference/functions/suburb_locality.sql
index 875b6a94..1a384b5f 100644
--- a/db/sql/deploy/buildings_reference/functions/suburb_locality.sql
+++ b/db/sql/deploy/buildings_reference/functions/suburb_locality.sql
@@ -11,6 +11,26 @@ BEGIN;
-- params: p_polygon_geometry geometry
-- return: integer suburb_locality_id
+-- suburb_locality_delete_by_external_id
+ -- params: integer external_suburb_locality_id
+ -- return: integer suburb_locality_id
+
+-- suburb_locality_insert
+ -- params: integer external_suburb_locality_id, varchar suburb_locality, varchar town_city, varchar geometry
+ -- return: integer suburb_locality_id
+
+-- suburb_locality_update_by_external_id
+ -- params: integer external_suburb_locality_id, varchar suburb_locality, varchar town_city, varchar geometry
+ -- return: integer suburb_locality_id
+
+-- suburb_locality_attribute_update_building_outlines
+ -- params: integer[] suburb_locality_id
+ -- return: integer building_outline_id
+
+-- suburb_locality_geometry_update_building_outlines
+ -- params: varchar shape
+ -- return: integer building_outline_id
+
--------------------------------------------
-- Functions
@@ -39,4 +59,101 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings_reference.suburb_locality_intersect_polygon(geometry) IS
'Return id of suburb/locality with most overlap';
+
+-- suburb_locality_delete_by_external_id
+ -- params: integer external_suburb_locality_id
+ -- return: integer suburb_locality_id
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_delete_by_external_id(integer)
+RETURNS integer AS
+$$
+
+ DELETE FROM buildings_reference.suburb_locality
+ WHERE external_suburb_locality_id = $1
+ RETURNING suburb_locality_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_delete_by_external_id(integer) IS
+'Delete from suburb_locality table by external id';
+
+
+-- suburb_locality_insert
+ -- params: integer external_suburb_locality_id, varchar suburb_locality, varchar town_city, varchar geometry
+ -- return: integer suburb_locality_id
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_insert(integer, varchar, varchar, varchar)
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings_reference.suburb_locality (external_suburb_locality_id, suburb_locality, town_city, shape)
+ VALUES ($1, $2, $3, ST_SetSRID(ST_GeometryFromText($4), 2193))
+ RETURNING suburb_locality_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_insert(integer, varchar, varchar, varchar) IS
+'Insert new entry into suburb_locality table';
+
+
+-- suburb_locality_update_by_external_id
+ -- params: integer external_suburb_locality_id, varchar suburb_locality, varchar town_city, varchar geometry
+ -- return: integer suburb_locality_id
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_update_by_external_id(integer, varchar, varchar, varchar)
+RETURNS integer AS
+$$
+
+ UPDATE buildings_reference.suburb_locality
+ SET suburb_locality = $2,
+ town_city = $3,
+ shape = ST_SetSRID(ST_GeometryFromText($4), 2193)
+ WHERE external_suburb_locality_id = $1
+ RETURNING suburb_locality_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_update_by_external_id(integer, varchar, varchar, varchar) IS
+'Update suburb_locality table by external id';
+
+
+-- suburb_locality_attribute_update_building_outlines
+ -- params: integer[] suburb_locality_id
+ -- return: integer building_outline_id
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_attribute_update_building_outlines(integer[])
+RETURNS SETOF integer AS
+$$
+ UPDATE buildings.building_outlines
+ SET last_modified = NOW()
+ WHERE suburb_locality_id = ANY($1)
+ RETURNING building_outline_id;
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_attribute_update_building_outlines(integer[]) IS
+'Update building_outlines last_modified value as suburb_locality/town_city attributes were updated';
+
+
+-- suburb_locality_geometry_update_building_outlines
+ -- params: varchar shape
+ -- return: integer building_outline_id
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_geometry_update_building_outlines(varchar)
+RETURNS SETOF integer AS
+$$
+ WITH sub_tas AS (
+ SELECT ST_Subdivide(ST_SetSRID(ST_GeometryFromText($1), 2193)) AS shape
+ )
+ UPDATE buildings.building_outlines bo
+ SET suburb_locality_id = buildings_reference.suburb_locality_intersect_polygon(bo.shape),
+ last_modified = NOW()
+ FROM sub_tas ta
+ WHERE ST_Intersects(bo.shape, ta.shape)
+ AND suburb_locality_id != buildings_reference.suburb_locality_intersect_polygon(bo.shape)
+ RETURNING building_outline_id;
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_geometry_update_building_outlines(varchar) IS
+'Update building_outlines suburb_locality_id value where building_outlines intersects with updated suburb_locality';
+
COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql b/db/sql/deploy/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql
new file mode 100644
index 00000000..875b6a94
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql
@@ -0,0 +1,42 @@
+-- Deploy nz-buildings:buildings_reference/functions/suburb_locality to pg
+
+BEGIN;
+
+--------------------------------------------
+-- buildings_reference.suburb_locality
+
+-- Functions
+
+-- suburb_locality_intersect_polygon (id of suburb with most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer suburb_locality_id
+
+--------------------------------------------
+
+-- Functions
+
+-- suburb_locality_intersect_polygon (id of suburb with most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer suburb_locality_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT suburb_locality_id
+ FROM buildings_reference.suburb_locality
+ WHERE shape && ST_Expand(p_polygon_geometry, 1000)
+ ORDER BY
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) DESC
+ , ST_Distance(p_polygon_geometry, shape) ASC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_intersect_polygon(geometry) IS
+'Return id of suburb/locality with most overlap';
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/suburb_locality_optimised.sql b/db/sql/deploy/buildings_reference/functions/suburb_locality_optimised.sql
index 57176ef8..5a295107 100644
--- a/db/sql/deploy/buildings_reference/functions/suburb_locality_optimised.sql
+++ b/db/sql/deploy/buildings_reference/functions/suburb_locality_optimised.sql
@@ -2,143 +2,7 @@
BEGIN;
--- building_outlines_update_changed_and_deleted_suburb (replace suburb values with the intersection result)
- -- params:
- -- return: integer count of number of building outlines updated
-
-CREATE OR REPLACE FUNCTION buildings_reference.building_outlines_update_changed_and_deleted_suburb()
-RETURNS void AS
-$$
-BEGIN
- -- Find new ids and geometry differences of changed
- CREATE TEMP TABLE changed_geometries AS
- SELECT
- nzl.id AS new_external_id,
- bsl.suburb_locality_id AS new_id,
- ST_Difference(ST_Transform(nzl.shape, 2193),bsl.shape) AS shape
- FROM
- admin_bdys.nz_locality nzl,
- buildings_reference.suburb_locality bsl
- WHERE
- bsl.external_suburb_locality_id = nzl.id
- AND (
- NOT ST_Equals(ST_Transform(nzl.shape, 2193), bsl.shape)
- )
- AND (
- NOT st_isempty(ST_Difference(ST_Transform(nzl.shape, 2193),bsl.shape)
- )
- );
-
- -- Update the changed suburbs
- UPDATE buildings_reference.suburb_locality bsl
- SET
- name = COALESCE(nzl.suburb_4th, nzl.suburb_3rd, nzl.suburb_2nd, nzl.suburb_1st),
- shape = ST_SetSRID(ST_Transform(nzl.shape, 2193), 2193)
- FROM
- admin_bdys.nz_locality nzl
- WHERE
- bsl.external_suburb_locality_id = nzl.id
- AND (
- NOT ST_Equals(ST_SetSRID(ST_Transform(nzl.shape, 2193), 2193), bsl.shape)
- OR bsl.name != COALESCE(nzl.suburb_4th, nzl.suburb_3rd, nzl.suburb_2nd, nzl.suburb_1st)
- );
-
- -- Remove deleted suburbs
- DELETE FROM
- buildings_reference.suburb_locality
- WHERE
- external_suburb_locality_id NOT IN (
- SELECT
- id
- FROM
- admin_bdys.nz_locality
- );
-
- -- Updates building outlines where:
- -- It's external id is an 'old id'
- -- It Overlaps or is Within the difference polygon for the 'old id'
- -- It overlaps the difference polygon by the largest proportion
- -- The suburb with the most overlap is not the same as the old id
- UPDATE
- buildings.building_outlines b
- SET
- suburb_locality_id = buildings_reference.suburb_locality_intersect_polygon(b.shape),
- last_modified = NOW()
- FROM
- changed_geometries cg
- WHERE
- (ST_Within(b.shape, cg.shape) OR ST_Overlaps(b.shape, cg.shape))
- AND buildings_reference.suburb_locality_intersect_polygon(b.shape) != b.suburb_locality_id;
-
- DISCARD TEMP;
-
-END;
-$$ LANGUAGE plpgsql;
-
-COMMENT ON FUNCTION buildings_reference.building_outlines_update_changed_and_deleted_suburb() IS
-'Replace suburb values with the intersection result of buildings in the building_outlines table';
-
-
--- building_outlines_update_added_suburb (replace suburb values with the intersection result)
- -- params:
- -- return: integer count of number of building outlines updated
-
-CREATE OR REPLACE FUNCTION buildings_reference.building_outlines_update_added_suburb()
-RETURNS void AS
-$$
-BEGIN
- -- add new suburbs to buildings_reference.suburb_locality
- -- (to get new suburb_locality_ids)
- CREATE TEMP TABLE added_suburbs (
- suburb_locality_id integer
- , external_suburb_locality_id integer
- , name character varying(60)
- , shape public.geometry(MultiPolygon, 2193)
- );
-
- WITH add_new_suburbs AS (
- INSERT INTO buildings_reference.suburb_locality (
- external_suburb_locality_id, name, shape
- )
- SELECT
- id,
- COALESCE(suburb_4th, suburb_3rd, suburb_2nd, suburb_1st),
- ST_Transform(shape, 2193)
- FROM
- admin_bdys.nz_locality
- WHERE
- type IN ('ISLAND','LOCALITY','PARK_RESERVE','SUBURB')
- AND id NOT IN (
- SELECT
- external_suburb_locality_id
- FROM
- buildings_reference.suburb_locality
- ) RETURNING *
- )
-
- INSERT INTO added_suburbs
- SELECT suburb_locality_id, external_suburb_locality_id, name, shape
- FROM add_new_suburbs;
-
- -- update building outline suburb locality Id and last modified date where:
- -- the building is within/overlaps the new suburb
- -- The largest overlapping suburb has changed
- UPDATE
- buildings.building_outlines b
- SET
- suburb_locality_id = buildings_reference.suburb_locality_intersect_polygon(b.shape),
- last_modified = NOW()
- FROM
- added_suburbs asb
- WHERE
- (ST_Within(b.shape, asb.shape) OR ST_Overlaps(b.shape, asb.shape))
- AND buildings_reference.suburb_locality_intersect_polygon(b.shape) != b.suburb_locality_id;
-
- DISCARD TEMP;
-END;
-$$ LANGUAGE plpgsql;
-
-COMMENT ON FUNCTION buildings_reference.building_outlines_update_added_suburb() IS
-'Insert new suburb localities and replace old suburb values with the intersection result in the building_outlines table';
+DROP FUNCTION IF EXISTS buildings_reference.building_outlines_update_changed_and_deleted_suburb();
+DROP FUNCTION IF EXISTS buildings_reference.building_outlines_update_added_suburb();
COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/territorial_authority.sql b/db/sql/deploy/buildings_reference/functions/territorial_authority.sql
index 0d012677..9d119f8a 100644
--- a/db/sql/deploy/buildings_reference/functions/territorial_authority.sql
+++ b/db/sql/deploy/buildings_reference/functions/territorial_authority.sql
@@ -15,17 +15,25 @@ BEGIN;
-- params: p_polygon_geometry geometry
-- return: integer territorial_authority_id
--- territorial_auth_delete_areas(delete areas no long in admin_bdys)
- -- params:
- -- return: integer list of TAs deleted
+-- territorial_authority_delete_by_external_id
+ -- params: integer external_territorial_authority_id
+ -- return: integer territorial_authority_id
+
+-- territorial_authority_insert
+ -- params: integer external_territorial_authority_id, varchar territorial_authority, varchar geometry
+ -- return: integer territorial_authority_id
--- territorial_auth_insert_areas(insert new areas from admin_bdys)
- -- params:
- -- return: integer list of new areas added
+-- territorial_authority_update_by_external_id
+ -- params: integer external_territorial_authority_id, varchar territorial_authority, varchar geometry
+ -- return: integer territorial_authority_id
+
+-- territorial_authority_attribute_update_building_outlines
+ -- params: integer[] territorial_authority_id
+ -- return: integer building_outline_id
--- territorial_auth_update_areas(update geometries based on admin_bdys)
- -- params:
- -- return: integer list of areas updated
+-- territorial_authority_geometry_update_building_outlines
+ -- params: varchar shape
+ -- return: integer building_outline_id
----------------------------------------------------------------------------------------------
@@ -79,91 +87,104 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings_reference.territorial_authority_intersect_polygon(geometry) IS
'Return id of territorial authority with most overlap';
--- Update Territorial Authority table:
+DROP FUNCTION IF EXISTS buildings_reference.territorial_auth_delete_areas();
+DROP FUNCTION IF EXISTS buildings_reference.territorial_auth_insert_areas();
+DROP FUNCTION IF EXISTS buildings_reference.territorial_auth_update_areas();
--- territorial_auth_delete_areas(delete areas no long in admin_bdys)
- -- params:
- -- return: integer list of TAs deleted
-CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_delete_areas()
-RETURNS integer[] AS
+-- territorial_authority_delete_by_external_id
+ -- params: integer external_territorial_authority_id
+ -- return: integer territorial_authority_id
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_delete_by_external_id(integer)
+RETURNS integer AS
$$
- WITH delete_ta AS (
- DELETE FROM buildings_reference.territorial_authority
- WHERE external_territorial_authority_id NOT IN (SELECT DISTINCT
- ogc_fid
- FROM admin_bdys.territorial_authority)
- RETURNING *
- )
- SELECT ARRAY(SELECT territorial_authority_id FROM delete_ta);
+ DELETE FROM buildings_reference.territorial_authority
+ WHERE external_territorial_authority_id = $1
+ RETURNING territorial_authority_id;
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings_reference.territorial_auth_delete_areas() IS
-'Function to delete the attributes in the buildings_reference territorial_authority table that are not in the admin_bdys schema.';
+COMMENT ON FUNCTION buildings_reference.territorial_authority_delete_by_external_id(integer) IS
+'Delete from territorial_authority table by external id';
--- territorial_auth_insert_areas(insert new areas from admin_bdys)
- -- params:
- -- return: integer list of new areas added
-CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_insert_areas()
-RETURNS integer[] AS
+-- territorial_authority_insert
+ -- params: integer external_territorial_authority_id, varchar territorial_authority, varchar geometry
+ -- return: integer territorial_authority_id
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_insert(integer, varchar, varchar)
+RETURNS integer AS
$$
- WITH insert_ta AS (
- INSERT INTO buildings_reference.territorial_authority (external_territorial_authority_id, name, shape)
- SELECT
- ogc_fid
- , name
- , ST_SetSRID(ST_Transform(shape, 2193), 2193)
- FROM admin_bdys.territorial_authority
- WHERE ogc_fid NOT IN (
- SELECT external_territorial_authority_id
- FROM buildings_reference.territorial_authority
- )
- RETURNING *
- )
- SELECT ARRAY(
- SELECT territorial_authority_id
- FROM insert_ta
- );
+ INSERT INTO buildings_reference.territorial_authority (external_territorial_authority_id, name, shape)
+ VALUES ($1, $2, ST_SetSRID(ST_GeometryFromText($3), 2193))
+ RETURNING territorial_authority_id;
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings_reference.territorial_auth_insert_areas() IS
-'Function to insert new territorial authority areas into the buildings_reference.territorial_authority table.';
+COMMENT ON FUNCTION buildings_reference.territorial_authority_insert(integer, varchar, varchar) IS
+'Insert new entry into territorial_authority table';
--- territorial_auth_update_areas(update geometries based on admin_bdys)
- -- params:
- -- return: integer list of areas updated
-CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_update_areas()
-RETURNS integer[] AS
+-- territorial_authority_update_by_external_id
+ -- params: integer external_territorial_authority_id, varchar territorial_authority, varchar geometry
+ -- return: integer territorial_authority_id
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_update_by_external_id(integer, varchar, varchar)
+RETURNS integer AS
$$
- WITH update_ta AS (
- UPDATE buildings_reference.territorial_authority bta
- SET
- name = ata.name
- , shape = ST_SetSRID(ST_Transform(ata.shape, 2193), 2193)
- FROM admin_bdys.territorial_authority ata
- WHERE bta.external_territorial_authority_id = ata.ogc_fid
- AND (NOT ST_Equals(bta.shape, ST_SetSRID(ST_Transform(ata.shape, 2193), 2193))
- OR bta.name != ata.name)
- RETURNING *
- )
- SELECT ARRAY (
- SELECT territorial_authority_id
- FROM update_ta
- );
+ UPDATE buildings_reference.territorial_authority
+ SET name = $2,
+ shape = ST_SetSRID(ST_GeometryFromText($3), 2193)
+ WHERE external_territorial_authority_id = $1
+ RETURNING territorial_authority_id;
$$
LANGUAGE sql VOLATILE;
-COMMENT ON FUNCTION buildings_reference.territorial_auth_update_areas() IS
-'Function to update territorial_authority areas that have either name or geometry changes';
+COMMENT ON FUNCTION buildings_reference.territorial_authority_update_by_external_id(integer, varchar, varchar) IS
+'Update territorial_authority table by external id';
+
+
+-- territorial_authority_attribute_update_building_outlines
+ -- params: integer[] territorial_authority_id
+ -- return: integer building_outline_id
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_attribute_update_building_outlines(integer[])
+RETURNS SETOF integer AS
+$$
+ UPDATE buildings.building_outlines
+ SET last_modified = NOW()
+ WHERE territorial_authority_id = ANY($1)
+ RETURNING building_outline_id;
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_authority_attribute_update_building_outlines(integer[]) IS
+'Update building_outlines last_modified value as territorial_authority attribute was updated';
+
+
+-- territorial_authority_geometry_update_building_outlines
+ -- params: varchar shape
+ -- return: integer building_outline_id
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_geometry_update_building_outlines(varchar)
+RETURNS SETOF integer AS
+$$
+ WITH sub_tas AS (
+ SELECT ST_Subdivide(ST_SetSRID(ST_GeometryFromText($1), 2193)) AS shape
+ )
+ UPDATE buildings.building_outlines bo
+ SET territorial_authority_id = buildings_reference.territorial_authority_grid_intersect_polygon(bo.shape),
+ last_modified = NOW()
+ FROM sub_tas ta
+ WHERE ST_Intersects(bo.shape, ta.shape)
+ AND territorial_authority_id != buildings_reference.territorial_authority_grid_intersect_polygon(bo.shape)
+ RETURNING building_outline_id;
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_authority_geometry_update_building_outlines(varchar) IS
+'Update building_outlines territorial_authority_id value where building_outlines intersects with updated territorial_authority';
COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql b/db/sql/deploy/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql
new file mode 100644
index 00000000..0d012677
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql
@@ -0,0 +1,169 @@
+-- Deploy nz-buildings:buildings_reference/functions/territorial_authority to pg
+
+BEGIN;
+
+----------------------------------------------------------------------------------------------
+-- buildings_reference.territorial_authority && buildings_reference.territorial_authority_grid
+
+-- Functions
+
+-- territorial_authority_grid_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry, geometry
+ -- return: integer territorial_authority_id
+
+-- territorial_authority_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer territorial_authority_id
+
+-- territorial_auth_delete_areas(delete areas no long in admin_bdys)
+ -- params:
+ -- return: integer list of TAs deleted
+
+-- territorial_auth_insert_areas(insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of new areas added
+
+-- territorial_auth_update_areas(update geometries based on admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+----------------------------------------------------------------------------------------------
+
+-- Functions
+
+-- territorial_authority_grid_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry, geometry
+ -- return: integer territorial_authority_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_grid_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT territorial_authority_id
+ FROM buildings_reference.territorial_authority_grid
+ WHERE ST_DWithin(p_polygon_geometry, shape, 1000)
+ ORDER BY
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) / ST_Area(shape) DESC
+ , ST_Distance(p_polygon_geometry, shape) ASC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_authority_grid_intersect_polygon(geometry) IS
+'Returns id of the TA Grid that has the most overlap';
+
+-- territorial_authority_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer territorial_authority_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT territorial_authority_id
+ FROM buildings_reference.territorial_authority
+ WHERE shape && ST_Expand(p_polygon_geometry, 1000)
+ ORDER BY
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) / ST_Area(shape) DESC
+ , ST_Distance(p_polygon_geometry, shape) ASC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_authority_intersect_polygon(geometry) IS
+'Return id of territorial authority with most overlap';
+
+-- Update Territorial Authority table:
+
+-- territorial_auth_delete_areas(delete areas no long in admin_bdys)
+ -- params:
+ -- return: integer list of TAs deleted
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_delete_areas()
+RETURNS integer[] AS
+$$
+
+ WITH delete_ta AS (
+ DELETE FROM buildings_reference.territorial_authority
+ WHERE external_territorial_authority_id NOT IN (SELECT DISTINCT
+ ogc_fid
+ FROM admin_bdys.territorial_authority)
+ RETURNING *
+ )
+ SELECT ARRAY(SELECT territorial_authority_id FROM delete_ta);
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_auth_delete_areas() IS
+'Function to delete the attributes in the buildings_reference territorial_authority table that are not in the admin_bdys schema.';
+
+-- territorial_auth_insert_areas(insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of new areas added
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_insert_areas()
+RETURNS integer[] AS
+$$
+
+ WITH insert_ta AS (
+ INSERT INTO buildings_reference.territorial_authority (external_territorial_authority_id, name, shape)
+ SELECT
+ ogc_fid
+ , name
+ , ST_SetSRID(ST_Transform(shape, 2193), 2193)
+ FROM admin_bdys.territorial_authority
+ WHERE ogc_fid NOT IN (
+ SELECT external_territorial_authority_id
+ FROM buildings_reference.territorial_authority
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT territorial_authority_id
+ FROM insert_ta
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_auth_insert_areas() IS
+'Function to insert new territorial authority areas into the buildings_reference.territorial_authority table.';
+
+-- territorial_auth_update_areas(update geometries based on admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_update_areas()
+RETURNS integer[] AS
+$$
+
+ WITH update_ta AS (
+ UPDATE buildings_reference.territorial_authority bta
+ SET
+ name = ata.name
+ , shape = ST_SetSRID(ST_Transform(ata.shape, 2193), 2193)
+ FROM admin_bdys.territorial_authority ata
+ WHERE bta.external_territorial_authority_id = ata.ogc_fid
+ AND (NOT ST_Equals(bta.shape, ST_SetSRID(ST_Transform(ata.shape, 2193), 2193))
+ OR bta.name != ata.name)
+ RETURNING *
+ )
+ SELECT ARRAY (
+ SELECT territorial_authority_id
+ FROM update_ta
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_auth_update_areas() IS
+'Function to update territorial_authority areas that have either name or geometry changes';
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/town_city.sql b/db/sql/deploy/buildings_reference/functions/town_city.sql
index 7e955adf..7c7b9db6 100644
--- a/db/sql/deploy/buildings_reference/functions/town_city.sql
+++ b/db/sql/deploy/buildings_reference/functions/town_city.sql
@@ -2,157 +2,9 @@
BEGIN;
---------------------------------------------
--- buildings_reference.town_city
-
--- Functions
-
--- town_city_intersect_polygon (id of the town/city that has the most overlap)
- -- params: p_polygon_geometry geometry
- -- return: integer town_city_id
-
--- town_city_delete_removed_areas (removed from table areas not in admin_byds)
- -- params:
- -- return: integer list of town_cities deleted
-
--- town_city_insert_new_areas (insert new areas from admin_bdys)
- -- params:
- -- return: integer list of outlines inserted
-
--- town_city_update_areas(update geometries based on those in admin_bdys)
- -- params:
- -- return: integer list of areas updated
-
---------------------------------------------
-
--- Functions:
-
--- town_city_intersect_polygon (id of the town/city that has the most overlap)
- -- params: p_polygon_geometry geometry
- -- return: integer town_city_id
-
-CREATE OR REPLACE FUNCTION buildings_reference.town_city_intersect_polygon(
- p_polygon_geometry geometry
-)
-RETURNS integer AS
-$$
-
- SELECT town_city_id
- FROM buildings_reference.town_city
- WHERE ST_Intersects(shape, p_polygon_geometry)
- ORDER BY ST_Area(ST_Intersection(p_polygon_geometry, shape)) DESC
- LIMIT 1;
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_reference.town_city_intersect_polygon(geometry) IS
-'Return id of town/city with most overlap';
-
--- update town_city table functions:
-
--- town_city_delete_removed_areas (removed from table areas not in admin_byds)
- -- params:
- -- return: integer list of town_cities deleted
-
-CREATE OR REPLACE FUNCTION buildings_reference.town_city_delete_removed_areas()
-RETURNS integer[] AS
-$$
-
- WITH delete_town AS (
- DELETE FROM buildings_reference.town_city
- WHERE external_city_id NOT IN (
- SELECT DISTINCT city_id
- FROM admin_bdys.nz_locality
- WHERE city_id IS NOT NULL
- )
- RETURNING *
- )
- SELECT ARRAY(SELECT town_city_id FROM delete_town);
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_reference.town_city_delete_removed_areas() IS
-'Function to delete from the buildings_reference town city table the areas that have been removed in the admin_bdys schema';
-
--- town_city_insert_new_areas (insert new areas from admin_bdys)
- -- params:
- -- return: integer list of outlines inserted
-
-CREATE OR REPLACE FUNCTION buildings_reference.town_city_insert_new_areas()
-RETURNS integer[] AS
-$$
-
- WITH insert_town AS (
- INSERT INTO buildings_reference.town_city (external_city_id, name, shape)
- SELECT
- subquery.city_id
- , subquery.city_name
- , ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193)
- FROM (
- SELECT
- city_id
- , city_name
- , ST_Multi(ST_Union(nzl.shape)) AS shape
- FROM admin_bdys.nz_locality AS nzl
- WHERE city_id != 0
- AND city_id NOT IN (
- SELECT external_city_id
- FROM buildings_reference.town_city
- )
- GROUP BY city_id, city_name
- ) AS subquery
- RETURNING *
- )
- SELECT ARRAY(
- SELECT town_city_id
- FROM insert_town
- );
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_reference.town_city_insert_new_areas() IS
-'Function to insert from the admin_bdys schema new areas not in the buildings_reference town city table';
-
--- town_city_update_areas(update geometries based on those in admin_bdys)
- -- params:
- -- return: integer list of areas updated
-
-CREATE OR REPLACE FUNCTION buildings_reference.town_city_update_areas()
-RETURNS integer[] AS
-$$
-
- WITH update_town AS (
- UPDATE buildings_reference.town_city
- SET
- name = subquery.city_name
- , shape = ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193)
- FROM (
- SELECT
- city_id
- , city_name
- , ST_Multi(ST_Union(nzl.shape)) AS shape
- FROM admin_bdys.nz_locality AS nzl
- WHERE city_id != 0
- GROUP BY city_id, city_name
- ) AS subquery
- WHERE buildings_reference.town_city.external_city_id = subquery.city_id
- AND ( NOT ST_Equals(ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193), buildings_reference.town_city.shape)
- OR city_name != buildings_reference.town_city.name
- )
- RETURNING *
- )
- SELECT ARRAY(
- SELECT town_city_id
- FROM update_town
- );
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_reference.town_city_update_areas() IS
-'Function to update the id, names and geometries of the town city';
+DROP FUNCTION IF EXISTS buildings_reference.town_city_intersect_polygon(geometry);
+DROP FUNCTION IF EXISTS buildings_reference.town_city_delete_removed_areas();
+DROP FUNCTION IF EXISTS buildings_reference.town_city_insert_new_areas();
+DROP FUNCTION IF EXISTS buildings_reference.town_city_update_areas();
COMMIT;
diff --git a/db/sql/deploy/buildings_reference/functions/town_city@v4.0.0-dev1.sql b/db/sql/deploy/buildings_reference/functions/town_city@v4.0.0-dev1.sql
new file mode 100644
index 00000000..7e955adf
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/functions/town_city@v4.0.0-dev1.sql
@@ -0,0 +1,158 @@
+-- Deploy nz-buildings:buildings_reference/functions/town_city to pg
+
+BEGIN;
+
+--------------------------------------------
+-- buildings_reference.town_city
+
+-- Functions
+
+-- town_city_intersect_polygon (id of the town/city that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer town_city_id
+
+-- town_city_delete_removed_areas (removed from table areas not in admin_byds)
+ -- params:
+ -- return: integer list of town_cities deleted
+
+-- town_city_insert_new_areas (insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of outlines inserted
+
+-- town_city_update_areas(update geometries based on those in admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+--------------------------------------------
+
+-- Functions:
+
+-- town_city_intersect_polygon (id of the town/city that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer town_city_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT town_city_id
+ FROM buildings_reference.town_city
+ WHERE ST_Intersects(shape, p_polygon_geometry)
+ ORDER BY ST_Area(ST_Intersection(p_polygon_geometry, shape)) DESC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_intersect_polygon(geometry) IS
+'Return id of town/city with most overlap';
+
+-- update town_city table functions:
+
+-- town_city_delete_removed_areas (removed from table areas not in admin_byds)
+ -- params:
+ -- return: integer list of town_cities deleted
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_delete_removed_areas()
+RETURNS integer[] AS
+$$
+
+ WITH delete_town AS (
+ DELETE FROM buildings_reference.town_city
+ WHERE external_city_id NOT IN (
+ SELECT DISTINCT city_id
+ FROM admin_bdys.nz_locality
+ WHERE city_id IS NOT NULL
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(SELECT town_city_id FROM delete_town);
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_delete_removed_areas() IS
+'Function to delete from the buildings_reference town city table the areas that have been removed in the admin_bdys schema';
+
+-- town_city_insert_new_areas (insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of outlines inserted
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_insert_new_areas()
+RETURNS integer[] AS
+$$
+
+ WITH insert_town AS (
+ INSERT INTO buildings_reference.town_city (external_city_id, name, shape)
+ SELECT
+ subquery.city_id
+ , subquery.city_name
+ , ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193)
+ FROM (
+ SELECT
+ city_id
+ , city_name
+ , ST_Multi(ST_Union(nzl.shape)) AS shape
+ FROM admin_bdys.nz_locality AS nzl
+ WHERE city_id != 0
+ AND city_id NOT IN (
+ SELECT external_city_id
+ FROM buildings_reference.town_city
+ )
+ GROUP BY city_id, city_name
+ ) AS subquery
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT town_city_id
+ FROM insert_town
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_insert_new_areas() IS
+'Function to insert from the admin_bdys schema new areas not in the buildings_reference town city table';
+
+-- town_city_update_areas(update geometries based on those in admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_update_areas()
+RETURNS integer[] AS
+$$
+
+ WITH update_town AS (
+ UPDATE buildings_reference.town_city
+ SET
+ name = subquery.city_name
+ , shape = ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193)
+ FROM (
+ SELECT
+ city_id
+ , city_name
+ , ST_Multi(ST_Union(nzl.shape)) AS shape
+ FROM admin_bdys.nz_locality AS nzl
+ WHERE city_id != 0
+ GROUP BY city_id, city_name
+ ) AS subquery
+ WHERE buildings_reference.town_city.external_city_id = subquery.city_id
+ AND ( NOT ST_Equals(ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193), buildings_reference.town_city.shape)
+ OR city_name != buildings_reference.town_city.name
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT town_city_id
+ FROM update_town
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_update_areas() IS
+'Function to update the id, names and geometries of the town city';
+
+COMMIT;
diff --git a/db/sql/deploy/buildings_reference/update_suburb_locality_name_column.sql b/db/sql/deploy/buildings_reference/update_suburb_locality_name_column.sql
deleted file mode 100644
index 935c15cb..00000000
--- a/db/sql/deploy/buildings_reference/update_suburb_locality_name_column.sql
+++ /dev/null
@@ -1,14 +0,0 @@
--- Deploy nz-buildings:buildings_reference/update_suburb_locality_name_column to pg
-
-BEGIN;
-
-ALTER TABLE buildings_reference.suburb_locality
-ADD COLUMN name varchar(100);
-
-UPDATE buildings_reference.suburb_locality
-SET name = COALESCE(suburb_4th, suburb_3rd, suburb_2nd, suburb_1st);
-
-ALTER TABLE buildings_reference.suburb_locality
-ALTER COLUMN name SET NOT NULL;
-
-COMMIT;
diff --git a/db/sql/deploy/buildings_reference/update_suburb_locality_table.sql b/db/sql/deploy/buildings_reference/update_suburb_locality_table.sql
new file mode 100644
index 00000000..bfad05a0
--- /dev/null
+++ b/db/sql/deploy/buildings_reference/update_suburb_locality_table.sql
@@ -0,0 +1,22 @@
+-- Deploy nz-buildings:buildings_reference/update_suburb_locality_name_column to pg
+
+BEGIN;
+
+ALTER TABLE buildings_reference.suburb_locality
+ADD COLUMN suburb_locality varchar(100),
+ADD COLUMN town_city varchar(100);
+
+-- update data for new column suburb_locality
+UPDATE buildings_reference.suburb_locality
+SET suburb_locality = COALESCE(suburb_4th, suburb_3rd, suburb_2nd, suburb_1st);
+
+ALTER TABLE buildings_reference.suburb_locality
+ALTER COLUMN suburb_locality SET NOT NULL;
+
+-- update data for new column town_city
+UPDATE buildings_reference.suburb_locality
+SET town_city = town_city.name
+FROM buildings_reference.town_city
+WHERE ST_Within(suburb_locality.shape, ST_Buffer(town_city.shape, 1));
+
+COMMIT;
diff --git a/db/sql/revert/buildings/functions/building_outlines.sql b/db/sql/revert/buildings/functions/building_outlines.sql
index d409a61b..75ff30e0 100644
--- a/db/sql/revert/buildings/functions/building_outlines.sql
+++ b/db/sql/revert/buildings/functions/building_outlines.sql
@@ -1,7 +1,10 @@
--- Revert nz-buildings:buildings/functions/building_outlines to pg
+-- Revert nz-buildings:buildings/functions/building_outlines to v4.0.0
BEGIN;
+DROP FUNCTION IF EXISTS buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, geometry);
+DROP FUNCTION IF EXISTS buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer);
+
--------------------------------------------
-- buildings.building_outlines
@@ -42,10 +45,6 @@ BEGIN;
-- params: shape to update to geometry, integer building_outline_id
--return: number of outlines updated (should only be one)
--- building_outlines_update_suburb (replace suburb values with the intersection result)
- -- params: integer[] list of suburb localities building must be within
- -- return: integer count of number of building outlines updated
-
-- building_outlines_update_territorial_authority (Replace the TA values with the intersection result)
-- params: integer[] list of territorial_authorities buildings must be within
-- return: count(integer) number of outlines updated
@@ -293,35 +292,6 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings.building_outlines_update_shape(geometry, integer) IS
'Update shape in building_outlines table';
--- building_outlines_update_suburb (replace suburb values with the intersection result)
- -- params: integer[] list of suburb localities building must be within
- -- return: integer count of number of building outlines updated
-
-CREATE OR REPLACE FUNCTION buildings.building_outlines_update_suburb(integer[])
-RETURNS integer AS
-$$
-
- WITH update_suburb AS (
- UPDATE buildings.building_outlines outlines
- SET suburb_locality_id = suburb_locality_intersect.suburb_locality_intersect_polygon
- FROM (
- SELECT
- buildings_reference.suburb_locality_intersect_polygon(outlines.shape)
- , outlines.building_outline_id
- FROM buildings.building_outlines outlines
- ) suburb_locality_intersect
- WHERE outlines.building_outline_id = suburb_locality_intersect.building_outline_id
- AND suburb_locality_id = ANY($1)
- RETURNING *
- )
- SELECT count(*)::integer FROM update_suburb;
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings.building_outlines_update_suburb(integer[]) IS
-'Replace suburb values with the intersection result of buildings in the building_outlines table';
-
-- building_outlines_update_territorial_authority (Replace the TA values with the intersection result)
-- params: integer[] list of territorial_authorities buildings must be within
-- return: count(integer) number of outlines updated
diff --git a/db/sql/revert/buildings/functions/building_outlines@v4.0.0-dev1.sql b/db/sql/revert/buildings/functions/building_outlines@v4.0.0-dev1.sql
new file mode 100644
index 00000000..c1ba443e
--- /dev/null
+++ b/db/sql/revert/buildings/functions/building_outlines@v4.0.0-dev1.sql
@@ -0,0 +1,383 @@
+-- Revert nz-buildings:buildings/functions/building_outlines to v3.1.0
+
+BEGIN;
+
+--------------------------------------------
+-- buildings.building_outlines
+
+-- Functions:
+-- building_outlines_insert (add new entry to building outlines table)
+ -- params: integer building_id, integer capture_method_id, integer capture_source_id
+ -- integer lifecycle_stage_id, integer suburb_locality_id, integer town_city_id
+ -- integer territorial_authority_id, timestamp begin_lifespan, shape geometry
+ -- return: new building_outline_id
+
+-- building_outlines_insert_bulk (Create new added records in building outlines table)
+ -- params: integer building_outline_id, integer bulk_load_outline_id
+ -- return: building_outline_id
+
+-- building_outlines_update_attributes (update the attributes of specified outline)
+ -- params: integer building_outline_id, integer capture_method_id, integer lifecycle_stage_id,
+ -- integer town_city_id, integer territorial_authority_id, timestamp begin_lifespan,
+ -- shape geometry
+ --return: number of outlines updated (should only be one)
+
+-- building_outlines_update_capture_method (update capture method attribute)
+ -- params integer building_outline_id, integer capture_method_id
+ -- return: integer count number of outlines updated
+
+-- building_outlines_update_end_lifespan (update the end lifespan attr of an outline)
+ -- params: integer[]
+ -- return: count of outlines updated
+
+-- building_outlines_update_modified_date (update the modified date attr of building to now)
+ -- params: integer, building_outline_id
+ -- return: number of outlines updated
+
+-- building_outlines_update_modified_date_by_building_id (update the modified date attr of building to now)
+ -- params: integer, building_id
+ -- return: number of outlines updated
+
+-- building outlines_update_shape (update the geometry of specified outline)
+ -- params: shape to update to geometry, integer building_outline_id
+ --return: number of outlines updated (should only be one)
+
+-- building_outlines_update_suburb (replace suburb values with the intersection result)
+ -- params: integer[] list of suburb localities building must be within
+ -- return: integer count of number of building outlines updated
+
+-- building_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+-- building_outlines_update_town_city (Replace the town/city values with the intersection result)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+--------------------------------------------
+
+-- Functions
+
+-- building_outlines_insert (add new entry to building outlines table)
+ -- params: integer building_id, integer capture_method_id, integer capture_source_id
+ -- integer lifecycle_stage_id, integer suburb_locality_id, integer town_city_id
+ -- integer territorial_authority_id, timestamp begin_lifespan, shape geometry
+ -- return: new building_outline_id
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_insert(
+ p_building_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_lifecycle_stage_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+ , p_shape geometry
+)
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings.building_outlines(
+ building_outline_id
+ , building_id
+ , capture_method_id
+ , capture_source_id
+ , lifecycle_stage_id
+ , suburb_locality_id
+ , town_city_id
+ , territorial_authority_id
+ , begin_lifespan
+ , shape
+ )
+ VALUES (
+ DEFAULT -- sequence
+ , p_building_id
+ , p_capture_method_id
+ , p_capture_source_id
+ , p_lifecycle_stage_id
+ , p_suburb_locality_id
+ , p_town_city_id
+ , p_territorial_authority_id
+ , DEFAULT
+ , p_shape
+ )
+ RETURNING building_outline_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry) IS
+'Insert new building outline into table';
+
+
+-- building_outlines_insert_bulk (Create new added records in building outlines table)
+ -- params: integer building_outline_id, integer bulk_load_outline_id
+ -- return: building_outline_id
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_insert_bulk(integer, integer)
+RETURNS integer AS
+$$
+
+ SELECT buildings.building_outlines_insert (
+ $1
+ , supplied.capture_method_id
+ , supplied.capture_source_id
+ , 1
+ , supplied.suburb_locality_id
+ , supplied.town_city_id
+ , supplied.territorial_authority_id
+ , supplied.shape
+ )
+ FROM buildings_bulk_load.bulk_load_outlines supplied
+ WHERE supplied.bulk_load_outline_id = $2
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_insert_bulk(integer, integer) IS
+'Create new added records in building outlines table';
+
+
+-- building_outlines_update_attributes (update the attributes of specified outline)
+ -- params: integer building_outline_id, integer capture_method_id, integer lifecycle_stage_id,
+ -- integer town_city_id, integer territorial_authority_id, timestamp begin_lifespan,
+ -- shape geometry
+ --return: number of outlines updated (should only be one)
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_attributes(
+ p_building_outline_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_lifecycle_stage_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_attributes AS (
+ UPDATE buildings.building_outlines
+ SET
+ capture_method_id = $2
+ , capture_source_id = $3
+ , lifecycle_stage_id = $4
+ , suburb_locality_id = $5
+ , town_city_id = $6
+ , territorial_authority_id = $7
+ WHERE building_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_attributes;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer) IS
+'Update attributes in building_outlines table';
+
+
+-- building_outlines_update_capture_method (update capture method attribute)
+ -- params integer building_outline_id, integer capture_method_id
+ -- return: integer count number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_capture_method(
+ p_building_outline_id integer
+ , p_capture_method_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_capture_method AS(
+ UPDATE buildings.building_outlines
+ SET capture_method_id = $2
+ WHERE building_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_capture_method;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_capture_method(integer, integer) IS
+'Update capture method in building_outlines table';
+
+
+-- building_outlines_update_end_lifespan (update the end lifespan attr of an outline)
+ -- params: integer[]
+ -- return: count of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_end_lifespan(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_building_outlines AS (
+ UPDATE buildings.building_outlines
+ SET end_lifespan = now()
+ WHERE building_outline_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_building_outlines;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_end_lifespan(integer[]) IS
+'Update end_lifespan in building outlines table';
+
+-- building_outlines_update_modified_date (update the modified date attr of building to now)
+ -- params: integer, building_outline_id
+ -- return: number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_modified_date(integer)
+ RETURNS integer AS
+$$
+ WITH update_buildings AS (
+ UPDATE buildings.building_outlines
+ SET last_modified = now()
+ WHERE building_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_buildings;
+
+$$ LANGUAGE sql;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_modified_date(integer) IS
+'Update modified_date of outline in building_outlines table';
+
+
+-- building_outlines_update_modified_date_by_building_id (update the modified date attr of building to now)
+ -- params: integer, building_id
+ -- return: number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_modified_date_by_building_id(integer)
+ RETURNS integer AS
+$$
+ WITH update_buildings AS (
+ UPDATE buildings.building_outlines
+ SET last_modified = now()
+ WHERE building_outline_id in (
+ SELECT building_outline_id
+ FROM buildings.building_outlines
+ WHERE building_id = $1
+ AND end_lifespan is NULL
+ )
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_buildings;
+
+$$ LANGUAGE sql;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_modified_date_by_building_id(integer) IS
+'Update modified_date of outline in building_outlines table by building_id';
+
+-- building outlines_update_shape (update the geometry of specified outline)
+ -- params: shape to update to geometry, integer building_outline_id
+ -- return: number of outlines updated (should only be one)
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_shape(geometry, integer)
+RETURNS integer AS
+$$
+
+ WITH update_buildings AS (
+ UPDATE buildings.building_outlines
+ SET shape = $1
+ WHERE building_outline_id = $2
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_buildings;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_shape(geometry, integer) IS
+'Update shape in building_outlines table';
+
+-- building_outlines_update_suburb (replace suburb values with the intersection result)
+ -- params: integer[] list of suburb localities building must be within
+ -- return: integer count of number of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_suburb(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_suburb AS (
+ UPDATE buildings.building_outlines outlines
+ SET suburb_locality_id = suburb_locality_intersect.suburb_locality_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.suburb_locality_intersect_polygon(outlines.shape)
+ , outlines.building_outline_id
+ FROM buildings.building_outlines outlines
+ ) suburb_locality_intersect
+ WHERE outlines.building_outline_id = suburb_locality_intersect.building_outline_id
+ AND suburb_locality_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_suburb;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_suburb(integer[]) IS
+'Replace suburb values with the intersection result of buildings in the building_outlines table';
+
+-- building_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_territorial_authority(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_territorial_auth AS (
+ UPDATE buildings.building_outlines outlines
+ SET territorial_authority_id = territorial_authority_intersect.territorial_authority_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.territorial_authority_intersect_polygon(outlines.shape)
+ , outlines.building_outline_id
+ FROM buildings.building_outlines outlines
+ ) territorial_authority_intersect
+ WHERE outlines.building_outline_id = territorial_authority_intersect.building_outline_id
+ AND territorial_authority_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_territorial_auth;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_territorial_authority(integer[]) IS
+'Replace the TA values with the intersection result for all buildings in building_outlines';
+
+-- building_outlines_update_town_city (Replace the town/city values with the intersection result)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings.building_outlines_update_town_city(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_town_city AS (
+ UPDATE buildings.building_outlines outlines
+ SET town_city_id = town_city_intersect.town_city_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.town_city_intersect_polygon(outlines.shape)
+ , outlines.building_outline_id
+ FROM buildings.building_outlines outlines
+ ) town_city_intersect
+ WHERE outlines.building_outline_id = town_city_intersect.building_outline_id
+ AND town_city_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_town_city;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings.building_outlines_update_town_city(integer[]) IS
+'Replace the town/city values with the intersection result for all buildings in buildings.building_outlines';
+
+COMMIT;
diff --git a/db/sql/revert/buildings/remove_building_outlines_ta_not_null_constraint.sql b/db/sql/revert/buildings/remove_building_outlines_ta_not_null_constraint.sql
new file mode 100644
index 00000000..c0787b51
--- /dev/null
+++ b/db/sql/revert/buildings/remove_building_outlines_ta_not_null_constraint.sql
@@ -0,0 +1,8 @@
+-- Revert nz-buildings:buildings/remove_building_outlines_ta_not_null_constraint from pg
+
+BEGIN;
+
+ALTER TABLE buildings.building_outlines
+ALTER COLUMN territorial_authority_id SET NOT NULL;
+
+COMMIT;
diff --git a/db/sql/revert/buildings/remove_building_outlines_town_city_id_column.sql b/db/sql/revert/buildings/remove_building_outlines_town_city_id_column.sql
new file mode 100644
index 00000000..0fe7ac5d
--- /dev/null
+++ b/db/sql/revert/buildings/remove_building_outlines_town_city_id_column.sql
@@ -0,0 +1,8 @@
+-- Revert nz-buildings:buildings/remove_building_outlines_town_city_id_column from pg
+
+BEGIN;
+
+ALTER TABLE buildings.building_outlines
+ADD COLUMN town_city_id integer;
+
+COMMIT;
diff --git a/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines.sql b/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines.sql
index 6884f7eb..2b49743d 100644
--- a/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines.sql
+++ b/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines.sql
@@ -1,7 +1,10 @@
--- Deploy nz-buildings:buildings_bulk_load/functions/bulk_load_outlines to pg
+-- Revert nz-buildings:buildings_bulk_load/functions/bulk_load_outlines to v4.0.0
BEGIN;
+DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry);
+DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer);
+
--------------------------------------------
-- buildings_bulk_load.bulk_load_outlines
@@ -46,10 +49,6 @@ BEGIN;
-- params: integer supplied_dataset_id
-- return: count(integer) number of building outlines updated
--- bulk_load_outlines_update_all_suburbs (replace all suburb values with the intersection result)
- -- params: integer[] list of suburb localities building must be within
- -- return: count(integer) number of building outlines updated
-
-- bulk_load_outlines_update_territorial_authority (Replace the TA values with the intersection result)
-- params: integer supplied_dataset_id
-- return: count(integer) number of outlines updated
@@ -343,35 +342,6 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_suburb(integer) IS
'Replace suburb values with the intersection result of buildings from a supplied dataset in the bulk_load_outlines table';
--- bulk_load_outlines_update_all_suburbs (replace all suburb values with the intersection result)
- -- params: integer[] list of suburb localities building must be within
- -- return: count(integer) number of building outlines updated
-
-CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_suburbs(integer[])
-RETURNS integer AS
-$$
-
- WITH update_suburb AS (
- UPDATE buildings_bulk_load.bulk_load_outlines outlines
- SET suburb_locality_id = suburb_locality_intersect.suburb_locality_intersect_polygon
- FROM (
- SELECT
- buildings_reference.suburb_locality_intersect_polygon(outlines.shape)
- , outlines.bulk_load_outline_id
- FROM buildings_bulk_load.bulk_load_outlines outlines
- ) suburb_locality_intersect
- WHERE outlines.bulk_load_outline_id = suburb_locality_intersect.bulk_load_outline_id
- AND suburb_locality_id = ANY($1)
- RETURNING *
- )
- SELECT count(*)::integer FROM update_suburb;
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_suburbs(integer[]) IS
-'Replace suburb values with the intersection result of all buildings in the bulk_load_outlines table';
-
-- bulk_load_outlines_update_territorial_authority (Replace the TA values with the intersection result)
-- params: integer supplied_dataset_id
-- return: count(integer) number of outlines updated
diff --git a/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql b/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql
new file mode 100644
index 00000000..27ad29a6
--- /dev/null
+++ b/db/sql/revert/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql
@@ -0,0 +1,491 @@
+-- Revert nz-buildings:buildings_bulk_load/functions/bulk_load_outlines to v3.1.0
+
+BEGIN;
+
+--------------------------------------------
+-- buildings_bulk_load.bulk_load_outlines
+
+-- Functions:
+
+-- bulk_load_outlines_insert (insert new bulk load outline)
+ -- params: integer supplied_dataset_id, integer external_outline_id
+ -- integer external_outline_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id,
+ -- geometry shape
+ -- return: integer new bulk_load_outline_id
+
+-- bulk_load_outlines_insert_supplied (insert supplied outlines into bulk_load_outlines)
+ -- params: integer supplied_dataset_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer capture_source_id
+ -- return: integer count of supplied outlines added
+
+-- bulk_load_outlines_remove_small_buildings (change bulk load status of buildings less than 10sqm)
+ -- params: integer supplied_dataset_id
+ -- return: number of small buildings that have been removed
+
+-- bulk_load_outlines_update_attributes (update the attributes of an outlines)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id, integer
+ -- capture_method_id, integer capture_source_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id, geometry shape
+ -- return: count of number of outlines updated
+
+-- bulk_load_outlines_update_bulk_load_status (Update bulk load status in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id
+ -- return: integer count of building outlines updated
+
+-- bulk_load_outlines_update_capture_method (Update capture method in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer capture_method_id
+ -- return: integer count of building outlines updated
+
+-- bulk_load_outlines_update_shape (update the shape of an outline)
+ -- params: geometry, integer bulk_load_outline_id
+ -- return: number of outlines with updated shapes
+
+-- bulk_load_outlines_update_suburb (replace suburb values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of building outlines updated
+
+-- bulk_load_outlines_update_all_suburbs (replace all suburb values with the intersection result)
+ -- params: integer[] list of suburb localities building must be within
+ -- return: count(integer) number of building outlines updated
+
+-- bulk_load_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+-- bulk_load_outlines_update_all_territorial_authorities (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+-- bulk_load_outlines_update_town_city (Replace the town/city values with the intersection)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+-- bulk_load_outlines_update_all_town_cities (Replace the town/city values with the intersection)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+--------------------------------------------
+
+-- Functions
+
+-- bulk_load_outlines_insert (insert new bulk load outline)
+ -- params: integer supplied_dataset_id, integer external_outline_id
+ -- integer external_outline_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id
+ -- geometry shape
+ -- return: integer new bulk_load_outline_id
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_insert(
+ p_supplied_dataset_id integer
+ , p_external_outline_id integer
+ , p_bulk_load_status_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+ , p_shape geometry
+)
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings_bulk_load.bulk_load_outlines(
+ bulk_load_outline_id
+ , supplied_dataset_id
+ , external_outline_id
+ , bulk_load_status_id
+ , capture_method_id
+ , capture_source_id
+ , suburb_locality_id
+ , town_city_id
+ , territorial_authority_id
+ , begin_lifespan
+ , shape
+ )
+ VALUES (
+ DEFAULT -- sequence
+ , p_supplied_dataset_id
+ , p_external_outline_id
+ , p_bulk_load_status_id
+ , p_capture_method_id
+ , p_capture_source_id
+ , p_suburb_locality_id
+ , p_town_city_id
+ , p_territorial_authority_id
+ , now()
+ , p_shape
+ )
+ RETURNING bulk_load_outline_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, integer, geometry) IS
+'Insert new bulk load outline';
+
+-- bulk_load_outlines_insert_supplied (insert supplied outlines into bulk_load_outlines)
+ -- params: integer supplied_dataset_id, integer bulk_load_status_id
+ -- integer capture_method_id, integer capture_source_id
+ -- return: integer count of supplied outlines added
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_insert_supplied(
+ p_supplied_dataset_id integer
+ , p_bulk_load_status_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH insert_supplied AS (
+ INSERT INTO buildings_bulk_load.bulk_load_outlines(
+ supplied_dataset_id
+ , external_outline_id
+ , bulk_load_status_id
+ , capture_method_id
+ , capture_source_id
+ , suburb_locality_id
+ , town_city_id
+ , territorial_authority_id
+ , begin_lifespan
+ , shape
+ )
+ SELECT
+ supplied_dataset_id
+ , external_outline_id
+ , p_bulk_load_status_id
+ , p_capture_method_id
+ , p_capture_source_id
+ , buildings_reference.suburb_locality_intersect_polygon(shape)
+ , buildings_reference.town_city_intersect_polygon(shape)
+ , buildings_reference.territorial_authority_grid_intersect_polygon(shape)
+ , now()
+ , shape
+ FROM buildings_bulk_load.supplied_outlines s
+ WHERE s.supplied_dataset_id = p_supplied_dataset_id
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM insert_supplied;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_insert_supplied(integer, integer, integer, integer) IS
+'Insert supplied outlines into bulk load outlines';
+
+
+-- bulk_load_outlines_remove_small_buildings (change bulk load status of buildings less than 10sqm)
+ -- params: integer supplied_dataset_id
+ -- return: number of small buildings that have been removed
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_remove_small_buildings(integer)
+RETURNS integer AS
+$$
+
+ WITH small_buildings AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET bulk_load_status_id = 3
+ WHERE bulk_load_outline_id IN (
+ SELECT bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines
+ WHERE ST_Area(shape) < 10
+ )
+ AND supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM small_buildings;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_remove_small_buildings(integer) IS
+'Update bulk load status in bulk_load_outlines table of outlines less than 10sqm';
+
+-- bulk_load_outlines_update_attributes (update the attributes of an outlines)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id, integer
+ -- capture_method_id, integer capture_source_id, integer suburb_locality_id
+ -- integer town_city_id, integer territorial_authority_id, geometry shape
+ -- return: count of number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(
+ p_bulk_load_outline_id integer
+ , p_bulk_load_status_id integer
+ , p_capture_method_id integer
+ , p_capture_source_id integer
+ , p_suburb_locality_id integer
+ , p_town_city_id integer
+ , p_territorial_authority_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_attributes AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET
+ bulk_load_status_id = $2
+ , capture_method_id = $3
+ , capture_source_id = $4
+ , suburb_locality_id = $5
+ , town_city_id = $6
+ , territorial_authority_id = $7
+ WHERE bulk_load_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_attributes;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer) IS
+'Update attributes in bulk_load_outlines table';
+
+-- bulk_load_outlines_update_bulk_load_status (Update bulk load status in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer bulk_load_status_id
+ -- return: integer count of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_bulk_load_status(
+ p_bulk_load_outline_id integer
+ , p_bulk_load_status_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_bulk_load_status AS(
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET bulk_load_status_id = $2
+ WHERE bulk_load_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_bulk_load_status;
+
+$$ LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_bulk_load_status(integer, integer) IS
+'Update bulk load status in bulk_load_outlines table';
+
+
+-- bulk_load_outlines_update_capture_method (Update capture method in bulk_load_outlines table)
+ -- params: integer bulk_load_outline_id, integer capture_method_id
+ -- return: integer count of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_capture_method(
+ p_bulk_load_outline_id integer
+ , p_capture_method_id integer
+)
+RETURNS integer AS
+$$
+
+ WITH update_capture_method AS(
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET capture_method_id = $2
+ WHERE bulk_load_outline_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_capture_method;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_capture_method(integer, integer) IS
+'Update capture method in bulk_load_outlines table';
+
+-- bulk_load_outlines_update_shape (update the shape of an outline)
+ -- params: geometry, integer bulk_load_outline_id
+ -- return: number of outlines with updated shapes
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_shape(geometry, integer)
+RETURNS integer AS
+$$
+
+ WITH update_shape AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines
+ SET shape = $1
+ WHERE bulk_load_outline_id = $2
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_shape;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_shape(geometry, integer) IS
+'Update shape in bulk_load_outlines table';
+
+-- bulk_load_outlines_update_suburb (replace suburb values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_suburb(integer)
+RETURNS integer AS
+$$
+
+ WITH update_suburb AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET suburb_locality_id = suburb_locality_intersect.suburb_locality_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.suburb_locality_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) suburb_locality_intersect
+ WHERE outlines.bulk_load_outline_id = suburb_locality_intersect.bulk_load_outline_id
+ AND outlines.supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_suburb;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_suburb(integer) IS
+'Replace suburb values with the intersection result of buildings from a supplied dataset in the bulk_load_outlines table';
+
+-- bulk_load_outlines_update_all_suburbs (replace all suburb values with the intersection result)
+ -- params: integer[] list of suburb localities building must be within
+ -- return: count(integer) number of building outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_suburbs(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_suburb AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET suburb_locality_id = suburb_locality_intersect.suburb_locality_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.suburb_locality_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) suburb_locality_intersect
+ WHERE outlines.bulk_load_outline_id = suburb_locality_intersect.bulk_load_outline_id
+ AND suburb_locality_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_suburb;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_suburbs(integer[]) IS
+'Replace suburb values with the intersection result of all buildings in the bulk_load_outlines table';
+
+-- bulk_load_outlines_update_territorial_authority (Replace the TA values with the intersection result)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_territorial_authority(integer)
+RETURNS integer AS
+$$
+
+ WITH update_territorial_auth AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET territorial_authority_id = territorial_authority_intersect.territorial_authority_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.territorial_authority_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) territorial_authority_intersect
+ WHERE outlines.bulk_load_outline_id = territorial_authority_intersect.bulk_load_outline_id
+ AND outlines.supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_territorial_auth;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_territorial_authority(integer) IS
+'Replace the TA values with the intersection result';
+
+-- bulk_load_outlines_update_all_territorial_authorities (Replace the TA values with the intersection result)
+ -- params: integer[] list of territorial_authorities buildings must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_territorial_auth AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET territorial_authority_id = territorial_authority_intersect.territorial_authority_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.territorial_authority_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) territorial_authority_intersect
+ WHERE outlines.bulk_load_outline_id = territorial_authority_intersect.bulk_load_outline_id
+ AND territorial_authority_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_territorial_auth;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[]) IS
+'Replace the TA values with the intersection result for all buildings in bulk_load_outlines';
+
+-- bulk_load_outlines_update_town_city (Replace the town/city values with the intersection)
+ -- params: integer supplied_dataset_id
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_town_city(integer)
+RETURNS integer AS
+$$
+
+ WITH update_town_city AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET town_city_id = town_city_intersect.town_city_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.town_city_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) town_city_intersect
+ WHERE outlines.bulk_load_outline_id = town_city_intersect.bulk_load_outline_id
+ AND outlines.supplied_dataset_id = $1
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_town_city;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_town_city(integer) IS
+'Replace the town/city values with the intersection results for a supplied bulk loaded dataset';
+
+-- bulk_load_outlines_update_all_town_cities (Replace the town/city values with the intersection)
+ -- params: integer[] list of town_city_ids building must be within
+ -- return: count(integer) number of outlines updated
+
+CREATE OR REPLACE FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[])
+RETURNS integer AS
+$$
+
+ WITH update_town_city AS (
+ UPDATE buildings_bulk_load.bulk_load_outlines outlines
+ SET town_city_id = town_city_intersect.town_city_intersect_polygon
+ FROM (
+ SELECT
+ buildings_reference.town_city_intersect_polygon(outlines.shape)
+ , outlines.bulk_load_outline_id
+ FROM buildings_bulk_load.bulk_load_outlines outlines
+ ) town_city_intersect
+ WHERE outlines.bulk_load_outline_id = town_city_intersect.bulk_load_outline_id
+ AND town_city_id = ANY($1)
+ RETURNING *
+ )
+ SELECT count(*)::integer FROM update_town_city;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[]) IS
+'Replace the town/city values with the intersection result for all buildings in buildings_bulk_load.bulk_load_outlines';
+
+COMMIT;
diff --git a/db/sql/revert/buildings_bulk_load/functions/compare.sql b/db/sql/revert/buildings_bulk_load/functions/compare.sql
index 2b468c89..ecd63ef6 100644
--- a/db/sql/revert/buildings_bulk_load/functions/compare.sql
+++ b/db/sql/revert/buildings_bulk_load/functions/compare.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_bulk_load/functions/compare to pg
+-- Revert nz-buildings:buildings_bulk_load/functions/compare to v3.2.0
BEGIN;
diff --git a/db/sql/revert/buildings_bulk_load/functions/load_to_production.sql b/db/sql/revert/buildings_bulk_load/functions/load_to_production.sql
index 5be6c120..03e8e5f7 100644
--- a/db/sql/revert/buildings_bulk_load/functions/load_to_production.sql
+++ b/db/sql/revert/buildings_bulk_load/functions/load_to_production.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_bulk_load/functions/load_to_production to pg
+-- Revert nz-buildings:buildings_bulk_load/functions/load_to_production to v3.6.0
BEGIN;
diff --git a/db/sql/revert/buildings_bulk_load/functions/removed.sql b/db/sql/revert/buildings_bulk_load/functions/removed.sql
index fd9e519f..63bc19f6 100644
--- a/db/sql/revert/buildings_bulk_load/functions/removed.sql
+++ b/db/sql/revert/buildings_bulk_load/functions/removed.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_bulk_load/functions/removed to pg
+-- Revert nz-buildings:buildings_bulk_load/functions/removed to v3.2.0
BEGIN;
diff --git a/db/sql/revert/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql b/db/sql/revert/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql
new file mode 100644
index 00000000..cf4fd0e0
--- /dev/null
+++ b/db/sql/revert/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql
@@ -0,0 +1,8 @@
+-- Revert nz-buildings:buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint from pg
+
+BEGIN;
+
+ALTER TABLE buildings_bulk_load.bulk_load_outlines
+ALTER COLUMN territorial_authority_id SET NOT NULL;
+
+COMMIT;
diff --git a/db/sql/revert/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql b/db/sql/revert/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql
new file mode 100644
index 00000000..97e2d682
--- /dev/null
+++ b/db/sql/revert/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql
@@ -0,0 +1,8 @@
+-- Revert nz-buildings:buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column from pg
+
+BEGIN;
+
+ALTER TABLE buildings_bulk_load.bulk_load_outlines
+ADD COLUMN town_city_id integer;
+
+COMMIT;
diff --git a/db/sql/revert/buildings_lds/functions/populate_buildings_lds.sql b/db/sql/revert/buildings_lds/functions/populate_buildings_lds.sql
index 73ca3c3c..8b8feef9 100644
--- a/db/sql/revert/buildings_lds/functions/populate_buildings_lds.sql
+++ b/db/sql/revert/buildings_lds/functions/populate_buildings_lds.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_lds/functions/populate_buildings_lds to pg
+-- Revert nz-buildings:buildings_lds/functions/populate_buildings_lds to v4.0.0
BEGIN;
diff --git a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.1.0-dev1.sql b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.1.0-dev1.sql
index 3c123ca2..d105b7e0 100644
--- a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.1.0-dev1.sql
+++ b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.1.0-dev1.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_lds/functions/populate_buildings_lds to pg
+-- Revert nz-buildings:buildings_lds/functions/populate_buildings_lds to v3.0.0
BEGIN;
diff --git a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev1.sql b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev1.sql
index 3c123ca2..e78720b8 100644
--- a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev1.sql
+++ b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev1.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_lds/functions/populate_buildings_lds to pg
+-- Revert nz-buildings:buildings_lds/functions/populate_buildings_lds to v3.1.0
BEGIN;
diff --git a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev2.sql b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev2.sql
index 7cdb8fb7..0885890f 100644
--- a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev2.sql
+++ b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v3.2.0-dev2.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_lds/functions/populate_buildings_lds to pg
+-- Revert nz-buildings:buildings_lds/functions/populate_buildings_lds to v3.2.0
BEGIN;
diff --git a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v4.0.0-dev1.sql b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v4.0.0-dev1.sql
index 5b60e516..29e00c99 100644
--- a/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v4.0.0-dev1.sql
+++ b/db/sql/revert/buildings_lds/functions/populate_buildings_lds@v4.0.0-dev1.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_lds/functions/populate_buildings_lds to pg
+-- Revert nz-buildings:buildings_lds/functions/populate_buildings_lds from to v3.2.0
BEGIN;
diff --git a/db/sql/revert/buildings_reference/add_log_column_nz_imagery_survey_index.sql b/db/sql/revert/buildings_reference/add_log_column_nz_imagery_survey_index.sql
new file mode 100644
index 00000000..17308af6
--- /dev/null
+++ b/db/sql/revert/buildings_reference/add_log_column_nz_imagery_survey_index.sql
@@ -0,0 +1,7 @@
+-- Revert nz-buildings:buildings_reference/add_log_column_nz_imagery_survey_index from pg
+
+BEGIN;
+
+ALTER TABLE buildings_reference.reference_update_log DROP COLUMN imagery_survey_index;
+
+COMMIT;
diff --git a/db/sql/revert/buildings_reference/drop_town_city.sql b/db/sql/revert/buildings_reference/drop_town_city.sql
new file mode 100644
index 00000000..9f524f68
--- /dev/null
+++ b/db/sql/revert/buildings_reference/drop_town_city.sql
@@ -0,0 +1,28 @@
+-- Revert nz-buildings:buildings_reference/drop_town_city_table from pg
+
+BEGIN;
+
+CREATE TABLE IF NOT EXISTS buildings_reference.town_city (
+ town_city_id serial PRIMARY KEY
+ , external_city_id integer
+ , name character varying(60)
+ , shape public.geometry(MultiPolygon, 2193)
+);
+
+CREATE INDEX shx_town_city
+ ON buildings_reference.town_city USING gist (shape);
+
+COMMENT ON TABLE buildings_reference.town_city IS
+'towns/cities of New Zealand';
+
+COMMENT ON COLUMN buildings_reference.town_city.town_city_id IS
+'Unique identifier for town_city.';
+COMMENT ON COLUMN buildings_reference.town_city.external_city_id IS
+'The id given by the external source.';
+COMMENT ON COLUMN buildings_reference.town_city.name IS
+'The name of the town/city.';
+
+ALTER TABLE buildings_reference.reference_update_log
+ADD COLUMN town_city boolean;
+
+COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/reference_update_log.sql b/db/sql/revert/buildings_reference/functions/reference_update_log.sql
index 16ff23a6..41e6ef86 100644
--- a/db/sql/revert/buildings_reference/functions/reference_update_log.sql
+++ b/db/sql/revert/buildings_reference/functions/reference_update_log.sql
@@ -1,7 +1,49 @@
--- Revert nz-buildings:buildings_reference/functions/reference_update_log from pg
+-- Revert nz-buildings:buildings_reference/functions/reference_update_log to v4.0.0
BEGIN;
-DROP FUNCTION buildings_reference.reference_update_log_insert_log(varchar[]);
+--------------------------------------------
+-- buildings_reference.reference_update_log
+
+-- Functions
+
+-- reference_update_log_insert_log
+ -- params: list varchar the columns to be set as true
+ -- return: integer update_id
+
+--------------------------------------------
+
+-- Functions
+
+-- reference_update_log_insert_log
+ -- params: list varchar the columns to be set as true
+ -- return: integer update_id
+
+
+CREATE OR REPLACE FUNCTION buildings_reference.reference_update_log_insert_log(p_list varchar[])
+RETURNS integer AS
+$$
+
+ INSERT INTO buildings_reference.reference_update_log (river, lake, pond, swamp, lagoon, canal, coastlines_and_islands, capture_source_area, territorial_authority, territorial_authority_grid, suburb_locality, town_city)
+ VALUES(CASE WHEN ('river' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('lake' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('pond' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('swamp' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('lagoon' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('canal' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('coastlines_and_islands' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('capture_source_area' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('territorial_authority' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('territorial_authority_grid' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('suburb_locality' = ANY(p_list)) THEN True ELSE False END,
+ CASE WHEN ('town_city' = ANY(p_list)) THEN True ELSE False END
+ )
+ RETURNING update_id;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.reference_update_log_insert_log(varchar[]) IS
+'Insert new log into reference log table';
COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql b/db/sql/revert/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql
new file mode 100644
index 00000000..16ff23a6
--- /dev/null
+++ b/db/sql/revert/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql
@@ -0,0 +1,7 @@
+-- Revert nz-buildings:buildings_reference/functions/reference_update_log from pg
+
+BEGIN;
+
+DROP FUNCTION buildings_reference.reference_update_log_insert_log(varchar[]);
+
+COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/suburb_locality.sql b/db/sql/revert/buildings_reference/functions/suburb_locality.sql
index 9fc0e63e..5740f35d 100644
--- a/db/sql/revert/buildings_reference/functions/suburb_locality.sql
+++ b/db/sql/revert/buildings_reference/functions/suburb_locality.sql
@@ -1,4 +1,4 @@
--- Revert nz-buildings:buildings_reference/functions/suburb_locality to pg
+-- Revert nz-buildings:buildings_reference/functions/suburb_locality to v4.0.0
BEGIN;
@@ -11,18 +11,6 @@ BEGIN;
-- params: p_polygon_geometry geometry
-- return: integer suburb_locality_id
--- suburb_locality_delete_removed_areas (delete suburbs that are no longer is admin_bdys)
- -- params:
- -- return: integer list of outlines deleted
-
--- suburb_locality_insert_new_areas (insert new areas from admin_bdys)
- -- params:
- -- return: integer list of areas inserted
-
--- suburb_locality_update_suburb_locality (update geometries based on those in admin_bdys)
- -- params:
- -- return: integer list of areas updated
-
--------------------------------------------
-- Functions
@@ -41,7 +29,7 @@ $$
FROM buildings_reference.suburb_locality
WHERE shape && ST_Expand(p_polygon_geometry, 1000)
ORDER BY
- ST_Area(ST_Intersection(p_polygon_geometry, shape)) / ST_Area(shape) DESC
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) DESC
, ST_Distance(p_polygon_geometry, shape) ASC
LIMIT 1;
@@ -51,110 +39,14 @@ LANGUAGE sql VOLATILE;
COMMENT ON FUNCTION buildings_reference.suburb_locality_intersect_polygon(geometry) IS
'Return id of suburb/locality with most overlap';
--- update suburb_table_functions
-
--- suburb_locality_delete_removed_areas (delete suburbs that are no longer is admin_bdys)
- -- params:
- -- return: integer list of outlines deleted
-
-CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_delete_removed_areas()
-RETURNS integer[] AS
-$$
-
- WITH delete_suburb AS (
- DELETE FROM buildings_reference.suburb_locality
- WHERE external_suburb_locality_id NOT IN (
- SELECT id
- FROM admin_bdys.nz_locality
- )
- RETURNING *
- )
- SELECT ARRAY(
- SELECT suburb_locality_id
- FROM delete_suburb
- );
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_reference.suburb_locality_delete_removed_areas() IS
-'Function to delete from the buildings_reference suburb locality table the areas that have been removed in the admin_bdys schema';
+DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_delete_by_external_id(integer);
--- suburb_locality_insert_new_areas (insert new areas from admin_bdys)
- -- params:
- -- return: integer list of areas inserted
+DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_insert(integer, varchar, varchar, varchar);
-CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_insert_new_areas()
-RETURNS integer[] AS
-$$
+DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_update_by_external_id(integer, varchar, varchar, varchar);
- WITH insert_suburb AS (
- INSERT INTO buildings_reference.suburb_locality (
- external_suburb_locality_id
- , suburb_4th
- , suburb_3rd
- , suburb_2nd
- , suburb_1st
- , shape
- )
- SELECT
- id
- , suburb_4th
- , suburb_3rd
- , suburb_2nd
- , suburb_1st
- , ST_SetSRID(ST_Transform(shape, 2193), 2193)
- FROM admin_bdys.nz_locality
- WHERE type in ('ISLAND','LOCALITY','PARK_RESERVE','SUBURB')
- AND id NOT IN (
- SELECT external_suburb_locality_id
- FROM buildings_reference.suburb_locality
- )
- RETURNING *
- )
- SELECT ARRAY(
- SELECT suburb_locality_id
- FROM insert_suburb
- );
-
-$$
-LANGUAGE sql VOLATILE;
-
-COMMENT ON FUNCTION buildings_reference.suburb_locality_insert_new_areas() IS
-'Function to insert from the admin_bdys schema new areas not in the buildings_reference suburb locality table';
-
--- suburb_locality_update_suburb_locality (update geometries based on those in admin_bdys)
- -- params:
- -- return: integer list of areas updated
-
-CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_update_suburb_locality()
-RETURNS integer[] AS
-$$
-
- WITH update_suburb AS (
- UPDATE buildings_reference.suburb_locality bsl
- SET
- suburb_4th = nzl.suburb_4th
- , suburb_3rd = nzl.suburb_3rd
- , suburb_2nd = nzl.suburb_2nd
- , suburb_1st = nzl.suburb_1st
- , shape = ST_SetSRID(ST_Transform(nzl.shape, 2193), 2193)
- FROM admin_bdys.nz_locality nzl
- WHERE bsl.external_suburb_locality_id = nzl.id
- AND ( NOT ST_Equals(ST_SetSRID(ST_Transform(nzl.shape, 2193), 2193), bsl.shape)
- OR nzl.suburb_4th != bsl.suburb_4th
- OR nzl.suburb_3rd != bsl.suburb_3rd
- OR nzl.suburb_2nd != bsl.suburb_2nd
- OR nzl.suburb_1st != bsl.suburb_1st
- )
- RETURNING *
- )
- SELECT ARRAY(SELECT suburb_locality_id FROM update_suburb);
-
-$$
-LANGUAGE sql VOLATILE;
+DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_attribute_update_building_outlines(integer[]);
-COMMENT ON FUNCTION buildings_reference.suburb_locality_update_suburb_locality() IS
-'Function to update the attributes in the buildings_reference suburb locality table from the admin_bdys schema';
+DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_geometry_update_building_outlines(varchar);
COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/suburb_locality@v3.1.0-dev2.sql b/db/sql/revert/buildings_reference/functions/suburb_locality@v3.1.0-dev2.sql
index a10b1e14..06f1780a 100644
--- a/db/sql/revert/buildings_reference/functions/suburb_locality@v3.1.0-dev2.sql
+++ b/db/sql/revert/buildings_reference/functions/suburb_locality@v3.1.0-dev2.sql
@@ -1,4 +1,4 @@
--- Deploy nz-buildings:buildings_reference/functions/suburb_locality to pg
+-- Revert nz-buildings:buildings_reference/functions/suburb_locality to v3.1.0
BEGIN;
diff --git a/db/sql/revert/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql b/db/sql/revert/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql
new file mode 100644
index 00000000..fe8149af
--- /dev/null
+++ b/db/sql/revert/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql
@@ -0,0 +1,160 @@
+-- Revert nz-buildings:buildings_reference/functions/suburb_locality to v3.1.0
+
+BEGIN;
+
+--------------------------------------------
+-- buildings_reference.suburb_locality
+
+-- Functions
+
+-- suburb_locality_intersect_polygon (id of suburb with most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer suburb_locality_id
+
+-- suburb_locality_delete_removed_areas (delete suburbs that are no longer is admin_bdys)
+ -- params:
+ -- return: integer list of outlines deleted
+
+-- suburb_locality_insert_new_areas (insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of areas inserted
+
+-- suburb_locality_update_suburb_locality (update geometries based on those in admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+--------------------------------------------
+
+-- Functions
+
+-- suburb_locality_intersect_polygon (id of suburb with most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer suburb_locality_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT suburb_locality_id
+ FROM buildings_reference.suburb_locality
+ WHERE shape && ST_Expand(p_polygon_geometry, 1000)
+ ORDER BY
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) / ST_Area(shape) DESC
+ , ST_Distance(p_polygon_geometry, shape) ASC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_intersect_polygon(geometry) IS
+'Return id of suburb/locality with most overlap';
+
+-- update suburb_table_functions
+
+-- suburb_locality_delete_removed_areas (delete suburbs that are no longer is admin_bdys)
+ -- params:
+ -- return: integer list of outlines deleted
+
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_delete_removed_areas()
+RETURNS integer[] AS
+$$
+
+ WITH delete_suburb AS (
+ DELETE FROM buildings_reference.suburb_locality
+ WHERE external_suburb_locality_id NOT IN (
+ SELECT id
+ FROM admin_bdys.nz_locality
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT suburb_locality_id
+ FROM delete_suburb
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_delete_removed_areas() IS
+'Function to delete from the buildings_reference suburb locality table the areas that have been removed in the admin_bdys schema';
+
+-- suburb_locality_insert_new_areas (insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of areas inserted
+
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_insert_new_areas()
+RETURNS integer[] AS
+$$
+
+ WITH insert_suburb AS (
+ INSERT INTO buildings_reference.suburb_locality (
+ external_suburb_locality_id
+ , suburb_4th
+ , suburb_3rd
+ , suburb_2nd
+ , suburb_1st
+ , shape
+ )
+ SELECT
+ id
+ , suburb_4th
+ , suburb_3rd
+ , suburb_2nd
+ , suburb_1st
+ , ST_SetSRID(ST_Transform(shape, 2193), 2193)
+ FROM admin_bdys.nz_locality
+ WHERE type in ('ISLAND','LOCALITY','PARK_RESERVE','SUBURB')
+ AND id NOT IN (
+ SELECT external_suburb_locality_id
+ FROM buildings_reference.suburb_locality
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT suburb_locality_id
+ FROM insert_suburb
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_insert_new_areas() IS
+'Function to insert from the admin_bdys schema new areas not in the buildings_reference suburb locality table';
+
+-- suburb_locality_update_suburb_locality (update geometries based on those in admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+CREATE OR REPLACE FUNCTION buildings_reference.suburb_locality_update_suburb_locality()
+RETURNS integer[] AS
+$$
+
+ WITH update_suburb AS (
+ UPDATE buildings_reference.suburb_locality bsl
+ SET
+ suburb_4th = nzl.suburb_4th
+ , suburb_3rd = nzl.suburb_3rd
+ , suburb_2nd = nzl.suburb_2nd
+ , suburb_1st = nzl.suburb_1st
+ , shape = ST_SetSRID(ST_Transform(nzl.shape, 2193), 2193)
+ FROM admin_bdys.nz_locality nzl
+ WHERE bsl.external_suburb_locality_id = nzl.id
+ AND ( NOT ST_Equals(ST_SetSRID(ST_Transform(nzl.shape, 2193), 2193), bsl.shape)
+ OR nzl.suburb_4th != bsl.suburb_4th
+ OR nzl.suburb_3rd != bsl.suburb_3rd
+ OR nzl.suburb_2nd != bsl.suburb_2nd
+ OR nzl.suburb_1st != bsl.suburb_1st
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(SELECT suburb_locality_id FROM update_suburb);
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.suburb_locality_update_suburb_locality() IS
+'Function to update the attributes in the buildings_reference suburb locality table from the admin_bdys schema';
+
+COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/suburb_locality_optimised.sql b/db/sql/revert/buildings_reference/functions/suburb_locality_optimised.sql
index caffb8f4..63965db4 100644
--- a/db/sql/revert/buildings_reference/functions/suburb_locality_optimised.sql
+++ b/db/sql/revert/buildings_reference/functions/suburb_locality_optimised.sql
@@ -1,13 +1,7 @@
--- Deploy nz-buildings:buildings_reference/functions/update_suburb_locality_changed_deleted_buildings to pg
+-- Revert nz-buildings:buildings_reference/functions/update_suburb_locality_changed_deleted_buildings to v4.0.0
BEGIN;
-DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_insert_new_areas();
-DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_update_suburb_locality();
-DROP FUNCTION IF EXISTS buildings_reference.suburb_locality_delete_removed_areas();
-DROP FUNCTION IF EXISTS buildings.building_outlines_update_suburb(integer[]);
-DROP FUNCTION IF EXISTS buildings_bulk_load.bulk_load_outlines_update_all_suburbs(integer[]);
-
-- building_outlines_update_changed_and_deleted_suburb (replace suburb values with the intersection result)
-- params:
-- return: integer count of number of building outlines updated
diff --git a/db/sql/revert/buildings_reference/functions/territorial_authority.sql b/db/sql/revert/buildings_reference/functions/territorial_authority.sql
index 8f5789a7..a08f8897 100644
--- a/db/sql/revert/buildings_reference/functions/territorial_authority.sql
+++ b/db/sql/revert/buildings_reference/functions/territorial_authority.sql
@@ -1,7 +1,17 @@
--- Deploy nz-buildings:buildings_reference/functions/territorial_authority to pg
+-- Revert nz-buildings:buildings_reference/functions/territorial_authority to v4.0.0
BEGIN;
+DROP FUNCTION IF EXISTS buildings_reference.territorial_authority_delete_by_external_id(integer);
+
+DROP FUNCTION IF EXISTS buildings_reference.territorial_authority_insert(integer, varchar, varchar);
+
+DROP FUNCTION IF EXISTS buildings_reference.territorial_authority_update_by_external_id(integer, varchar, varchar);
+
+DROP FUNCTION IF EXISTS buildings_reference.territorial_authority_attribute_update_building_outlines(integer[]);
+
+DROP FUNCTION IF EXISTS buildings_reference.territorial_authority_geometry_update_building_outlines(varchar);
+
----------------------------------------------------------------------------------------------
-- buildings_reference.territorial_authority && buildings_reference.territorial_authority_grid
@@ -150,13 +160,9 @@ $$
name = ata.name
, shape = ST_SetSRID(ST_Transform(ata.shape, 2193), 2193)
FROM admin_bdys.territorial_authority ata
- WHERE bta.external_territorial_authority_id IN (
- SELECT ogc_fid
- FROM admin_bdys.territorial_authority ata
- JOIN buildings_reference.territorial_authority bta ON ogc_fid = external_territorial_authority_id
- WHERE ( NOT ST_Equals(bta.shape, ST_SetSRID(ST_Transform(ata.shape, 2193), 2193))
- OR bta.name != ata.name)
- )
+ WHERE bta.external_territorial_authority_id = ata.ogc_fid
+ AND (NOT ST_Equals(bta.shape, ST_SetSRID(ST_Transform(ata.shape, 2193), 2193))
+ OR bta.name != ata.name)
RETURNING *
)
SELECT ARRAY (
diff --git a/db/sql/revert/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql b/db/sql/revert/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql
new file mode 100644
index 00000000..a6607d52
--- /dev/null
+++ b/db/sql/revert/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql
@@ -0,0 +1,173 @@
+-- Revert nz-buildings:buildings_reference/functions/territorial_authority to v3.1.0
+
+BEGIN;
+
+----------------------------------------------------------------------------------------------
+-- buildings_reference.territorial_authority && buildings_reference.territorial_authority_grid
+
+-- Functions
+
+-- territorial_authority_grid_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry, geometry
+ -- return: integer territorial_authority_id
+
+-- territorial_authority_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer territorial_authority_id
+
+-- territorial_auth_delete_areas(delete areas no long in admin_bdys)
+ -- params:
+ -- return: integer list of TAs deleted
+
+-- territorial_auth_insert_areas(insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of new areas added
+
+-- territorial_auth_update_areas(update geometries based on admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+----------------------------------------------------------------------------------------------
+
+-- Functions
+
+-- territorial_authority_grid_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry, geometry
+ -- return: integer territorial_authority_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_grid_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT territorial_authority_id
+ FROM buildings_reference.territorial_authority_grid
+ WHERE ST_DWithin(p_polygon_geometry, shape, 1000)
+ ORDER BY
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) / ST_Area(shape) DESC
+ , ST_Distance(p_polygon_geometry, shape) ASC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_authority_grid_intersect_polygon(geometry) IS
+'Returns id of the TA Grid that has the most overlap';
+
+-- territorial_authority_intersect_polygon (id of the TA that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer territorial_authority_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_authority_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT territorial_authority_id
+ FROM buildings_reference.territorial_authority
+ WHERE shape && ST_Expand(p_polygon_geometry, 1000)
+ ORDER BY
+ ST_Area(ST_Intersection(p_polygon_geometry, shape)) / ST_Area(shape) DESC
+ , ST_Distance(p_polygon_geometry, shape) ASC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_authority_intersect_polygon(geometry) IS
+'Return id of territorial authority with most overlap';
+
+-- Update Territorial Authority table:
+
+-- territorial_auth_delete_areas(delete areas no long in admin_bdys)
+ -- params:
+ -- return: integer list of TAs deleted
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_delete_areas()
+RETURNS integer[] AS
+$$
+
+ WITH delete_ta AS (
+ DELETE FROM buildings_reference.territorial_authority
+ WHERE external_territorial_authority_id NOT IN (SELECT DISTINCT
+ ogc_fid
+ FROM admin_bdys.territorial_authority)
+ RETURNING *
+ )
+ SELECT ARRAY(SELECT territorial_authority_id FROM delete_ta);
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_auth_delete_areas() IS
+'Function to delete the attributes in the buildings_reference territorial_authority table that are not in the admin_bdys schema.';
+
+-- territorial_auth_insert_areas(insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of new areas added
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_insert_areas()
+RETURNS integer[] AS
+$$
+
+ WITH insert_ta AS (
+ INSERT INTO buildings_reference.territorial_authority (external_territorial_authority_id, name, shape)
+ SELECT
+ ogc_fid
+ , name
+ , ST_SetSRID(ST_Transform(shape, 2193), 2193)
+ FROM admin_bdys.territorial_authority
+ WHERE ogc_fid NOT IN (
+ SELECT external_territorial_authority_id
+ FROM buildings_reference.territorial_authority
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT territorial_authority_id
+ FROM insert_ta
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_auth_insert_areas() IS
+'Function to insert new territorial authority areas into the buildings_reference.territorial_authority table.';
+
+-- territorial_auth_update_areas(update geometries based on admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+CREATE OR REPLACE FUNCTION buildings_reference.territorial_auth_update_areas()
+RETURNS integer[] AS
+$$
+
+ WITH update_ta AS (
+ UPDATE buildings_reference.territorial_authority bta
+ SET
+ name = ata.name
+ , shape = ST_SetSRID(ST_Transform(ata.shape, 2193), 2193)
+ FROM admin_bdys.territorial_authority ata
+ WHERE bta.external_territorial_authority_id IN (
+ SELECT ogc_fid
+ FROM admin_bdys.territorial_authority ata
+ JOIN buildings_reference.territorial_authority bta ON ogc_fid = external_territorial_authority_id
+ WHERE ( NOT ST_Equals(bta.shape, ST_SetSRID(ST_Transform(ata.shape, 2193), 2193))
+ OR bta.name != ata.name)
+ )
+ RETURNING *
+ )
+ SELECT ARRAY (
+ SELECT territorial_authority_id
+ FROM update_ta
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.territorial_auth_update_areas() IS
+'Function to update territorial_authority areas that have either name or geometry changes';
+
+COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/town_city.sql b/db/sql/revert/buildings_reference/functions/town_city.sql
index dd2131cc..9a4d7ba2 100644
--- a/db/sql/revert/buildings_reference/functions/town_city.sql
+++ b/db/sql/revert/buildings_reference/functions/town_city.sql
@@ -1,13 +1,158 @@
--- Revert nz-buildings:buildings_reference/functions/town_city from pg
+-- Revert nz-buildings:buildings_reference/functions/town_city to v4.0.0
BEGIN;
-DROP FUNCTION buildings_reference.town_city_intersect_polygon(geometry);
+--------------------------------------------
+-- buildings_reference.town_city
-DROP FUNCTION buildings_reference.town_city_delete_removed_areas();
+-- Functions
-DROP FUNCTION buildings_reference.town_city_insert_new_areas();
+-- town_city_intersect_polygon (id of the town/city that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer town_city_id
-DROP FUNCTION buildings_reference.town_city_update_areas();
+-- town_city_delete_removed_areas (removed from table areas not in admin_byds)
+ -- params:
+ -- return: integer list of town_cities deleted
+
+-- town_city_insert_new_areas (insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of outlines inserted
+
+-- town_city_update_areas(update geometries based on those in admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+--------------------------------------------
+
+-- Functions:
+
+-- town_city_intersect_polygon (id of the town/city that has the most overlap)
+ -- params: p_polygon_geometry geometry
+ -- return: integer town_city_id
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_intersect_polygon(
+ p_polygon_geometry geometry
+)
+RETURNS integer AS
+$$
+
+ SELECT town_city_id
+ FROM buildings_reference.town_city
+ WHERE ST_Intersects(shape, p_polygon_geometry)
+ ORDER BY ST_Area(ST_Intersection(p_polygon_geometry, shape)) DESC
+ LIMIT 1;
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_intersect_polygon(geometry) IS
+'Return id of town/city with most overlap';
+
+-- update town_city table functions:
+
+-- town_city_delete_removed_areas (removed from table areas not in admin_byds)
+ -- params:
+ -- return: integer list of town_cities deleted
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_delete_removed_areas()
+RETURNS integer[] AS
+$$
+
+ WITH delete_town AS (
+ DELETE FROM buildings_reference.town_city
+ WHERE external_city_id NOT IN (
+ SELECT DISTINCT city_id
+ FROM admin_bdys.nz_locality
+ WHERE city_id IS NOT NULL
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(SELECT town_city_id FROM delete_town);
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_delete_removed_areas() IS
+'Function to delete from the buildings_reference town city table the areas that have been removed in the admin_bdys schema';
+
+-- town_city_insert_new_areas (insert new areas from admin_bdys)
+ -- params:
+ -- return: integer list of outlines inserted
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_insert_new_areas()
+RETURNS integer[] AS
+$$
+
+ WITH insert_town AS (
+ INSERT INTO buildings_reference.town_city (external_city_id, name, shape)
+ SELECT
+ subquery.city_id
+ , subquery.city_name
+ , ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193)
+ FROM (
+ SELECT
+ city_id
+ , city_name
+ , ST_Multi(ST_Union(nzl.shape)) AS shape
+ FROM admin_bdys.nz_locality AS nzl
+ WHERE city_id != 0
+ AND city_id NOT IN (
+ SELECT external_city_id
+ FROM buildings_reference.town_city
+ )
+ GROUP BY city_id, city_name
+ ) AS subquery
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT town_city_id
+ FROM insert_town
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_insert_new_areas() IS
+'Function to insert from the admin_bdys schema new areas not in the buildings_reference town city table';
+
+-- town_city_update_areas(update geometries based on those in admin_bdys)
+ -- params:
+ -- return: integer list of areas updated
+
+CREATE OR REPLACE FUNCTION buildings_reference.town_city_update_areas()
+RETURNS integer[] AS
+$$
+
+ WITH update_town AS (
+ UPDATE buildings_reference.town_city
+ SET
+ name = subquery.city_name
+ , shape = ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193)
+ FROM (
+ SELECT
+ city_id
+ , city_name
+ , ST_Multi(ST_Union(nzl.shape)) AS shape
+ FROM admin_bdys.nz_locality AS nzl
+ WHERE city_id != 0
+ GROUP BY city_id, city_name
+ ) AS subquery
+ WHERE buildings_reference.town_city.external_city_id = subquery.city_id
+ AND ( NOT ST_Equals(ST_SetSRID(ST_Transform(subquery.shape, 2193), 2193), buildings_reference.town_city.shape)
+ OR city_name != buildings_reference.town_city.name
+ )
+ RETURNING *
+ )
+ SELECT ARRAY(
+ SELECT town_city_id
+ FROM update_town
+ );
+
+$$
+LANGUAGE sql VOLATILE;
+
+COMMENT ON FUNCTION buildings_reference.town_city_update_areas() IS
+'Function to update the id, names and geometries of the town city';
COMMIT;
diff --git a/db/sql/revert/buildings_reference/functions/town_city@v4.0.0-dev1.sql b/db/sql/revert/buildings_reference/functions/town_city@v4.0.0-dev1.sql
new file mode 100644
index 00000000..dd2131cc
--- /dev/null
+++ b/db/sql/revert/buildings_reference/functions/town_city@v4.0.0-dev1.sql
@@ -0,0 +1,13 @@
+-- Revert nz-buildings:buildings_reference/functions/town_city from pg
+
+BEGIN;
+
+DROP FUNCTION buildings_reference.town_city_intersect_polygon(geometry);
+
+DROP FUNCTION buildings_reference.town_city_delete_removed_areas();
+
+DROP FUNCTION buildings_reference.town_city_insert_new_areas();
+
+DROP FUNCTION buildings_reference.town_city_update_areas();
+
+COMMIT;
diff --git a/db/sql/revert/buildings_reference/update_suburb_locality_name_column.sql b/db/sql/revert/buildings_reference/update_suburb_locality_table.sql
similarity index 74%
rename from db/sql/revert/buildings_reference/update_suburb_locality_name_column.sql
rename to db/sql/revert/buildings_reference/update_suburb_locality_table.sql
index cde5648c..aa156b88 100644
--- a/db/sql/revert/buildings_reference/update_suburb_locality_name_column.sql
+++ b/db/sql/revert/buildings_reference/update_suburb_locality_table.sql
@@ -3,6 +3,7 @@
BEGIN;
ALTER TABLE buildings_reference.suburb_locality
-DROP COLUMN name;
+DROP COLUMN suburb_locality,
+DROP COLUMN town_city;
COMMIT;
diff --git a/db/sql/sqitch.plan b/db/sql/sqitch.plan
index bda98614..ae47efe2 100644
--- a/db/sql/sqitch.plan
+++ b/db/sql/sqitch.plan
@@ -95,7 +95,19 @@ buildings/functions/add_names_and_uses_functions 2022-06-15T02:54:14Z Jan Ducnui
buildings_bulk_load/functions/load_to_production [buildings_bulk_load/functions/load_to_production@v3.6.0-dev1] 2022-06-15T03:07:57Z Jan Ducnuigeen # Insert names and uses when loading bulk outlines into production
@v4.0.0-dev1 2022-09-14T22:18:19Z Daniel Silk # Tag v4.0.0-dev1
-buildings_reference/update_suburb_locality_name_column 2024-07-18T03:44:07Z Yingting Chen # Update suburb_locality name column to match NZ Suburbs and Localities
+buildings_reference/update_suburb_locality_table 2024-07-18T03:44:07Z Yingting Chen # Update suburb_locality name column to match NZ Suburbs and Localities
buildings_reference/functions/suburb_locality_optimised [buildings_reference/functions/suburb_locality_optimised@v4.0.0-dev1] 2024-07-18T05:10:43Z Yingting Chen # Update suburb_locality name fields in functions
-buildings_lds/functions/populate_buildings_lds [buildings_lds/functions/populate_buildings_lds@v4.0.0-dev1] 2024-07-18T05:45:55Z Yingting Chen # Update suburb_locality name column in populate_buildings_lds function
-buildings_reference/remove_suburb_locality_old_name_column 2024-07-18T06:26:12Z Yingting Chen # Remove suburb_locality old name columns from FENZ
+buildings/remove_building_outlines_ta_not_null_constraint 2024-08-07T02:50:08Z Yingting Chen # Remove NOT NULL constraint for territorial_authority_id column in building_outlines table.
+buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint 2024-08-07T02:51:28Z Yingting Chen # Remove NOT NULL constraint for territorial_authority_id column in bulk_load_outlines table.
+buildings_lds/functions/populate_buildings_lds [buildings_lds/functions/populate_buildings_lds@v4.0.0-dev1] 2024-08-14T03:45:12Z Yingting Chen # Update suburb_locality name column in populate_buildings_lds function
+buildings/functions/building_outlines [buildings/functions/building_outlines@v4.0.0-dev1] 2024-08-14T03:47:12Z Yingting Chen # Remove town_city_id column in functions.
+buildings/remove_building_outlines_town_city_id_column 2024-08-14T03:50:02Z Yingting Chen # Remove town_city_id column in building_outlines table
+buildings_bulk_load/functions/bulk_load_outlines [buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1] 2024-08-14T04:27:25Z Yingting Chen # Remove town_city_id column in funct\nions.
+buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column 2024-08-14T04:32:22Z Yingting Chen # Remove town_city_id column in bulk_load_outlines table
+buildings_reference/functions/town_city [buildings_reference/functions/town_city@v4.0.0-dev1] 2024-08-14T04:35:22Z Yingting Chen # Remove functions of town_city table.
+buildings_reference/add_log_column_nz_imagery_survey_index 2024-08-14T04:37:22Z Yingting Chen # Add nz_imagery_survey_index column in reference_update_log.
+buildings_reference/functions/reference_update_log [buildings_reference/functions/reference_update_log@v4.0.0-dev1] 2024-08-14T04:38:22Z Yingting Chen # Remove town_city in reference_update_log update function.
+buildings_reference/remove_suburb_locality_old_name_column 2024-08-14T04:40:22Z Yingting Chen # Remove suburb_locality old name columns from FENZ
+buildings_reference/drop_town_city 2024-08-14T04:45:02Z Yingting Chen # Drop table town_city as it has been merged into suburb_locality.
+buildings_reference/functions/suburb_locality [buildings_reference/functions/suburb_locality@v4.0.0-dev1] 2024-08-30T02:54:25Z Yingting Chen # Add new suburb_locality functions for the reference update process.
+buildings_reference/functions/territorial_authority [buildings_reference/functions/territorial_authority@v4.0.0-dev1] 2024-09-10T05:51:01Z Yingting Chen # Add new territorial_authority functions for the reference update process.
diff --git a/db/sql/verify/buildings/functions/building_outlines.sql b/db/sql/verify/buildings/functions/building_outlines.sql
index d0547a5f..eeb37f9e 100644
--- a/db/sql/verify/buildings/functions/building_outlines.sql
+++ b/db/sql/verify/buildings/functions/building_outlines.sql
@@ -12,11 +12,11 @@ BEGIN
END IF;
END $$;
-SELECT has_function_privilege('buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry)', 'execute');
+SELECT has_function_privilege('buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, geometry)', 'execute');
SELECT has_function_privilege('buildings.building_outlines_insert_bulk(integer, integer)', 'execute');
-SELECT has_function_privilege('buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer)', 'execute');
+SELECT has_function_privilege('buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer)', 'execute');
SELECT has_function_privilege('buildings.building_outlines_update_capture_method(integer, integer)', 'execute');
@@ -26,10 +26,41 @@ SELECT has_function_privilege('buildings.building_outlines_update_shape(geometry
SELECT has_function_privilege('buildings.building_outlines_update_territorial_authority(integer[])', 'execute');
-SELECT has_function_privilege('buildings.building_outlines_update_town_city(integer[])', 'execute');
-
SELECT has_function_privilege('buildings.building_outlines_update_modified_date(integer)', 'execute');
SELECT has_function_privilege('buildings.building_outlines_update_modified_date_by_building_id(integer)', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'building_outlines_insert'
+ AND pronargs = 8;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'building_outlines_update_attributes'
+ AND pronargs = 7;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'building_outlines_update_town_city'
+ AND pronargs = 1;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+
ROLLBACK;
diff --git a/db/sql/verify/buildings/functions/building_outlines@v4.0.0-dev1.sql b/db/sql/verify/buildings/functions/building_outlines@v4.0.0-dev1.sql
new file mode 100644
index 00000000..d0547a5f
--- /dev/null
+++ b/db/sql/verify/buildings/functions/building_outlines@v4.0.0-dev1.sql
@@ -0,0 +1,35 @@
+-- Verify nz-buildings:buildings/functions/building_outlines on pg
+
+BEGIN;
+
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'building_outlines_update_suburb';
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+
+SELECT has_function_privilege('buildings.building_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry)', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_insert_bulk(integer, integer)', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer)', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_capture_method(integer, integer)', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_end_lifespan(integer[])', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_shape(geometry, integer)', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_territorial_authority(integer[])', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_town_city(integer[])', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_modified_date(integer)', 'execute');
+
+SELECT has_function_privilege('buildings.building_outlines_update_modified_date_by_building_id(integer)', 'execute');
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings/remove_building_outlines_ta_not_null_constraint.sql b/db/sql/verify/buildings/remove_building_outlines_ta_not_null_constraint.sql
new file mode 100644
index 00000000..cf0bc8e3
--- /dev/null
+++ b/db/sql/verify/buildings/remove_building_outlines_ta_not_null_constraint.sql
@@ -0,0 +1,21 @@
+-- Verify nz-buildings:buildings/remove_building_outlines_ta_not_null_constraint on pg
+
+BEGIN;
+
+DO $$
+DECLARE
+ v_is_nullable boolean;
+BEGIN
+ SELECT is_nullable into v_is_nullable
+ FROM information_schema.columns
+ WHERE table_schema = 'buildings'
+ AND table_name = 'building_outlines'
+ AND column_name = 'territorial_authority_id';
+ IF not v_is_nullable THEN
+ RAISE EXCEPTION 'NOT-NULL CONSTRAINT: Schema "buildings" table "buildings" '
+ 'and column "territorial_authority_id" should not have not-null constraint';
+ END IF;
+END;
+$$;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings/remove_building_outlines_town_city_id_column.sql b/db/sql/verify/buildings/remove_building_outlines_town_city_id_column.sql
new file mode 100644
index 00000000..56453844
--- /dev/null
+++ b/db/sql/verify/buildings/remove_building_outlines_town_city_id_column.sql
@@ -0,0 +1,20 @@
+-- Verify nz-buildings:buildings/remove_building_outlines_town_city_id_column on pg
+
+BEGIN;
+
+DO $$
+BEGIN
+
+ PERFORM column_name
+ FROM information_schema.columns
+ WHERE table_schema = 'buildings'
+ AND table_name = 'building_outlines'
+ AND column_name = 'town_city';
+
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped column town_city Found.';
+ END IF;
+
+END $$;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines.sql b/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines.sql
index 1f13b567..fb092536 100644
--- a/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines.sql
+++ b/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines.sql
@@ -2,23 +2,13 @@
BEGIN;
-DO $$
-BEGIN
- PERFORM *
- FROM pg_proc
- WHERE proname = 'bulk_load_outlines_update_all_suburbs';
- IF FOUND THEN
- RAISE EXCEPTION 'Dropped function found.';
- END IF;
-END $$;
-
-SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, integer, geometry)', 'execute');
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, geometry)', 'execute');
SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_insert_supplied(integer, integer, integer, integer)', 'execute');
SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_remove_small_buildings(integer)', 'execute');
-SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer)', 'execute');
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer)', 'execute');
SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_capture_method(integer, integer)', 'execute');
@@ -30,8 +20,45 @@ SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_ter
SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[])', 'execute');
-SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_town_city(integer)', 'execute');
-
-SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[])', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'bulk_load_outlines_insert'
+ AND pronargs = 9;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'bulk_load_outlines_update_attributes'
+ AND pronargs = 7;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'bulk_load_outlines_update_town_city'
+ AND pronargs = 1;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'bulk_load_outlines_update_all_town_cities'
+ AND pronargs = 1;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
ROLLBACK;
diff --git a/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql b/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql
new file mode 100644
index 00000000..1f13b567
--- /dev/null
+++ b/db/sql/verify/buildings_bulk_load/functions/bulk_load_outlines@v4.0.0-dev1.sql
@@ -0,0 +1,37 @@
+-- Verify nz-buildings:buildings_bulk_load/functions/bulk_load_outlines on pg
+
+BEGIN;
+
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'bulk_load_outlines_update_all_suburbs';
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_insert(integer, integer, integer, integer, integer, integer, integer, integer, geometry)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_insert_supplied(integer, integer, integer, integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_remove_small_buildings(integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_attributes(integer, integer, integer, integer, integer, integer, integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_capture_method(integer, integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_shape(geometry, integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_suburb(integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_territorial_authority(integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_all_territorial_authorities(integer[])', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_town_city(integer)', 'execute');
+
+SELECT has_function_privilege('buildings_bulk_load.bulk_load_outlines_update_all_town_cities(integer[])', 'execute');
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql b/db/sql/verify/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql
new file mode 100644
index 00000000..7be3a8fd
--- /dev/null
+++ b/db/sql/verify/buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint.sql
@@ -0,0 +1,21 @@
+-- Verify nz-buildings:buildings_bulk_load/remove_bulk_load_outlines_ta_not_null_constraint on pg
+
+BEGIN;
+
+DO $$
+DECLARE
+ v_is_nullable boolean;
+BEGIN
+ SELECT is_nullable into v_is_nullable
+ FROM information_schema.columns
+ WHERE table_schema = 'buildings_bulk_load'
+ AND table_name = 'bulk_load_outlines'
+ AND column_name = 'territorial_authority_id';
+ IF not v_is_nullable THEN
+ RAISE EXCEPTION 'NOT-NULL CONSTRAINT: Schema "buildings_bulk_load" table "bulk_load_outlines" '
+ 'and column "territorial_authority_id" should not have not-null constraint';
+ END IF;
+END;
+$$;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql b/db/sql/verify/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql
new file mode 100644
index 00000000..2391e42b
--- /dev/null
+++ b/db/sql/verify/buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column.sql
@@ -0,0 +1,20 @@
+-- Verify nz-buildings:buildings_bulk_load/remove_bulk_load_outlines_town_city_id_column on pg
+
+BEGIN;
+
+DO $$
+BEGIN
+
+ PERFORM column_name
+ FROM information_schema.columns
+ WHERE table_schema = 'buildings_bulk_load'
+ AND table_name = 'bulk_load_outlines'
+ AND column_name = 'town_city';
+
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped column town_city Found.';
+ END IF;
+
+END $$;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_lds/functions/populate_buildings_lds.sql b/db/sql/verify/buildings_lds/functions/populate_buildings_lds.sql
index fe98a24c..2a7ec7e7 100644
--- a/db/sql/verify/buildings_lds/functions/populate_buildings_lds.sql
+++ b/db/sql/verify/buildings_lds/functions/populate_buildings_lds.sql
@@ -16,9 +16,9 @@ BEGIN
PERFORM proname, proargnames, prosrc
FROM pg_proc
WHERE proname = 'nz_building_outlines_insert'
- AND prosrc LIKE '%suburb_locality.name%';
+ AND prosrc LIKE '%suburb_locality.suburb_locality%';
IF NOT FOUND THEN
- RAISE EXCEPTION 'suburb_locality name not found.';
+ RAISE EXCEPTION 'suburb_locality column not found.';
END IF;
END $$;
@@ -28,9 +28,9 @@ BEGIN
PERFORM proname, proargnames, prosrc
FROM pg_proc
WHERE proname = 'nz_building_outlines_all_sources_insert'
- AND prosrc LIKE '%suburb_locality.name%';
+ AND prosrc LIKE '%suburb_locality.suburb_locality%';
IF NOT FOUND THEN
- RAISE EXCEPTION 'suburb_locality name not found.';
+ RAISE EXCEPTION 'suburb_locality column not found.';
END IF;
END $$;
diff --git a/db/sql/verify/buildings_reference/add_log_column_nz_imagery_survey_index.sql b/db/sql/verify/buildings_reference/add_log_column_nz_imagery_survey_index.sql
new file mode 100644
index 00000000..154b51da
--- /dev/null
+++ b/db/sql/verify/buildings_reference/add_log_column_nz_imagery_survey_index.sql
@@ -0,0 +1,9 @@
+-- Verify nz-buildings:buildings_reference/add_log_column_nz_imagery_survey_index on pg
+
+BEGIN;
+
+SELECT imagery_survey_index
+FROM buildings_reference.reference_update_log
+WHERE FALSE;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/drop_town_city.sql b/db/sql/verify/buildings_reference/drop_town_city.sql
new file mode 100644
index 00000000..d4cd2452
--- /dev/null
+++ b/db/sql/verify/buildings_reference/drop_town_city.sql
@@ -0,0 +1,32 @@
+-- Verify nz-buildings:buildings_reference/drop_town_city_table on pg
+
+BEGIN;
+
+DO $$
+BEGIN
+ PERFORM TRUE
+ FROM pg_tables
+ WHERE schemaname = 'buildings_reference'
+ AND tablename = 'town_city';
+ IF FOUND THEN
+ RAISE EXCEPTION 'Table buildings_reference.town_city exists but should have been removed';
+ END IF;
+END;
+$$;
+
+DO $$
+BEGIN
+ PERFORM TRUE
+ FROM information_schema.columns
+ WHERE table_schema = 'buildings_reference'
+ AND table_name='reference_update_log'
+ AND column_name='town_city';
+ IF FOUND THEN
+ RAISE EXCEPTION 'Column town_city in buildings_reference.reference_update_log exists but should have been removed';
+ END IF;
+
+END;
+$$;
+
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/reference_update_log.sql b/db/sql/verify/buildings_reference/functions/reference_update_log.sql
index f9ff449e..2cfb4657 100644
--- a/db/sql/verify/buildings_reference/functions/reference_update_log.sql
+++ b/db/sql/verify/buildings_reference/functions/reference_update_log.sql
@@ -4,4 +4,29 @@ BEGIN;
SELECT has_function_privilege('buildings_reference.reference_update_log_insert_log(varchar[])', 'execute');
+DO $$
+BEGIN
+
+ PERFORM proname, proargnames, prosrc
+ FROM pg_proc
+ WHERE proname = 'reference_update_log_insert_log'
+ AND prosrc LIKE '%town_city%';
+ IF FOUND THEN
+ RAISE EXCEPTION 'town_city found, should have been removed.';
+ END IF;
+
+ PERFORM proname, proargnames, prosrc
+ FROM pg_proc
+ WHERE proname = 'reference_update_log_insert_log'
+ AND prosrc LIKE '%hut_points%'
+ AND prosrc LIKE '%shelter_points%'
+ AND prosrc LIKE '%bivouac_points%'
+ AND prosrc LIKE '%protected_areas_polygons%'
+ AND prosrc LIKE '%nz_imagery_survey_index%';
+ IF NOT FOUND THEN
+ RAISE EXCEPTION 'dataset keywords not found, should have been added.';
+ END IF;
+
+END $$;
+
ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql b/db/sql/verify/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql
new file mode 100644
index 00000000..f9ff449e
--- /dev/null
+++ b/db/sql/verify/buildings_reference/functions/reference_update_log@v4.0.0-dev1.sql
@@ -0,0 +1,7 @@
+-- Verify nz-buildings:buildings_reference/functions/reference_update_log on pg
+
+BEGIN;
+
+SELECT has_function_privilege('buildings_reference.reference_update_log_insert_log(varchar[])', 'execute');
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/suburb_locality.sql b/db/sql/verify/buildings_reference/functions/suburb_locality.sql
index a0f552ad..797dc234 100644
--- a/db/sql/verify/buildings_reference/functions/suburb_locality.sql
+++ b/db/sql/verify/buildings_reference/functions/suburb_locality.sql
@@ -4,18 +4,14 @@ BEGIN;
SELECT has_function_privilege('buildings_reference.suburb_locality_intersect_polygon(geometry)', 'execute');
-DO $$
-BEGIN
+SELECT has_function_privilege('buildings_reference.suburb_locality_delete_by_external_id(integer)', 'execute');
- PERFORM proname, proargnames, prosrc
- FROM pg_proc
- WHERE proname = 'suburb_locality_intersect_polygon'
- AND prosrc LIKE '%ST_Area(shape)%';
+SELECT has_function_privilege('buildings_reference.suburb_locality_insert(integer, varchar, varchar, varchar)', 'execute');
- IF FOUND THEN
- RAISE EXCEPTION 'ST_Area(shape) Found.';
- END IF;
+SELECT has_function_privilege('buildings_reference.suburb_locality_update_by_external_id(integer, varchar, varchar, varchar)', 'execute');
-END $$;
+SELECT has_function_privilege('buildings_reference.suburb_locality_attribute_update_building_outlines(integer[])', 'execute');
+
+SELECT has_function_privilege('buildings_reference.suburb_locality_geometry_update_building_outlines(varchar)', 'execute');
ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql b/db/sql/verify/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql
new file mode 100644
index 00000000..a0f552ad
--- /dev/null
+++ b/db/sql/verify/buildings_reference/functions/suburb_locality@v4.0.0-dev1.sql
@@ -0,0 +1,21 @@
+-- Verify nz-buildings:buildings_reference/functions/suburb_locality on pg
+
+BEGIN;
+
+SELECT has_function_privilege('buildings_reference.suburb_locality_intersect_polygon(geometry)', 'execute');
+
+DO $$
+BEGIN
+
+ PERFORM proname, proargnames, prosrc
+ FROM pg_proc
+ WHERE proname = 'suburb_locality_intersect_polygon'
+ AND prosrc LIKE '%ST_Area(shape)%';
+
+ IF FOUND THEN
+ RAISE EXCEPTION 'ST_Area(shape) Found.';
+ END IF;
+
+END $$;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/suburb_locality_optimised.sql b/db/sql/verify/buildings_reference/functions/suburb_locality_optimised.sql
index 05c5bbe4..89429895 100644
--- a/db/sql/verify/buildings_reference/functions/suburb_locality_optimised.sql
+++ b/db/sql/verify/buildings_reference/functions/suburb_locality_optimised.sql
@@ -2,8 +2,26 @@
BEGIN;
-SELECT has_function_privilege('buildings_reference.building_outlines_update_changed_and_deleted_suburb()', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'building_outlines_update_changed_and_deleted_suburb'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
-SELECT has_function_privilege('buildings_reference.building_outlines_update_added_suburb()', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'building_outlines_update_added_suburb'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/territorial_authority.sql b/db/sql/verify/buildings_reference/functions/territorial_authority.sql
index c8b4ae0f..9fc9891d 100644
--- a/db/sql/verify/buildings_reference/functions/territorial_authority.sql
+++ b/db/sql/verify/buildings_reference/functions/territorial_authority.sql
@@ -6,23 +6,47 @@ SELECT has_function_privilege('buildings_reference.territorial_authority_grid_in
SELECT has_function_privilege('buildings_reference.territorial_authority_intersect_polygon(geometry)', 'execute');
-SELECT has_function_privilege('buildings_reference.territorial_auth_delete_areas()', 'execute');
+SELECT has_function_privilege('buildings_reference.territorial_authority_delete_by_external_id(integer)', 'execute');
-SELECT has_function_privilege('buildings_reference.territorial_auth_insert_areas()', 'execute');
+SELECT has_function_privilege('buildings_reference.territorial_authority_insert(integer, varchar, varchar)', 'execute');
-SELECT has_function_privilege('buildings_reference.territorial_auth_update_areas()', 'execute');
+SELECT has_function_privilege('buildings_reference.territorial_authority_update_by_external_id(integer, varchar, varchar)', 'execute');
+
+SELECT has_function_privilege('buildings_reference.territorial_authority_attribute_update_building_outlines(integer[])', 'execute');
+
+SELECT has_function_privilege('buildings_reference.territorial_authority_geometry_update_building_outlines(varchar)', 'execute');
+
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'territorial_auth_delete_areas'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
DO $$
BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'territorial_auth_insert_areas'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
- PERFORM proname, proargnames, prosrc
+DO $$
+BEGIN
+ PERFORM *
FROM pg_proc
WHERE proname = 'territorial_auth_update_areas'
- AND prosrc LIKE '%JOIN%';
+ AND pronargs = 0;
IF FOUND THEN
- RAISE EXCEPTION 'JOIN found.';
+ RAISE EXCEPTION 'Dropped function found.';
END IF;
-
END $$;
ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql b/db/sql/verify/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql
new file mode 100644
index 00000000..c8b4ae0f
--- /dev/null
+++ b/db/sql/verify/buildings_reference/functions/territorial_authority@v4.0.0-dev1.sql
@@ -0,0 +1,28 @@
+-- Verify nz-buildings:buildings_reference/functions/territorial_authority on pg
+
+BEGIN;
+
+SELECT has_function_privilege('buildings_reference.territorial_authority_grid_intersect_polygon(geometry)', 'execute');
+
+SELECT has_function_privilege('buildings_reference.territorial_authority_intersect_polygon(geometry)', 'execute');
+
+SELECT has_function_privilege('buildings_reference.territorial_auth_delete_areas()', 'execute');
+
+SELECT has_function_privilege('buildings_reference.territorial_auth_insert_areas()', 'execute');
+
+SELECT has_function_privilege('buildings_reference.territorial_auth_update_areas()', 'execute');
+
+DO $$
+BEGIN
+
+ PERFORM proname, proargnames, prosrc
+ FROM pg_proc
+ WHERE proname = 'territorial_auth_update_areas'
+ AND prosrc LIKE '%JOIN%';
+ IF FOUND THEN
+ RAISE EXCEPTION 'JOIN found.';
+ END IF;
+
+END $$;
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/town_city.sql b/db/sql/verify/buildings_reference/functions/town_city.sql
index 126c3e8c..88f89c06 100644
--- a/db/sql/verify/buildings_reference/functions/town_city.sql
+++ b/db/sql/verify/buildings_reference/functions/town_city.sql
@@ -2,12 +2,48 @@
BEGIN;
-SELECT has_function_privilege('buildings_reference.town_city_intersect_polygon(geometry)', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'town_city_intersect_polygon'
+ AND pronargs = 1;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
-SELECT has_function_privilege('buildings_reference.town_city_delete_removed_areas()', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'town_city_delete_removed_areas'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
-SELECT has_function_privilege('buildings_reference.town_city_insert_new_areas()', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'town_city_insert_new_areas'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
-SELECT has_function_privilege('buildings_reference.town_city_update_areas()', 'execute');
+DO $$
+BEGIN
+ PERFORM *
+ FROM pg_proc
+ WHERE proname = 'town_city_update_areas'
+ AND pronargs = 0;
+ IF FOUND THEN
+ RAISE EXCEPTION 'Dropped function found.';
+ END IF;
+END $$;
ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/functions/town_city@v4.0.0-dev1.sql b/db/sql/verify/buildings_reference/functions/town_city@v4.0.0-dev1.sql
new file mode 100644
index 00000000..126c3e8c
--- /dev/null
+++ b/db/sql/verify/buildings_reference/functions/town_city@v4.0.0-dev1.sql
@@ -0,0 +1,13 @@
+-- Verify nz-buildings:buildings_reference/functions/town_city on pg
+
+BEGIN;
+
+SELECT has_function_privilege('buildings_reference.town_city_intersect_polygon(geometry)', 'execute');
+
+SELECT has_function_privilege('buildings_reference.town_city_delete_removed_areas()', 'execute');
+
+SELECT has_function_privilege('buildings_reference.town_city_insert_new_areas()', 'execute');
+
+SELECT has_function_privilege('buildings_reference.town_city_update_areas()', 'execute');
+
+ROLLBACK;
diff --git a/db/sql/verify/buildings_reference/update_suburb_locality_name_column.sql b/db/sql/verify/buildings_reference/update_suburb_locality_table.sql
similarity index 82%
rename from db/sql/verify/buildings_reference/update_suburb_locality_name_column.sql
rename to db/sql/verify/buildings_reference/update_suburb_locality_table.sql
index 90b66060..1fcb3e4f 100644
--- a/db/sql/verify/buildings_reference/update_suburb_locality_name_column.sql
+++ b/db/sql/verify/buildings_reference/update_suburb_locality_table.sql
@@ -2,7 +2,7 @@
BEGIN;
-SELECT name
+SELECT suburb_locality, town_city
FROM buildings_reference.suburb_locality
WHERE FALSE;
diff --git a/db/tests/admin_boundary_functions.pg b/db/tests/admin_boundary_functions.pg
index 4470dd2f..83afd71e 100644
--- a/db/tests/admin_boundary_functions.pg
+++ b/db/tests/admin_boundary_functions.pg
@@ -15,7 +15,7 @@
\set ON_ERROR_STOP true
BEGIN;
-SELECT plan(11);
+SELECT plan(8);
-- Tests
@@ -50,25 +50,6 @@ SELECT results_eq(
'Check suburb_locality_id of bulk load outlines table after bulk_load_outlines_update_suburb function has run'
);
---Town City-------------------
-SELECT results_eq(
- $$SELECT buildings_reference.town_city_intersect_polygon('01060000209108000001000000010300000001000000050000000000000028A83C41000000C0263155410000000028A83C410000000019315541000000008CA83C410000000019315541000000008CA83C41000000C0263155410000000028A83C41000000C026315541');$$,
- $$VALUES (1001)$$,
- 'town_city_intersect_polygon not returning correct town_city_id value when building intersects town_city polygon'
-);
-
-SELECT results_eq(
- $$SELECT buildings_reference.town_city_intersect_polygon('01030000209108000001000000050000003460F2F8D9A93C417F87C576D7305541D6ECEDF2DAA93C41C1E8E623D0305541569A5626FCA93C4112AFE4A0D030554170F46338F9A93C412EC1C7F9D63055413460F2F8D9A93C417F87C576D7305541');$$,
- $$VALUES (NULL::integer)$$,
- 'town_city_intersect_polygon not returning correct town_city_id value when building is outside town_city polygon'
-);
-
-SELECT results_eq(
- $$SELECT town_city_id from buildings_bulk_load.bulk_load_outlines blo WHERE blo.supplied_dataset_id = 3;$$,
- $$VALUES (1001)$$,
- 'Check town_city_id of bulk load outlines table after bulk_load_outlines_update_town_city function has run'
-);
-
--Territorial Authority-------------------------
SELECT results_eq(
$$SELECT buildings_reference.territorial_authority_intersect_polygon('01060000209108000001000000010300000001000000050000000000000028A83C41000000C0263155410000000028A83C410000000019315541000000008CA83C410000000019315541000000008CA83C41000000C0263155410000000028A83C41000000C026315541');$$,
diff --git a/db/tests/buildings_lds_populate.pg b/db/tests/buildings_lds_populate.pg
index 264b96a4..ce1ca3c1 100644
--- a/db/tests/buildings_lds_populate.pg
+++ b/db/tests/buildings_lds_populate.pg
@@ -83,12 +83,12 @@ SELECT results_eq(
(10081, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
(10082, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
(10083, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
- (18001, '', 'Unknown', 'Hokowhitu', '', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
- (18002, '', 'Unknown', 'Hokowhitu', '', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
- (18003, '', 'Unknown', 'Hokowhitu', '', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
- (18004, '', 'Unknown', 'Hokowhitu', '', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
- (18005, '', 'Unknown', 'Hokowhitu', '', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
- (18006, '', 'Unknown', 'Hokowhitu', '', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (18001, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (18002, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (18003, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (18004, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (18005, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (18006, '', 'Unknown', 'Hokowhitu', 'Palmerston North', 'Manawatu-Whanganui', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000000, '', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000001, '', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000002, '', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
@@ -118,10 +118,10 @@ SELECT results_eq(
(1000026, '', 'Unknown', 'Aro Valley', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000027, '', 'Unknown', 'Aro Valley', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000028, '', 'Unknown', 'Aro Valley', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
- (1000029, '', 'Unknown', 'Kelburn', '', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (1000029, '', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000030, '', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1000031, '', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
- (1000032, '', 'Unknown', 'Test Island', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
+ (1000032, '', 'Unknown', 'Test Island', '', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1500001, '', 'Unknown', 'Aro Valley', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1500003, 'Name Added', 'Unknown', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
(1500004, '', 'Abattoir', 'Kelburn', 'Wellington', 'Wellington', 'Feature Extraction', 'NZ Aerial Imagery'),
diff --git a/db/tests/testdata/db/buildings.sql b/db/tests/testdata/db/buildings.sql
index a5bd0e54..16e7444c 100644
--- a/db/tests/testdata/db/buildings.sql
+++ b/db/tests/testdata/db/buildings.sql
@@ -129,132 +129,132 @@ INSERT INTO buildings.buildings (building_id, begin_lifespan, end_lifespan) VALU
-- buildings.building_outlines
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1004, 10004, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1006, 10006, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000001, 1000001, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000772E37A2D0A83C41C57C6FAF2231554142E46BBAD7A83C4110DE7BAD22315541F7D1B2B2D7A83C410DB2F0D620315541B5ACCF8ED0A83C416632D2DA20315541772E37A2D0A83C41C57C6FAF22315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000002, 10001, 5, 1001, 1, 102, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1001, 10001, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000003, 10005, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000003897AF1E28A93C415A5857A426315541C8139BAF4EA93C415A5857A4263155416519B3ED4EA93C4170844C7C1D3155413897AF1E28A93C413F87589B1D3155413897AF1E28A93C415A5857A426315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1005, 10005, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000004, 10003, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000080000001489153E9DA83C416624D80323315541AE878F2E9DA83C4127CEAAD124315541A1416B37A5A83C41DACE6DD92431554170447756A5A83C414787BBC1213155416F6303BDB1A83C41FB877EC9213155413D660FDCB1A83C41366B438B20315541628852369DA83C41AF2A7185203155411489153E9DA83C416624D80323315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1003, 10003, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000005, 10002, 5, 1001, 1, 102, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000FB0DA8AB6BA83C4167030B97213155413A8A8B2B87A83C4167030B9721315541558CD44287A83C41D248AE4A1C315541C609167D6BA83C41FF089F4C1C315541FB0DA8AB6BA83C4167030B9721315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1002, 10002, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000007, 1000003, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000137AA177FBA83C4179BBEA34533155418CA82234FEA83C4121DEAE14443155418B106F574CA93C41ECC44EDA43315541E5466E844AA93C41E3EDAAA953315541137AA177FBA83C4179BBEA3453315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1032, 10032, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000020B4A9AF6A83C41B6522B9354315541994B20BBF8A83C4128E9F8A24231554158D2F189B5A93C411960CEF042315541A37FC604B4A93C415CA995D053315541020B4A9AF6A83C41B6522B9354315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1033, 10033, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000B9522B1575A93C417396CD1D4131554158D2F189B5A93C41A7AF2D5841315541F012C8AAB7A93C415E5B1CEA313155416EA5569A76A93C41F4285C7531315541B9522B1575A93C417396CD1D41315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000008, 1000004, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000154E28CB52A83C41AD05C91D6F3155416AC8C2336EA83C417C08D53C6F31554141D90AEE6EA83C415422FC4A65315541886488C353A83C41B61CE40C65315541154E28CB52A83C41AD05C91D6F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000009, 1000005, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000003A64B7ABF9A83C41780137EF6E315541A7A8B2CF1DA93C41DF02BDFE6E315541CF976A151DA93C41643E7481663155411075FF65FAA83C412F3AE252663155413A64B7ABF9A83C41780137EF6E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000010, 1000006, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000500000029511EC9EDA83C4115074F2D6F3155417578C67BEFA83C41C8385C436631554125B5F3EBD0A83C41262CA6B765315541D98D4B39CFA83C41770137EF6E31554129511EC9EDA83C4115074F2D6F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000011, 1000007, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000A7548091ABA83C414504430E6F3155416680CA94C3A83C41AD05C91D6F31554115A25A09C5A83C4189268E7965315541D04338D7AAA83C415322FC4A65315541A7548091ABA83C414504430E6F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000012, 1000008, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000E4832C5D81A83C414604430E6F315541100F0F809DA83C41DF02BDFE6E315541D703DF039DA83C41C02A20A8653155410C73E4A280A83C4159299A9865315541E4832C5D81A83C414604430E6F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000013, 1000009, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000ED82ECD428A83C411000B1DF6E315541F8D5DE8A42A83C41AD05C91D6F315541A7F76EFF43A83C41501B5EFD643155419CA47C492AA83C41E819D8ED64315541ED82ECD428A83C411000B1DF6E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1031, 10031, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000004618243924A83C4196D4B8C26F315541D08E8BC127A93C41D0DFE83E7031554145A5EBB928A93C41AEB0D72563315541802354B524A83C4173A5A7A9623155414618243924A83C4196D4B8C26F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000014, 1000010, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000001DA11A816CA83C41AF1787C5593155413FD02B9A79A83C41481601B65931554179DB5B167AA83C4134ACF3104A315541BAA632BF6CA83C41CDAA6D014A3155411DA11A816CA83C41AF1787C559315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000015, 1000011, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000007000000C48C0086A9A83C41AB7223D2593155410DEB9230C8A83C4116190DD55931554147F6C2ACC8A83C4165A0089E543155416A37926DC0A83C41FE9E828E543155418D3F5012C0A83C410B784BAC5731554150FC637BA9A83C4185BD18A557315541C48C0086A9A83C41AB7223D259315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000016, 1000012, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000007000000A3B112627DA83C41579FC3C854315541D13DEF7B7DA83C416E24CABC5931554158B551CFA6A83C41946081F15931554132DBD4F4A6A83C41FB5E307B573155411B5D5A5589A83C4174B1EE6157315541F7FDED8A89A83C41323CACD354315541A3B112627DA83C41579FC3C854315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000017, 1000013, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000007FE8F1597CA83C411E55CB7254315541C8F4BCDB89A83C4116D7B75F5431554189838B3D8BA83C41A04A82D6493155413334F8A47CA83C418B38E0F5493155417FE8F1597CA83C411E55CB7254315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000018, 1000014, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000009ACC05AD8FA83C41E8D7F8584E31554186AFDBADD0A83C417515369D4E315541E9A9C36FD0A83C419BAD79204A31554175F288D28FA83C411D3817D6493155419ACC05AD8FA83C41E8D7F8584E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1030, 10030, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000C0000007B4A2B50CCA83C4149685AF554315541B5555BCCCCA83C41A354061C5431554199DD118CBCA83C416D5074ED533155415FD2E10FBCA83C412D8E7C98563155416D64ED108BA83C41C185583B56315541F396C53F8DA83C4128E093134F315541A9E7CB1AD3A83C418ADA7BD54E315541F50E74CDD4A83C41A86483BD493155412358E25969A83C413C5C5F6049315541E94CB2DD68A83C415DDB46EE59315541413FFBD3CBA83C41FAE05E2C5A3155417B4A2B50CCA83C4149685AF554315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000019, 1000015, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000004A1160A8A8A83C41E93475E944315541E2AD457CBAA83C413734B2E144315541BABE8D36BBA83C419FBDF6C13F315541F024B481A9A83C41ECBC33BA3F3155414A1160A8A8A83C41E93475E944315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000020, 1000016, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000888EA1E28CA83C41332D149444315541F02D93D59EA83C41B430E3BA44315541BF309FF49EA83C41B6B8A18B3F315541919CDD7D8DA83C4103B8DE833F315541888EA1E28CA83C41332D149444315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000021, 1000017, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002122A862A9A83C412CA796C93E31554158C4A574BBA83C4193A81CD93E315541CDDA056DBCA83C41F82AC36B393155412122A862A9A83C41F92AC36B393155412122A862A9A83C412CA796C93E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000022, 1000018, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000004F8371668CA83C418EA17E8B3E315541C73EDB8F9FA83C418FA17E8B3E315541024A0B0CA0A83C4191293D5C39315541898EA1E28CA83C41F82AC36B393155414F8371668CA83C418EA17E8B3E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1029, 10029, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000009753A5568AA83C41E5F7710A45315541A3EB4D27BDA83C4182FD8948453155412010EABABEA83C419EE046F938315541D25ED5D28AA83C41EBDF83F1383155419753A5568AA83C41E5F7710A45315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000023, 1000019, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000B72B42AD93A83C41DBA99AD733315541652534ACB3A83C41D1736DD2333155411C122BC1B3A83C41D307295F32315541852E4ECC93A83C412D880A6332315541B72B42AD93A83C41DBA99AD733315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000024, 1000020, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000003FACAF4AA4A83C41C17FE60532315541EB1437E0B3A83C41B4FE41FA313155413C1B1226B4A83C417B3771E62E315541A2A6970CA4A83C417B3771E62E3155413FACAF4AA4A83C41C17FE60532315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000025, 1000021, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002334660A94A83C41B3FE41FA31315541EB4E6042A0A83C413A3F140032315541844DDA32A0A83C41E675FAD42E31554107321DF393A83C41B9B509D32E3155412334660A94A83C41B3FE41FA31315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1028, 10028, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000E01AFAF292A83C415870661F34315541CB33BB35B5A83C41F16EE00F34315541CF3A5983B5A83C41CB73B1BD2E3155414215E2B492A83C411773EEB52E315541E01AFAF292A83C415870661F34315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000026, 1000022, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002122A862A9A83C41379F25522831554189232E72A9A83C4123C589B92C31554174A76225AFA83C4123C589B92C3155410CA6DC15AFA83C41635F1654283155412122A862A9A83C41379F255228315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000027, 1000023, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000273225049FA83C415DDEB30C2B315541B7F1184BA7A83C415EDEB30C2B3155416BF2DB52A7A83C410ADF345028315541DB32E80B9FA83C4109DF345028315541273225049FA83C415DDEB30C2B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1027, 10027, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000007000000E81F573A9EA83C416A5F58182B3155414B1160A8A8A83C41971F491A2B31554197109DA0A8A83C41D08849E22C3155411ABBB6FEAFA83C41FD483AE42C31554150BF482DB0A83C41CE9D9F42283155419C201A429EA83C41A1DDAE4028315541E81F573A9EA83C416A5F58182B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000028, 1000024, 5, 1001, 1, 102, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000D0000005A224B267DA83C41687E9882F63055419B4A3361D7A83C411C7F5B8AF630554138504B9FD7A83C4116D17205EF3055414167668ECDA83C417ED2F814EF3055414167668ECDA83C418608A06AF1305541543CE7A3C0A83C412C88BE66F1305541BC3D6DB3C0A83C41342A30DFF23055418D64F52196A83C41B22661B8F230554149DFBEE795A83C41565D05C9EC305541068BD2BB8CA83C416DBDFDC9EC3055419F894CAC8CA83C41E1CCE0D6EE305541EE1927C97CA83C41E1CCE0D6EE3055415A224B267DA83C41687E9882F6305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1021, 10021, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000006000000BEBC5B497EA83C41D6A394F7F330554124BEE1587EA83C4141DBC15CF63055410F0C77C78CA83C41E75AE058F6305541DA07E5988CA83C41E532F115EF30554121B7430B7EA83C41D8B14C0AEF305541BEBC5B497EA83C41D6A394F7F3305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1022, 10022, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000001E28EFFD8DA83C418EDAFE54F630554146C3FE36B1A83C41D892055FF630554159303D24B1A83C4154F67632F33055415025E3DE8DA83C419791C62DF33055411E28EFFD8DA83C418EDAFE54F6305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1023, 10023, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000DB6ABBE6B2A83C41643F8D44F63055417FB0E545D6A83C41F5DB8464F63055414CB3F164D6A83C417AB7E8D0F4305541F99BCED0B2A83C41E0C042ACF4305541DB6ABBE6B2A83C41643F8D44F6305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1024, 10024, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000B62669EE8DA83C41E18965D8F23055417AD0BF4495A83C41880984D4F230554144CC2D1695A83C41D8824302ED3055418122D7BF8DA83C41D7824302ED305541B62669EE8DA83C41E18965D8F2305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1025, 10025, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000081FB5E73CEA83C41692FA677F43055417EB0E545D6A83C4110AFC473F43055411AB6FD83D6A83C413639CC5BEF30554182FB5E73CEA83C413639CC5BEF30554181FB5E73CEA83C41692FA677F4305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1026, 10026, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000008000000536B3295C1A83C41A492144AF43055413376221BCDA83C41FAEBFF46F43055419FD53CD0CCA83C416B6C6792F130554179D3EBA7C1A83C41C4EC4896F1305541AC28168FC1A83C41131EB12FF3305541F9D4E1FAB2A83C41FB063C30F3305541E175A8FCB2A83C4129F4A242F4305541536B3295C1A83C41A492144AF4305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000029, 1000025, 5, 1001, 1, 103, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000007C515C3F8AA83C417C19F035FD3055415B911A60CFA83C416117A71EFD305541C7993EBDCFA83C418BB688EFF8305541DF4B44018AA83C4170B43FD8F83055417C515C3F8AA83C417C19F035FD305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1016, 10016, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1017, 10017, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1018, 10018, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1019, 10019, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1020, 10020, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000030, 1000026, 5, 1001, 1, 102, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000500000037D65B0B9BA83C41B3806D3307315541B38F842EB9A83C414D7FE7230731554187992E9BB9A83C41ECE45278003155416CDAED399BA83C4139E48F700031554137D65B0B9BA83C41B3806D3307315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1012, 10012, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1013, 10013, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1014, 10014, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1015, 10015, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000031, 1000027, 5, 1001, 1, 102, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000900000071EA6ADB90A83C415149C4560A3155410EF0821991A83C41FD0A01B512315541CE608337C2A83C41718D2BD0123155413E7045E2C2A83C412ECD74810A315541234F7064B6A83C41D34C937D0A31554187495826B6A83C416550E62C10315541B70196EC9CA83C41BFD0C73010315541230ABA499DA83C41064A875E0A31554171EA6ADB90A83C415149C4560A315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1009, 10009, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1010, 10010, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1011, 10011, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000032, 1000028, 5, 1001, 1, 102, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000901BBDFA92A83C413522A83D1931554180E266C2BCA83C418FA289411931554119E1E0B2BCA83C419A3884AD14315541901BBDFA92A83C4140B8A2A914315541901BBDFA92A83C413522A83D19315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1007, 10007, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1008, 10008, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1034, 10034, 5, 1001, 1, 101, 1001, 10001, '2018-01-01 09:00:00', NULL, '010300002091080000010000000500000059AE79D94CA83C41C482B9960B31554159AE79D94CA83C410747313805315541826067316BA83C410747313805315541826067316BA83C41B2940BA90B31554159AE79D94CA83C41C482B9960B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1035, 10035, 5, 1001, 1, 101, 1001, 10001, '2018-01-01 09:00:00', NULL, '0103000020910800000100000007000000E768BF4E11A83C41F74A09740F315541E768BF4E11A83C411D305C2606315541C659FE1839A83C411D305C2606315541C659FE1839A83C415EEBDCF0083155417DC631E61BA83C415EEBDCF0083155417DC631E61BA83C410939B7610F315541E768BF4E11A83C41F74A09740F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1036, 10036, 5, 1001, 1, 101, 1001, 10001, '2018-01-01 09:00:00', NULL, '010300002091080000010000000500000011F3E2044DA83C415D8BBEB516315541621AADA95BA83C415D8BBEB516315541621AADA95BA83C41F2BAF16D1231554111F3E2044DA83C41F2BAF16D1231554111F3E2044DA83C415D8BBEB516315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1037, 10037, 5, 1001, 1, 101, 1001, 10001, '2018-01-01 09:00:00', NULL, '0103000020910800000100000005000000975CAF9068A83C41BE5B019516315541F25E2B1C78A83C410E3E968616315541F25E2B1C78A83C41F34F5E3012315541975CAF9068A83C41F34F5E3012315541975CAF9068A83C41BE5B019516315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000033, 1000029, 5, 1001, 1, 101, NULL, 10001, '2019-05-30 14:50:01.236765', NULL, '0103000020910800000100000005000000000000009FB33A4100000080BCB35441000000009FB33A4100000080AEB3544100000000D8B33A4100000080AEB3544100000000D8B33A4100000080BCB35441000000009FB33A4100000080BCB35441', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1038, 10038, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000000437733CA6AA3C41319198124D315541BE4A5FD0ABAA3C413E36B0E94B3155418E7CB9BA9AAA3C41FCC5CD74463155415EDA703D95AA3C41233A38A3473155410437733CA6AA3C41319198124D315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1069, 10069, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000007000000CF7C28986AAA3C41766A1687F330554109F3BFCC71AA3C419E013991F3305541A40CCDD878AA3C419B4A4375F4305541A28A79707DAA3C41B32D5F70F2305541855F031F75AA3C4155706A3AF13055417F4EE3836AAA3C410C775140F1305541CF7C28986AAA3C41766A1687F3305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1070, 10070, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000070000005CA3AD3A6BAA3C41F932AEF9F8305541CDC4379974AA3C418F6CB77FF93055419E4C57FE75AA3C413D6C4DF0F7305541741CAE3D6BAA3C41102E7A56F7305541ED71AF666AAA3C413495EE46F8305541A780CEC86BAA3C41CA99B85AF83055415CA3AD3A6BAA3C41F932AEF9F8305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1071, 10071, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000BF1112BDC4AA3C41748DBED6FC305541EA62EDB8CFAA3C41D364572DFD3055419E506A9BD0AA3C412537B461FB30554173FF8E9FC5AA3C41C65F1B0BFB305541BF1112BDC4AA3C41748DBED6FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1072, 10072, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000047326B8DBAAA3C412843B941F63055417F7F37E8BFAA3C41D883F64DF6305541A1847B29C0AA3C41D65F1A85F43055416937AFCEBAAA3C41261FDD78F430554147326B8DBAAA3C412843B941F6305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1077, 10077, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000013000000AB04D8DFC4AA3C41FDF3D3C511315541AB04D8DFC4AA3C410C2875CD0F315541406D89F8CAAA3C410C2875CD0F315541406D89F8CAAA3C4101952F0E0E315541122173FBC3AA3C4101952F0E0E315541122173FBC3AA3C410349DF140B315541A69C78D2CAAA3C410349DF140B315541A69C78D2CAAA3C41EB5B50D109315541D4D53A11D1AA3C41EB5B50D109315541D4D53A11D1AA3C412A7D631E0B315541368A761FD6AA3C412A7D631E0B315541368A761FD6AA3C412B57BBA109315541F764E6B1E4AA3C412B57BBA109315541F764E6B1E4AA3C41DC27AFC90B315541C83E7831DFAA3C41DC27AFC90B315541C83E7831DFAA3C41CEE0B9030D315541F764E6B1E4AA3C41CEE0B9030D315541F764E6B1E4AA3C41B18BCBB211315541AB04D8DFC4AA3C41FDF3D3C511315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1039, 10039, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C000000DDEBE631C3AA3C41ACA3AE3E563155410A4D1250C3AA3C410DBA6B4456315541E7722070C3AA3C4181F07A49563155411CE9D291C3AA3C41A86BD24D563155419208E8B4C3AA3C41DCB569515631554155771BD9C3AA3C4130D039545631554194AD26FEC3AA3C41863F3D5656315541117FC123C4AA3C41B5177057563155418AA7A249C4AA3C41ED02D05756315541D859806FC4AA3C4147465C5756315541DCCF1095C4AA3C4136C315565631554178D90ABAC4AA3C41EAF5FE5356315541FA6B26DEC4AA3C4161F01B51563155410E2E1D01C5AA3C416352724D563155419F00AB22C5AA3C41C33E0949563155413D848E42C5AA3C414C4DE943563155416E978960C5AA3C41097A1C3E563155412BD1617CC5AA3C41EC11AE375631554147F1E095C5AA3C41A19CAA3056315541CB4AD5ACC5AA3C4156C41F29563155419B2412C1C5AA3C41DF3A1C2156315541351170D2C5AA3C41529DAF1856315541053ACDE0C5AA3C417455EA0F5631554157A30DECC5AA3C41C379DD0656315541AF601BF4C5AA3C4133AC9AFD553155416BC1E6F8C5AA3C41D4F733F455315541496E66FAC5AA3C41B6ADBBEA55315541B27B97F8C5AA3C41234144E1553155416C6F7DF3C5AA3C41A123E0D7553155413D3A22EBC5AA3C413AA1A1CE55315541192496DFC5AA3C419ABC9AC55531554120ACEFD0C5AA3C41150CDDBC55315541A15D4BBFC5AA3C41719779B455315541C497CBAAC5AA3C4189B680AC55315541BA4A9893C5AA3C41B2F101A55531554145AADE79C5AA3C414EE30B9E553155411AD5D05DC5AA3C41471BAC9755315541ED73A53FC5AA3C41E604EF9155315541104E971FC5AA3C4172CEDF8C55315541D5100B14C5AA3C414EE3478B55315541496A1DF3C4AA3C413150068755315541B3DEDAD0C4AA3C4171627C8355315541524D83ADC4AA3C41FBB2B08055315541CA995889C4AA3C411978A87E5531554184319E64C4AA3C41A57B677D55315541AB8D983FC4AA3C411A14F07C55315541D8B38C1AC4AA3C410620437D553155410CB5BFF5C3AA3C41A204607E55315541592D76D1C3AA3C41C6AE44805531554131C3F3ADC3AA3C41DC96ED82553155416BAA7A8BC3AA3C4172C7558655315541F2274B6AC3AA3C4187E6768A55315541211AA34AC3AA3C413241498F55315541B285BD2CC3AA3C414ADAC39455315541AB27D210C3AA3C41D57ADC9A55315541D70C15F7C2AA3C4151C587A155315541D631B6DFC2AA3C41BA4AB9A8553155414E28E1CAC2AA3C41F1A163B0553155411BC7BCB8C2AA3C417A8078B855315541F4E06AA9C2AA3C4136D5E8C0553155415D05089DC2AA3C419CE4A4C9553155411F4CAB93C2AA3C41DC659CD2553155415529668DC2AA3C4171A1BEDB553155418D4D448AC2AA3C410990FAE455315541CB8F4B8AC2AA3C4187FA3EEE553155414FE27B8DC2AA3C41EF997AF7553155419053CF93C2AA3C41A4379C0056315541FF173A9DC2AA3C4198CD92095631554154A1AAA9C2AA3C41DBA54D12563155419BBE09B9C2AA3C41F979BC1A5631554151C73ACBC2AA3C412291CF225631554117D11BE0C2AA3C41A7DD772A5631554118EF85F7C2AA3C41C918A731563155415C7A4D11C3AA3C41A3DD4F38563155412763422DC3AA3C41F1C1653E56315541DDEBE631C3AA3C41ACA3AE3E56315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1040, 10040, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000CF801F64B0AA3C411FB2B148543155411BF2F078B9AA3C4164B00339533155411B23C001ADAA3C41F516498E4C315541CFB1EEECA3AA3C41B018F79D4D315541CF801F64B0AA3C411FB2B14854315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1041, 10041, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000900000004B783E7AAAA3C41E24B74F35B315541FFCA8C91C8AA3C41A9CB58E95C3155416F37779DB8AA3C41770127A15331554102BA71FDAFAA3C416D98578E543155410540CBB2B5AA3C41B3FD94E057315541EC5A10D7B6AA3C41841203C657315541AFC46ED7B7AA3C4178AAF05858315541C65434ABACAA3C416ADE6F085831554104B783E7AAAA3C41E24B74F35B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1042, 10042, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004B0000006B7284E5C6AA3C4150719CAC583155412862F00FC7AA3C41584D1DB258315541DE271E3CC7AA3C41842CACB6583155415BB0B769C7AA3C416D2D40BA5831554117246498C7AA3C416657D2BC58315541AD93C8C7C7AA3C4127A85DBE5831554131A988F7C7AA3C417D1DDFBE58315541605C4727C8AA3C4128BB55BE5831554179A7A756C8AA3C41D88CC2BC58315541F53C4D85C8AA3C4119A428BA58315541833ADDB2C8AA3C4137128DB65831554168DBFEDEC8AA3C41B9DEF6B15831554118245C09C9AA3C4147F96EAC58315541AF8AA231C9AA3C417A2800A65831554124978357C9AA3C41DFF4B69E58315541797CB57AC9AA3C416990A19658315541DAA8F39AC9AA3C41FEBACF8D583155414E4AFFB7C9AA3C4186A35284583155410ACA9FD1C9AA3C41B0C63C7A58315541013AA3E7C9AA3C41C1CAA16F58315541AFB6DEF9C9AA3C41535996645831554153BA2E08CAAA3C4134F72F595831554162627712CAAA3C4145DA844D5831554166A5A418CAAA3C415FBEAB4158315541BD7AAA1ACAAA3C41FEB8BB35583155416CF18418CAAA3C41330CCC29583155412B383812CAAA3C416CF9F31D583155410395D007CAAA3C4118944A1258315541A84D62F9C9AA3C41AA94E60658315541867F09E7C9AA3C41712CDEFB57315541BEE9E9D0C9AA3C4145DA46F15731554187A62EB7C9AA3C419F4035E7573155411BD8099AC9AA3C418CFDBCDD573155416E46B479C9AA3C412C84F0D45731554199F06C56C9AA3C411FF9E0CC57315541E4927830C9AA3C41B7109EC5573155418A1F2108C9AA3C41D3F035BF57315541A22FB5DDC8AA3C41CA14B5B957315541EC6987B1C8AA3C419F3526B5573155418633A6A2C8AA3C413F67DCB357315541E2EDBD77C8AA3C418BC6D6B15731554158FA544CC8AA3C419D67AAB0573155410AFEAF20C8AA3C41602559B0573155410DFD13F5C7AA3C416D80E3B0573155418BEDC5C9C7AA3C41E99D48B257315541B0490A9FC7AA3C41254986B457315541FBA42475C7AA3C41F2F698B757315541D83F574CC7AA3C415DCB7BBB57315541F39FE224C7AA3C4134A128C057315541B62905FFC6AA3C41F31398C55731554176BDFADAC6AA3C41308BC1CB573155415759FCB8C6AA3C417B489BD2573155415CBE3F99C6AA3C41A4761ADA57315541571CF77BC6AA3C41C03A33E257315541E4C15061C6AA3C4121C7D8EA573155411BD37649C6AA3C41776FFDF357315541C5078F34C6AA3C4169BE92FD57315541A66EBA22C6AA3C41718C890758315541CE391514C6AA3C410618D21158315541F891B608C6AA3C41241E5C1C58315541CD71B000C6AA3C416EF41627583155418B890FFCC5AA3C413BA3F13158315541DE2ADBFAC5AA3C418200DB3C58315541AA3D15FDC5AA3C4127CBC14758315541263CBA02C6AA3C41EBC59452583155417139C10BC6AA3C4104D3425D583155411FEF1B18C6AA3C41150FBB6758315541E7D3B627C6AA3C41BCEBEC7158315541A93A793AC6AA3C41064AC87B5831554131794550C6AA3C4194933D85583155415917F968C6AA3C41ABD33D8E5831554167056D84C6AA3C417DCEBA9658315541F7D975A2C6AA3C41DC17A79E583155416A16E4C2C6AA3C415B28F6A5583155416B7284E5C6AA3C4150719CAC58315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1043, 10043, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C00000092C71545C1AA3C4111BE3B0C55315541A8E88265C1AA3C4123BE951355315541E18E6088C1AA3C416FB5331A5531554152CC6AADC1AA3C4182BF082055315541947659D4C1AA3C41907F0925553155418AB3E0FCC1AA3C4134362C2955315541D58CB126C2AA3C41C0D4682C553155410A8A7A51C2AA3C41C70CB92E553155415F4FE87CC2AA3C41835C183055315541F03FA6A8C2AA3C416717843055315541A5225FD4C2AA3C419C6BFB2F5531554122C8BDFFC2AA3C416D637F2E5531554108B16D2AC3AA3C413CE3122C5531554138B21B54C3AA3C4100A4BA28553155416197767CC3AA3C41F7297D245531554162C02FA3C3AA3C41E6B7621F55315541A3BBFBC7C3AA3C41473F751955315541B4D792EAC3AA3C418C4CC012553155413CB0B10AC4AA3C41DEF0500B55315541ABB01928C4AA3C4199A8350355315541B28D9142C4AA3C410B3F7EFA5431554128B6E559C4AA3C41AFAF3BF15431554137B6E86DC4AA3C411E0580E754315541C690737EC4AA3C41E1355EDD54315541F70A668BC4AA3C418EFFE9D2543155413CEBA694C4AA3C4140C037C854315541012A249AC4AA3C41EB4E5CBD54315541BC15D39BC4AA3C41C7D26CB2543155419066B099C4AA3C411A9A7EA754315541D645C093C4AA3C41BAF0A69C5431554112450E8AC4AA3C4181F6FA91543155412248AD7CC4AA3C4135768F8754315541D35FB76BC4AA3C41EBBC787D54315541B8974D57C4AA3C41A072CA73543155413EB5973FC4AA3C41DA73976A5431554150EAC324C4AA3C41D6ACF161543155419A7B0607C4AA3C41A9F6E95954315541855A99E6C3AA3C4198F68F52543155411F8F6CC9C3AA3C41CFFAF14C5431554139C0A3A7C3AA3C4142B7134654315541D9E19683C3AA3C415697F83F54315541FB308C5DC3AA3C417C80AC3A54315541A5CBCD35C3AA3C41BDC4393654315541A020A90CC3AA3C41C20EA93254315541F9586EE2C2AA3C41CD500130543155417ABB6FB7C2AA3C412EB7472E54315541450C018CC2AA3C41519E7F2D543155416DEA7660C2AA3C41058CAA2D54315541E0292635C2AA3C41AA2CC82E54315541242F630AC2AA3C41CA53D63054315541424A81E0C1AA3C413800D13354315541B514D2B7C1AA3C411664B2375431554109D3A490C1AA3C41ECEF723C54315541FDD8456BC1AA3C41886109425431554110F6FD47C1AA3C41EDD56A485431554189E71127C1AA3C41ABDE8A4F543155419CD1C108C1AA3C41EF995B575431554193C348EDC0AA3C41A9CDCD5F54315541E343DCD4C0AA3C413605D1685431554151E8ABBFC0AA3C416DB153725431554155F9E0ADC0AA3C41CE4A437C5431554194219E9FC0AA3C418F758C86543155419629FF94C0AA3C4179271B915431554145C3188EC0AA3C41D9CEDA9B54315541A35FF88AC0AA3C419B7AB6A6543155417516A48BC0AA3C41110399B15431554133991A90C0AA3C4134336DBC5431554187355398C0AA3C41EEF11DC75431554141E73DA4C0AA3C41266B96D154315541B876C3B3C0AA3C417F38C2DB5431554112A6C5C6C0AA3C41F5888DE554315541826C1FDDC0AA3C417847E5EE54315541133EA5F6C0AA3C412840B7F7543155410E612513C1AA3C41D543F2FF543155415A11F330C1AA3C41831033075531554192C71545C1AA3C4111BE3B0C55315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1044, 10044, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004D00000043CB9991C0AA3C414A75E8C24D315541F111CEC7C0AA3C41A4FBF9C94D31554186624400C1AA3C41D245D6CF4D31554144BB8E3AC1AA3C41C6E871D44D315541F18A3B76C1AA3C4130EAC3D74D3155416B8DD6B2C1AA3C4107D2C5D94D315541B0AEE9EFC1AA3C4107B773DA4D3155415BF0FD2CC2AA3C415F46CCD94D3155415C529C69C2AA3C414CC6D0D74D315541F7B94EA5C2AA3C419B1385D44D31554127D8A0DFC2AA3C41019AEFCF4D3155413F0C2118C3AA3C41DA4719CA4D315541B941614EC3AA3C418B7C0DC34D315541CAC5F781C3AA3C417AF2D9BA4D315541E51580B2C3AA3C411DA48EB14D315541E0A39BDFC3AA3C4135AD3DA74D315541268DF208C4AA3C411327FB9B4D3155410447342EC4AA3C41E401DD8F4D3155410A3B184FC4AA3C4185D9FA824D31554174545E6BC4AA3C41E4C76D754D3155412B7DCF82C4AA3C41BF3350674D315541FA083E95C4AA3C41909DBD584D315541A20E86A2C4AA3C41A569D2494D315541FEAD8DAAC4AA3C4106A9AB3A4D315541FE4145ADC4AA3C41B5E0662B4D315541607FA7AAC4AA3C413FD0211C4D3155413D7FB9A2C4AA3C41BF37FA0C4D3155414EB48A95C4AA3C41E39D0DFE4C315541E8CD3483C4AA3C41571679EF4C3155414C85DB6BC4AA3C41460959E14C3155413858AC4FC4AA3C41F2FBC8D34C315541CC2FDE2EC4AA3C41EE5AE3C64C31554158F6B009C4AA3C41DD46C1BA4C315541B61A6DE0C3AA3C4169637AAF4C315541590263B3C3AA3C4117A924A54C315541726DEA82C3AA3C41953AD49B4C315541F8CB614FC3AA3C419E3D9B934C31554174852D19C3AA3C4144B7898C4C3155417695A40BC3AA3C41C20D008B4C31554128D5DBD5C2AA3C41AA89F6834C315541FA6CD39DC2AA3C4128E21F7E4C3155413C88F863C2AA3C41587787794C31554195DFBB28C2AA3C41343D36764C31554131DC90ECC1AA3C4157AA32744C31554125B8ECAFC1AA3C4136AB80734C3155413C994573C1AA3C41A59A21744C31554179AB1137C1AA3C41123F14764C315541B639C6FBC0AA3C4101CD54794C3155417DCAD6C1C0AA3C414DEEDC7D4C315541363EB489C0AA3C41BCCEA3834C31554108F3CB53C0AA3C41FC2C9E8A4C31554175F08620C0AA3C419470BE924C315541FA1949F0BFAA3C4198C4F49B4C315541256D70C3BFAA3C412E362FA64C315541AE49549ABFAA3C41D8D759B14C31554106C84475BFAA3C410DE85EBD4C315541CF1C8A54BFAA3C41B8FB26CA4C3155416F0C6438BFAA3C41CB2B99D74C315541946E0921BFAA3C41D7459BE54C31554128C3A70EBFAA3C41FBFE11F44C315541C1DA6201BFAA3C413029E1024D315541238F54F9BEAA3C41FEE9EB114D315541CB928CF6BEAA3C410CF314214D315541855010F9BEAA3C41BBBA3E304D31554139E2DA00BFAA3C4137B64B3F4D315541CC19DD0DBFAA3C41A8921E4E4D315541289FFD1FBFAA3C416B6E9A5C4D315541E3201937BFAA3C417D11A36A4D315541E3990253BFAA3C4148241D784D31554141A88373BFAA3C41ED64EE844D31554129F85C98BFAA3C418CDAFD904D315541ABBE46C1BFAA3C41CC05349C4D3155415245F1EDBFAA3C41AA0E7BA64D315541FC85051EC0AA3C4109EFBEAF4D315541A6D42551C0AA3C41D799EDB74D31554152D5257DC0AA3C41CE77CBBD4D31554143CB9991C0AA3C414A75E8C24D315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1045, 10045, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000090000004B81FD28B8AA3C414DA3C52C4E31554150CAFF8FB4AA3C41E1D28E9B4E315541369F4AE7B5AA3C414DD6EC4D4F3155411320D098B3AA3C41E426F4944F315541F77774C6BBAA3C410CC2C3D4533155419D05EBF7BEAA3C412AA26E725331554186AB036EC0AA3C4131F2CD3454315541FD530524C3AA3C41DE9152E1533155414B81FD28B8AA3C414DA3C52C4E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1066, 10066, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000D0000007A669813A4AA3C4148C8AD38F4305541A1A032FCB0AA3C4136306EC5F4305541B60E5A3CB1AA3C4107974A67F4305541DFFA5FB7B2AA3C418E586F77F4305541BDDC5C9DB3AA3C41C5EBF325F3305541D705BB1FB9AA3C415D270662F3305541A63B6781BAAA3C41A13C0C5BF1305541A8369BF5B1AA3C41A725DDFDF030554117ECFEABB1AA3C41A118E169F1305541F7B2E090A0AA3C41887D5CAFF03055414F2A55D49EAA3C415DCEAE3BF3305541FF184195A4AA3C41611B6B7AF33055417A669813A4AA3C4148C8AD38F4305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1067, 10067, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000008D8E43908EAA3C417E75DFE7EA3055413BBC573AA0AA3C41C3767C65EB30554143A6DD63A1AA3C4132280FC8E83055419578C9B98FAA3C41ED26724AE83055418D8E43908EAA3C417E75DFE7EA305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1046, 10046, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004B000000F063F57FC5AA3C41F1A75DF24C315541E625BDA2C5AA3C4150C184F54C315541233970C6C5AA3C41D014F2F74C31554112B7D0EAC5AA3C410D6DA1F94C315541228C9F0FC6AA3C4124DE8FFA4C3155417EE59C34C6AA3C419CCABBFA4C315541A19F8859C6AA3C413EE624FA4C3155418DB5227EC6AA3C41C536CCF84C31554107B02BA2C6AA3C41D511B4F64C3155412A1365C5C6AA3C411019E0F34C31554144CB91E7C6AA3C41CF3355F04C3155415F967608C7AA3C419A8619EC4C3155411B6BDA27C7AA3C417D6834E74C3155417CDB8645C7AA3C415556AEE14C315541E2734861C7AA3C4113E490DB4C3155414913EF7AC7AA3C4127ACE6D44C3155417E3F4E92C7AA3C410D3DBBCD4C315541D0713DA7C7AA3C415F051BC64C315541AF5D98B9C7AA3C412B3E13BE4C315541402F3FC9C7AA3C4118D4B1B54C31554110C316D6C7AA3C41404F05AD4C31554165D408E0C7AA3C41E0B91CA44C3155417D2404E7C7AA3C417286079B4C3155414198FCEAC7AA3C41BC74D5914C315541164DEBEBC7AA3C41A47696884C3155413FA5CEE9C7AA3C4176945A7F4C315541164AAAE4C7AA3C4108D131764C3155414F2687DCC7AA3C411B0E2C6D4C315541B85573D1C7AA3C41B2F058644C315541B70D82C3C7AA3C411DC6C75B4C315541137BCBB2C7AA3C41156987534C31554105996C9FC7AA3C417E28A64B4C315541E1FD8689C7AA3C4118AE31444C31554186A14071C7AA3C4128E7363D4C315541769BC356C7AA3C41E1EDC1364C315541AAD93D3AC7AA3C4172F4DD304C315541E8082A1AC7AA3C41C3DC682B4C315541C4684EF8C6AA3C415403AC264C31554184F0ECD4C6AA3C4121A3B0224C315541EF8E4AB0C6AA3C41407E7E1F4C31554118A4AE8AC6AA3C41A8CE1B1D4C31554117766264C6AA3C41253A8D1B4C315541A0A2B03DC6AA3C4155C9D51A4C315541898DE416C6AA3C419EE1F61A4C31554154CD49F0C5AA3C417D42F01B4C3155410B992BCAC5AA3C411506C01D4C3155417534D4A4C5AA3C41DBA462204C3155414B608C80C5AA3C4167FCD2234C3155414ACC9A5DC5AA3C4195590A284C315541488D433CC5AA3C416C85002D4C3155418598C71CC5AA3C4146D5AB324C3155414F4564FFC4AA3C41783D01394C31554165D552E4C4AA3C410567F43F4C315541BE05C8CBC4AA3C418DC777474C31554101A7F3B5C4AA3C41BDBB7C4F4C315541434100A3C4AA3C41C6A3F3574C31554177C01293C4AA3C41D601CC604C315541CA2C4A86C4AA3C413C9AF4694C3155416A6EBF7CC4AA3C41F1945B734C3155418A1C8576C4AA3C4172A0EE7C4C3155414B59A773C4AA3C4145159B864C3155416EBA2B74C4AA3C41951A4E904C315541EB3D1178C4AA3C41A2CAF4994C315541494C507FC4AA3C41B5577CA34C31554136C7DA89C4AA3C41DA30D2AC4C31554190259C97C4AA3C41E525E4B54C315541209A79A8C4AA3C41E58AA0BE4C315541A44952BCC4AA3C41A55AF6C64C315541E288FFD2C4AA3C41D657D5CE4C315541A82955ECC4AA3C41A42C2ED64C315541DECF2108C5AA3C419E88F2DC4C31554128522F26C5AA3C41883C15E34C315541EA224346C5AA3C4137548AE84C3155410FC31E68C5AA3C41A72D47ED4C315541F063F57FC5AA3C41F1A75DF24C315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1078, 10078, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000CE0DBBFC55AA3C417563E680103155418E7144137CAA3C41B44A1E6A103155418E7144137CAA3C41ED79C86107315541CE0DBBFC55AA3C41ED79C86107315541CE0DBBFC55AA3C417563E68010315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1047, 10047, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004D0000007E1884BAC1AA3C41C70D43404C315541CE7601F6C1AA3C414F13EA464C31554187979633C2AA3C41E9C83E4C4C315541707FCB72C2AA3C41AFCB36504C315541240925B3C2AA3C412060CA524C315541A6D425F4C2AA3C413181F4534C315541D43C4F35C3AA3C4102EAB2534C315541DC4C2276C3AA3C41611A06524C31554187B820B6C3AA3C41C355F14E4C3155415AD1CDF4C3AA3C41EA9C7A4A4C315541D77AAF31C4AA3C4140A2AA444C315541E9164F6CC4AA3C41C0B88C3D4C3155413B6E3AA4C4AA3C4124BE2E354C315541048E04D9C4AA3C41AAFFA02B4C315541479C460AC5AA3C41641AF6204C315541CAA0A037C5AA3C41EAD642154C315541AC3FBA60C5AA3C4107019E084C31554185654385C5AA3C41093B20FB4B31554141E3F4A4C5AA3C4106CEE3EC4B31554137F990BFC5AA3C417D7604DE4B3155419ECFE3D4C5AA3C414E2E9FCE4B315541B6DAC3E4C5AA3C4149F4D1BE4B3155417D2C12EFC5AA3C41E791BBAE4B315541C0B0BAF3C5AA3C41FC5E7B9E4B3155413054B4F2C5AA3C41F004318E4B315541AA1501ECC5AA3C41EE40FC7D4B3155410803AEDFC5AA3C410EA6FC6D4B315541CD1FD3CDC5AA3C41CF5F515E4B315541FC3493B6C5AA3C417AF5184F4B315541288F1B9AC5AA3C416B0E71404B315541B5A4A378C5AA3C41963876324B315541A3AA6C52C5AA3C41AFB043254B3155418915C127C5AA3C411E2DF3184B315541A407F4F8C4AA3C41F3AB9C0D4B31554119B060C6C4AA3C41454456034B3155414A986990C4AA3C41CFFA33FA4A3155413DE47757C4AA3C41609B47F24A3155414A8FCF36C4AA3C4112716FEE4A3155411DD5E1FCC3AA3C41567DD1E64A3155413FBD84C0C3AA3C41EE147EE04A31554112E32D82C3AA3C41E58A81DB4A31554179BB5642C3AA3C416896E5D74A315541ECA77B01C3AA3C41883FB1D54A31554193041BC0C2AA3C41E6D1E8D44A3155417531B47EC2AA3C41E9D38DD54A3155412F9BC63DC2AA3C4112049FD74A315541A4C1D0FDC1AA3C41765B18DB4A31554132424FBFC1AA3C414115F3DF4A315541F3E4BB82C1AA3C4147BC25E64A31554125AF8C48C1AA3C41373DA4ED4A31554102FD3211C1AA3C4138FE5FF64A315541F4A51ADDC0AA3C4162FB47004B3155412F29A9ACC0AA3C41C6E7480B4B315541BFE83C80C0AA3C411A534D174B3155414D712C58C0AA3C4195D33D244B315541B1D1C534C0AA3C41673301324B315541C2024E16C0AA3C41E7A17C404B315541F96000FDBFAA3C41DFE7934F4B315541FE380EE9BFAA3C416A9E295F4B315541DE669EDABFAA3C415B681F6F4B3155418C0BCDD1BFAA3C413E2D567F4B315541D854ABCEBFAA3C411456AE8F4B315541E25C3FD1BFAA3C41D10A08A04B315541B11D84D9BFAA3C41627043B04B315541197B69E7BFAA3C41C5E640C04B3155414262D4FABFAA3C41A246E1CF4B3155415DFE9E13C0AA3C41F21D06DF4B31554145029931C0AA3C4170EB91ED4B31554149068854C0AA3C41EE5768FB4B315541F1FA277CC0AA3C41B16D6E084C31554156AC2BA8C0AA3C41E3CC8A144C315541D3593DD8C0AA3C4109DDA51F4C315541955BFF0BC1AA3C41E6FAA9294C315541DADA0C43C1AA3C41CDA283324C3155410795FA7CC1AA3C417E96213A4C315541F8723CB7C1AA3C41C70D43404C3155417E1884BAC1AA3C41C70D43404C315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1048, 10048, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000003312A9CA9FAA3C41C248B7E2453155411FE91D199CAA3C41B791D799463155410B3C7B6FB0AA3C412DCEFB294D3155414A650621B4AA3C413785DB724C3155413312A9CA9FAA3C41C248B7E245315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1049, 10049, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004A00000049547F15C3AA3C41CBFB55B54A31554185398B54C3AA3C412D7AE7B94A3155413B6AF194C3AA3C4176D914BD4A315541476E34D6C3AA3C41F5E8D7BE4A3155412C1FD517C4AA3C41DF392DBF4A315541BA9F5359C4AA3C41FD2514BE4A3155418855309AC4AA3C41E9D08EBB4A31554195E1ECD9C4AA3C41EC23A2B74A315541E8150D18C5AA3C4178C455B24A31554129E81754C5AA3C414005B4AB4A3155412F5D988DC5AA3C41F1D1C9A34A315541D36C1EC4C5AA3C413796A69A4A3155418FDC3FF7C5AA3C41A61F5C904A315541D90D9926C6AA3C41107BFE844A315541E9C0CD51C6AA3C4144CDA3784A31554115C88978C6AA3C413328646B4A31554191AB819AC6AA3C41DC5B595D4A315541643D73B7C6AA3C4110C49E4E4A315541191926CFC6AA3C410D13513F4A315541A3126CE1C6AA3C41BE198E2F4A315541C88F21EEC6AA3C41868D741F4A315541EFCD2DF5C6AA3C4183CC230F4A315541981183F6C6AA3C414AA0BBFE49315541E2C11EF2C6AA3C4126005CEE49315541926D09E8C6AA3C41B3D224DE49315541A0B956D8C6AA3C41B0AF35CE49315541FA3B25C3C6AA3C419BA2ADBE49315541F03E9EA8C6AA3C410BEEAAAF49315541B271F588C6AA3C41C9D04AA149315541CB826864C6AA3C41E04CA99349315541B2A83E3BC6AA3C41F1F0E086493155412F16C80DC6AA3C419FA40A7B49315541015F5DDCC5AA3C41DB773D7049315541E7CA5EA7C5AA3C410F768E66493155418B99336FC5AA3C41317D105E49315541313A4934C5AA3C41BC18D4564931554111B06F29C5AA3C419247AA55493155419C22B8EAC4AA3C419D91B1504931554198FB81AAC4AA3C41D2881B4D493155418F554A69C4AA3C41CF29EF4A4931554100419027C4AA3C4197B0304A4931554170CCD3E5C3AA3C413E90E14A49315541150B95A4C3AA3C413370004D49315541DA1A5364C3AA3C41B32E895049315541C62D8B25C3AA3C4116E9745549315541AC94B7E8C2AA3C41FB08BA5B4931554120D24EAEC2AA3C4111574C6349315541EDB2C276C2AA3C41F6121D6C49315541F86F7F42C2AA3C41DC0F1B764931554182DCEA11C2AA3C41EBD53281493155410C9F63E5C1AA3C4170C84E8D49315541967840BDC1AA3C41A84F579A493155418B9CCF99C1AA3C41130733A8493155418F17567BC1AA3C4191EEC6B6493155419F490F62C1AA3C41399FF6C549315541A3712C4EC1AA3C419682A4D549315541A14ED43FC1AA3C41620CB2E54931554193D22237C1AA3C41DAF5FFF549315541B5ED2834C1AA3C41FD7A6E064A3155414F6CEC36C1AA3C412198DD164A315541F8EB673FC1AA3C4183482D274A31554123E68A4DC1AA3C4187C43D374A31554185CF3961C1AA3C41CCBFEF464A315541184F4E7AC1AA3C4112A624564A3155419C879798C1AA3C41B5D6BE644A3155412F77DABBC1AA3C418DDEA1724A3155419B6AD2E3C1AA3C413FAFB27F4A31554105833110C2AA3C411DD4D78B4A315541EC4CA140C2AA3C4185A3F9964A315541F869C374C2AA3C41226D02A14A315541A64732ACC2AA3C4125A4DEA94A3155419EE581E6C2AA3C4164057DB14A315541F92FAD09C3AA3C41CBFB55B54A31554149547F15C3AA3C41CBFB55B54A315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1050, 10050, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004D000000BF8E49ECC3AA3C414610C02349315541FBA76524C4AA3C41D404992A493155413537AE5EC4AA3C412F5332304931554163AEB19AC4AA3C41F012813449315541C820FBD7C4AA3C417ADF7C37493155414D261316C5AA3C41C9E81F39493155418CC48054C5AA3C415CFE6639493155412C5ACA92C5AA3C41BF955138493155414E8C76D0C5AA3C416CCBE1354931554199320D0DC6AA3C41BB5E1C32493155413F411848C6AA3C419BA8082D49315541B8AF2481C6AA3C41518DB026493155418357C3B7C6AA3C411769201F493155414ACE89EBC6AA3C4132F86616493155413A34131CC7AA3C410E3A950C49315541A3F80049C7AA3C413250BE01493155418892FB71C7AA3C411259F7F548315541BA2AB396C7AA3C41CE4657E9483155413A38E0B6C7AA3C4164B2F6DB48315541460A44D2C7AA3C4115ACEFCD48315541DC43A9E8C7AA3C4146885DBF48315541B542E4F9C7AA3C417BAA5CB0483155410875D305C8AA3C41E24D0AA148315541199A5F0CC8AA3C41804C84914831554166F07B0DC8AA3C41FCE4E88148315541F24D2609C8AA3C41897F567248315541A72467FFC7AA3C410073EB6248315541E37151F0C7AA3C416EC9C55348315541629902DCC7AA3C41C4050345483155413A2CA2C2C7AA3C4131EABF3648315541509B61A4C7AA3C413340182948315541BDD77B81C7AA3C4181A2261C4831554130DF345AC7AA3C410549041048315541BF37D92EC7AA3C41EBD7C804483155416B5BBDFFC6AA3C417C318AFA473155412F123DCDC6AA3C41654B5CF147315541005946C5C6AA3C41658C0FF047315541223EA892C6AA3C415B5CA5E6473155416933F35CC6AA3C410FB05EDE473155412CDC8F24C6AA3C4173A74BD7473155411215ECE9C5AA3C41DE0A7AD147315541A81D7AADC5AA3C41AF30F5CC4731554142BAAF6FC5AA3C41B4E6C5C947315541C84D0531C5AA3C415C61F2C74731554157F0F4F1C4AA3C41A62F7EC747315541DE7FF9B2C4AA3C41D0336AC84731554105B28D74C4AA3C411EA2B4CA4731554171242B37C4AA3C41F20359CE47315541367049FBC3AA3C41CB4050D34731554122405DC1C3AA3C41D5AB90D947315541666ED789C3AA3C41EF160EE147315541D3272455C3AA3C4167EAB9E947315541EF19AA23C3AA3C41534183F347315541D8A9C9F5C2AA3C417E0A57FE47315541D239DCCBC2AA3C41922D200A483155417F7933A6C2AA3C414AB4C7164831554179C81885C2AA3C41F8F6342448315541E0A5CC68C2AA3C41C7CC4D3248315541B6338651C2AA3C418EBEF64048315541CECA723FC2AA3C41683C135048315541E5A2B532C2AA3C4142D5855F48315541AE8D672BC2AA3C416070306F48315541ABC69629C2AA3C41BC87F47E4831554155D7462DC2AA3C41DB63B38E483155418C907036C2AA3C4151574E9E4831554108180245C2AA3C41B6FAA6AD483155413E0BDF58C2AA3C41C5679FBC4831554165B7E071C2AA3C41CA731ACB48315541CF63D68FC2AA3C4139E8FBD848315541B0B185B2C2AA3C41D3B928E6483155415F0DABD9C2AA3C41563D87F2483155410B32FA04C3AA3C415159FFFD483155415CBE1E34C3AA3C415EB57A08493155413AD9BC66C3AA3C4172E5E41149315541F3E3719CC3AA3C41B4912B1A49315541303BD5D4C3AA3C415A9A3E2149315541BF8E49ECC3AA3C414610C02349315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1051, 10051, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C000000EC56E803C5AA3C41B9E3E89747315541D17DD63BC5AA3C41320D1A9F47315541B5071076C5AA3C41EC3A0CA547315541E98323B2C5AA3C4133D7B3A94731554125E69BEFC5AA3C4164D007AD47315541656B012EC6AA3C4190AA01AF47315541C181DA6CC6AA3C41388C9DAF47315541D8B6ACABC6AA3C419145DAAE4731554188A5FDE9C6AA3C412853B9AC4731554159E45327C7AA3C41A6DA3EA9473155418BF23763C7AA3C41FBA271A4473155414820359DC7AA3C410D075B9E473155417D72DAD4C7AA3C4194E3069747315541F27EBB09C8AA3C41C77F838E47315541323F713BC8AA3C41D571E1844731554160D99A69C8AA3C415D7E337A47315541ED5CDE93C8AA3C4101748E6E473155417572E9B9C8AA3C41C902096247315541C4FA71DBC8AA3C41D98FBB5447315541D1A036F8C8AA3C411506C04647315541B957FF0FC9AA3C419CA3313847315541A8C89D22C9AA3C419AC42C29473155416DADED2FC9AA3C4100ACCE19473155414716D537C9AA3C41BB4A350A47315541BD9C443AC9AA3C4124057FFA463155414D823737C9AA3C41D377CAEA463155417FB8B32EC9AA3C41273C36DB4631554178D6C920C9AA3C4173ACE0CB46315541C9F7940DC9AA3C41E6A8E7BC463155413C883AF5C8AA3C41775D68AE463155412FFAE9D7C8AA3C41EA087FA046315541FA6ADCB5C8AA3C41CDC54693463155413333548FC8AA3C41C755D9864631554151659C64C8AA3C413CEF4E7B463155410F3C0836C8AA3C414E0EBE70463155410077F203C8AA3C41F7483B674631554142ABBCCEC7AA3C41D826D95E463155419526E7A5C7AA3C414969725946315541BCD3196EC7AA3C4122DB1C5246315541C54DF433C7AA3C410BB5054C46315541CCDEE7F7C6AA3C41D3D4384746315541A98469BAC6AA3C41AB94BF4346315541F60EF17BC6AA3C4113B9A041463155418333F83CC6AA3C41B863E040463155411AA3F9FDC5AA3C415E0B8041463155416E1970BFC5AA3C41F7787E4346315541DB6DD581C5AA3C41F6C9D74646315541AEA6A145C5AA3C411A78854B46315541180F4A0BC5AA3C41EC657E5146315541005240D3C4AA3C418DF0B65846315541BD9DF19DC4AA3C4180062161463155412BCEC56BC4AA3C41EA42AC6A463155412EA31E3DC4AA3C418B0D467546315541C4015712C4AA3C4124BFD980463155413143C2EBC3AA3C417CC9508D463155416A92ABC9C3AA3C4167E3929A46315541A45955ACC3AA3C411E3886A84631554172C1F893C3AA3C4191990FB7463155419140C580C3AA3C415AB512C646315541C63FE072C3AA3C41D84B72D54631554191D1646AC3AA3C414F6910E546315541267C6367C3AA3C412CA0CEF446315541BD1AE269C3AA3C413B448E044731554122D1DB71C3AA3C41B1A63014473155411E15417FC3AA3C419651972347315541ACCDF791C3AA3C415643A43247315541F684DBA9C3AA3C4147293A414731554178AFBDC6C3AA3C4182983C4F47315541460766E8C3AA3C419D45905C47315541C1F8920EC4AA3C4177391B69473155417223FA38C4AA3C414104C57447315541D4E94867C4AA3C419BEC767F4731554135132599C4AA3C41401C1C8947315541E27A2DCEC4AA3C4172C8A1914731554138E92AFDC4AA3C41B9E3E89747315541EC56E803C5AA3C41B9E3E89747315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1052, 10052, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004B0000002CB36BE9C8AA3C414739D8D044315541A0D534E1C8AA3C41B8B494CF443155419125D685C8AA3C41CEA069C64431554165D9BC4CC8AA3C4124D2F8C244315541D8FFAD12C8AA3C41F525C0C044315541FA0A14D8C7AA3C41E1AEC3BF44315541076C5A9DC7AA3C41C93B05C044315541F4CDEC62C7AA3C41835484C144315541F5503629C7AA3C41A33A3EC44431554107C5A0F0C6AA3C41A6EE2DC84431554180E893B9C6AA3C41FE384CCD44315541CBA97484C6AA3C4143B78FD344315541346EA451C6AA3C419FEDECDA44315541B75F8021C6AA3C41A25B56E344315541B7C160F4C5AA3C411195BCEC44315541424F98CAC5AA3C41525E0EF744315541BCA373A4C5AA3C41C4CB3802453155411CAE3882C5AA3C41BE64270E4531554196302664C5AA3C41C548C41A45315541004E734AC5AA3C41E057F8274531554155244F35C5AA3C41FB5CAB35453155414D76E024C5AA3C41173AC44345315541B9644519C5AA3C41A516295245315541FF369312C5AA3C41A18EBF6045315541A933D610C5AA3C412DE36C6F45315541ED8A1114C5AA3C41662B167E45315541CC4F3F1CC5AA3C41E785A08C4531554150835029C5AA3C41EF49F19A4531554190302D3BC5AA3C417838EEA8453155417797B451C5AA3C41FDAB7DB6453155412E6ABD6CC5AA3C41DBC786C3453155419917168CC5AA3C41AAA5F1CF45315541F12685AFC5AA3C412E81A7DB453155411EA1C9D6C5AA3C41FAE192E64531554185879B01C6AA3C41E9C29FF0453155410D58AC2FC6AA3C41C5B6BBF94531554152D90B61C6AA3C411D57840246315541D12D4B95C6AA3C413602310A463155417E8A04CCC6AA3C4143C4B210463155418050CD04C7AA3C41D5EFFC1546315541B8DD363FC7AA3C419636051A46315541D663CF7AC7AA3C4144BDC31C463155417EC622B7C7AA3C413B2B331E46315541EE7CBBF3C7AA3C418EB4501E46315541A9772330C8AA3C41B11F1C1D46315541D405E56BC8AA3C41DAC5971A463155410ABB8BA6C8AA3C416F8EC816463155410A52A5DFC8AA3C4180E5B511463155412A8BC216C9AA3C4138AD690B46315541F404784BC9AA3C41B52AF003463155412D0E5F7DC9AA3C4113EE57FB45315541D46C16ACC9AA3C411BB6B1F1453155415F1C43D7C9AA3C41834F10E745315541C0FE90FEC9AA3C417C7088DB453155414B80B321CAAA3C412B9030CF45315541B02C6640CAAA3C4101BB20C245315541E2346D5ACAAA3C41D56372B4453155412CE3956FCAAA3C41553240A64531554103FEB67FCAAA3C4107CFA59745315541E718B18ACAAA3C417FADBF8845315541C3D06E90CAAA3C41E0D4AA79453155410EF6E490CAAA3C4144A7846A453155419AA2128CCAAA3C4195A86A5B453155413E3B0182CAAA3C410B457A4C45315541935DC472CAAA3C41B397D03D45315541D5B9795ECAAA3C41F3318A2F45315541B7D84845CAAA3C41B5E3C22145315541ACCE6227CAAA3C41388595144531554123DC0105CAAA3C41F4C21B084531554118FC68DEC9AA3C4140EB6DFC44315541E561E3B3C9AA3C415DBFA2F1443155419DE5C385C9AA3C41C546CFE74431554184646454C9AA3C416DA606DF44315541DA0F2520C9AA3C4154FB59D7443155412CB36BE9C8AA3C414739D8D044315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1073, 10073, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000011000000C8F8B8D4B4AA3C4170B3A42EF0305541848AA39BBBAA3C410E451D5DF0305541DAB38734BCAA3C41EF395EF8EE30554106F5C5DABDAA3C41AE9BAD03EF30554169FA806FBEAA3C4175E4A3A8ED305541D00D66A2BDAA3C41FA7425A3ED305541A6D75FD7BDAA3C41B3488927ED3055417ECA5604BAAA3C410FE64F0DED3055416C9B223ABAAA3C413DA9C98FEC305541D648A256B8AA3C414F39D682EC30554149DB0FDEB8AA3C41588ED646EB3055418CDD07EDB1AA3C41F7323D17EB30554172541049B1AA3C41711DD495EC3055410DB8E16DABAA3C416302AC6DEC305541866DC6EEAAAA3C418E054196ED3055419C826696B5AA3C41FEBC50DFED305541C8F8B8D4B4AA3C4170B3A42EF0305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1074, 10074, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000C0000003D09B615CFAA3C4179349387ED305541BF6A3BEAC6AA3C41118D0869ED30554147201E81C6AA3C4152B2EB2AEF3055413969A5C6CDAA3C4108B81A46EF305541DAA239F7CDAA3C4147FB2F76EE305541E31AFDC8CEAA3C41D3254079EE305541E4E51BBED0AA3C417D853183EE30554129D06524D0AA3C41AE4D6267F0305541A51AB0A0DEAA3C412B10F6B0F0305541438BCD99DFAA3C413DBA3FA0ED305541E5746428CFAA3C414798BA4CED3055413D09B615CFAA3C4179349387ED305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1075, 10075, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000069892AEAAAAA3C41C188E690FD305541DCBD2E32BFAA3C41A4868BBFFC305541E4D479DCBDAA3C41BD50E6ADFA30554171A07594A9AA3C41DA52417FFB30554169892AEAAAAA3C41C188E690FD305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1076, 10076, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000D1A3770299AA3C41223BAC8D12315541D1A3770299AA3C416C06D678063155419A744E2C9DAA3C416C06D678063155419A744E2C9DAA3C41FC06288412315541D1A3770299AA3C41223BAC8D12315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1079, 10079, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000A74CACD7B0AA3C41410DF5A37A315541352794C5B5AA3C41CDB41D0D7B315541D7ABAC9BB6AA3C4154518B6C7A31554149D1C4ADB1AA3C41C8A962037A315541A74CACD7B0AA3C41410DF5A37A315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1053, 10053, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C000000CB7D38CDBFAA3C41956B444845315541039F1700C0AA3C41EDA32E4D4531554190D67B34C0AA3C41FE4FF850453155416E11FF69C0AA3C418A0E9A5345315541120D39A0C0AA3C41EABE0E5545315541F022C0D6C0AA3C41F78A5355453155417F162A0DC1AA3C41A3EC675445315541BEE30C43C1AA3C4115AF4D5245315541EA8DFF77C1AA3C41D5EA084F4531554180EC9AABC1AA3C414DFE9F4A453155418F737ADDC1AA3C41E5801B4545315541D8F73C0DC2AA3C41AA32863E45315541666C853AC2AA3C4109E7EC36453155413B97FB64C2AA3C411C6C5E2E453155411FBE4C8CC2AA3C41976DEB2445315541B0462CB0C2AA3C417E54A61A45315541B34C54D0C2AA3C411023A30F453155417A2986ECC2AA3C410A4EF7034531554186EE8A04C3AA3C419E92B9F74431554111D03318C3AA3C4150CA01EB4431554154805A27C3AA3C416DBCE8DD44315541847AE131C3AA3C41B5ED87D044315541DC3BB437C3AA3C41CC6EF9C244315541106CC738C3AA3C4154A957B544315541EBF21835C3AA3C41712CBDA74431554187FCAF2CC3AA3C412179449A44315541B4EB9C1FC3AA3C4196CE078D443155419239F90DC3AA3C41E6F6208044315541F143E7F7C2AA3C412D15A97344315541DA0A92DDC2AA3C411074B8674431554157DC2CBFC2AA3C41F756665C44315541A3F0F29CC2AA3C4142CCC85144315541BAF62677C2AA3C418982F447443155412992124EC2AA3C4165A0FC3E443155419ECC0522C2AA3C41E49EF23644315541887856F3C1AA3C41B227E62F44315541D58A5FC2C1AA3C416FF6E429443155419D69808FC1AA3C410CBEFA2444315541E5311C5BC1AA3C41FC11312144315541D3BEFB56C1AA3C41C4FAF1204431554154712523C1AA3C413A13E41D443155417F0173EEC0AA3C4154EEF61B44315541EEC648B9C0AA3C41F5362E1B4431554163FC0B84C0AA3C41636B8B1B44315541DC00224FC0AA3C411EDA0D1D44315541F994EF1AC0AA3C4156A3B21F44315541361CD8E7BFAA3C4158BE7423443155412EDF3CB6BFAA3C413E034D28443155418C527C86BFAA3C417738322E443155410463F158BFAA3C413E241935443155418AC8F22DBFAA3C4134A2F43C443155418B60D205BFAA3C414FBCB54544315541E892DCE0BEAA3C413EC74B4F44315541DABF57BFBEAA3C414B82A45944315541DEB983A1BEAA3C41F039AC6444315541194D9987BEAA3C419FED4D7044315541C6D1C971BEAA3C417C77737C443155419FCF3E60BEAA3C4199B6058944315541FCAD1953BEAA3C412ABBEC95443155416C74734ABEAA3C41DEF30FA344315541E19A5C46BEAA3C41CE5C56B044315541D2EADC46BEAA3C410CAFA6BD44315541CF6FF34BBEAA3C41DE90E7CA44315541D5799655BEAA3C41D3C5FFD74431554144AFB363BEAA3C41FD5ED6E44431554149303076BEAA3C415EEA52F144315541D8C9E88CBEAA3C4166A15DFD443155414C38B2A7BEAA3C414896DF08453155419B7A59C6BEAA3C41A4DFC21345315541A532A4E8BEAA3C4135C2F21D45315541F014510EBFAA3C4143D85B2745315541D1641837BFAA3C41B536EC2F45315541A07CAC62BFAA3C41098F933745315541E661BA90BFAA3C417F4E433E453155418F3DF7B7BFAA3C411D092C4545315541CB7D38CDBFAA3C41956B444845315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1054, 10054, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000049000000BC9756ABBAAA3C415EDC82AF44315541097FAFD5BAAA3C416188BFB4443155412A89B201BBAA3C411FE40AB9443155414EF6092FBBAA3C41BC915CBC443155419D6F5D5DBBAA3C41C419AEBE443155412BB3528CBBAA3C41E3F7FABF44315541D0438EBBBBAA3C417EA340C044315541251BB4EABBAA3C41E6947EBF443155418C5D6819BCAA3C412346B6BD44315541320C5047BCAA3C414530EBBA4431554163B71174BCAA3C4186C422B744315541DC2B569FBCAA3C419F6164B244315541401DC9C8BCAA3C41A745B9AC4431554101CA19F0BCAA3C41C97B2CA6443155411399FB14BDAA3C41F9C6CA9E44315541EBAE2637BDAA3C41E188A296443155413E795856BDAA3C4128A6C38D4431554130315472BDAA3C411E673F8444315541F451E38ABDAA3C416056287A44315541D501D69FBDAA3C41981C926F44315541CE7003B1BDAA3C41105A91644431554141274ABEBDAA3C41C77E3B59443155418B4790C7BDAA3C4168A0A64D44315541DEBFC3CCBDAA3C41854FE941443155414B6EDACDBDAA3C41666B1A3644315541EA33D2CABDAA3C4191F5502A44315541DCF8B0C3BDAA3C41F7E4A31E4431554165A184B8BDAA3C4143F929134431554169F262A9BDAA3C41778EF90744315541CC666996BDAA3C41597128FD43315541ECF6BC7FBDAA3C41FFB4CBF24331554177CF8965BDAA3C41CF89F7E84331554134FC0248BDAA3C410B16BFDF43315541D6036227BDAA3C419F5034D743315541F078E603BDAA3C410BDE67CF43315541CA7CD5DDBCAA3C4104F068C843315541D33979B5BCAA3C41DD2745C243315541DF9786A0BCAA3C41812A89BF4331554125315275BCAA3C41414A28BB43315541D13CC248BCAA3C41CFC2BBB7433155419AEA2C1BBCAA3C4155334AB5433155418C63EAECBBAA3C41CD55D8B343315541BD1F54BEBBAA3C416DF568B3433155412A39C48FBBAA3C41C0E9FCB343315541E8BD9461BBAA3C41851493B543315541CC001F34BBAA3C41386428B84331554153EEBA07BBAA3C41D6D9B7BB433155412461BEDCBAAA3C418E923AC0433155417D7C7CB3BAAA3C4111D5A7C543315541CE0B458CBAAA3C418122F5CB4331554107E86367BAAA3C419A4A16D343315541A4642045BAAA3C416E83FDDA433155419AC6BC25BAAA3C41F5839BE343315541D0C27509BAAA3C419BA1DFEC433155415C0A82F0B9AA3C419DF0B7F64331554126DF11DBB9AA3C419A66110144315541C9B74EC9B9AA3C4145FFD70B443155418EEE5ABBB9AA3C4161E3F61644315541A47F51B1B9AA3C41DB90582244315541A1D445ABB9AA3C418604E72D44315541659E43A9B9AA3C4190E48B3944315541D7BF4EABB9AA3C41BAAB304544315541F44463B1B9AA3C411DD5BE5044315541676B75BBB9AA3C415C07205C4431554100B971C9B9AA3C414D403E67443155411E213DDBB9AA3C4113FF0372443155415D39B5F0B9AA3C41156E5C7C44315541DE7BB009BAAA3C41288B3386443155412198FE25BAAA3C41104E768F4431554177CF6845BAAA3C41C3CD129844315541E45FB267BAAA3C417D62F89F443155410BF9988CBAAA3C417BC617A744315541BC9756ABBAAA3C415EDC82AF44315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1055, 10055, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004A0000009FD44DCBB5AA3C41BEA9443E4431554164A9DCF2B5AA3C41D3C80043443155413102F01DB6AA3C417196AD4844315541BCDFD34AB6AA3C419896644D4431554126CC3079B6AA3C41B4991C51443155411073ACA8B6AA3C41F760CE53443155414251EAD8B6AA3C4165AC745544315541B0698C09B7AA3C4148450C56443155415AFB333AB7AA3C414F04945544315541D83A826AB7AA3C41AED30C5444315541140B199AB7AA3C4196AD795144315541FBB39BC8B7AA3C414896DF4D44315541B397AFF5B7AA3C415192454944315541BFE2FC20B8AA3C41C498B443443155417B372F4AB8AA3C41F781373D443155418252F670B8AA3C4134F2DA35443155418DA60695B8AA3C414141AD2D4431554141F019B6B8AA3C414A5EBE244431554194BEEFD3B8AA3C41CAB01F1B44315541CFF04DEEB8AA3C41F5F6E3104431554147270105B9AA3C41B7201F0644315541E427DD17B9AA3C415F29E6FA433155415334BD26B9AA3C4145EE4EEF4331554133518431B9AA3C418A0470E343315541EC7E1D38B9AA3C41FE8C60D743315541A4E27B3AB9AA3C41E20638CB4331554193DE9A38B9AA3C4178220EBF43315541101C7E32B9AA3C418E92FAB243315541DC833128B9AA3C417FDE14A743315541A526C919B9AA3C415034749B433155419B166107B9AA3C41623B2F904331554167301DF1B8AA3C419FE85B854331554136D528D7B8AA3C4170530F7B433155415596B6B9B8AA3C41AE8C5D714331554189D2FF98B8AA3C41AB7759684331554181464475B8AA3C413EA5146043315541AD90C94EB8AA3C41A9319F5843315541FCAFEF40B8AA3C41249D3F564331554102228A16B8AA3C416BC6985043315541B3605EEAB7AA3C41FCB7DE4B433155412AE3BEBCB7AA3C41FB441A48433155413FD6008EB7AA3C41E475524543315541517E7B5EB7AA3C41C47B8C43433155415D93872EB7AA3C4111A6CB4243315541689C7EFEB6AA3C41D45C1143433155410E47BACEB6AA3C41E81D5D44433155413DC1939FB6AA3C41F87DAC464331554149126371B6AA3C41DD2CFB494331554128767E44B6AA3C41ECFD424E4331554110BD3919B6AA3C414BF37B53433155411CAFE5EFB5AA3C41F24C9C59433155419D74CFC8B5AA3C41C19A986043315541D60640A4B5AA3C4117D263684331554196A77B82B5AA3C41FF65EF70433155415F61C163B5AA3C4144622B7A433155414A924A48B5AA3C417C8906844331554182804A30B5AA3C4108756E8E43315541F0FAED1BB5AA3C416EB74F9943315541DE045B0BB5AA3C41C80096A4433155412B90B0FEB4AA3C4177442CB043315541E34106F6B4AA3C4191E0FCBB43315541D2476CF1B4AA3C4141C6F1C7433155411F39EBF0B4AA3C410AA3F4D343315541E00684F4B4AA3C412F0AEFDF4331554198F92FFCB4AA3C41E09ECAEB433155411DBFE007B5AA3C41C53D71F743315541C9838017B5AA3C418426CD02443155413D1CF22AB5AA3C411624C90D44315541923B1142B5AA3C41A3B4501844315541F7B6B25CB5AA3C41A32F50224431554164D6A47AB5AA3C41AEEAB42B44315541B4B1AF9BB5AA3C412F5C6D3444315541589895BFB5AA3C414F3C693C443155419FD44DCBB5AA3C41BEA9443E44315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1056, 10056, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000015000000EB666F38E8AA3C4142A1D61F57315541EDFD3E54EDAA3C41132F4B3A50315541B06BFFE0DDAA3C41AB2A2E834F315541847913D5D8AA3C41334B465356315541E733C1ACDEAA3C41F1DA8498563155414B2C0073DCAA3C416BD8AF9959315541FD3F1C07D0AA3C419B4178065931554139FA0CFCD2AA3C418FAC9908553155414C4B72F8D3AA3C419F8AA15C503155417A2B9EB4CFAA3C413CDA3A4E503155411ED576B8CEAA3C41644C0DF9543155412FC48758CBAA3C4192491BB05931554117936954DDAA3C4192FF0D7E5A315541601DC7DCDDAA3C4189C087BF59315541BDAA5069E2AA3C4142CB9FF359315541A9522FFAE2AA3C4147C4372959315541D071C112E2AA3C41A87CDD1E5931554138096BBBE2AA3C413071373358315541CBCBED02E2AA3C41A9B5F62A58315541977F80EDE2AA3C419D363AE356315541EB666F38E8AA3C4142A1D61F57315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1057, 10057, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000070000006F765261D7AA3C41052D8911673155414ED1B25BD7AA3C418E019D5367315541FBCCF60EDBAA3C4149E6A658673155413432654FDBAA3C41A5BF956364315541D97CD81DD2AA3C4149EA105764315541C2BC09E3D1AA3C41593C0E0A673155416F765261D7AA3C41052D891167315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1058, 10058, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000003F0000005CEE27DAC6AA3C41BAC6212E6B3155410E56B5C8C6AA3C411E7F10256B315541807C2AB4C6AA3C414A5F691C6B3155418C67AF9CC6AA3C410C433D146B315541DDD67182C6AA3C4177169C0C6B3155415BEAA465C6AA3C41F1B694056B315541ACBE8046C6AA3C4141D634FF6A3155412B004225C6AA3C41B8DF88F96A31554143742902C6AA3C4151E09BF46A3155412B82C5F4C5AA3C41AABF18F36A315541E8142678C4AA3C41F65F0AF26A315541ED0D2158C4AA3C41CD2AE4F56A315541C68E8435C4AA3C4130E106FB6A315541CF1DD414C4AA3C416DA6E5006B315541786B4FF6C3AA3C41990A75076B31554163ED31DAC3AA3C41BA45A80E6B315541766AB2C0C3AA3C41A55071166B3155417E9002AAC3AA3C415000C11E6B315541E0924E96C3AA3C41402387276B315541DDD4BC85C3AA3C4152A1B2306B315541EA9E6D78C3AA3C41DB9C313A6B31554119DF7A6EC3AA3C418F95F1436B31554148F7F767C3AA3C41788CDF4D6B3155415C97F164C3AA3C410929E8576B315541F2A36D65C3AA3C41D4DEF7616B3155411C2B6B69C3AA3C418713FB6B6B3155411367E270C3AA3C413A45DE756B315541CCCBC47BC3AA3C415A308E7F6B3155418324FD89C3AA3C412FF5F7886B315541D1BC6F9BC3AA3C41D53C09926B3155415F96FAAFC3AA3C419F5CB09A6B31554128AB75C7C3AA3C41DD78DCA26B315541D73BB3E1C3AA3C4172A57DAA6B315541842880FEC3AA3C41F80485B16B3155413354A41DC4AA3C41B3E5E4B76B315541B412E33EC4AA3C4131DC90BD6B3155419C9EFB61C4AA3C4198DB7DC26B315541E896A986C4AA3C41194BA2C66B3155410A85A5ACC4AA3C41A118F6C96B315541D967A5D3C4AA3C4195C872CC6B3155417D435DFBC4AA3C417E8213CE6B315541C3B57F23C5AA3C41791AD5CE6B315541EE8CBE4BC5AA3C415E17B6CE6B315541BA5FCB73C5AA3C4189B5B6CD6B3155418826589BC5AA3C418CE6D8CB6B315541DBD217C2C5AA3C41684D20C96B3155415AE6BEE7C5AA3C412F3792C56B315541C704040CC6AA3C411C9135C16B3155411984A02EC6AA3C41B9DA12BC6B31554110F5504FC6AA3C41861534B66B31554167A7D56DC6AA3C415BB1A4AF6B3155417C25F389C6AA3C412F7671A86B31554169A872A3C6AA3C41446BA8A06B315541618222BAC6AA3C41A3BB58986B315541FF7FD6CDC6AA3C41B498928F6B315541023E68DEC6AA3C41A11A67866B315541F573B7EBC6AA3C410E1FE87C6B315541C633AAF5C6AA3C41652628736B315541971B2DFCC6AA3C41712F3A696B315541837B33FFC6AA3C41E092315F6B315541ED6EB7FEC6AA3C4115DD21556B315541F2D1C1FDC6AA3C415BAABB516B3155415CEE27DAC6AA3C41BAC6212E6B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1059, 10059, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000013000000E77B1D96B2AA3C41AD6256E56A315541B39EB5DCD7AA3C413AEED0FF6A315541A46B470AD8AA3C41D0543C6167315541235A3C23D3AA3C41A1C1605D673155418E5A1FFFD2AA3C41224BAE3B6A3155411D17FEA6BBAA3C41D8C34F296A315541B38982AFBBAA3C41C5E61F7C693155415DD86084B8AA3C41FCA1A17969315541819564A2B8AA3C413F9C55176731554102A2FD8EC0AA3C4152EE002067315541D3126D90C0AA3C4152171F76673155411B9DD255D0AA3C41B173EA7167315541EB62264CD0AA3C41DCD58C2D6531554177C4F882C1AA3C4108377E31653155419B3B3C94C1AA3C419F7403356431554140321D22B8AA3C415FFDAD2A64315541FBA6B81BB8AA3C41AF5F2C8864315541CF8570E6B2AA3C41323C138464315541E77B1D96B2AA3C41AD6256E56A315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1060, 10060, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000B00000098990440AAAA3C41CFA65F8A72315541F3FF4F0BB7AA3C41126B2F126D3155416B4A70C2ADAA3C417865B0B66B315541070508F0A7AA3C417392D6336E3155417143846E99AA3C414B3AED146C3155413254284493AA3C4188D9ACB76E315541665A0FE8A2AA3C4125820A01713155417D51CCA49DAA3C4183D8FE40733155417A858937AFAA3C4189991ED175315541187D81A9B3AA3C415250A3EA7331554198990440AAAA3C41CFA65F8A72315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1061, 10061, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000700000003D1B41EC8AA3C41F330DF347031554147F0B7BCC2AA3C419D8EF8BE723155412E46136FCAAA3C41EF4700C473315541E2F75F2ED7AA3C41B9E775C06D31554196B886ACCEAA3C416631F19F6C3155419EE7364FC7AA3C41F23362197031554103D1B41EC8AA3C41F330DF3470315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1062, 10062, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000001A00000070F7E6DEBDAA3C410F91E4F41E3155411B5FDE0BC0AA3C411E48C30C1F31554185965442C0AA3C41D0E256BD1E315541732D9CABC6AA3C410D7BCE6315315541EB4DF3C2B6AA3C410D9643B514315541705B7CFCB2AA3C416D09B1361A3155415743A0539FAA3C41E960FF5E193155412625355A8EAA3C41F8EC10203231554195CD4502A6AA3C41049D9C23333155415961E19F9FAA3C4158BE19733C315541A4000F62B4AA3C41C4DED9563D3155412FE5D799B7AA3C41EB947FA5383155416678FDE8B9AA3C41D04DD5BE38315541652DECA4BCAA3C416F9BABD634315541F49A47E6BAAA3C411FFD27C734315541AA65E76EC0AA3C41F07ADF1C2D31554192FBA902D0AA3C41C6E7C6C72D31554172AF8248CFAA3C41953840D72E315541141946C2E2AA3C41D12AEDAC2F3155414FF344D0E3AA3C4139D72E232E31554106E7DF26DDAA3C41273918DA2D315541C3A23B26E1AA3C414A70B20528315541383701AAC4AA3C411B472CCD26315541C5F43147C3AA3C4149869AD228315541A73EF373B7AA3C419652DD502831554170F7E6DEBDAA3C410F91E4F41E315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1063, 10063, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000A5AFCEB66FAA3C41AC40FA76F6305541DD42509576AA3C4108A32893F6305541D59EC3F676AA3C418BEF1917F5305541950B421870AA3C412F8DEBFAF4305541A5AFCEB66FAA3C41AC40FA76F6305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1064, 10064, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000F0000002F58AA2278AA3C41A966EC1EF83055410262228D77AA3C4190AAC128F93055412CC5037675AA3C410D97F115F930554180E6710875AA3C417E06BCD8F9305541A433C00176AA3C4134C77FE1F93055412D4616F374AA3C4123DFADC2FB3055410ECDA61A77AA3C41E1F311D6FB305541EC1E75EA76AA3C41399BBF2BFC305541B0C421217CAA3C410DADAB5AFC305541632EDA527CAA3C41EC624702FC3055410602DC407EAA3C415D73A513FC305541ABDAB87A7FAA3C41A50EABE5F93055416D681AAA7CAA3C41A17C55CCF93055418F967A807DAA3C41DBB8384FF83055412F58AA2278AA3C41A966EC1EF8305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1065, 10065, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000070000001D11876E98AA3C41F9C79396F330554102E055179BAA3C4133A6629DF33055410DCCD7259BAA3C41EBA2B642F3305541025873BC9BAA3C411E313844F3305541E2C16CD49BAA3C416C5B61AEF23055410767029598AA3C41FEEE10A6F23055411D11876E98AA3C41F9C79396F3305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1068, 10068, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000026CD2FC5A6AA3C4135F07BDCE8305541C1BF4497A1AA3C418EB3F627EA30554178CA00BCA5AA3C413CB62531EB305541DDD7EBE9AAAA3C41E3F2AAE5E930554126CD2FC5A6AA3C4135F07BDCE8305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1080, 10080, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000461CCACAC4AA3C416AFA0D907B315541E2312F3BC7AA3C41617DAF497C315541DDFE6AE8C9AA3C41A776A1B97B31554142E90578C7AA3C41B0F3FFFF7A315541461CCACAC4AA3C416AFA0D907B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1081, 10081, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000091B17D7B67AA3C4155905697E6305541B26160B96AAA3C41308AB9C1E6305541E3FB46486BAA3C41A9FCDB12E630554113EC600968AA3C416CC36BE8E530554191B17D7B67AA3C4155905697E6305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1082, 10082, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000B0000008954EFE300AB3C41EC0C09A64431554197F4332D00AB3C4199BB37CD45315541799387F004AB3C41C2DF64FC453155419139FA9A04AB3C41C7FC97864631554101DF42C709AB3C413DB4D4B94631554159FEEAE108AB3C41B3F94E2C483155410597B2C40EAB3C41EF449B66483155415ECE631D0FAB3C41B29E55D7473155411B808C8413AB3C4120DCF10248315541F4E67B1D15AB3C410F715B6E453155418954EFE300AB3C41EC0C09A644315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1083, 10083, 5, 1001, 1, 104, 1002, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000001200000094FD129A0BAB3C411B303EE7443155414B7089E90EAB3C414E8BB1C73F3155415DE4A7FD11AB3C41410BD7D23A315541B57C455627AB3C41318DFAA63B315541F56663D22AAB3C4161E1B00A3631554151BCBDB303AB3C415D06EB8534315541F924940104AB3C412FF4990834315541E79E8DD1FAAA3C41CC744BAD333155416C48462DFAAA3C413095C7B5343155417DFEC635F7AA3C41B0AD4B983431554124E40EECF4AA3C4115434A47383155417C7B5FB9F8AA3C411718136D383155416BAFA6E1F5AA3C4181AFB0003D315541A5A5DB0CF2AA3C4145899DDA3C315541599EB1F9F0AA3C4122989F953E315541F1D7EB85F9AA3C41C7B720F33E3155415B23DA3BF6AA3C41E181540A4431554194FD129A0BAB3C411B303EE744315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1801, 18001, 5, 1001, 1, 104, 1004, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000009000000A15070860CAB3C41AE0CF9E72C31554165D1602912AB3C41128213362C3155412584473E13AB3C413B2073C22C3155419A8A05FE1AAB3C415DF5E0CD2B3155416C7F0A3E16AB3C417DB17165293155412C1FB5CC0EAB3C418F2659502A31554170B5F6C30FAB3C41BD82B1CD2A3155417D8E9DD209AB3C4126C341892B315541A15070860CAB3C41AE0CF9E72C315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1802, 18002, 5, 1001, 1, 104, 1004, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000008E5134C6FEAA3C41A4BE1CC5233155413B932E5303AB3C419C0CC45524315541A3EEF59410AB3C41E06A83A91D31554102ADFB070CAB3C41E61CDC181D3155418E5134C6FEAA3C41A4BE1CC523315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1803, 18003, 5, 1001, 1, 104, 1004, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000002679B8AF03AB3C41E822D558243155411D387DE707AB3C418DADE2DE243155417571818B10AB3C418F434D85203155417AB2BC530CAB3C41E8B83FFF1F3155412679B8AF03AB3C41E822D55824315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1804, 18004, 5, 1001, 1, 104, 1004, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000E98381D8F8AA3C41D5454CAF233155414D22583BFCAA3C41502FCC1E24315541FA7EB05905AB3C41A0968BB01F31554195E0D9F601AB3C4125AD0B411F315541E98381D8F8AA3C41D5454CAF23315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1805, 18005, 5, 1001, 1, 104, 1004, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000070C9E46B0DAB3C4137D4856322315541D0EAC83211AB3C41C79978D722315541F0A829AF13AB3C4131B0CC8B213155418F8745E80FAB3C41A1EAD9172131554170C9E46B0DAB3C4137D4856322315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1806, 18006, 5, 1001, 1, 104, 1004, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000003E34AD6B01AB3C41CB4ED2131F3155419411572906AB3C419A016DAD1F315541C6EDCAA00BAB3C418C8E56FA1C3155416C1021E306AB3C41BDDBBB601C3155413E34AD6B01AB3C41CB4ED2131F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000000, 1000000, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000070000009301B41E0DA83C415FB6485229315541A6C4768C15A83C415FB64852293155413EC3F07C15A83C41E26941042631554127E7D11922A83C4189E95F00263155418EE8572922A83C4154BD6217243155415DFD21F00CA83C4107BE251F243155419301B41E0DA83C415FB6485229315541', '2019-06-11 15:15:17.497342');
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000006, 1000002, 5, 1001, 1, 101, 1001, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000006CBF296F71A93C41DB6FCA85523155419D2603DC7AA93C411B2C2893343155410C3FF0E3B1A93C415FCEB27F3431554192106F27AFA93C411F125572523155416CBF296F71A93C41DB6FCA8552315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000036, 1000030, 5, 1001, 1, 101, 1001, 10001, '2020-01-28 15:29:32', NULL, '01030000209108000001000000050000008AA13A5BACA93C414227A7D5AF3155418AA13A5BACA93C416B9C8E5CAC315541CF072FE2C0A93C41E1C0D369AC315541F7751AADC0A93C412E7031F0AF3155418AA13A5BACA93C414227A7D5AF315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000037, 1000031, 5, 1001, 1, 101, 1001, 10001, '2020-01-31 08:48:16.836979', NULL, '01030000209108000001000000050000002F02D344AFA93C4180AEA44DA8315541C1D7B600B0A93C41736D2300A5315541055058C897A93C41B17159EDA4315541F871083297A93C41A0B03F44A83155412F02D344AFA93C4180AEA44DA8315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000041, 1000032, 5, 1001, 1, 107, 1001, 10001, '2020-01-31 08:48:16', NULL, '01030000209108000001000000050000005810FD2AA6A93C4180851028A03155415810FD2AA6A93C4164663F449C315541354DAAF98EA93C41266209579C3155412F5E82AE8EA93C414281DA3AA03155415810FD2AA6A93C4180851028A0315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1004, 10004, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1006, 10006, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000001, 1000001, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000772E37A2D0A83C41C57C6FAF2231554142E46BBAD7A83C4110DE7BAD22315541F7D1B2B2D7A83C410DB2F0D620315541B5ACCF8ED0A83C416632D2DA20315541772E37A2D0A83C41C57C6FAF22315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000002, 10001, 5, 1001, 1, 102, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1001, 10001, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000003, 10005, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000003897AF1E28A93C415A5857A426315541C8139BAF4EA93C415A5857A4263155416519B3ED4EA93C4170844C7C1D3155413897AF1E28A93C413F87589B1D3155413897AF1E28A93C415A5857A426315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1005, 10005, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000004, 10003, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000080000001489153E9DA83C416624D80323315541AE878F2E9DA83C4127CEAAD124315541A1416B37A5A83C41DACE6DD92431554170447756A5A83C414787BBC1213155416F6303BDB1A83C41FB877EC9213155413D660FDCB1A83C41366B438B20315541628852369DA83C41AF2A7185203155411489153E9DA83C416624D80323315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1003, 10003, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000005, 10002, 5, 1001, 1, 102, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000FB0DA8AB6BA83C4167030B97213155413A8A8B2B87A83C4167030B9721315541558CD44287A83C41D248AE4A1C315541C609167D6BA83C41FF089F4C1C315541FB0DA8AB6BA83C4167030B9721315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1002, 10002, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000007, 1000003, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000137AA177FBA83C4179BBEA34533155418CA82234FEA83C4121DEAE14443155418B106F574CA93C41ECC44EDA43315541E5466E844AA93C41E3EDAAA953315541137AA177FBA83C4179BBEA3453315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1032, 10032, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000020B4A9AF6A83C41B6522B9354315541994B20BBF8A83C4128E9F8A24231554158D2F189B5A93C411960CEF042315541A37FC604B4A93C415CA995D053315541020B4A9AF6A83C41B6522B9354315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1033, 10033, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000B9522B1575A93C417396CD1D4131554158D2F189B5A93C41A7AF2D5841315541F012C8AAB7A93C415E5B1CEA313155416EA5569A76A93C41F4285C7531315541B9522B1575A93C417396CD1D41315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000008, 1000004, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000154E28CB52A83C41AD05C91D6F3155416AC8C2336EA83C417C08D53C6F31554141D90AEE6EA83C415422FC4A65315541886488C353A83C41B61CE40C65315541154E28CB52A83C41AD05C91D6F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000009, 1000005, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000003A64B7ABF9A83C41780137EF6E315541A7A8B2CF1DA93C41DF02BDFE6E315541CF976A151DA93C41643E7481663155411075FF65FAA83C412F3AE252663155413A64B7ABF9A83C41780137EF6E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000010, 1000006, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000500000029511EC9EDA83C4115074F2D6F3155417578C67BEFA83C41C8385C436631554125B5F3EBD0A83C41262CA6B765315541D98D4B39CFA83C41770137EF6E31554129511EC9EDA83C4115074F2D6F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000011, 1000007, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000A7548091ABA83C414504430E6F3155416680CA94C3A83C41AD05C91D6F31554115A25A09C5A83C4189268E7965315541D04338D7AAA83C415322FC4A65315541A7548091ABA83C414504430E6F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000012, 1000008, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000E4832C5D81A83C414604430E6F315541100F0F809DA83C41DF02BDFE6E315541D703DF039DA83C41C02A20A8653155410C73E4A280A83C4159299A9865315541E4832C5D81A83C414604430E6F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000013, 1000009, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000ED82ECD428A83C411000B1DF6E315541F8D5DE8A42A83C41AD05C91D6F315541A7F76EFF43A83C41501B5EFD643155419CA47C492AA83C41E819D8ED64315541ED82ECD428A83C411000B1DF6E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1031, 10031, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000004618243924A83C4196D4B8C26F315541D08E8BC127A93C41D0DFE83E7031554145A5EBB928A93C41AEB0D72563315541802354B524A83C4173A5A7A9623155414618243924A83C4196D4B8C26F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000014, 1000010, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000001DA11A816CA83C41AF1787C5593155413FD02B9A79A83C41481601B65931554179DB5B167AA83C4134ACF3104A315541BAA632BF6CA83C41CDAA6D014A3155411DA11A816CA83C41AF1787C559315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000015, 1000011, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000007000000C48C0086A9A83C41AB7223D2593155410DEB9230C8A83C4116190DD55931554147F6C2ACC8A83C4165A0089E543155416A37926DC0A83C41FE9E828E543155418D3F5012C0A83C410B784BAC5731554150FC637BA9A83C4185BD18A557315541C48C0086A9A83C41AB7223D259315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000016, 1000012, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000007000000A3B112627DA83C41579FC3C854315541D13DEF7B7DA83C416E24CABC5931554158B551CFA6A83C41946081F15931554132DBD4F4A6A83C41FB5E307B573155411B5D5A5589A83C4174B1EE6157315541F7FDED8A89A83C41323CACD354315541A3B112627DA83C41579FC3C854315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000017, 1000013, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000007FE8F1597CA83C411E55CB7254315541C8F4BCDB89A83C4116D7B75F5431554189838B3D8BA83C41A04A82D6493155413334F8A47CA83C418B38E0F5493155417FE8F1597CA83C411E55CB7254315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000018, 1000014, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000009ACC05AD8FA83C41E8D7F8584E31554186AFDBADD0A83C417515369D4E315541E9A9C36FD0A83C419BAD79204A31554175F288D28FA83C411D3817D6493155419ACC05AD8FA83C41E8D7F8584E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1030, 10030, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000C0000007B4A2B50CCA83C4149685AF554315541B5555BCCCCA83C41A354061C5431554199DD118CBCA83C416D5074ED533155415FD2E10FBCA83C412D8E7C98563155416D64ED108BA83C41C185583B56315541F396C53F8DA83C4128E093134F315541A9E7CB1AD3A83C418ADA7BD54E315541F50E74CDD4A83C41A86483BD493155412358E25969A83C413C5C5F6049315541E94CB2DD68A83C415DDB46EE59315541413FFBD3CBA83C41FAE05E2C5A3155417B4A2B50CCA83C4149685AF554315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000019, 1000015, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000004A1160A8A8A83C41E93475E944315541E2AD457CBAA83C413734B2E144315541BABE8D36BBA83C419FBDF6C13F315541F024B481A9A83C41ECBC33BA3F3155414A1160A8A8A83C41E93475E944315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000020, 1000016, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000888EA1E28CA83C41332D149444315541F02D93D59EA83C41B430E3BA44315541BF309FF49EA83C41B6B8A18B3F315541919CDD7D8DA83C4103B8DE833F315541888EA1E28CA83C41332D149444315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000021, 1000017, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002122A862A9A83C412CA796C93E31554158C4A574BBA83C4193A81CD93E315541CDDA056DBCA83C41F82AC36B393155412122A862A9A83C41F92AC36B393155412122A862A9A83C412CA796C93E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000022, 1000018, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000004F8371668CA83C418EA17E8B3E315541C73EDB8F9FA83C418FA17E8B3E315541024A0B0CA0A83C4191293D5C39315541898EA1E28CA83C41F82AC36B393155414F8371668CA83C418EA17E8B3E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1029, 10029, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000009753A5568AA83C41E5F7710A45315541A3EB4D27BDA83C4182FD8948453155412010EABABEA83C419EE046F938315541D25ED5D28AA83C41EBDF83F1383155419753A5568AA83C41E5F7710A45315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000023, 1000019, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000B72B42AD93A83C41DBA99AD733315541652534ACB3A83C41D1736DD2333155411C122BC1B3A83C41D307295F32315541852E4ECC93A83C412D880A6332315541B72B42AD93A83C41DBA99AD733315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000024, 1000020, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000003FACAF4AA4A83C41C17FE60532315541EB1437E0B3A83C41B4FE41FA313155413C1B1226B4A83C417B3771E62E315541A2A6970CA4A83C417B3771E62E3155413FACAF4AA4A83C41C17FE60532315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000025, 1000021, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002334660A94A83C41B3FE41FA31315541EB4E6042A0A83C413A3F140032315541844DDA32A0A83C41E675FAD42E31554107321DF393A83C41B9B509D32E3155412334660A94A83C41B3FE41FA31315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1028, 10028, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000E01AFAF292A83C415870661F34315541CB33BB35B5A83C41F16EE00F34315541CF3A5983B5A83C41CB73B1BD2E3155414215E2B492A83C411773EEB52E315541E01AFAF292A83C415870661F34315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000026, 1000022, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000002122A862A9A83C41379F25522831554189232E72A9A83C4123C589B92C31554174A76225AFA83C4123C589B92C3155410CA6DC15AFA83C41635F1654283155412122A862A9A83C41379F255228315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000027, 1000023, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000273225049FA83C415DDEB30C2B315541B7F1184BA7A83C415EDEB30C2B3155416BF2DB52A7A83C410ADF345028315541DB32E80B9FA83C4109DF345028315541273225049FA83C415DDEB30C2B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1027, 10027, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000007000000E81F573A9EA83C416A5F58182B3155414B1160A8A8A83C41971F491A2B31554197109DA0A8A83C41D08849E22C3155411ABBB6FEAFA83C41FD483AE42C31554150BF482DB0A83C41CE9D9F42283155419C201A429EA83C41A1DDAE4028315541E81F573A9EA83C416A5F58182B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000028, 1000024, 5, 1001, 1, 102, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000D0000005A224B267DA83C41687E9882F63055419B4A3361D7A83C411C7F5B8AF630554138504B9FD7A83C4116D17205EF3055414167668ECDA83C417ED2F814EF3055414167668ECDA83C418608A06AF1305541543CE7A3C0A83C412C88BE66F1305541BC3D6DB3C0A83C41342A30DFF23055418D64F52196A83C41B22661B8F230554149DFBEE795A83C41565D05C9EC305541068BD2BB8CA83C416DBDFDC9EC3055419F894CAC8CA83C41E1CCE0D6EE305541EE1927C97CA83C41E1CCE0D6EE3055415A224B267DA83C41687E9882F6305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1021, 10021, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000006000000BEBC5B497EA83C41D6A394F7F330554124BEE1587EA83C4141DBC15CF63055410F0C77C78CA83C41E75AE058F6305541DA07E5988CA83C41E532F115EF30554121B7430B7EA83C41D8B14C0AEF305541BEBC5B497EA83C41D6A394F7F3305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1022, 10022, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000001E28EFFD8DA83C418EDAFE54F630554146C3FE36B1A83C41D892055FF630554159303D24B1A83C4154F67632F33055415025E3DE8DA83C419791C62DF33055411E28EFFD8DA83C418EDAFE54F6305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1023, 10023, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000DB6ABBE6B2A83C41643F8D44F63055417FB0E545D6A83C41F5DB8464F63055414CB3F164D6A83C417AB7E8D0F4305541F99BCED0B2A83C41E0C042ACF4305541DB6ABBE6B2A83C41643F8D44F6305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1024, 10024, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000B62669EE8DA83C41E18965D8F23055417AD0BF4495A83C41880984D4F230554144CC2D1695A83C41D8824302ED3055418122D7BF8DA83C41D7824302ED305541B62669EE8DA83C41E18965D8F2305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1025, 10025, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000081FB5E73CEA83C41692FA677F43055417EB0E545D6A83C4110AFC473F43055411AB6FD83D6A83C413639CC5BEF30554182FB5E73CEA83C413639CC5BEF30554181FB5E73CEA83C41692FA677F4305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1026, 10026, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000008000000536B3295C1A83C41A492144AF43055413376221BCDA83C41FAEBFF46F43055419FD53CD0CCA83C416B6C6792F130554179D3EBA7C1A83C41C4EC4896F1305541AC28168FC1A83C41131EB12FF3305541F9D4E1FAB2A83C41FB063C30F3305541E175A8FCB2A83C4129F4A242F4305541536B3295C1A83C41A492144AF4305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000029, 1000025, 5, 1001, 1, 103, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000007C515C3F8AA83C417C19F035FD3055415B911A60CFA83C416117A71EFD305541C7993EBDCFA83C418BB688EFF8305541DF4B44018AA83C4170B43FD8F83055417C515C3F8AA83C417C19F035FD305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1016, 10016, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1017, 10017, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1018, 10018, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1019, 10019, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1020, 10020, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000030, 1000026, 5, 1001, 1, 102, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000500000037D65B0B9BA83C41B3806D3307315541B38F842EB9A83C414D7FE7230731554187992E9BB9A83C41ECE45278003155416CDAED399BA83C4139E48F700031554137D65B0B9BA83C41B3806D3307315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1012, 10012, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1013, 10013, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1014, 10014, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1015, 10015, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000031, 1000027, 5, 1001, 1, 102, 10001, '2019-05-30 14:50:00.066082', NULL, '010300002091080000010000000900000071EA6ADB90A83C415149C4560A3155410EF0821991A83C41FD0A01B512315541CE608337C2A83C41718D2BD0123155413E7045E2C2A83C412ECD74810A315541234F7064B6A83C41D34C937D0A31554187495826B6A83C416550E62C10315541B70196EC9CA83C41BFD0C73010315541230ABA499DA83C41064A875E0A31554171EA6ADB90A83C415149C4560A315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1009, 10009, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1010, 10010, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1011, 10011, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000032, 1000028, 5, 1001, 1, 102, 10001, '2019-05-30 14:50:00.066082', NULL, '0103000020910800000100000005000000901BBDFA92A83C413522A83D1931554180E266C2BCA83C418FA289411931554119E1E0B2BCA83C419A3884AD14315541901BBDFA92A83C4140B8A2A914315541901BBDFA92A83C413522A83D19315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1007, 10007, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1008, 10008, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', '2019-05-30 14:50:00.066082', '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1034, 10034, 5, 1001, 1, 101, 10001, '2018-01-01 09:00:00', NULL, '010300002091080000010000000500000059AE79D94CA83C41C482B9960B31554159AE79D94CA83C410747313805315541826067316BA83C410747313805315541826067316BA83C41B2940BA90B31554159AE79D94CA83C41C482B9960B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1035, 10035, 5, 1001, 1, 101, 10001, '2018-01-01 09:00:00', NULL, '0103000020910800000100000007000000E768BF4E11A83C41F74A09740F315541E768BF4E11A83C411D305C2606315541C659FE1839A83C411D305C2606315541C659FE1839A83C415EEBDCF0083155417DC631E61BA83C415EEBDCF0083155417DC631E61BA83C410939B7610F315541E768BF4E11A83C41F74A09740F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1036, 10036, 5, 1001, 1, 101, 10001, '2018-01-01 09:00:00', NULL, '010300002091080000010000000500000011F3E2044DA83C415D8BBEB516315541621AADA95BA83C415D8BBEB516315541621AADA95BA83C41F2BAF16D1231554111F3E2044DA83C41F2BAF16D1231554111F3E2044DA83C415D8BBEB516315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1037, 10037, 5, 1001, 1, 101, 10001, '2018-01-01 09:00:00', NULL, '0103000020910800000100000005000000975CAF9068A83C41BE5B019516315541F25E2B1C78A83C410E3E968616315541F25E2B1C78A83C41F34F5E3012315541975CAF9068A83C41F34F5E3012315541975CAF9068A83C41BE5B019516315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000033, 1000029, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:01.236765', NULL, '0103000020910800000100000005000000000000009FB33A4100000080BCB35441000000009FB33A4100000080AEB3544100000000D8B33A4100000080AEB3544100000000D8B33A4100000080BCB35441000000009FB33A4100000080BCB35441', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1038, 10038, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000000437733CA6AA3C41319198124D315541BE4A5FD0ABAA3C413E36B0E94B3155418E7CB9BA9AAA3C41FCC5CD74463155415EDA703D95AA3C41233A38A3473155410437733CA6AA3C41319198124D315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1069, 10069, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000007000000CF7C28986AAA3C41766A1687F330554109F3BFCC71AA3C419E013991F3305541A40CCDD878AA3C419B4A4375F4305541A28A79707DAA3C41B32D5F70F2305541855F031F75AA3C4155706A3AF13055417F4EE3836AAA3C410C775140F1305541CF7C28986AAA3C41766A1687F3305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1070, 10070, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000070000005CA3AD3A6BAA3C41F932AEF9F8305541CDC4379974AA3C418F6CB77FF93055419E4C57FE75AA3C413D6C4DF0F7305541741CAE3D6BAA3C41102E7A56F7305541ED71AF666AAA3C413495EE46F8305541A780CEC86BAA3C41CA99B85AF83055415CA3AD3A6BAA3C41F932AEF9F8305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1071, 10071, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000BF1112BDC4AA3C41748DBED6FC305541EA62EDB8CFAA3C41D364572DFD3055419E506A9BD0AA3C412537B461FB30554173FF8E9FC5AA3C41C65F1B0BFB305541BF1112BDC4AA3C41748DBED6FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1072, 10072, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000047326B8DBAAA3C412843B941F63055417F7F37E8BFAA3C41D883F64DF6305541A1847B29C0AA3C41D65F1A85F43055416937AFCEBAAA3C41261FDD78F430554147326B8DBAAA3C412843B941F6305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1077, 10077, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000013000000AB04D8DFC4AA3C41FDF3D3C511315541AB04D8DFC4AA3C410C2875CD0F315541406D89F8CAAA3C410C2875CD0F315541406D89F8CAAA3C4101952F0E0E315541122173FBC3AA3C4101952F0E0E315541122173FBC3AA3C410349DF140B315541A69C78D2CAAA3C410349DF140B315541A69C78D2CAAA3C41EB5B50D109315541D4D53A11D1AA3C41EB5B50D109315541D4D53A11D1AA3C412A7D631E0B315541368A761FD6AA3C412A7D631E0B315541368A761FD6AA3C412B57BBA109315541F764E6B1E4AA3C412B57BBA109315541F764E6B1E4AA3C41DC27AFC90B315541C83E7831DFAA3C41DC27AFC90B315541C83E7831DFAA3C41CEE0B9030D315541F764E6B1E4AA3C41CEE0B9030D315541F764E6B1E4AA3C41B18BCBB211315541AB04D8DFC4AA3C41FDF3D3C511315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1039, 10039, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C000000DDEBE631C3AA3C41ACA3AE3E563155410A4D1250C3AA3C410DBA6B4456315541E7722070C3AA3C4181F07A49563155411CE9D291C3AA3C41A86BD24D563155419208E8B4C3AA3C41DCB569515631554155771BD9C3AA3C4130D039545631554194AD26FEC3AA3C41863F3D5656315541117FC123C4AA3C41B5177057563155418AA7A249C4AA3C41ED02D05756315541D859806FC4AA3C4147465C5756315541DCCF1095C4AA3C4136C315565631554178D90ABAC4AA3C41EAF5FE5356315541FA6B26DEC4AA3C4161F01B51563155410E2E1D01C5AA3C416352724D563155419F00AB22C5AA3C41C33E0949563155413D848E42C5AA3C414C4DE943563155416E978960C5AA3C41097A1C3E563155412BD1617CC5AA3C41EC11AE375631554147F1E095C5AA3C41A19CAA3056315541CB4AD5ACC5AA3C4156C41F29563155419B2412C1C5AA3C41DF3A1C2156315541351170D2C5AA3C41529DAF1856315541053ACDE0C5AA3C417455EA0F5631554157A30DECC5AA3C41C379DD0656315541AF601BF4C5AA3C4133AC9AFD553155416BC1E6F8C5AA3C41D4F733F455315541496E66FAC5AA3C41B6ADBBEA55315541B27B97F8C5AA3C41234144E1553155416C6F7DF3C5AA3C41A123E0D7553155413D3A22EBC5AA3C413AA1A1CE55315541192496DFC5AA3C419ABC9AC55531554120ACEFD0C5AA3C41150CDDBC55315541A15D4BBFC5AA3C41719779B455315541C497CBAAC5AA3C4189B680AC55315541BA4A9893C5AA3C41B2F101A55531554145AADE79C5AA3C414EE30B9E553155411AD5D05DC5AA3C41471BAC9755315541ED73A53FC5AA3C41E604EF9155315541104E971FC5AA3C4172CEDF8C55315541D5100B14C5AA3C414EE3478B55315541496A1DF3C4AA3C413150068755315541B3DEDAD0C4AA3C4171627C8355315541524D83ADC4AA3C41FBB2B08055315541CA995889C4AA3C411978A87E5531554184319E64C4AA3C41A57B677D55315541AB8D983FC4AA3C411A14F07C55315541D8B38C1AC4AA3C410620437D553155410CB5BFF5C3AA3C41A204607E55315541592D76D1C3AA3C41C6AE44805531554131C3F3ADC3AA3C41DC96ED82553155416BAA7A8BC3AA3C4172C7558655315541F2274B6AC3AA3C4187E6768A55315541211AA34AC3AA3C413241498F55315541B285BD2CC3AA3C414ADAC39455315541AB27D210C3AA3C41D57ADC9A55315541D70C15F7C2AA3C4151C587A155315541D631B6DFC2AA3C41BA4AB9A8553155414E28E1CAC2AA3C41F1A163B0553155411BC7BCB8C2AA3C417A8078B855315541F4E06AA9C2AA3C4136D5E8C0553155415D05089DC2AA3C419CE4A4C9553155411F4CAB93C2AA3C41DC659CD2553155415529668DC2AA3C4171A1BEDB553155418D4D448AC2AA3C410990FAE455315541CB8F4B8AC2AA3C4187FA3EEE553155414FE27B8DC2AA3C41EF997AF7553155419053CF93C2AA3C41A4379C0056315541FF173A9DC2AA3C4198CD92095631554154A1AAA9C2AA3C41DBA54D12563155419BBE09B9C2AA3C41F979BC1A5631554151C73ACBC2AA3C412291CF225631554117D11BE0C2AA3C41A7DD772A5631554118EF85F7C2AA3C41C918A731563155415C7A4D11C3AA3C41A3DD4F38563155412763422DC3AA3C41F1C1653E56315541DDEBE631C3AA3C41ACA3AE3E56315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1040, 10040, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000CF801F64B0AA3C411FB2B148543155411BF2F078B9AA3C4164B00339533155411B23C001ADAA3C41F516498E4C315541CFB1EEECA3AA3C41B018F79D4D315541CF801F64B0AA3C411FB2B14854315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1041, 10041, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000900000004B783E7AAAA3C41E24B74F35B315541FFCA8C91C8AA3C41A9CB58E95C3155416F37779DB8AA3C41770127A15331554102BA71FDAFAA3C416D98578E543155410540CBB2B5AA3C41B3FD94E057315541EC5A10D7B6AA3C41841203C657315541AFC46ED7B7AA3C4178AAF05858315541C65434ABACAA3C416ADE6F085831554104B783E7AAAA3C41E24B74F35B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1042, 10042, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004B0000006B7284E5C6AA3C4150719CAC583155412862F00FC7AA3C41584D1DB258315541DE271E3CC7AA3C41842CACB6583155415BB0B769C7AA3C416D2D40BA5831554117246498C7AA3C416657D2BC58315541AD93C8C7C7AA3C4127A85DBE5831554131A988F7C7AA3C417D1DDFBE58315541605C4727C8AA3C4128BB55BE5831554179A7A756C8AA3C41D88CC2BC58315541F53C4D85C8AA3C4119A428BA58315541833ADDB2C8AA3C4137128DB65831554168DBFEDEC8AA3C41B9DEF6B15831554118245C09C9AA3C4147F96EAC58315541AF8AA231C9AA3C417A2800A65831554124978357C9AA3C41DFF4B69E58315541797CB57AC9AA3C416990A19658315541DAA8F39AC9AA3C41FEBACF8D583155414E4AFFB7C9AA3C4186A35284583155410ACA9FD1C9AA3C41B0C63C7A58315541013AA3E7C9AA3C41C1CAA16F58315541AFB6DEF9C9AA3C41535996645831554153BA2E08CAAA3C4134F72F595831554162627712CAAA3C4145DA844D5831554166A5A418CAAA3C415FBEAB4158315541BD7AAA1ACAAA3C41FEB8BB35583155416CF18418CAAA3C41330CCC29583155412B383812CAAA3C416CF9F31D583155410395D007CAAA3C4118944A1258315541A84D62F9C9AA3C41AA94E60658315541867F09E7C9AA3C41712CDEFB57315541BEE9E9D0C9AA3C4145DA46F15731554187A62EB7C9AA3C419F4035E7573155411BD8099AC9AA3C418CFDBCDD573155416E46B479C9AA3C412C84F0D45731554199F06C56C9AA3C411FF9E0CC57315541E4927830C9AA3C41B7109EC5573155418A1F2108C9AA3C41D3F035BF57315541A22FB5DDC8AA3C41CA14B5B957315541EC6987B1C8AA3C419F3526B5573155418633A6A2C8AA3C413F67DCB357315541E2EDBD77C8AA3C418BC6D6B15731554158FA544CC8AA3C419D67AAB0573155410AFEAF20C8AA3C41602559B0573155410DFD13F5C7AA3C416D80E3B0573155418BEDC5C9C7AA3C41E99D48B257315541B0490A9FC7AA3C41254986B457315541FBA42475C7AA3C41F2F698B757315541D83F574CC7AA3C415DCB7BBB57315541F39FE224C7AA3C4134A128C057315541B62905FFC6AA3C41F31398C55731554176BDFADAC6AA3C41308BC1CB573155415759FCB8C6AA3C417B489BD2573155415CBE3F99C6AA3C41A4761ADA57315541571CF77BC6AA3C41C03A33E257315541E4C15061C6AA3C4121C7D8EA573155411BD37649C6AA3C41776FFDF357315541C5078F34C6AA3C4169BE92FD57315541A66EBA22C6AA3C41718C890758315541CE391514C6AA3C410618D21158315541F891B608C6AA3C41241E5C1C58315541CD71B000C6AA3C416EF41627583155418B890FFCC5AA3C413BA3F13158315541DE2ADBFAC5AA3C418200DB3C58315541AA3D15FDC5AA3C4127CBC14758315541263CBA02C6AA3C41EBC59452583155417139C10BC6AA3C4104D3425D583155411FEF1B18C6AA3C41150FBB6758315541E7D3B627C6AA3C41BCEBEC7158315541A93A793AC6AA3C41064AC87B5831554131794550C6AA3C4194933D85583155415917F968C6AA3C41ABD33D8E5831554167056D84C6AA3C417DCEBA9658315541F7D975A2C6AA3C41DC17A79E583155416A16E4C2C6AA3C415B28F6A5583155416B7284E5C6AA3C4150719CAC58315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1043, 10043, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C00000092C71545C1AA3C4111BE3B0C55315541A8E88265C1AA3C4123BE951355315541E18E6088C1AA3C416FB5331A5531554152CC6AADC1AA3C4182BF082055315541947659D4C1AA3C41907F0925553155418AB3E0FCC1AA3C4134362C2955315541D58CB126C2AA3C41C0D4682C553155410A8A7A51C2AA3C41C70CB92E553155415F4FE87CC2AA3C41835C183055315541F03FA6A8C2AA3C416717843055315541A5225FD4C2AA3C419C6BFB2F5531554122C8BDFFC2AA3C416D637F2E5531554108B16D2AC3AA3C413CE3122C5531554138B21B54C3AA3C4100A4BA28553155416197767CC3AA3C41F7297D245531554162C02FA3C3AA3C41E6B7621F55315541A3BBFBC7C3AA3C41473F751955315541B4D792EAC3AA3C418C4CC012553155413CB0B10AC4AA3C41DEF0500B55315541ABB01928C4AA3C4199A8350355315541B28D9142C4AA3C410B3F7EFA5431554128B6E559C4AA3C41AFAF3BF15431554137B6E86DC4AA3C411E0580E754315541C690737EC4AA3C41E1355EDD54315541F70A668BC4AA3C418EFFE9D2543155413CEBA694C4AA3C4140C037C854315541012A249AC4AA3C41EB4E5CBD54315541BC15D39BC4AA3C41C7D26CB2543155419066B099C4AA3C411A9A7EA754315541D645C093C4AA3C41BAF0A69C5431554112450E8AC4AA3C4181F6FA91543155412248AD7CC4AA3C4135768F8754315541D35FB76BC4AA3C41EBBC787D54315541B8974D57C4AA3C41A072CA73543155413EB5973FC4AA3C41DA73976A5431554150EAC324C4AA3C41D6ACF161543155419A7B0607C4AA3C41A9F6E95954315541855A99E6C3AA3C4198F68F52543155411F8F6CC9C3AA3C41CFFAF14C5431554139C0A3A7C3AA3C4142B7134654315541D9E19683C3AA3C415697F83F54315541FB308C5DC3AA3C417C80AC3A54315541A5CBCD35C3AA3C41BDC4393654315541A020A90CC3AA3C41C20EA93254315541F9586EE2C2AA3C41CD500130543155417ABB6FB7C2AA3C412EB7472E54315541450C018CC2AA3C41519E7F2D543155416DEA7660C2AA3C41058CAA2D54315541E0292635C2AA3C41AA2CC82E54315541242F630AC2AA3C41CA53D63054315541424A81E0C1AA3C413800D13354315541B514D2B7C1AA3C411664B2375431554109D3A490C1AA3C41ECEF723C54315541FDD8456BC1AA3C41886109425431554110F6FD47C1AA3C41EDD56A485431554189E71127C1AA3C41ABDE8A4F543155419CD1C108C1AA3C41EF995B575431554193C348EDC0AA3C41A9CDCD5F54315541E343DCD4C0AA3C413605D1685431554151E8ABBFC0AA3C416DB153725431554155F9E0ADC0AA3C41CE4A437C5431554194219E9FC0AA3C418F758C86543155419629FF94C0AA3C4179271B915431554145C3188EC0AA3C41D9CEDA9B54315541A35FF88AC0AA3C419B7AB6A6543155417516A48BC0AA3C41110399B15431554133991A90C0AA3C4134336DBC5431554187355398C0AA3C41EEF11DC75431554141E73DA4C0AA3C41266B96D154315541B876C3B3C0AA3C417F38C2DB5431554112A6C5C6C0AA3C41F5888DE554315541826C1FDDC0AA3C417847E5EE54315541133EA5F6C0AA3C412840B7F7543155410E612513C1AA3C41D543F2FF543155415A11F330C1AA3C41831033075531554192C71545C1AA3C4111BE3B0C55315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1044, 10044, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004D00000043CB9991C0AA3C414A75E8C24D315541F111CEC7C0AA3C41A4FBF9C94D31554186624400C1AA3C41D245D6CF4D31554144BB8E3AC1AA3C41C6E871D44D315541F18A3B76C1AA3C4130EAC3D74D3155416B8DD6B2C1AA3C4107D2C5D94D315541B0AEE9EFC1AA3C4107B773DA4D3155415BF0FD2CC2AA3C415F46CCD94D3155415C529C69C2AA3C414CC6D0D74D315541F7B94EA5C2AA3C419B1385D44D31554127D8A0DFC2AA3C41019AEFCF4D3155413F0C2118C3AA3C41DA4719CA4D315541B941614EC3AA3C418B7C0DC34D315541CAC5F781C3AA3C417AF2D9BA4D315541E51580B2C3AA3C411DA48EB14D315541E0A39BDFC3AA3C4135AD3DA74D315541268DF208C4AA3C411327FB9B4D3155410447342EC4AA3C41E401DD8F4D3155410A3B184FC4AA3C4185D9FA824D31554174545E6BC4AA3C41E4C76D754D3155412B7DCF82C4AA3C41BF3350674D315541FA083E95C4AA3C41909DBD584D315541A20E86A2C4AA3C41A569D2494D315541FEAD8DAAC4AA3C4106A9AB3A4D315541FE4145ADC4AA3C41B5E0662B4D315541607FA7AAC4AA3C413FD0211C4D3155413D7FB9A2C4AA3C41BF37FA0C4D3155414EB48A95C4AA3C41E39D0DFE4C315541E8CD3483C4AA3C41571679EF4C3155414C85DB6BC4AA3C41460959E14C3155413858AC4FC4AA3C41F2FBC8D34C315541CC2FDE2EC4AA3C41EE5AE3C64C31554158F6B009C4AA3C41DD46C1BA4C315541B61A6DE0C3AA3C4169637AAF4C315541590263B3C3AA3C4117A924A54C315541726DEA82C3AA3C41953AD49B4C315541F8CB614FC3AA3C419E3D9B934C31554174852D19C3AA3C4144B7898C4C3155417695A40BC3AA3C41C20D008B4C31554128D5DBD5C2AA3C41AA89F6834C315541FA6CD39DC2AA3C4128E21F7E4C3155413C88F863C2AA3C41587787794C31554195DFBB28C2AA3C41343D36764C31554131DC90ECC1AA3C4157AA32744C31554125B8ECAFC1AA3C4136AB80734C3155413C994573C1AA3C41A59A21744C31554179AB1137C1AA3C41123F14764C315541B639C6FBC0AA3C4101CD54794C3155417DCAD6C1C0AA3C414DEEDC7D4C315541363EB489C0AA3C41BCCEA3834C31554108F3CB53C0AA3C41FC2C9E8A4C31554175F08620C0AA3C419470BE924C315541FA1949F0BFAA3C4198C4F49B4C315541256D70C3BFAA3C412E362FA64C315541AE49549ABFAA3C41D8D759B14C31554106C84475BFAA3C410DE85EBD4C315541CF1C8A54BFAA3C41B8FB26CA4C3155416F0C6438BFAA3C41CB2B99D74C315541946E0921BFAA3C41D7459BE54C31554128C3A70EBFAA3C41FBFE11F44C315541C1DA6201BFAA3C413029E1024D315541238F54F9BEAA3C41FEE9EB114D315541CB928CF6BEAA3C410CF314214D315541855010F9BEAA3C41BBBA3E304D31554139E2DA00BFAA3C4137B64B3F4D315541CC19DD0DBFAA3C41A8921E4E4D315541289FFD1FBFAA3C416B6E9A5C4D315541E3201937BFAA3C417D11A36A4D315541E3990253BFAA3C4148241D784D31554141A88373BFAA3C41ED64EE844D31554129F85C98BFAA3C418CDAFD904D315541ABBE46C1BFAA3C41CC05349C4D3155415245F1EDBFAA3C41AA0E7BA64D315541FC85051EC0AA3C4109EFBEAF4D315541A6D42551C0AA3C41D799EDB74D31554152D5257DC0AA3C41CE77CBBD4D31554143CB9991C0AA3C414A75E8C24D315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1045, 10045, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000090000004B81FD28B8AA3C414DA3C52C4E31554150CAFF8FB4AA3C41E1D28E9B4E315541369F4AE7B5AA3C414DD6EC4D4F3155411320D098B3AA3C41E426F4944F315541F77774C6BBAA3C410CC2C3D4533155419D05EBF7BEAA3C412AA26E725331554186AB036EC0AA3C4131F2CD3454315541FD530524C3AA3C41DE9152E1533155414B81FD28B8AA3C414DA3C52C4E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1066, 10066, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000D0000007A669813A4AA3C4148C8AD38F4305541A1A032FCB0AA3C4136306EC5F4305541B60E5A3CB1AA3C4107974A67F4305541DFFA5FB7B2AA3C418E586F77F4305541BDDC5C9DB3AA3C41C5EBF325F3305541D705BB1FB9AA3C415D270662F3305541A63B6781BAAA3C41A13C0C5BF1305541A8369BF5B1AA3C41A725DDFDF030554117ECFEABB1AA3C41A118E169F1305541F7B2E090A0AA3C41887D5CAFF03055414F2A55D49EAA3C415DCEAE3BF3305541FF184195A4AA3C41611B6B7AF33055417A669813A4AA3C4148C8AD38F4305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1067, 10067, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000008D8E43908EAA3C417E75DFE7EA3055413BBC573AA0AA3C41C3767C65EB30554143A6DD63A1AA3C4132280FC8E83055419578C9B98FAA3C41ED26724AE83055418D8E43908EAA3C417E75DFE7EA305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1046, 10046, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004B000000F063F57FC5AA3C41F1A75DF24C315541E625BDA2C5AA3C4150C184F54C315541233970C6C5AA3C41D014F2F74C31554112B7D0EAC5AA3C410D6DA1F94C315541228C9F0FC6AA3C4124DE8FFA4C3155417EE59C34C6AA3C419CCABBFA4C315541A19F8859C6AA3C413EE624FA4C3155418DB5227EC6AA3C41C536CCF84C31554107B02BA2C6AA3C41D511B4F64C3155412A1365C5C6AA3C411019E0F34C31554144CB91E7C6AA3C41CF3355F04C3155415F967608C7AA3C419A8619EC4C3155411B6BDA27C7AA3C417D6834E74C3155417CDB8645C7AA3C415556AEE14C315541E2734861C7AA3C4113E490DB4C3155414913EF7AC7AA3C4127ACE6D44C3155417E3F4E92C7AA3C410D3DBBCD4C315541D0713DA7C7AA3C415F051BC64C315541AF5D98B9C7AA3C412B3E13BE4C315541402F3FC9C7AA3C4118D4B1B54C31554110C316D6C7AA3C41404F05AD4C31554165D408E0C7AA3C41E0B91CA44C3155417D2404E7C7AA3C417286079B4C3155414198FCEAC7AA3C41BC74D5914C315541164DEBEBC7AA3C41A47696884C3155413FA5CEE9C7AA3C4176945A7F4C315541164AAAE4C7AA3C4108D131764C3155414F2687DCC7AA3C411B0E2C6D4C315541B85573D1C7AA3C41B2F058644C315541B70D82C3C7AA3C411DC6C75B4C315541137BCBB2C7AA3C41156987534C31554105996C9FC7AA3C417E28A64B4C315541E1FD8689C7AA3C4118AE31444C31554186A14071C7AA3C4128E7363D4C315541769BC356C7AA3C41E1EDC1364C315541AAD93D3AC7AA3C4172F4DD304C315541E8082A1AC7AA3C41C3DC682B4C315541C4684EF8C6AA3C415403AC264C31554184F0ECD4C6AA3C4121A3B0224C315541EF8E4AB0C6AA3C41407E7E1F4C31554118A4AE8AC6AA3C41A8CE1B1D4C31554117766264C6AA3C41253A8D1B4C315541A0A2B03DC6AA3C4155C9D51A4C315541898DE416C6AA3C419EE1F61A4C31554154CD49F0C5AA3C417D42F01B4C3155410B992BCAC5AA3C411506C01D4C3155417534D4A4C5AA3C41DBA462204C3155414B608C80C5AA3C4167FCD2234C3155414ACC9A5DC5AA3C4195590A284C315541488D433CC5AA3C416C85002D4C3155418598C71CC5AA3C4146D5AB324C3155414F4564FFC4AA3C41783D01394C31554165D552E4C4AA3C410567F43F4C315541BE05C8CBC4AA3C418DC777474C31554101A7F3B5C4AA3C41BDBB7C4F4C315541434100A3C4AA3C41C6A3F3574C31554177C01293C4AA3C41D601CC604C315541CA2C4A86C4AA3C413C9AF4694C3155416A6EBF7CC4AA3C41F1945B734C3155418A1C8576C4AA3C4172A0EE7C4C3155414B59A773C4AA3C4145159B864C3155416EBA2B74C4AA3C41951A4E904C315541EB3D1178C4AA3C41A2CAF4994C315541494C507FC4AA3C41B5577CA34C31554136C7DA89C4AA3C41DA30D2AC4C31554190259C97C4AA3C41E525E4B54C315541209A79A8C4AA3C41E58AA0BE4C315541A44952BCC4AA3C41A55AF6C64C315541E288FFD2C4AA3C41D657D5CE4C315541A82955ECC4AA3C41A42C2ED64C315541DECF2108C5AA3C419E88F2DC4C31554128522F26C5AA3C41883C15E34C315541EA224346C5AA3C4137548AE84C3155410FC31E68C5AA3C41A72D47ED4C315541F063F57FC5AA3C41F1A75DF24C315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1078, 10078, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000CE0DBBFC55AA3C417563E680103155418E7144137CAA3C41B44A1E6A103155418E7144137CAA3C41ED79C86107315541CE0DBBFC55AA3C41ED79C86107315541CE0DBBFC55AA3C417563E68010315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1047, 10047, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004D0000007E1884BAC1AA3C41C70D43404C315541CE7601F6C1AA3C414F13EA464C31554187979633C2AA3C41E9C83E4C4C315541707FCB72C2AA3C41AFCB36504C315541240925B3C2AA3C412060CA524C315541A6D425F4C2AA3C413181F4534C315541D43C4F35C3AA3C4102EAB2534C315541DC4C2276C3AA3C41611A06524C31554187B820B6C3AA3C41C355F14E4C3155415AD1CDF4C3AA3C41EA9C7A4A4C315541D77AAF31C4AA3C4140A2AA444C315541E9164F6CC4AA3C41C0B88C3D4C3155413B6E3AA4C4AA3C4124BE2E354C315541048E04D9C4AA3C41AAFFA02B4C315541479C460AC5AA3C41641AF6204C315541CAA0A037C5AA3C41EAD642154C315541AC3FBA60C5AA3C4107019E084C31554185654385C5AA3C41093B20FB4B31554141E3F4A4C5AA3C4106CEE3EC4B31554137F990BFC5AA3C417D7604DE4B3155419ECFE3D4C5AA3C414E2E9FCE4B315541B6DAC3E4C5AA3C4149F4D1BE4B3155417D2C12EFC5AA3C41E791BBAE4B315541C0B0BAF3C5AA3C41FC5E7B9E4B3155413054B4F2C5AA3C41F004318E4B315541AA1501ECC5AA3C41EE40FC7D4B3155410803AEDFC5AA3C410EA6FC6D4B315541CD1FD3CDC5AA3C41CF5F515E4B315541FC3493B6C5AA3C417AF5184F4B315541288F1B9AC5AA3C416B0E71404B315541B5A4A378C5AA3C41963876324B315541A3AA6C52C5AA3C41AFB043254B3155418915C127C5AA3C411E2DF3184B315541A407F4F8C4AA3C41F3AB9C0D4B31554119B060C6C4AA3C41454456034B3155414A986990C4AA3C41CFFA33FA4A3155413DE47757C4AA3C41609B47F24A3155414A8FCF36C4AA3C4112716FEE4A3155411DD5E1FCC3AA3C41567DD1E64A3155413FBD84C0C3AA3C41EE147EE04A31554112E32D82C3AA3C41E58A81DB4A31554179BB5642C3AA3C416896E5D74A315541ECA77B01C3AA3C41883FB1D54A31554193041BC0C2AA3C41E6D1E8D44A3155417531B47EC2AA3C41E9D38DD54A3155412F9BC63DC2AA3C4112049FD74A315541A4C1D0FDC1AA3C41765B18DB4A31554132424FBFC1AA3C414115F3DF4A315541F3E4BB82C1AA3C4147BC25E64A31554125AF8C48C1AA3C41373DA4ED4A31554102FD3211C1AA3C4138FE5FF64A315541F4A51ADDC0AA3C4162FB47004B3155412F29A9ACC0AA3C41C6E7480B4B315541BFE83C80C0AA3C411A534D174B3155414D712C58C0AA3C4195D33D244B315541B1D1C534C0AA3C41673301324B315541C2024E16C0AA3C41E7A17C404B315541F96000FDBFAA3C41DFE7934F4B315541FE380EE9BFAA3C416A9E295F4B315541DE669EDABFAA3C415B681F6F4B3155418C0BCDD1BFAA3C413E2D567F4B315541D854ABCEBFAA3C411456AE8F4B315541E25C3FD1BFAA3C41D10A08A04B315541B11D84D9BFAA3C41627043B04B315541197B69E7BFAA3C41C5E640C04B3155414262D4FABFAA3C41A246E1CF4B3155415DFE9E13C0AA3C41F21D06DF4B31554145029931C0AA3C4170EB91ED4B31554149068854C0AA3C41EE5768FB4B315541F1FA277CC0AA3C41B16D6E084C31554156AC2BA8C0AA3C41E3CC8A144C315541D3593DD8C0AA3C4109DDA51F4C315541955BFF0BC1AA3C41E6FAA9294C315541DADA0C43C1AA3C41CDA283324C3155410795FA7CC1AA3C417E96213A4C315541F8723CB7C1AA3C41C70D43404C3155417E1884BAC1AA3C41C70D43404C315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1048, 10048, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000003312A9CA9FAA3C41C248B7E2453155411FE91D199CAA3C41B791D799463155410B3C7B6FB0AA3C412DCEFB294D3155414A650621B4AA3C413785DB724C3155413312A9CA9FAA3C41C248B7E245315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1049, 10049, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004A00000049547F15C3AA3C41CBFB55B54A31554185398B54C3AA3C412D7AE7B94A3155413B6AF194C3AA3C4176D914BD4A315541476E34D6C3AA3C41F5E8D7BE4A3155412C1FD517C4AA3C41DF392DBF4A315541BA9F5359C4AA3C41FD2514BE4A3155418855309AC4AA3C41E9D08EBB4A31554195E1ECD9C4AA3C41EC23A2B74A315541E8150D18C5AA3C4178C455B24A31554129E81754C5AA3C414005B4AB4A3155412F5D988DC5AA3C41F1D1C9A34A315541D36C1EC4C5AA3C413796A69A4A3155418FDC3FF7C5AA3C41A61F5C904A315541D90D9926C6AA3C41107BFE844A315541E9C0CD51C6AA3C4144CDA3784A31554115C88978C6AA3C413328646B4A31554191AB819AC6AA3C41DC5B595D4A315541643D73B7C6AA3C4110C49E4E4A315541191926CFC6AA3C410D13513F4A315541A3126CE1C6AA3C41BE198E2F4A315541C88F21EEC6AA3C41868D741F4A315541EFCD2DF5C6AA3C4183CC230F4A315541981183F6C6AA3C414AA0BBFE49315541E2C11EF2C6AA3C4126005CEE49315541926D09E8C6AA3C41B3D224DE49315541A0B956D8C6AA3C41B0AF35CE49315541FA3B25C3C6AA3C419BA2ADBE49315541F03E9EA8C6AA3C410BEEAAAF49315541B271F588C6AA3C41C9D04AA149315541CB826864C6AA3C41E04CA99349315541B2A83E3BC6AA3C41F1F0E086493155412F16C80DC6AA3C419FA40A7B49315541015F5DDCC5AA3C41DB773D7049315541E7CA5EA7C5AA3C410F768E66493155418B99336FC5AA3C41317D105E49315541313A4934C5AA3C41BC18D4564931554111B06F29C5AA3C419247AA55493155419C22B8EAC4AA3C419D91B1504931554198FB81AAC4AA3C41D2881B4D493155418F554A69C4AA3C41CF29EF4A4931554100419027C4AA3C4197B0304A4931554170CCD3E5C3AA3C413E90E14A49315541150B95A4C3AA3C413370004D49315541DA1A5364C3AA3C41B32E895049315541C62D8B25C3AA3C4116E9745549315541AC94B7E8C2AA3C41FB08BA5B4931554120D24EAEC2AA3C4111574C6349315541EDB2C276C2AA3C41F6121D6C49315541F86F7F42C2AA3C41DC0F1B764931554182DCEA11C2AA3C41EBD53281493155410C9F63E5C1AA3C4170C84E8D49315541967840BDC1AA3C41A84F579A493155418B9CCF99C1AA3C41130733A8493155418F17567BC1AA3C4191EEC6B6493155419F490F62C1AA3C41399FF6C549315541A3712C4EC1AA3C419682A4D549315541A14ED43FC1AA3C41620CB2E54931554193D22237C1AA3C41DAF5FFF549315541B5ED2834C1AA3C41FD7A6E064A3155414F6CEC36C1AA3C412198DD164A315541F8EB673FC1AA3C4183482D274A31554123E68A4DC1AA3C4187C43D374A31554185CF3961C1AA3C41CCBFEF464A315541184F4E7AC1AA3C4112A624564A3155419C879798C1AA3C41B5D6BE644A3155412F77DABBC1AA3C418DDEA1724A3155419B6AD2E3C1AA3C413FAFB27F4A31554105833110C2AA3C411DD4D78B4A315541EC4CA140C2AA3C4185A3F9964A315541F869C374C2AA3C41226D02A14A315541A64732ACC2AA3C4125A4DEA94A3155419EE581E6C2AA3C4164057DB14A315541F92FAD09C3AA3C41CBFB55B54A31554149547F15C3AA3C41CBFB55B54A315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1050, 10050, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004D000000BF8E49ECC3AA3C414610C02349315541FBA76524C4AA3C41D404992A493155413537AE5EC4AA3C412F5332304931554163AEB19AC4AA3C41F012813449315541C820FBD7C4AA3C417ADF7C37493155414D261316C5AA3C41C9E81F39493155418CC48054C5AA3C415CFE6639493155412C5ACA92C5AA3C41BF955138493155414E8C76D0C5AA3C416CCBE1354931554199320D0DC6AA3C41BB5E1C32493155413F411848C6AA3C419BA8082D49315541B8AF2481C6AA3C41518DB026493155418357C3B7C6AA3C411769201F493155414ACE89EBC6AA3C4132F86616493155413A34131CC7AA3C410E3A950C49315541A3F80049C7AA3C413250BE01493155418892FB71C7AA3C411259F7F548315541BA2AB396C7AA3C41CE4657E9483155413A38E0B6C7AA3C4164B2F6DB48315541460A44D2C7AA3C4115ACEFCD48315541DC43A9E8C7AA3C4146885DBF48315541B542E4F9C7AA3C417BAA5CB0483155410875D305C8AA3C41E24D0AA148315541199A5F0CC8AA3C41804C84914831554166F07B0DC8AA3C41FCE4E88148315541F24D2609C8AA3C41897F567248315541A72467FFC7AA3C410073EB6248315541E37151F0C7AA3C416EC9C55348315541629902DCC7AA3C41C4050345483155413A2CA2C2C7AA3C4131EABF3648315541509B61A4C7AA3C413340182948315541BDD77B81C7AA3C4181A2261C4831554130DF345AC7AA3C410549041048315541BF37D92EC7AA3C41EBD7C804483155416B5BBDFFC6AA3C417C318AFA473155412F123DCDC6AA3C41654B5CF147315541005946C5C6AA3C41658C0FF047315541223EA892C6AA3C415B5CA5E6473155416933F35CC6AA3C410FB05EDE473155412CDC8F24C6AA3C4173A74BD7473155411215ECE9C5AA3C41DE0A7AD147315541A81D7AADC5AA3C41AF30F5CC4731554142BAAF6FC5AA3C41B4E6C5C947315541C84D0531C5AA3C415C61F2C74731554157F0F4F1C4AA3C41A62F7EC747315541DE7FF9B2C4AA3C41D0336AC84731554105B28D74C4AA3C411EA2B4CA4731554171242B37C4AA3C41F20359CE47315541367049FBC3AA3C41CB4050D34731554122405DC1C3AA3C41D5AB90D947315541666ED789C3AA3C41EF160EE147315541D3272455C3AA3C4167EAB9E947315541EF19AA23C3AA3C41534183F347315541D8A9C9F5C2AA3C417E0A57FE47315541D239DCCBC2AA3C41922D200A483155417F7933A6C2AA3C414AB4C7164831554179C81885C2AA3C41F8F6342448315541E0A5CC68C2AA3C41C7CC4D3248315541B6338651C2AA3C418EBEF64048315541CECA723FC2AA3C41683C135048315541E5A2B532C2AA3C4142D5855F48315541AE8D672BC2AA3C416070306F48315541ABC69629C2AA3C41BC87F47E4831554155D7462DC2AA3C41DB63B38E483155418C907036C2AA3C4151574E9E4831554108180245C2AA3C41B6FAA6AD483155413E0BDF58C2AA3C41C5679FBC4831554165B7E071C2AA3C41CA731ACB48315541CF63D68FC2AA3C4139E8FBD848315541B0B185B2C2AA3C41D3B928E6483155415F0DABD9C2AA3C41563D87F2483155410B32FA04C3AA3C415159FFFD483155415CBE1E34C3AA3C415EB57A08493155413AD9BC66C3AA3C4172E5E41149315541F3E3719CC3AA3C41B4912B1A49315541303BD5D4C3AA3C415A9A3E2149315541BF8E49ECC3AA3C414610C02349315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1051, 10051, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C000000EC56E803C5AA3C41B9E3E89747315541D17DD63BC5AA3C41320D1A9F47315541B5071076C5AA3C41EC3A0CA547315541E98323B2C5AA3C4133D7B3A94731554125E69BEFC5AA3C4164D007AD47315541656B012EC6AA3C4190AA01AF47315541C181DA6CC6AA3C41388C9DAF47315541D8B6ACABC6AA3C419145DAAE4731554188A5FDE9C6AA3C412853B9AC4731554159E45327C7AA3C41A6DA3EA9473155418BF23763C7AA3C41FBA271A4473155414820359DC7AA3C410D075B9E473155417D72DAD4C7AA3C4194E3069747315541F27EBB09C8AA3C41C77F838E47315541323F713BC8AA3C41D571E1844731554160D99A69C8AA3C415D7E337A47315541ED5CDE93C8AA3C4101748E6E473155417572E9B9C8AA3C41C902096247315541C4FA71DBC8AA3C41D98FBB5447315541D1A036F8C8AA3C411506C04647315541B957FF0FC9AA3C419CA3313847315541A8C89D22C9AA3C419AC42C29473155416DADED2FC9AA3C4100ACCE19473155414716D537C9AA3C41BB4A350A47315541BD9C443AC9AA3C4124057FFA463155414D823737C9AA3C41D377CAEA463155417FB8B32EC9AA3C41273C36DB4631554178D6C920C9AA3C4173ACE0CB46315541C9F7940DC9AA3C41E6A8E7BC463155413C883AF5C8AA3C41775D68AE463155412FFAE9D7C8AA3C41EA087FA046315541FA6ADCB5C8AA3C41CDC54693463155413333548FC8AA3C41C755D9864631554151659C64C8AA3C413CEF4E7B463155410F3C0836C8AA3C414E0EBE70463155410077F203C8AA3C41F7483B674631554142ABBCCEC7AA3C41D826D95E463155419526E7A5C7AA3C414969725946315541BCD3196EC7AA3C4122DB1C5246315541C54DF433C7AA3C410BB5054C46315541CCDEE7F7C6AA3C41D3D4384746315541A98469BAC6AA3C41AB94BF4346315541F60EF17BC6AA3C4113B9A041463155418333F83CC6AA3C41B863E040463155411AA3F9FDC5AA3C415E0B8041463155416E1970BFC5AA3C41F7787E4346315541DB6DD581C5AA3C41F6C9D74646315541AEA6A145C5AA3C411A78854B46315541180F4A0BC5AA3C41EC657E5146315541005240D3C4AA3C418DF0B65846315541BD9DF19DC4AA3C4180062161463155412BCEC56BC4AA3C41EA42AC6A463155412EA31E3DC4AA3C418B0D467546315541C4015712C4AA3C4124BFD980463155413143C2EBC3AA3C417CC9508D463155416A92ABC9C3AA3C4167E3929A46315541A45955ACC3AA3C411E3886A84631554172C1F893C3AA3C4191990FB7463155419140C580C3AA3C415AB512C646315541C63FE072C3AA3C41D84B72D54631554191D1646AC3AA3C414F6910E546315541267C6367C3AA3C412CA0CEF446315541BD1AE269C3AA3C413B448E044731554122D1DB71C3AA3C41B1A63014473155411E15417FC3AA3C419651972347315541ACCDF791C3AA3C415643A43247315541F684DBA9C3AA3C4147293A414731554178AFBDC6C3AA3C4182983C4F47315541460766E8C3AA3C419D45905C47315541C1F8920EC4AA3C4177391B69473155417223FA38C4AA3C414104C57447315541D4E94867C4AA3C419BEC767F4731554135132599C4AA3C41401C1C8947315541E27A2DCEC4AA3C4172C8A1914731554138E92AFDC4AA3C41B9E3E89747315541EC56E803C5AA3C41B9E3E89747315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1052, 10052, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004B0000002CB36BE9C8AA3C414739D8D044315541A0D534E1C8AA3C41B8B494CF443155419125D685C8AA3C41CEA069C64431554165D9BC4CC8AA3C4124D2F8C244315541D8FFAD12C8AA3C41F525C0C044315541FA0A14D8C7AA3C41E1AEC3BF44315541076C5A9DC7AA3C41C93B05C044315541F4CDEC62C7AA3C41835484C144315541F5503629C7AA3C41A33A3EC44431554107C5A0F0C6AA3C41A6EE2DC84431554180E893B9C6AA3C41FE384CCD44315541CBA97484C6AA3C4143B78FD344315541346EA451C6AA3C419FEDECDA44315541B75F8021C6AA3C41A25B56E344315541B7C160F4C5AA3C411195BCEC44315541424F98CAC5AA3C41525E0EF744315541BCA373A4C5AA3C41C4CB3802453155411CAE3882C5AA3C41BE64270E4531554196302664C5AA3C41C548C41A45315541004E734AC5AA3C41E057F8274531554155244F35C5AA3C41FB5CAB35453155414D76E024C5AA3C41173AC44345315541B9644519C5AA3C41A516295245315541FF369312C5AA3C41A18EBF6045315541A933D610C5AA3C412DE36C6F45315541ED8A1114C5AA3C41662B167E45315541CC4F3F1CC5AA3C41E785A08C4531554150835029C5AA3C41EF49F19A4531554190302D3BC5AA3C417838EEA8453155417797B451C5AA3C41FDAB7DB6453155412E6ABD6CC5AA3C41DBC786C3453155419917168CC5AA3C41AAA5F1CF45315541F12685AFC5AA3C412E81A7DB453155411EA1C9D6C5AA3C41FAE192E64531554185879B01C6AA3C41E9C29FF0453155410D58AC2FC6AA3C41C5B6BBF94531554152D90B61C6AA3C411D57840246315541D12D4B95C6AA3C413602310A463155417E8A04CCC6AA3C4143C4B210463155418050CD04C7AA3C41D5EFFC1546315541B8DD363FC7AA3C419636051A46315541D663CF7AC7AA3C4144BDC31C463155417EC622B7C7AA3C413B2B331E46315541EE7CBBF3C7AA3C418EB4501E46315541A9772330C8AA3C41B11F1C1D46315541D405E56BC8AA3C41DAC5971A463155410ABB8BA6C8AA3C416F8EC816463155410A52A5DFC8AA3C4180E5B511463155412A8BC216C9AA3C4138AD690B46315541F404784BC9AA3C41B52AF003463155412D0E5F7DC9AA3C4113EE57FB45315541D46C16ACC9AA3C411BB6B1F1453155415F1C43D7C9AA3C41834F10E745315541C0FE90FEC9AA3C417C7088DB453155414B80B321CAAA3C412B9030CF45315541B02C6640CAAA3C4101BB20C245315541E2346D5ACAAA3C41D56372B4453155412CE3956FCAAA3C41553240A64531554103FEB67FCAAA3C4107CFA59745315541E718B18ACAAA3C417FADBF8845315541C3D06E90CAAA3C41E0D4AA79453155410EF6E490CAAA3C4144A7846A453155419AA2128CCAAA3C4195A86A5B453155413E3B0182CAAA3C410B457A4C45315541935DC472CAAA3C41B397D03D45315541D5B9795ECAAA3C41F3318A2F45315541B7D84845CAAA3C41B5E3C22145315541ACCE6227CAAA3C41388595144531554123DC0105CAAA3C41F4C21B084531554118FC68DEC9AA3C4140EB6DFC44315541E561E3B3C9AA3C415DBFA2F1443155419DE5C385C9AA3C41C546CFE74431554184646454C9AA3C416DA606DF44315541DA0F2520C9AA3C4154FB59D7443155412CB36BE9C8AA3C414739D8D044315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1073, 10073, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000011000000C8F8B8D4B4AA3C4170B3A42EF0305541848AA39BBBAA3C410E451D5DF0305541DAB38734BCAA3C41EF395EF8EE30554106F5C5DABDAA3C41AE9BAD03EF30554169FA806FBEAA3C4175E4A3A8ED305541D00D66A2BDAA3C41FA7425A3ED305541A6D75FD7BDAA3C41B3488927ED3055417ECA5604BAAA3C410FE64F0DED3055416C9B223ABAAA3C413DA9C98FEC305541D648A256B8AA3C414F39D682EC30554149DB0FDEB8AA3C41588ED646EB3055418CDD07EDB1AA3C41F7323D17EB30554172541049B1AA3C41711DD495EC3055410DB8E16DABAA3C416302AC6DEC305541866DC6EEAAAA3C418E054196ED3055419C826696B5AA3C41FEBC50DFED305541C8F8B8D4B4AA3C4170B3A42EF0305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1074, 10074, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000C0000003D09B615CFAA3C4179349387ED305541BF6A3BEAC6AA3C41118D0869ED30554147201E81C6AA3C4152B2EB2AEF3055413969A5C6CDAA3C4108B81A46EF305541DAA239F7CDAA3C4147FB2F76EE305541E31AFDC8CEAA3C41D3254079EE305541E4E51BBED0AA3C417D853183EE30554129D06524D0AA3C41AE4D6267F0305541A51AB0A0DEAA3C412B10F6B0F0305541438BCD99DFAA3C413DBA3FA0ED305541E5746428CFAA3C414798BA4CED3055413D09B615CFAA3C4179349387ED305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1075, 10075, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000069892AEAAAAA3C41C188E690FD305541DCBD2E32BFAA3C41A4868BBFFC305541E4D479DCBDAA3C41BD50E6ADFA30554171A07594A9AA3C41DA52417FFB30554169892AEAAAAA3C41C188E690FD305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1076, 10076, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000D1A3770299AA3C41223BAC8D12315541D1A3770299AA3C416C06D678063155419A744E2C9DAA3C416C06D678063155419A744E2C9DAA3C41FC06288412315541D1A3770299AA3C41223BAC8D12315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1079, 10079, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000A74CACD7B0AA3C41410DF5A37A315541352794C5B5AA3C41CDB41D0D7B315541D7ABAC9BB6AA3C4154518B6C7A31554149D1C4ADB1AA3C41C8A962037A315541A74CACD7B0AA3C41410DF5A37A315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1053, 10053, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004C000000CB7D38CDBFAA3C41956B444845315541039F1700C0AA3C41EDA32E4D4531554190D67B34C0AA3C41FE4FF850453155416E11FF69C0AA3C418A0E9A5345315541120D39A0C0AA3C41EABE0E5545315541F022C0D6C0AA3C41F78A5355453155417F162A0DC1AA3C41A3EC675445315541BEE30C43C1AA3C4115AF4D5245315541EA8DFF77C1AA3C41D5EA084F4531554180EC9AABC1AA3C414DFE9F4A453155418F737ADDC1AA3C41E5801B4545315541D8F73C0DC2AA3C41AA32863E45315541666C853AC2AA3C4109E7EC36453155413B97FB64C2AA3C411C6C5E2E453155411FBE4C8CC2AA3C41976DEB2445315541B0462CB0C2AA3C417E54A61A45315541B34C54D0C2AA3C411023A30F453155417A2986ECC2AA3C410A4EF7034531554186EE8A04C3AA3C419E92B9F74431554111D03318C3AA3C4150CA01EB4431554154805A27C3AA3C416DBCE8DD44315541847AE131C3AA3C41B5ED87D044315541DC3BB437C3AA3C41CC6EF9C244315541106CC738C3AA3C4154A957B544315541EBF21835C3AA3C41712CBDA74431554187FCAF2CC3AA3C412179449A44315541B4EB9C1FC3AA3C4196CE078D443155419239F90DC3AA3C41E6F6208044315541F143E7F7C2AA3C412D15A97344315541DA0A92DDC2AA3C411074B8674431554157DC2CBFC2AA3C41F756665C44315541A3F0F29CC2AA3C4142CCC85144315541BAF62677C2AA3C418982F447443155412992124EC2AA3C4165A0FC3E443155419ECC0522C2AA3C41E49EF23644315541887856F3C1AA3C41B227E62F44315541D58A5FC2C1AA3C416FF6E429443155419D69808FC1AA3C410CBEFA2444315541E5311C5BC1AA3C41FC11312144315541D3BEFB56C1AA3C41C4FAF1204431554154712523C1AA3C413A13E41D443155417F0173EEC0AA3C4154EEF61B44315541EEC648B9C0AA3C41F5362E1B4431554163FC0B84C0AA3C41636B8B1B44315541DC00224FC0AA3C411EDA0D1D44315541F994EF1AC0AA3C4156A3B21F44315541361CD8E7BFAA3C4158BE7423443155412EDF3CB6BFAA3C413E034D28443155418C527C86BFAA3C417738322E443155410463F158BFAA3C413E241935443155418AC8F22DBFAA3C4134A2F43C443155418B60D205BFAA3C414FBCB54544315541E892DCE0BEAA3C413EC74B4F44315541DABF57BFBEAA3C414B82A45944315541DEB983A1BEAA3C41F039AC6444315541194D9987BEAA3C419FED4D7044315541C6D1C971BEAA3C417C77737C443155419FCF3E60BEAA3C4199B6058944315541FCAD1953BEAA3C412ABBEC95443155416C74734ABEAA3C41DEF30FA344315541E19A5C46BEAA3C41CE5C56B044315541D2EADC46BEAA3C410CAFA6BD44315541CF6FF34BBEAA3C41DE90E7CA44315541D5799655BEAA3C41D3C5FFD74431554144AFB363BEAA3C41FD5ED6E44431554149303076BEAA3C415EEA52F144315541D8C9E88CBEAA3C4166A15DFD443155414C38B2A7BEAA3C414896DF08453155419B7A59C6BEAA3C41A4DFC21345315541A532A4E8BEAA3C4135C2F21D45315541F014510EBFAA3C4143D85B2745315541D1641837BFAA3C41B536EC2F45315541A07CAC62BFAA3C41098F933745315541E661BA90BFAA3C417F4E433E453155418F3DF7B7BFAA3C411D092C4545315541CB7D38CDBFAA3C41956B444845315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1054, 10054, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000049000000BC9756ABBAAA3C415EDC82AF44315541097FAFD5BAAA3C416188BFB4443155412A89B201BBAA3C411FE40AB9443155414EF6092FBBAA3C41BC915CBC443155419D6F5D5DBBAA3C41C419AEBE443155412BB3528CBBAA3C41E3F7FABF44315541D0438EBBBBAA3C417EA340C044315541251BB4EABBAA3C41E6947EBF443155418C5D6819BCAA3C412346B6BD44315541320C5047BCAA3C414530EBBA4431554163B71174BCAA3C4186C422B744315541DC2B569FBCAA3C419F6164B244315541401DC9C8BCAA3C41A745B9AC4431554101CA19F0BCAA3C41C97B2CA6443155411399FB14BDAA3C41F9C6CA9E44315541EBAE2637BDAA3C41E188A296443155413E795856BDAA3C4128A6C38D4431554130315472BDAA3C411E673F8444315541F451E38ABDAA3C416056287A44315541D501D69FBDAA3C41981C926F44315541CE7003B1BDAA3C41105A91644431554141274ABEBDAA3C41C77E3B59443155418B4790C7BDAA3C4168A0A64D44315541DEBFC3CCBDAA3C41854FE941443155414B6EDACDBDAA3C41666B1A3644315541EA33D2CABDAA3C4191F5502A44315541DCF8B0C3BDAA3C41F7E4A31E4431554165A184B8BDAA3C4143F929134431554169F262A9BDAA3C41778EF90744315541CC666996BDAA3C41597128FD43315541ECF6BC7FBDAA3C41FFB4CBF24331554177CF8965BDAA3C41CF89F7E84331554134FC0248BDAA3C410B16BFDF43315541D6036227BDAA3C419F5034D743315541F078E603BDAA3C410BDE67CF43315541CA7CD5DDBCAA3C4104F068C843315541D33979B5BCAA3C41DD2745C243315541DF9786A0BCAA3C41812A89BF4331554125315275BCAA3C41414A28BB43315541D13CC248BCAA3C41CFC2BBB7433155419AEA2C1BBCAA3C4155334AB5433155418C63EAECBBAA3C41CD55D8B343315541BD1F54BEBBAA3C416DF568B3433155412A39C48FBBAA3C41C0E9FCB343315541E8BD9461BBAA3C41851493B543315541CC001F34BBAA3C41386428B84331554153EEBA07BBAA3C41D6D9B7BB433155412461BEDCBAAA3C418E923AC0433155417D7C7CB3BAAA3C4111D5A7C543315541CE0B458CBAAA3C418122F5CB4331554107E86367BAAA3C419A4A16D343315541A4642045BAAA3C416E83FDDA433155419AC6BC25BAAA3C41F5839BE343315541D0C27509BAAA3C419BA1DFEC433155415C0A82F0B9AA3C419DF0B7F64331554126DF11DBB9AA3C419A66110144315541C9B74EC9B9AA3C4145FFD70B443155418EEE5ABBB9AA3C4161E3F61644315541A47F51B1B9AA3C41DB90582244315541A1D445ABB9AA3C418604E72D44315541659E43A9B9AA3C4190E48B3944315541D7BF4EABB9AA3C41BAAB304544315541F44463B1B9AA3C411DD5BE5044315541676B75BBB9AA3C415C07205C4431554100B971C9B9AA3C414D403E67443155411E213DDBB9AA3C4113FF0372443155415D39B5F0B9AA3C41156E5C7C44315541DE7BB009BAAA3C41288B3386443155412198FE25BAAA3C41104E768F4431554177CF6845BAAA3C41C3CD129844315541E45FB267BAAA3C417D62F89F443155410BF9988CBAAA3C417BC617A744315541BC9756ABBAAA3C415EDC82AF44315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1055, 10055, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000004A0000009FD44DCBB5AA3C41BEA9443E4431554164A9DCF2B5AA3C41D3C80043443155413102F01DB6AA3C417196AD4844315541BCDFD34AB6AA3C419896644D4431554126CC3079B6AA3C41B4991C51443155411073ACA8B6AA3C41F760CE53443155414251EAD8B6AA3C4165AC745544315541B0698C09B7AA3C4148450C56443155415AFB333AB7AA3C414F04945544315541D83A826AB7AA3C41AED30C5444315541140B199AB7AA3C4196AD795144315541FBB39BC8B7AA3C414896DF4D44315541B397AFF5B7AA3C415192454944315541BFE2FC20B8AA3C41C498B443443155417B372F4AB8AA3C41F781373D443155418252F670B8AA3C4134F2DA35443155418DA60695B8AA3C414141AD2D4431554141F019B6B8AA3C414A5EBE244431554194BEEFD3B8AA3C41CAB01F1B44315541CFF04DEEB8AA3C41F5F6E3104431554147270105B9AA3C41B7201F0644315541E427DD17B9AA3C415F29E6FA433155415334BD26B9AA3C4145EE4EEF4331554133518431B9AA3C418A0470E343315541EC7E1D38B9AA3C41FE8C60D743315541A4E27B3AB9AA3C41E20638CB4331554193DE9A38B9AA3C4178220EBF43315541101C7E32B9AA3C418E92FAB243315541DC833128B9AA3C417FDE14A743315541A526C919B9AA3C415034749B433155419B166107B9AA3C41623B2F904331554167301DF1B8AA3C419FE85B854331554136D528D7B8AA3C4170530F7B433155415596B6B9B8AA3C41AE8C5D714331554189D2FF98B8AA3C41AB7759684331554181464475B8AA3C413EA5146043315541AD90C94EB8AA3C41A9319F5843315541FCAFEF40B8AA3C41249D3F564331554102228A16B8AA3C416BC6985043315541B3605EEAB7AA3C41FCB7DE4B433155412AE3BEBCB7AA3C41FB441A48433155413FD6008EB7AA3C41E475524543315541517E7B5EB7AA3C41C47B8C43433155415D93872EB7AA3C4111A6CB4243315541689C7EFEB6AA3C41D45C1143433155410E47BACEB6AA3C41E81D5D44433155413DC1939FB6AA3C41F87DAC464331554149126371B6AA3C41DD2CFB494331554128767E44B6AA3C41ECFD424E4331554110BD3919B6AA3C414BF37B53433155411CAFE5EFB5AA3C41F24C9C59433155419D74CFC8B5AA3C41C19A986043315541D60640A4B5AA3C4117D263684331554196A77B82B5AA3C41FF65EF70433155415F61C163B5AA3C4144622B7A433155414A924A48B5AA3C417C8906844331554182804A30B5AA3C4108756E8E43315541F0FAED1BB5AA3C416EB74F9943315541DE045B0BB5AA3C41C80096A4433155412B90B0FEB4AA3C4177442CB043315541E34106F6B4AA3C4191E0FCBB43315541D2476CF1B4AA3C4141C6F1C7433155411F39EBF0B4AA3C410AA3F4D343315541E00684F4B4AA3C412F0AEFDF4331554198F92FFCB4AA3C41E09ECAEB433155411DBFE007B5AA3C41C53D71F743315541C9838017B5AA3C418426CD02443155413D1CF22AB5AA3C411624C90D44315541923B1142B5AA3C41A3B4501844315541F7B6B25CB5AA3C41A32F50224431554164D6A47AB5AA3C41AEEAB42B44315541B4B1AF9BB5AA3C412F5C6D3444315541589895BFB5AA3C414F3C693C443155419FD44DCBB5AA3C41BEA9443E44315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1056, 10056, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000015000000EB666F38E8AA3C4142A1D61F57315541EDFD3E54EDAA3C41132F4B3A50315541B06BFFE0DDAA3C41AB2A2E834F315541847913D5D8AA3C41334B465356315541E733C1ACDEAA3C41F1DA8498563155414B2C0073DCAA3C416BD8AF9959315541FD3F1C07D0AA3C419B4178065931554139FA0CFCD2AA3C418FAC9908553155414C4B72F8D3AA3C419F8AA15C503155417A2B9EB4CFAA3C413CDA3A4E503155411ED576B8CEAA3C41644C0DF9543155412FC48758CBAA3C4192491BB05931554117936954DDAA3C4192FF0D7E5A315541601DC7DCDDAA3C4189C087BF59315541BDAA5069E2AA3C4142CB9FF359315541A9522FFAE2AA3C4147C4372959315541D071C112E2AA3C41A87CDD1E5931554138096BBBE2AA3C413071373358315541CBCBED02E2AA3C41A9B5F62A58315541977F80EDE2AA3C419D363AE356315541EB666F38E8AA3C4142A1D61F57315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1057, 10057, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000070000006F765261D7AA3C41052D8911673155414ED1B25BD7AA3C418E019D5367315541FBCCF60EDBAA3C4149E6A658673155413432654FDBAA3C41A5BF956364315541D97CD81DD2AA3C4149EA105764315541C2BC09E3D1AA3C41593C0E0A673155416F765261D7AA3C41052D891167315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1058, 10058, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000003F0000005CEE27DAC6AA3C41BAC6212E6B3155410E56B5C8C6AA3C411E7F10256B315541807C2AB4C6AA3C414A5F691C6B3155418C67AF9CC6AA3C410C433D146B315541DDD67182C6AA3C4177169C0C6B3155415BEAA465C6AA3C41F1B694056B315541ACBE8046C6AA3C4141D634FF6A3155412B004225C6AA3C41B8DF88F96A31554143742902C6AA3C4151E09BF46A3155412B82C5F4C5AA3C41AABF18F36A315541E8142678C4AA3C41F65F0AF26A315541ED0D2158C4AA3C41CD2AE4F56A315541C68E8435C4AA3C4130E106FB6A315541CF1DD414C4AA3C416DA6E5006B315541786B4FF6C3AA3C41990A75076B31554163ED31DAC3AA3C41BA45A80E6B315541766AB2C0C3AA3C41A55071166B3155417E9002AAC3AA3C415000C11E6B315541E0924E96C3AA3C41402387276B315541DDD4BC85C3AA3C4152A1B2306B315541EA9E6D78C3AA3C41DB9C313A6B31554119DF7A6EC3AA3C418F95F1436B31554148F7F767C3AA3C41788CDF4D6B3155415C97F164C3AA3C410929E8576B315541F2A36D65C3AA3C41D4DEF7616B3155411C2B6B69C3AA3C418713FB6B6B3155411367E270C3AA3C413A45DE756B315541CCCBC47BC3AA3C415A308E7F6B3155418324FD89C3AA3C412FF5F7886B315541D1BC6F9BC3AA3C41D53C09926B3155415F96FAAFC3AA3C419F5CB09A6B31554128AB75C7C3AA3C41DD78DCA26B315541D73BB3E1C3AA3C4172A57DAA6B315541842880FEC3AA3C41F80485B16B3155413354A41DC4AA3C41B3E5E4B76B315541B412E33EC4AA3C4131DC90BD6B3155419C9EFB61C4AA3C4198DB7DC26B315541E896A986C4AA3C41194BA2C66B3155410A85A5ACC4AA3C41A118F6C96B315541D967A5D3C4AA3C4195C872CC6B3155417D435DFBC4AA3C417E8213CE6B315541C3B57F23C5AA3C41791AD5CE6B315541EE8CBE4BC5AA3C415E17B6CE6B315541BA5FCB73C5AA3C4189B5B6CD6B3155418826589BC5AA3C418CE6D8CB6B315541DBD217C2C5AA3C41684D20C96B3155415AE6BEE7C5AA3C412F3792C56B315541C704040CC6AA3C411C9135C16B3155411984A02EC6AA3C41B9DA12BC6B31554110F5504FC6AA3C41861534B66B31554167A7D56DC6AA3C415BB1A4AF6B3155417C25F389C6AA3C412F7671A86B31554169A872A3C6AA3C41446BA8A06B315541618222BAC6AA3C41A3BB58986B315541FF7FD6CDC6AA3C41B498928F6B315541023E68DEC6AA3C41A11A67866B315541F573B7EBC6AA3C410E1FE87C6B315541C633AAF5C6AA3C41652628736B315541971B2DFCC6AA3C41712F3A696B315541837B33FFC6AA3C41E092315F6B315541ED6EB7FEC6AA3C4115DD21556B315541F2D1C1FDC6AA3C415BAABB516B3155415CEE27DAC6AA3C41BAC6212E6B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1059, 10059, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000013000000E77B1D96B2AA3C41AD6256E56A315541B39EB5DCD7AA3C413AEED0FF6A315541A46B470AD8AA3C41D0543C6167315541235A3C23D3AA3C41A1C1605D673155418E5A1FFFD2AA3C41224BAE3B6A3155411D17FEA6BBAA3C41D8C34F296A315541B38982AFBBAA3C41C5E61F7C693155415DD86084B8AA3C41FCA1A17969315541819564A2B8AA3C413F9C55176731554102A2FD8EC0AA3C4152EE002067315541D3126D90C0AA3C4152171F76673155411B9DD255D0AA3C41B173EA7167315541EB62264CD0AA3C41DCD58C2D6531554177C4F882C1AA3C4108377E31653155419B3B3C94C1AA3C419F7403356431554140321D22B8AA3C415FFDAD2A64315541FBA6B81BB8AA3C41AF5F2C8864315541CF8570E6B2AA3C41323C138464315541E77B1D96B2AA3C41AD6256E56A315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1060, 10060, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000B00000098990440AAAA3C41CFA65F8A72315541F3FF4F0BB7AA3C41126B2F126D3155416B4A70C2ADAA3C417865B0B66B315541070508F0A7AA3C417392D6336E3155417143846E99AA3C414B3AED146C3155413254284493AA3C4188D9ACB76E315541665A0FE8A2AA3C4125820A01713155417D51CCA49DAA3C4183D8FE40733155417A858937AFAA3C4189991ED175315541187D81A9B3AA3C415250A3EA7331554198990440AAAA3C41CFA65F8A72315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1061, 10061, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000700000003D1B41EC8AA3C41F330DF347031554147F0B7BCC2AA3C419D8EF8BE723155412E46136FCAAA3C41EF4700C473315541E2F75F2ED7AA3C41B9E775C06D31554196B886ACCEAA3C416631F19F6C3155419EE7364FC7AA3C41F23362197031554103D1B41EC8AA3C41F330DF3470315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1062, 10062, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000001A00000070F7E6DEBDAA3C410F91E4F41E3155411B5FDE0BC0AA3C411E48C30C1F31554185965442C0AA3C41D0E256BD1E315541732D9CABC6AA3C410D7BCE6315315541EB4DF3C2B6AA3C410D9643B514315541705B7CFCB2AA3C416D09B1361A3155415743A0539FAA3C41E960FF5E193155412625355A8EAA3C41F8EC10203231554195CD4502A6AA3C41049D9C23333155415961E19F9FAA3C4158BE19733C315541A4000F62B4AA3C41C4DED9563D3155412FE5D799B7AA3C41EB947FA5383155416678FDE8B9AA3C41D04DD5BE38315541652DECA4BCAA3C416F9BABD634315541F49A47E6BAAA3C411FFD27C734315541AA65E76EC0AA3C41F07ADF1C2D31554192FBA902D0AA3C41C6E7C6C72D31554172AF8248CFAA3C41953840D72E315541141946C2E2AA3C41D12AEDAC2F3155414FF344D0E3AA3C4139D72E232E31554106E7DF26DDAA3C41273918DA2D315541C3A23B26E1AA3C414A70B20528315541383701AAC4AA3C411B472CCD26315541C5F43147C3AA3C4149869AD228315541A73EF373B7AA3C419652DD502831554170F7E6DEBDAA3C410F91E4F41E315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1063, 10063, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000A5AFCEB66FAA3C41AC40FA76F6305541DD42509576AA3C4108A32893F6305541D59EC3F676AA3C418BEF1917F5305541950B421870AA3C412F8DEBFAF4305541A5AFCEB66FAA3C41AC40FA76F6305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1064, 10064, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000F0000002F58AA2278AA3C41A966EC1EF83055410262228D77AA3C4190AAC128F93055412CC5037675AA3C410D97F115F930554180E6710875AA3C417E06BCD8F9305541A433C00176AA3C4134C77FE1F93055412D4616F374AA3C4123DFADC2FB3055410ECDA61A77AA3C41E1F311D6FB305541EC1E75EA76AA3C41399BBF2BFC305541B0C421217CAA3C410DADAB5AFC305541632EDA527CAA3C41EC624702FC3055410602DC407EAA3C415D73A513FC305541ABDAB87A7FAA3C41A50EABE5F93055416D681AAA7CAA3C41A17C55CCF93055418F967A807DAA3C41DBB8384FF83055412F58AA2278AA3C41A966EC1EF8305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1065, 10065, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000070000001D11876E98AA3C41F9C79396F330554102E055179BAA3C4133A6629DF33055410DCCD7259BAA3C41EBA2B642F3305541025873BC9BAA3C411E313844F3305541E2C16CD49BAA3C416C5B61AEF23055410767029598AA3C41FEEE10A6F23055411D11876E98AA3C41F9C79396F3305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1068, 10068, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000026CD2FC5A6AA3C4135F07BDCE8305541C1BF4497A1AA3C418EB3F627EA30554178CA00BCA5AA3C413CB62531EB305541DDD7EBE9AAAA3C41E3F2AAE5E930554126CD2FC5A6AA3C4135F07BDCE8305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1080, 10080, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000461CCACAC4AA3C416AFA0D907B315541E2312F3BC7AA3C41617DAF497C315541DDFE6AE8C9AA3C41A776A1B97B31554142E90578C7AA3C41B0F3FFFF7A315541461CCACAC4AA3C416AFA0D907B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1081, 10081, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000091B17D7B67AA3C4155905697E6305541B26160B96AAA3C41308AB9C1E6305541E3FB46486BAA3C41A9FCDB12E630554113EC600968AA3C416CC36BE8E530554191B17D7B67AA3C4155905697E6305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1082, 10082, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000B0000008954EFE300AB3C41EC0C09A64431554197F4332D00AB3C4199BB37CD45315541799387F004AB3C41C2DF64FC453155419139FA9A04AB3C41C7FC97864631554101DF42C709AB3C413DB4D4B94631554159FEEAE108AB3C41B3F94E2C483155410597B2C40EAB3C41EF449B66483155415ECE631D0FAB3C41B29E55D7473155411B808C8413AB3C4120DCF10248315541F4E67B1D15AB3C410F715B6E453155418954EFE300AB3C41EC0C09A644315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1083, 10083, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000001200000094FD129A0BAB3C411B303EE7443155414B7089E90EAB3C414E8BB1C73F3155415DE4A7FD11AB3C41410BD7D23A315541B57C455627AB3C41318DFAA63B315541F56663D22AAB3C4161E1B00A3631554151BCBDB303AB3C415D06EB8534315541F924940104AB3C412FF4990834315541E79E8DD1FAAA3C41CC744BAD333155416C48462DFAAA3C413095C7B5343155417DFEC635F7AA3C41B0AD4B983431554124E40EECF4AA3C4115434A47383155417C7B5FB9F8AA3C411718136D383155416BAFA6E1F5AA3C4181AFB0003D315541A5A5DB0CF2AA3C4145899DDA3C315541599EB1F9F0AA3C4122989F953E315541F1D7EB85F9AA3C41C7B720F33E3155415B23DA3BF6AA3C41E181540A4431554194FD129A0BAB3C411B303EE744315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1801, 18001, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000009000000A15070860CAB3C41AE0CF9E72C31554165D1602912AB3C41128213362C3155412584473E13AB3C413B2073C22C3155419A8A05FE1AAB3C415DF5E0CD2B3155416C7F0A3E16AB3C417DB17165293155412C1FB5CC0EAB3C418F2659502A31554170B5F6C30FAB3C41BD82B1CD2A3155417D8E9DD209AB3C4126C341892B315541A15070860CAB3C41AE0CF9E72C315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1802, 18002, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000008E5134C6FEAA3C41A4BE1CC5233155413B932E5303AB3C419C0CC45524315541A3EEF59410AB3C41E06A83A91D31554102ADFB070CAB3C41E61CDC181D3155418E5134C6FEAA3C41A4BE1CC523315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1803, 18003, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000002679B8AF03AB3C41E822D558243155411D387DE707AB3C418DADE2DE243155417571818B10AB3C418F434D85203155417AB2BC530CAB3C41E8B83FFF1F3155412679B8AF03AB3C41E822D55824315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1804, 18004, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '0103000020910800000100000005000000E98381D8F8AA3C41D5454CAF233155414D22583BFCAA3C41502FCC1E24315541FA7EB05905AB3C41A0968BB01F31554195E0D9F601AB3C4125AD0B411F315541E98381D8F8AA3C41D5454CAF23315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1805, 18005, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '010300002091080000010000000500000070C9E46B0DAB3C4137D4856322315541D0EAC83211AB3C41C79978D722315541F0A829AF13AB3C4131B0CC8B213155418F8745E80FAB3C41A1EAD9172131554170C9E46B0DAB3C4137D4856322315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1806, 18006, 5, 1001, 1, 104, 10002, '2018-02-02 09:00:00', NULL, '01030000209108000001000000050000003E34AD6B01AB3C41CB4ED2131F3155419411572906AB3C419A016DAD1F315541C6EDCAA00BAB3C418C8E56FA1C3155416C1021E306AB3C41BDDBBB601C3155413E34AD6B01AB3C41CB4ED2131F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000000, 1000000, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000070000009301B41E0DA83C415FB6485229315541A6C4768C15A83C415FB64852293155413EC3F07C15A83C41E26941042631554127E7D11922A83C4189E95F00263155418EE8572922A83C4154BD6217243155415DFD21F00CA83C4107BE251F243155419301B41E0DA83C415FB6485229315541', '2019-06-11 15:15:17.497342');
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000006, 1000002, 5, 1001, 1, 101, 10001, '2019-05-30 14:50:00.066082', NULL, '01030000209108000001000000050000006CBF296F71A93C41DB6FCA85523155419D2603DC7AA93C411B2C2893343155410C3FF0E3B1A93C415FCEB27F3431554192106F27AFA93C411F125572523155416CBF296F71A93C41DB6FCA8552315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000036, 1000030, 5, 1001, 1, 101, 10001, '2020-01-28 15:29:32', NULL, '01030000209108000001000000050000008AA13A5BACA93C414227A7D5AF3155418AA13A5BACA93C416B9C8E5CAC315541CF072FE2C0A93C41E1C0D369AC315541F7751AADC0A93C412E7031F0AF3155418AA13A5BACA93C414227A7D5AF315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000037, 1000031, 5, 1001, 1, 101, 10001, '2020-01-31 08:48:16.836979', NULL, '01030000209108000001000000050000002F02D344AFA93C4180AEA44DA8315541C1D7B600B0A93C41736D2300A5315541055058C897A93C41B17159EDA4315541F871083297A93C41A0B03F44A83155412F02D344AFA93C4180AEA44DA8315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1000041, 1000032, 5, 1001, 1, 107, 10001, '2020-01-31 08:48:16', NULL, '01030000209108000001000000050000005810FD2AA6A93C4180851028A03155415810FD2AA6A93C4164663F449C315541354DAAF98EA93C41266209579C3155412F5E82AE8EA93C414281DA3AA03155415810FD2AA6A93C4180851028A0315541', NULL);
-- buildings.building_use
diff --git a/db/tests/testdata/db/buildings_bulk_load.sql b/db/tests/testdata/db/buildings_bulk_load.sql
index 0a958a10..ecf02cae 100644
--- a/db/tests/testdata/db/buildings_bulk_load.sql
+++ b/db/tests/testdata/db/buildings_bulk_load.sql
@@ -11,103 +11,103 @@ INSERT INTO buildings_bulk_load.supplied_datasets (supplied_dataset_id, descript
-- buildings_bulk_load.bulk_load_outlines
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2001, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000FB0DA8AB6BA83C4167030B97213155413A8A8B2B87A83C4167030B9721315541558CD44287A83C41D248AE4A1C315541C609167D6BA83C41FF089F4C1C315541FB0DA8AB6BA83C4167030B9721315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2002, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000080000001489153E9DA83C416624D80323315541AE878F2E9DA83C4127CEAAD124315541A1416B37A5A83C41DACE6DD92431554170447756A5A83C414787BBC1213155416F6303BDB1A83C41FB877EC9213155413D660FDCB1A83C41366B438B20315541628852369DA83C41AF2A7185203155411489153E9DA83C416624D80323315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2003, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000772E37A2D0A83C41C57C6FAF2231554142E46BBAD7A83C4110DE7BAD22315541F7D1B2B2D7A83C410DB2F0D620315541B5ACCF8ED0A83C416632D2DA20315541772E37A2D0A83C41C57C6FAF22315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2004, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000003897AF1E28A93C415A5857A426315541C8139BAF4EA93C415A5857A4263155416519B3ED4EA93C4170844C7C1D3155413897AF1E28A93C413F87589B1D3155413897AF1E28A93C415A5857A426315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2005, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000901BBDFA92A83C413522A83D1931554180E266C2BCA83C418FA289411931554119E1E0B2BCA83C419A3884AD14315541901BBDFA92A83C4140B8A2A914315541901BBDFA92A83C413522A83D19315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2006, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000900000071EA6ADB90A83C415149C4560A3155410EF0821991A83C41FD0A01B512315541CE608337C2A83C41718D2BD0123155413E7045E2C2A83C412ECD74810A315541234F7064B6A83C41D34C937D0A31554187495826B6A83C416550E62C10315541B70196EC9CA83C41BFD0C73010315541230ABA499DA83C41064A875E0A31554171EA6ADB90A83C415149C4560A315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2007, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000500000037D65B0B9BA83C41B3806D3307315541B38F842EB9A83C414D7FE7230731554187992E9BB9A83C41ECE45278003155416CDAED399BA83C4139E48F700031554137D65B0B9BA83C41B3806D3307315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2008, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000007C515C3F8AA83C417C19F035FD3055415B911A60CFA83C416117A71EFD305541C7993EBDCFA83C418BB688EFF8305541DF4B44018AA83C4170B43FD8F83055417C515C3F8AA83C417C19F035FD305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2009, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000D0000005A224B267DA83C41687E9882F63055419B4A3361D7A83C411C7F5B8AF630554138504B9FD7A83C4116D17205EF3055414167668ECDA83C417ED2F814EF3055414167668ECDA83C418608A06AF1305541543CE7A3C0A83C412C88BE66F1305541BC3D6DB3C0A83C41342A30DFF23055418D64F52196A83C41B22661B8F230554149DFBEE795A83C41565D05C9EC305541068BD2BB8CA83C416DBDFDC9EC3055419F894CAC8CA83C41E1CCE0D6EE305541EE1927C97CA83C41E1CCE0D6EE3055415A224B267DA83C41687E9882F6305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2010, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000070000009301B41E0DA83C415FB6485229315541A6C4768C15A83C415FB64852293155413EC3F07C15A83C41E26941042631554127E7D11922A83C4189E95F00263155418EE8572922A83C4154BD6217243155415DFD21F00CA83C4107BE251F243155419301B41E0DA83C415FB6485229315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2011, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000273225049FA83C415DDEB30C2B315541B7F1184BA7A83C415EDEB30C2B3155416BF2DB52A7A83C410ADF345028315541DB32E80B9FA83C4109DF345028315541273225049FA83C415DDEB30C2B315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2012, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002122A862A9A83C41379F25522831554189232E72A9A83C4123C589B92C31554174A76225AFA83C4123C589B92C3155410CA6DC15AFA83C41635F1654283155412122A862A9A83C41379F255228315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2013, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002334660A94A83C41B3FE41FA31315541EB4E6042A0A83C413A3F140032315541844DDA32A0A83C41E675FAD42E31554107321DF393A83C41B9B509D32E3155412334660A94A83C41B3FE41FA31315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2014, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000003FACAF4AA4A83C41C17FE60532315541EB1437E0B3A83C41B4FE41FA313155413C1B1226B4A83C417B3771E62E315541A2A6970CA4A83C417B3771E62E3155413FACAF4AA4A83C41C17FE60532315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2015, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000B72B42AD93A83C41DBA99AD733315541652534ACB3A83C41D1736DD2333155411C122BC1B3A83C41D307295F32315541852E4ECC93A83C412D880A6332315541B72B42AD93A83C41DBA99AD733315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2016, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000004F8371668CA83C418EA17E8B3E315541C73EDB8F9FA83C418FA17E8B3E315541024A0B0CA0A83C4191293D5C39315541898EA1E28CA83C41F82AC36B393155414F8371668CA83C418EA17E8B3E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2017, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002122A862A9A83C412CA796C93E31554158C4A574BBA83C4193A81CD93E315541CDDA056DBCA83C41F82AC36B393155412122A862A9A83C41F92AC36B393155412122A862A9A83C412CA796C93E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2018, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000888EA1E28CA83C41332D149444315541F02D93D59EA83C41B430E3BA44315541BF309FF49EA83C41B6B8A18B3F315541919CDD7D8DA83C4103B8DE833F315541888EA1E28CA83C41332D149444315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2019, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000004A1160A8A8A83C41E93475E944315541E2AD457CBAA83C413734B2E144315541BABE8D36BBA83C419FBDF6C13F315541F024B481A9A83C41ECBC33BA3F3155414A1160A8A8A83C41E93475E944315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2020, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000009ACC05AD8FA83C41E8D7F8584E31554186AFDBADD0A83C417515369D4E315541E9A9C36FD0A83C419BAD79204A31554175F288D28FA83C411D3817D6493155419ACC05AD8FA83C41E8D7F8584E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2021, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000007FE8F1597CA83C411E55CB7254315541C8F4BCDB89A83C4116D7B75F5431554189838B3D8BA83C41A04A82D6493155413334F8A47CA83C418B38E0F5493155417FE8F1597CA83C411E55CB7254315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2022, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000007000000A3B112627DA83C41579FC3C854315541D13DEF7B7DA83C416E24CABC5931554158B551CFA6A83C41946081F15931554132DBD4F4A6A83C41FB5E307B573155411B5D5A5589A83C4174B1EE6157315541F7FDED8A89A83C41323CACD354315541A3B112627DA83C41579FC3C854315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2023, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000007000000C48C0086A9A83C41AB7223D2593155410DEB9230C8A83C4116190DD55931554147F6C2ACC8A83C4165A0089E543155416A37926DC0A83C41FE9E828E543155418D3F5012C0A83C410B784BAC5731554150FC637BA9A83C4185BD18A557315541C48C0086A9A83C41AB7223D259315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2024, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000001DA11A816CA83C41AF1787C5593155413FD02B9A79A83C41481601B65931554179DB5B167AA83C4134ACF3104A315541BAA632BF6CA83C41CDAA6D014A3155411DA11A816CA83C41AF1787C559315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2025, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000ED82ECD428A83C411000B1DF6E315541F8D5DE8A42A83C41AD05C91D6F315541A7F76EFF43A83C41501B5EFD643155419CA47C492AA83C41E819D8ED64315541ED82ECD428A83C411000B1DF6E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2026, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000E4832C5D81A83C414604430E6F315541100F0F809DA83C41DF02BDFE6E315541D703DF039DA83C41C02A20A8653155410C73E4A280A83C4159299A9865315541E4832C5D81A83C414604430E6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2027, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000A7548091ABA83C414504430E6F3155416680CA94C3A83C41AD05C91D6F31554115A25A09C5A83C4189268E7965315541D04338D7AAA83C415322FC4A65315541A7548091ABA83C414504430E6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2028, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000500000029511EC9EDA83C4115074F2D6F3155417578C67BEFA83C41C8385C436631554125B5F3EBD0A83C41262CA6B765315541D98D4B39CFA83C41770137EF6E31554129511EC9EDA83C4115074F2D6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2029, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000003A64B7ABF9A83C41780137EF6E315541A7A8B2CF1DA93C41DF02BDFE6E315541CF976A151DA93C41643E7481663155411075FF65FAA83C412F3AE252663155413A64B7ABF9A83C41780137EF6E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2030, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000154E28CB52A83C41AD05C91D6F3155416AC8C2336EA83C417C08D53C6F31554141D90AEE6EA83C415422FC4A65315541886488C353A83C41B61CE40C65315541154E28CB52A83C41AD05C91D6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2031, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2032, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000137AA177FBA83C4179BBEA34533155418CA82234FEA83C4121DEAE14443155418B106F574CA93C41ECC44EDA43315541E5466E844AA93C41E3EDAAA953315541137AA177FBA83C4179BBEA3453315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2033, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000006CBF296F71A93C41DB6FCA85523155419D2603DC7AA93C411B2C2893343155410C3FF0E3B1A93C415FCEB27F3431554192106F27AFA93C411F125572523155416CBF296F71A93C41DB6FCA8552315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2034, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.910185', '010300002091080000010000000500000021318A090EA83C413B6659B51931554121318A090EA83C419A83A4A51431554143E87BC41DA83C41412D529C14315541A941C5E91DA83C4194BCABBE1931554121318A090EA83C413B6659B519315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2035, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.910185', '01030000209108000001000000050000009116537F40A83C415C2EAD301831554113C8A7D981A83C415C2EAD301831554113C8A7D981A83C41D69FD76D0F3155419116537F40A83C41D69FD76D0F3155419116537F40A83C415C2EAD3018315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2036, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:49:59.910185', '01030000209108000001000000070000005847509D0EA83C4166FFC8A30E315541F9664A5919A83C41C155948F0E315541F9664A5919A83C4135521F3F083155419F5C0E8034A83C4135521F3F083155419F5C0E8034A83C416FD0E416053155415847509D0EA83C416FD0E416053155415847509D0EA83C4166FFC8A30E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1000000, 3, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-05-30 14:50:00.416863', '010300002091080000010000000500000008247ADF76A93C41203492F8263155418BEE6ABAA9A93C414BD3F7EB263155414A4F05C7A9A93C41227DE4CA1C315541CD3F76A076A93C4106D73FE71C31554108247ADF76A93C41203492F826315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2061, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000080000004A2D2BB16BAA3C412358C27EEC3055412A7DF79372AA3C41228635C8EC305541409DC4FC6DAA3C41B260A13BED3055415DAE82766FAA3C41D143EC6BEE305541D6999D5F75AA3C4140CCF7FBED3055411FDDF1C377AA3C41E5BFA1D0EA305541FAEAE1546DAA3C419B69A352EA3055414A2D2BB16BAA3C412358C27EEC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2062, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000067062E4E5DAA3C4119C24EF2F1305541B8A8FB1264AA3C41BEC70F40F2305541B460C83865AA3C413435D7A6F030554162BEFA735EAA3C418F2F1659F030554167062E4E5DAA3C4119C24EF2F1305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2037, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000F000000B0D020FCB3AA3C41F06BA23C3C3155416C702A79B5AA3C41A21446233A3155413663C9AAB5AA3C4183AA4BDD393155418B15DA4CB7AA3C4159CED2EF39315541872E4DBEB7AA3C417197D44F39315541327C3C1CB6AA3C419C734D3D39315541FA1A177FB6AA3C41F4A0E4B1383155418D0DBC5AB9AA3C414C7751D23831554152E15BDCBBAA3C41D3A1764935315541BFEEB600B9AA3C4170CB0929353155411785D9ECB9AA3C418BF706DC33315541E120294AA7AA3C41DB54990833315541C0B61B81A0AA3C41B8C9499A3C315541F61ACC23B3AA3C41736CB76D3D315541B0D020FCB3AA3C41F06BA23C3C315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2038, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000E4BD8B64A0AA3C41FEB735C6343155414E9274C0A4AA3C4152E19BF534315541CECE37F1A5AA3C4198252C353331554164FA4E95A1AA3C4143FCC50533315541E4BD8B64A0AA3C41FEB735C634315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2039, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000180000009A2929F0ABAA3C4199DFC077233155410556482CB2AA3C41D293EA531A315541BF4E24179FAA3C414922A483193155410C0808BE92AA3C41D9FCAC9D2B315541541FC47391AA3C417CD49DED3131554194441F17BAAA3C4151FDA0B93331554120B615C1BEAA3C4147CB207F2D315541E16D73D2A5AA3C417217026F2C315541CA754B2CA6AA3C4169294DEB2B315541999815B7DBAA3C415CB9AE332E315541240BFBABDFAA3C417161D366283155410471FD20C5AA3C41FA0B2045273155413669229CC3AA3C41FA292B7F29315541CF0261F4B4AA3C4194F436DF283155412CFA7DD2B5AA3C417E899B9927315541E4D7727AA9AA3C417584E112273155414FFC2099A9AA3C41B8B9E7E526315541A85B6E30B1AA3C41D0CAA23927315541B572AB7FB5AA3C41F3FF6AC726315541FC73B04DB8AA3C4102C307E626315541AF8EA960BAAA3C41EC49A6DB2331554164CC7E29B4AA3C4175A2CF9723315541D1063F03B4AA3C41B9E5E1CF233155419A2929F0ABAA3C4199DFC07723315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2040, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000F2E0E237AEAA3C41832CA04F23315541261A6F01BAAA3C413D81FBD923315541B19DDB4BBDAA3C41A475BC711F315541A42C1684B1AA3C41A60B00E51E315541F2E0E237AEAA3C41832CA04F23315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2041, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000002EF2FE89B1AA3C41A849B9E91E31554189FD6FB7BEAA3C41A09BC67E1F315541937CFEBDC5AA3C4107FF882516315541AAC35F97B8AA3C41E5F06787153155412EF2FE89B1AA3C41A849B9E91E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2042, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B00000021871454D8AA3C414473996B56315541A9015AB4DEAA3C418D7874BC56315541D1587FF2DDAA3C41A95B0BB157315541C4558E50E2AA3C4131966DE8573155415115111BE3AA3C41649EEAE856315541C6F7C5ABE7AA3C41EC1ECF22573155411680EB20EDAA3C410BC4004050315541AD23791AE1AA3C415BA182A74F31554132F20505E1AA3C41CBF892C24F3155417FF46EBCDDAA3C41375BEF984F31554121871454D8AA3C414473996B56315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2043, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000E830808FBEAA3C41DD853FE84D315541E9DF0557C4AA3C41DE5040264E31554159B06415C5AA3C41E738560A4D315541693F29FFC7AA3C41910F97294D315541977DECBDC8AA3C417E30170D4C315541BD1B0B35C6AA3C4154CAE5F14B3155412A7E6301CBAA3C41750BF8C944315541F2A1FAD8C4AA3C41E8CFE78744315541E830808FBEAA3C41DD853FE84D315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2044, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000006000000F3A609C9BFAA3C419D54EA8E453155417DCCC5ECC0AA3C4111ABDEB145315541C042A42FC3AA3C41AC73E9834431554171AAD605B6AA3C412A0A28F0423155410434F8C2B3AA3C418F411D1E44315541F3A609C9BFAA3C419D54EA8E45315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2045, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000D5287F2CB0AA3C4116B2C6644D315541A0225E8CB4AA3C418E97AA8F4C31554134B1E98E9FAA3C41C5EFDAAA4531554169B70A2F9BAA3C41430AF77F46315541D5287F2CB0AA3C4116B2C6644D315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2046, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000090000008F9F32DBBAAA3C41BC41931254315541CCCADDF6BEAA3C411EF30BA25331554185AA5ED5C3AA3C41C3FB247A5631554183891E15C7AA3C4183B32521563155414C07A10FB9AA3C411B7E7BF04D31554144390B40B4AA3C41DA1243744E3155413D098D90B5AA3C41B8E3D1384F315541E0CCB704B3AA3C41D6E5907E4F3155418F9F32DBBAAA3C41BC41931254315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2047, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000057D543BC8AA3C4132FBE3035D3155416FBFD78DC2AA3C410947770A5931554160E2551FADAA3C419683EE135831554170713B88AAAA3C416C823FAE5B315541057D543BC8AA3C4132FBE3035D315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2048, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000080000009B7A599BACAA3C414D3B08744C315541C57ABCD09AAA3C4108BE3198463155416ECD2D6794AA3C412D93E1CE4731554192B64CDDA4AA3C41C0E67F3E4D315541A0E63FB8A3AA3C4151516F5C4D315541B254CDDEAFAA3C4171C52A73543155416D288CE5B8AA3C4148891F87533155419B7A599BACAA3C414D3B08744C315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2049, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000005D74ECB8C6AA3C41B896683E6A3155415ABD1EBCC6AA3C410FB2D1E76A31554119643FE7CCAA3C4153FAF4E56A3155411C1B0DE4CCAA3C41F1DE8B3C6A3155415D74ECB8C6AA3C41B896683E6A315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2050, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000001D00000014735211AEAA3C41C4E79218713155418CE6331FB0AA3C4108EF425C713155415696CF6AB1AA3C41647D3DBB70315541DE22EE5CAFAA3C4120768D7770315541A79B1FA1B6AA3C41B22149F06C315541833CB3D4ADAA3C41FBAA5ECE6B315541B33A8360A9AA3C418DBF04F86D3155415C20FF1BA8AA3C41D8C83FCE6D315541EDB0B243A7AA3C41805C47376E31554115CFF22B9FAA3C4137309E2C6D315541BDED19809FAA3C41BB58C1036D315541FAA534E499AA3C41F7DFEF4A6C31554177DAD8F293AA3C41AF72AC2D6F3155412314F8D9A2AA3C41279BBA187131554174C46BC0A1AA3C412B15739671315541E12B15A2A0AA3C416FD9E16F71315541A8B1F7869CAA3C41D1E59155733155419BC5CDECA4AA3C41DB015172743155414AE3A37EA6AA3C410E72AEBE73315541629AD0C9A8AA3C4198D36B0E7431554166D7418BAAAA3C410C35B32D733155415F70387BA8AA3C41AE8D23EA723155415164EF06A9AA3C4187A32DA2723155414095475FAAAA3C41795656D272315541F2088F13ABAA3C41DFBE12747231554119C91E4CADAA3C41282141BD72315541FB019343AEAA3C41DDB11845723155415BC1A132ACAA3C41EBC703017231554114735211AEAA3C41C4E7921871315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2051, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000048000000D73B928FDEAA3C415528FB6966315541F412C664DEAA3C41A00C3E6966315541AFADE139DEAA3C4148627069663155412A9D380FDEAA3C4128C7916A6631554144FF1DE5DDAA3C417D07A06C6631554108DCE3BBDDAA3C41E521976F663155414986DA93DDAA3C41834F717366315541F1FE4F6DDDAA3C41D80E277866315541005D8F48DDAA3C41C832AF7D663155416A3BE025DDAA3C413CF4FE8366315541D72D8605DDAA3C4135070A8B66315541F03BC0E7DCAA3C41ADB2C29266315541E367C8CCDCAA3C418FEB199B66315541533CD3B4DCAA3C41BB71FFA366315541FB660FA0DCAA3C41D4EF61AD66315541455CA58EDCAA3C41191D2FB766315541430AB780DCAA3C41D3E053C166315541E6945F76DCAA3C41C077BCCB66315541AD22B36FDCAA3C41569A54D666315541DAB3BE6CDCAA3C418FA407E1663155417B0A886DDCAA3C41E0BDC0EB66315541F89D0D72DCAA3C4102026BF6663155414C9F467ADCAA3C417BA9F10067315541EF082386DCAA3C414A32400B6731554166BF8B95DCAA3C41BA87421567315541B9BC62A8DCAA3C419029E51E673155417B4C83BEDCAA3C410C521528673155414A52C2D7DCAA3C41721AC130673155412E9EEEF3DCAA3C41D69DD738673155410D4CD112DDAA3C41501A494067315541932F2E34DDAA3C41530F0747673155414448C457DDAA3C412D5A044D67315541AB404E7DDDAA3C418D4F355267315541BEF582A4DDAA3C413BD28F5667315541A40416CDDDAA3C41BB660B5A673155415960B8F6DDAA3C411344A15C67315541B3EA1821DEAA3C41A1604C5E673155419613E54BDEAA3C41567C095F67315541DA78C976DEAA3C41AD26D75E673155415F8972A1DEAA3C41CEC1B55D6731554145278DCBDEAA3C417981A75B67315541824AC7F4DEAA3C411167B0586731554141A0D01CDFAA3C417339D6546731554199275B43DFAA3C411E7A2050673155418AC91B68DFAA3C412D56984A6731554120EBCA8ADFAA3C41BA94484467315541B3F824ABDFAA3C41C1813D3D673155419AEAEAC8DFAA3C4149D6843567315541A7BEE2E3DFAA3C41679D2D2D6731554137EAD7FBDFAA3C413B174824673155418FBF9B10E0AA3C412199E51A6731554144CA0522E0AA3C41DD6B181167315541471CF42FE0AA3C4123A8F30667315541A4914B3AE0AA3C4136118BFC66315541DD03F840E0AA3C41A0EEF2F166315541AF72EC43E0AA3C4167E43FE7663155410F1C2343E0AA3C4116CB86DC6631554192889D3EE0AA3C41F486DCD1663155413E876436E0AA3C417BDF55C7663155419B1D882AE0AA3C41AC5607BD6631554123671F1BE0AA3C413C0105B366315541D1694808E0AA3C41665F62A9663155410FDA27F2DFAA3C41EA3632A0663155413FD4E8D8DFAA3C41846E8697663155415C88BCBCDFAA3C411FEB6F8F663155417CDAD99DDFAA3C41A66EFE8766315541F7F67C7CDFAA3C41A37940816631554146DEE658DFAA3C41C92E437B66315541DFE55C33DFAA3C416939127666315541CC30280CDFAA3C41BBB6B771663155416A483FF5DEAA3C413D37A16F66315541D73B928FDEAA3C415528FB6966315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2052, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000069DC4036B2AA3C41CD2428BB75315541F1170EADB4AA3C41848EA90D763155414548DD87B6AA3C414D8DC62A75315541BD0C1011B4AA3C41A12345D87431554169DC4036B2AA3C41CD2428BB75315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2053, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B0000004392F68AC0AA3C41E031DB477331554197EC8EEAC4AA3C41A8BFC5D97331554120C4DFC6C2AA3C4182A36AE0743155410551B5D8C6AA3C41E6BF326875315541913D4AADD6AA3C415C50C4D06D3155415C64AF6CCEAA3C41EFA46EBD6C31554150196253C7AA3C41F12AED24703155414413AC5AC8AA3C4176A13D477031554110B50AC7C2AA3C4189CFDDF37231554117ADED8EC1AA3C41465A30CB723155414392F68AC0AA3C41E031DB4773315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2054, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000A7DA3CB2C0AA3C417DBD8E666731554157F4A090D0AA3C41CDA34D7667315541EB360BB6D0AA3C419431FC1A653155410BEF729AC9AA3C4148B4EE13653155410E03C8A0C9AA3C41A0D2D2AD643155411E356885C7AA3C4136A1BBAB643155418CDB687FC7AA3C41B426710C65315541ACD7FCD7C0AA3C411AEFD60565315541A7DA3CB2C0AA3C417DBD8E6667315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2055, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000001400000000E3F8BAD7AA3C4132EEA1FC6831554100E3F8BAD7AA3C414AFD6739683155419744AC98D8AA3C414AFD6739683155419744AC98D8AA3C419EE2C0C76731554152CD51E5D7AA3C419EE2C0C76731554152CD51E5D7AA3C411077F3906731554103541F5CDBAA3C411077F39067315541C44D9972DBAA3C4116BFCC4A6431554158B0A620D1AA3C414CCB824664315541B4F9EA06D1AA3C417C5C3E2165315541DDF6F375D7AA3C4168A7AE2465315541F3C3AD81D7AA3C410496D86B67315541601E95D1D3AA3C410496D86B67315541601E95D1D3AA3C4132EEA1FC68315541B7A8A205D3AA3C4145CD80FF68315541B7A8A205D3AA3C41910851AE693155414039E195D1AA3C41910851AE693155414039E195D1AA3C41F846DFF76A31554100E3F8BAD7AA3C41F846DFF76A31554100E3F8BAD7AA3C4132EEA1FC68315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2056, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B000000C8A30A59C2AA3C41A2AB1BE66A315541C8A30A59C2AA3C41A81A3F2B6A315541E4A70E48BBAA3C41A81A3F2B6A315541E4A70E48BBAA3C416FB95D8269315541A027D0BAB5AA3C416FB95D8269315541A027D0BAB5AA3C41778905346A31554163292F4AB6AA3C41778905346A31554163292F4AB6AA3C41013408776A315541473A6630B8AA3C41013408776A315541473A6630B8AA3C4149758FE26A315541C8A30A59C2AA3C41A2AB1BE66A315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2057, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000E5ABB0916BAA3C41F4D64743F9305541D01AC7DC76AA3C417FF3BFC6F9305541D919DC1378AA3C419454C868F8305541711076E16CAA3C41D6C589C9F7305541E5ABB0916BAA3C41F4D64743F9305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2058, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000070000003CF406C666AA3C410F6E24DEE83055414D3BDF6D6CAA3C413314F41FE9305541A9289CA56CAA3C41D44D50D3E830554150256FC676AA3C414F592B49E9305541C44E5A8678AA3C414D0048E1E63055410E0BAFBD68AA3C41AE4E9D29E63055413CF406C666AA3C410F6E24DEE8305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2059, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000002A0000005A9F961958AA3C41192CFEDBE6305541E8AC19A060AA3C4185DBEB44E73055410E6613DB60AA3C413AD140F8E63055419DA810F660AA3C412BC735F4E6305541B9513B1061AA3C41608ED7EFE6305541D95E832961AA3C4108D328EBE63055411858D94161AA3C4192722CE6E6305541B0592E5961AA3C41F079E5E0E6305541131D746F61AA3C41B82357DBE6305541A9019D8461AA3C412AD684D5E630554126159C9861AA3C411B2172CFE6305541761B65AB61AA3C41C8BB22C9E63055413796ECBC61AA3C4191829AC2E6305541C7CB27CD61AA3C419A74DDBBE6305541CCCD0CDC61AA3C415AB1EFB4E6305541507F92E961AA3C411576D5ADE63055414D9AB0F561AA3C41451B93A6E6305541C1B45F0062AA3C41F1112D9FE63055413845990962AA3C41F3E0A797E6305541C7A6571162AA3C4137220890E6305541871C961762AA3C41E77F5288E630554174D4501C62AA3C4191B18B80E6305541C9E9841F62AA3C414779B878E6305541C266302162AA3C41B1A0DD70E6305541D245522162AA3C4122F6FF68E63055413F72EA1F62AA3C41A7492461E630554131C8F91C62AA3C41166A4F59E63055412B14821862AA3C411B228651E6305541F311861262AA3C414935CD49E6305541E36A090B62AA3C41325D2942E6305541ACB3100262AA3C4183469F3AE63055418969A1F761AA3C41278E3333E6305541E6EEC1EB61AA3C4172BEEA2BE6305541728779DE61AA3C415E4CC924E6305541B353D0CF61AA3C41D094D31DE6305541094CCFBF61AA3C41E8D90D17E6305541333B80AE61AA3C416E407C10E630554151B8ED9B61AA3C4141CD220AE6305541976AD04362AA3C41D7EFC157E530554177B0549359AA3C41906B52F9E43055415457633F59AA3C411DA2A4FFE53055415A9F961958AA3C41192CFEDBE6305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2060, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000006000000B4D7745064AA3C4154E533F4E9305541BA1FA82A63AA3C41DF776C8DEB3055415E4DF81967AA3C4128CE68A2EB3055413DBB2B3A6BAA3C41EB531ED9EB3055418EDF0D596CAA3C419C69A352EA305541B4D7745064AA3C4154E533F4E9305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2063, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000800000032EEF9ED69AA3C41C8AD78DFF33055419DA28B2072AA3C41C8AD78DFF33055411914202575AA3C4140621A34F43055419068E70E75AA3C41A186CCFFF430554150780CB179AA3C413FE3E207F5305541A6A0510D7AAA3C41339C13BAF13055410CF1EE2C6AAA3C41F7685D9EF130554132EEF9ED69AA3C41C8AD78DFF3305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2064, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000089D900816FAA3C412664B9B8F6305541E208A7D177AA3C41DF5D7DD5F63055410662982578AA3C419D214151F5305541AC32F2D46FAA3C41E4277D34F530554189D900816FAA3C412664B9B8F6305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2065, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000B81383CD8CAA3C416DA4D8C3E630554170DE367C85AA3C419DFECD87E63055415F22441085AA3C4130BA4D5AE7305541A05790618CAA3C41FF5F5896E7305541B81383CD8CAA3C416DA4D8C3E6305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2066, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000ED892AA580AA3C411CF24FDAEA3055412EDD31EE7FAA3C41B82AEAD2EB30554146141D1189AA3C415746813EEC305541FEC015C889AA3C41BA0DE745EB305541ED892AA580AA3C411CF24FDAEA305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2067, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000140000004D1841B68DAA3C412D4F8EBEEA3055411A557EDA9FAA3C41B4A4179DEB3055416AEC91DBA0AA3C416A72C64DEA305541CFEDA16DA4AA3C4149DD1694EB305541DE11BA07ABAA3C4184F2C66CEA305541CB667A6AA6AA3C413C1057CFE8305541A53B0897A5AA3C41DC2919F5E830554116D58ADFA4AA3C41AB79E0B4E83055418D13BAA3A1AA3C411977B348E9305541C34B4610A2AA3C41C1F31DBBE8305541688C4F6499AA3C41EF64BE50E83055418C988F8D99AA3C41D169F01AE83055410EE5414597AA3C41F2F4F0FEE7305541D345971F97AA3C41A2481230E83055410A739BF094AA3C41CC6A4915E83055418EB1151195AA3C419DBEECEAE73055414C5FE9FA91AA3C4145F40FC5E7305541945560CE91AA3C4101DE26FFE7305541F4B48FE38FAA3C417B34A2E7E73055414D1841B68DAA3C412D4F8EBEEA305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2068, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000CCC64C9398AA3C417836DC4BE4305541F0C044B197AA3C419CF35811E73055415D86AB55A5AA3C4156EDE256E7305541C8EB1C3BA6AA3C4145C4B086E4305541B350E395A1AA3C4157E0026FE4305541BB325DAFA1AA3C4117690B1FE43055415FE079739FAA3C41D44CA813E4305541C99E96569FAA3C410230556EE4305541CCC64C9398AA3C417836DC4BE4305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2069, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B000000299021D7CDAA3C410391E34DED305541810273C9CDAA3C4185D9D58AED305541C72FD3DDC5AA3C4146F4626EED305541ED0DA679C5AA3C41825CA02CEF305541CE9CAA9FCCAA3C418E7C4D46EF305541D3D0B878CCAA3C414266C8F3EF3055410C80D3B6CFAA3C4191FF6DFFEF305541DE7C6E9ECFAA3C41A5B0186CF030554106215E05DEAA3C410390D39FF0305541AC9F90B6DEAA3C417F447E8AED305541299021D7CDAA3C410391E34DED305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2070, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000B451778D6AAA3C4139DE4BB8FA3055412212801A6AAA3C411A6AE76AFB30554164E604B16FAA3C414F1D74A4FB305541F125FC2370AA3C416E91D8F1FA305541B451778D6AAA3C4139DE4BB8FA305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2071, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000D0000005162D19AAAAA3C41B613FEBDFD305541067E8508BFAA3C4162E4A7D2FC305541AA59B77FBDAA3C4159CE17B1FA305541C0374A0FB8AA3C41978EC0EFFA3055416EA04EEAB7AA3C41FD1F63BCFA305541D40AFDBFB2AA3C417B3CE4F7FA3055410B35E1EAB2AA3C4113777633FB305541E093CAD6B0AA3C419B1F684BFB305541891DD6A8B0AA3C41AE97940BFB305541AD830FE4ADAA3C4185B0792BFB3055411558AA1CAEAA3C418BD7177AFB305541F52E9222A9AA3C41C0686DB3FB3055415162D19AAAAA3C41B613FEBDFD305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2072, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000416383ACCEAA3C41880A8770FD305541F829D13CD0AA3C41D5D80882FB30554126D7B407C4AA3C413639EBE3FA30554178106777C2AA3C41EA6A69D2FC305541416383ACCEAA3C41880A8770FD305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2073, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000F000000B6BC47B79EAA3C41B3C92DC6F23055419C42F163A3AA3C41ABB9D600F330554177AA1FD8A2AA3C41E38E1BB3F3305541E6893995A7AA3C4185C992EEF3305541BFA65B2FA7AA3C41FB177470F43055410EC7C996AFAA3C41E06EEAD9F4305541090D0FFCAFAA3C4199B5CB58F4305541C88C1D37B1AA3C417B5C3D68F430554127CABC59B2AA3C419E54B2F5F230554147489C29B8AA3C419FADA13EF3305541A56A46A7B9AA3C41645B0258F130554131D61C47B1AA3C418238E7EEF0305541974053DBB0AA3C417C0A5578F13055418B515D5FA0AA3C41F1AB78A9F0305541B6BC47B79EAA3C41B3C92DC6F2305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2074, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000090000004F7A0712BAAA3C41D8CC3225F63055417E3715B1BEAA3C411F913767F6305541A3843D47BEAA3C41D9BFC2DDF630554113AF652BC2AA3C41EE8F5915F7305541A84798E6C3AA3C4154EFF724F5305541300A77C3BFAA3C412F82DDE9F43055419D4FAC1AC0AA3C4175343188F430554161A597BABBAA3C413E0DB049F43055414F7A0712BAAA3C41D8CC3225F6305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2075, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000277514B698AA3C41AD4E4E92F2305541F2A0DBC497AA3C41CD85CDB9F3305541E3F54DB09AAA3C413117F0DFF330554111CA86A19BAA3C4113E070B8F2305541277514B698AA3C41AD4E4E92F2305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2076, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000B21A488F84AA3C41FEA57A5CE8305541F8139C598AAA3C41686DB5A1E8305541255D09E48AAA3C41260076E8E7305541EC63B51985AA3C41BA383BA3E7305541B21A488F84AA3C41FEA57A5CE8305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2077, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000007AB499FB7EAA3C4153EDCF85E53055410C82166E7EAA3C411C47BC6DE6305541B840FA6982AA3C41962AA194E630554126737DF782AA3C41CDD0B4ACE53055417AB499FB7EAA3C4153EDCF85E5305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2078, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000130000007A3E502BB0AA3C414EF5308CEC3055412E6FA1F5A9AA3C412A716242EC30554118A075DFA8AA3C41107ED8B8ED305541FE239D9BB3AA3C411A457038EE305541AC93FED6B3AA3C4155CC80E8ED3055417FAE5269B5AA3C419CC22EFBED30554103FBD3C2B3AA3C41EE02ED33F03055418CF17DF7BAAA3C41E5289289F03055415E63BB19BCAA3C410CFCDC02EF305541650AB359BDAA3C418B06B811EF305541C21FCF5DBEAA3C41933892B3ED3055419E6CA83DBDAA3C41AA5631A6ED30554179458EA0BDAA3C410E9F0F21ED30554181CCD49BB9AA3C41EB7E4CF1EC3055415F45ADDFB9AA3C412FDCF795EC30554149C33259B7AA3C413400F477EC3055417C26BB1CB8AA3C41FC66BC70EB305541AF67A73AB1AA3C4161DBEC1EEB3055417A3E502BB0AA3C414EF5308CEC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2079, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000BE6EBAE084AA3C4134544689E8305541D22D756584AA3C418D352E42E930554171B1C2BD89AA3C416070317BE930554154F207398AAA3C41058F49C2E8305541BE6EBAE084AA3C4134544689E8305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2080, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000009E0256B698AA3C41731E686C0D3155419E0256B698AA3C416C06D6780631554122599123B2AA3C416C06D6780631554122599123B2AA3C410082DB4F0D3155419E0256B698AA3C41731E686C0D315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2081, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000001234C7B9C4AA3C41D7BF4FBC113155411234C7B9C4AA3C41B8A7DAC6083155419035F7D7E4AA3C41B8A7DAC6083155419035F7D7E4AA3C41D7BF4FBC113155411234C7B9C4AA3C41D7BF4FBC11315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2082, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000AEBFFF0769AA3C41B34A1E6A1031554186B0EAAD75AA3C41E72AD21A0F315541B62F1BEB7AAA3C41B16E57F10B31554186B0EAAD75AA3C417BB2DCC708315541AEBFFF0769AA3C41AF92907807315541D6CE14625CAA3C417BB2DCC708315541A64FE42457AA3C41B16E57F10B315541D6CE14625CAA3C41E72AD21A0F315541AEBFFF0769AA3C41B34A1E6A10315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2083, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000008000000563924FAC5AA3C418482C8B47B315541F27F9F02C5AA3C41EDB780FB7B315541F504FA80C7AA3C41088524877C31554162631FD1C9AA3C417F45F5DD7B31554104EF8BE9C5AA3C41D45D8D207B3155413E46E0C6B1AA3C41FD79F7637A315541255CDE77B1AA3C418714F0EA7A315541563924FAC5AA3C418482C8B47B315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2084, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000027683A58AFAA3C41D9360E0D75315541BAB9883AB1AA3C41BFE8935675315541589B5972B2AA3C4134B5BBD674315541025B159AB0AA3C419DCABD8E7431554127683A58AFAA3C41D9360E0D75315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2085, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000F000000EA6AF74BFFAA3C412D7A2AA145315541161BDFDC04AB3C4150AE11CC45315541827BD6B504AB3C41E46D501B463155414912B7E309AB3C4165CE214446315541B3F69C1509AB3C4159FB8DE647315541BCE2B42F0EAB3C41AF70C30E483155417DE7227B0EAB3C41EFC5A0754731554173EA721B14AB3C41B606F8A147315541647B9B8F15AB3C417B4A6CAE44315541FA6E5BE908AB3C41E44DBB4A4431554183A0B1C308AB3C4175D53197443155419DBFBE4705AB3C41FF4ABC7B443155412BCFD85A05AB3C416CA0F454443155414530530400AB3C41CAECE22A44315541EA6AF74BFFAA3C412D7A2AA145315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2086, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000007247DF41F8AA3C41F98D2A62433155414BCF8F0A0CAB3C417580534844315541F435078E0FAB3C4115C8ED673F3155411D02E1C3FBAA3C410B77CB833E3155417247DF41F8AA3C41F98D2A6243315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2087, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000700000009EF471603AB3C41AC40560F34315541B587C6A9FBAA3C41852CA7483E31554117566A350FAB3C41CF58172C3F315541E1CB9BE612AB3C41053725473A315541F7CC519A26AB3C4165AB672C3B3155416CFC67792AAB3C41F229A9D93531554109EF471603AB3C41AC40560F34315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2088, 4, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000E000000B587C6A9FBAA3C41852CA7483E31554109EF471603AB3C41AC40560F343155417341A06403AB3C415BCF9CA333315541C4B59BBBF8AA3C4191F7902733315541DAA75155F5AA3C41DACA36D437315541504C12BDF8AA3C4152D2D6FB3731554172497B78F7AA3C414C7626BA39315541706A2566F5AA3C4141490BA239315541ECC17CA6F4AA3C41F53093A93A31554184FE76CCF6AA3C41E4ED92C23A3155412229DC70F5AA3C4151D387A03C31554126B57256F2AA3C4169C26B7C3C31554183D3D65EF1AA3C41AF18E2D03D315541B587C6A9FBAA3C41852CA7483E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2089, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000866F9D8514AB3C41E3B9B31B2D3155410341A3BB1BAB3C412DB867582C3155410D41818016AB3C4165A3474129315541F9797B4A0FAB3C41B0A793042A315541866F9D8514AB3C41E3B9B31B2D315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2090, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '010300002091080000010000000500000071E344A00CAB3C412C3FEBAC2C315541032E95E311AB3C41BEF338292C3155418E1506BD0FAB3C41E08831C92A31554123CEB5790AAB3C412AD5E34C2B31554171E344A00CAB3C412C3FEBAC2C315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2091, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000080A2F4B0AAB3C4101CD3FDA2A315541CD8FF8050FAB3C41468240792A3155413E4E32EC0DAB3C41EFA06B9D29315541E3C9683109AB3C412DEC6AFE29315541080A2F4B0AAB3C4101CD3FDA2A315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2092, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000FCBDBF2900AB3C410FF3252C1F3155410555BE0105AB3C41210DB1C31F31554140A5DF3B0AAB3C416A535E171D3155410807E16305AB3C41B23AD37F1C315541FCBDBF2900AB3C410FF3252C1F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2093, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '01030000209108000001000000060000000555BE0105AB3C41210DB1C31F315541FCBDBF2900AB3C410FF3252C1F3155417B26FB78F7AA3C410962E69D233155418EB1F950FCAA3C41517E713524315541B3380D66FDAA3C4157F2BEA7233155410555BE0105AB3C41210DB1C31F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2094, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '010300002091080000010000000700000095425EC402AB3C419988B44F243155415910BF8F0BAB3C412D5658D01F315541AAC2309A0FAB3C4109E653BF1D31554140A5DF3B0AAB3C416A535E171D3155410555BE0105AB3C41210DB1C31F315541B3380D66FDAA3C4157F2BEA72331554195425EC402AB3C419988B44F24315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2095, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000E9CCD47619AB3C414272E374203155413F928CEB28AB3C412B6FE86419315541092C4C501DAB3C41C85F80CE173155415E9994DB0DAB3C41215B7BDE1E315541E9CCD47619AB3C414272E37420315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2096, 6, NULL, 1, 5, 1001, 104, 1004, 10002, '2019-05-30 14:50:01.504054', '01030000209108000001000000090000005910BF8F0BAB3C412D5658D01F31554195425EC402AB3C419988B44F24315541EFD8D78907AB3C41763DFCE424315541A4D8A7890CAB3C41377A7C5622315541A2B646C610AB3C41037B0ADB2231554186078DEC12AB3C412F11A1C1213155412FBC426A0FAB3C41F1B1D853213155411C488D0F11AB3C41D5A9657C203155415910BF8F0BAB3C412D5658D01F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2001, 1, NULL, 1, 5, 1001, 102, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000FB0DA8AB6BA83C4167030B97213155413A8A8B2B87A83C4167030B9721315541558CD44287A83C41D248AE4A1C315541C609167D6BA83C41FF089F4C1C315541FB0DA8AB6BA83C4167030B9721315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2002, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000080000001489153E9DA83C416624D80323315541AE878F2E9DA83C4127CEAAD124315541A1416B37A5A83C41DACE6DD92431554170447756A5A83C414787BBC1213155416F6303BDB1A83C41FB877EC9213155413D660FDCB1A83C41366B438B20315541628852369DA83C41AF2A7185203155411489153E9DA83C416624D80323315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2003, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000772E37A2D0A83C41C57C6FAF2231554142E46BBAD7A83C4110DE7BAD22315541F7D1B2B2D7A83C410DB2F0D620315541B5ACCF8ED0A83C416632D2DA20315541772E37A2D0A83C41C57C6FAF22315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2004, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000003897AF1E28A93C415A5857A426315541C8139BAF4EA93C415A5857A4263155416519B3ED4EA93C4170844C7C1D3155413897AF1E28A93C413F87589B1D3155413897AF1E28A93C415A5857A426315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2005, 1, NULL, 1, 5, 1001, 102, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000901BBDFA92A83C413522A83D1931554180E266C2BCA83C418FA289411931554119E1E0B2BCA83C419A3884AD14315541901BBDFA92A83C4140B8A2A914315541901BBDFA92A83C413522A83D19315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2006, 1, NULL, 1, 5, 1001, 102, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000900000071EA6ADB90A83C415149C4560A3155410EF0821991A83C41FD0A01B512315541CE608337C2A83C41718D2BD0123155413E7045E2C2A83C412ECD74810A315541234F7064B6A83C41D34C937D0A31554187495826B6A83C416550E62C10315541B70196EC9CA83C41BFD0C73010315541230ABA499DA83C41064A875E0A31554171EA6ADB90A83C415149C4560A315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2007, 1, NULL, 1, 5, 1001, 102, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000500000037D65B0B9BA83C41B3806D3307315541B38F842EB9A83C414D7FE7230731554187992E9BB9A83C41ECE45278003155416CDAED399BA83C4139E48F700031554137D65B0B9BA83C41B3806D3307315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2008, 1, NULL, 1, 5, 1001, 103, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000007C515C3F8AA83C417C19F035FD3055415B911A60CFA83C416117A71EFD305541C7993EBDCFA83C418BB688EFF8305541DF4B44018AA83C4170B43FD8F83055417C515C3F8AA83C417C19F035FD305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2009, 1, NULL, 1, 5, 1001, 102, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000D0000005A224B267DA83C41687E9882F63055419B4A3361D7A83C411C7F5B8AF630554138504B9FD7A83C4116D17205EF3055414167668ECDA83C417ED2F814EF3055414167668ECDA83C418608A06AF1305541543CE7A3C0A83C412C88BE66F1305541BC3D6DB3C0A83C41342A30DFF23055418D64F52196A83C41B22661B8F230554149DFBEE795A83C41565D05C9EC305541068BD2BB8CA83C416DBDFDC9EC3055419F894CAC8CA83C41E1CCE0D6EE305541EE1927C97CA83C41E1CCE0D6EE3055415A224B267DA83C41687E9882F6305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2010, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000070000009301B41E0DA83C415FB6485229315541A6C4768C15A83C415FB64852293155413EC3F07C15A83C41E26941042631554127E7D11922A83C4189E95F00263155418EE8572922A83C4154BD6217243155415DFD21F00CA83C4107BE251F243155419301B41E0DA83C415FB6485229315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2011, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000273225049FA83C415DDEB30C2B315541B7F1184BA7A83C415EDEB30C2B3155416BF2DB52A7A83C410ADF345028315541DB32E80B9FA83C4109DF345028315541273225049FA83C415DDEB30C2B315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2012, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002122A862A9A83C41379F25522831554189232E72A9A83C4123C589B92C31554174A76225AFA83C4123C589B92C3155410CA6DC15AFA83C41635F1654283155412122A862A9A83C41379F255228315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2013, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002334660A94A83C41B3FE41FA31315541EB4E6042A0A83C413A3F140032315541844DDA32A0A83C41E675FAD42E31554107321DF393A83C41B9B509D32E3155412334660A94A83C41B3FE41FA31315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2014, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000003FACAF4AA4A83C41C17FE60532315541EB1437E0B3A83C41B4FE41FA313155413C1B1226B4A83C417B3771E62E315541A2A6970CA4A83C417B3771E62E3155413FACAF4AA4A83C41C17FE60532315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2015, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000B72B42AD93A83C41DBA99AD733315541652534ACB3A83C41D1736DD2333155411C122BC1B3A83C41D307295F32315541852E4ECC93A83C412D880A6332315541B72B42AD93A83C41DBA99AD733315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2016, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000004F8371668CA83C418EA17E8B3E315541C73EDB8F9FA83C418FA17E8B3E315541024A0B0CA0A83C4191293D5C39315541898EA1E28CA83C41F82AC36B393155414F8371668CA83C418EA17E8B3E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2017, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002122A862A9A83C412CA796C93E31554158C4A574BBA83C4193A81CD93E315541CDDA056DBCA83C41F82AC36B393155412122A862A9A83C41F92AC36B393155412122A862A9A83C412CA796C93E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2018, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000888EA1E28CA83C41332D149444315541F02D93D59EA83C41B430E3BA44315541BF309FF49EA83C41B6B8A18B3F315541919CDD7D8DA83C4103B8DE833F315541888EA1E28CA83C41332D149444315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2019, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000004A1160A8A8A83C41E93475E944315541E2AD457CBAA83C413734B2E144315541BABE8D36BBA83C419FBDF6C13F315541F024B481A9A83C41ECBC33BA3F3155414A1160A8A8A83C41E93475E944315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2020, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000009ACC05AD8FA83C41E8D7F8584E31554186AFDBADD0A83C417515369D4E315541E9A9C36FD0A83C419BAD79204A31554175F288D28FA83C411D3817D6493155419ACC05AD8FA83C41E8D7F8584E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2021, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000007FE8F1597CA83C411E55CB7254315541C8F4BCDB89A83C4116D7B75F5431554189838B3D8BA83C41A04A82D6493155413334F8A47CA83C418B38E0F5493155417FE8F1597CA83C411E55CB7254315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2022, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000007000000A3B112627DA83C41579FC3C854315541D13DEF7B7DA83C416E24CABC5931554158B551CFA6A83C41946081F15931554132DBD4F4A6A83C41FB5E307B573155411B5D5A5589A83C4174B1EE6157315541F7FDED8A89A83C41323CACD354315541A3B112627DA83C41579FC3C854315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2023, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000007000000C48C0086A9A83C41AB7223D2593155410DEB9230C8A83C4116190DD55931554147F6C2ACC8A83C4165A0089E543155416A37926DC0A83C41FE9E828E543155418D3F5012C0A83C410B784BAC5731554150FC637BA9A83C4185BD18A557315541C48C0086A9A83C41AB7223D259315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2024, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000001DA11A816CA83C41AF1787C5593155413FD02B9A79A83C41481601B65931554179DB5B167AA83C4134ACF3104A315541BAA632BF6CA83C41CDAA6D014A3155411DA11A816CA83C41AF1787C559315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2025, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000ED82ECD428A83C411000B1DF6E315541F8D5DE8A42A83C41AD05C91D6F315541A7F76EFF43A83C41501B5EFD643155419CA47C492AA83C41E819D8ED64315541ED82ECD428A83C411000B1DF6E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2026, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000E4832C5D81A83C414604430E6F315541100F0F809DA83C41DF02BDFE6E315541D703DF039DA83C41C02A20A8653155410C73E4A280A83C4159299A9865315541E4832C5D81A83C414604430E6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2027, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000A7548091ABA83C414504430E6F3155416680CA94C3A83C41AD05C91D6F31554115A25A09C5A83C4189268E7965315541D04338D7AAA83C415322FC4A65315541A7548091ABA83C414504430E6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2028, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '010300002091080000010000000500000029511EC9EDA83C4115074F2D6F3155417578C67BEFA83C41C8385C436631554125B5F3EBD0A83C41262CA6B765315541D98D4B39CFA83C41770137EF6E31554129511EC9EDA83C4115074F2D6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2029, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000003A64B7ABF9A83C41780137EF6E315541A7A8B2CF1DA93C41DF02BDFE6E315541CF976A151DA93C41643E7481663155411075FF65FAA83C412F3AE252663155413A64B7ABF9A83C41780137EF6E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2030, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000154E28CB52A83C41AD05C91D6F3155416AC8C2336EA83C417C08D53C6F31554141D90AEE6EA83C415422FC4A65315541886488C353A83C41B61CE40C65315541154E28CB52A83C41AD05C91D6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2031, 1, NULL, 1, 5, 1001, 102, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2032, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '0103000020910800000100000005000000137AA177FBA83C4179BBEA34533155418CA82234FEA83C4121DEAE14443155418B106F574CA93C41ECC44EDA43315541E5466E844AA93C41E3EDAAA953315541137AA177FBA83C4179BBEA3453315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2033, 1, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.906113', '01030000209108000001000000050000006CBF296F71A93C41DB6FCA85523155419D2603DC7AA93C411B2C2893343155410C3FF0E3B1A93C415FCEB27F3431554192106F27AFA93C411F125572523155416CBF296F71A93C41DB6FCA8552315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2034, 2, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.910185', '010300002091080000010000000500000021318A090EA83C413B6659B51931554121318A090EA83C419A83A4A51431554143E87BC41DA83C41412D529C14315541A941C5E91DA83C4194BCABBE1931554121318A090EA83C413B6659B519315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2035, 2, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.910185', '01030000209108000001000000050000009116537F40A83C415C2EAD301831554113C8A7D981A83C415C2EAD301831554113C8A7D981A83C41D69FD76D0F3155419116537F40A83C41D69FD76D0F3155419116537F40A83C415C2EAD3018315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2036, 2, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:49:59.910185', '01030000209108000001000000070000005847509D0EA83C4166FFC8A30E315541F9664A5919A83C41C155948F0E315541F9664A5919A83C4135521F3F083155419F5C0E8034A83C4135521F3F083155419F5C0E8034A83C416FD0E416053155415847509D0EA83C416FD0E416053155415847509D0EA83C4166FFC8A30E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1000000, 3, NULL, 1, 5, 1001, 101, 10001, '2019-05-30 14:50:00.416863', '010300002091080000010000000500000008247ADF76A93C41203492F8263155418BEE6ABAA9A93C414BD3F7EB263155414A4F05C7A9A93C41227DE4CA1C315541CD3F76A076A93C4106D73FE71C31554108247ADF76A93C41203492F826315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2061, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000080000004A2D2BB16BAA3C412358C27EEC3055412A7DF79372AA3C41228635C8EC305541409DC4FC6DAA3C41B260A13BED3055415DAE82766FAA3C41D143EC6BEE305541D6999D5F75AA3C4140CCF7FBED3055411FDDF1C377AA3C41E5BFA1D0EA305541FAEAE1546DAA3C419B69A352EA3055414A2D2BB16BAA3C412358C27EEC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2062, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000067062E4E5DAA3C4119C24EF2F1305541B8A8FB1264AA3C41BEC70F40F2305541B460C83865AA3C413435D7A6F030554162BEFA735EAA3C418F2F1659F030554167062E4E5DAA3C4119C24EF2F1305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2037, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000F000000B0D020FCB3AA3C41F06BA23C3C3155416C702A79B5AA3C41A21446233A3155413663C9AAB5AA3C4183AA4BDD393155418B15DA4CB7AA3C4159CED2EF39315541872E4DBEB7AA3C417197D44F39315541327C3C1CB6AA3C419C734D3D39315541FA1A177FB6AA3C41F4A0E4B1383155418D0DBC5AB9AA3C414C7751D23831554152E15BDCBBAA3C41D3A1764935315541BFEEB600B9AA3C4170CB0929353155411785D9ECB9AA3C418BF706DC33315541E120294AA7AA3C41DB54990833315541C0B61B81A0AA3C41B8C9499A3C315541F61ACC23B3AA3C41736CB76D3D315541B0D020FCB3AA3C41F06BA23C3C315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2038, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000E4BD8B64A0AA3C41FEB735C6343155414E9274C0A4AA3C4152E19BF534315541CECE37F1A5AA3C4198252C353331554164FA4E95A1AA3C4143FCC50533315541E4BD8B64A0AA3C41FEB735C634315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2039, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000180000009A2929F0ABAA3C4199DFC077233155410556482CB2AA3C41D293EA531A315541BF4E24179FAA3C414922A483193155410C0808BE92AA3C41D9FCAC9D2B315541541FC47391AA3C417CD49DED3131554194441F17BAAA3C4151FDA0B93331554120B615C1BEAA3C4147CB207F2D315541E16D73D2A5AA3C417217026F2C315541CA754B2CA6AA3C4169294DEB2B315541999815B7DBAA3C415CB9AE332E315541240BFBABDFAA3C417161D366283155410471FD20C5AA3C41FA0B2045273155413669229CC3AA3C41FA292B7F29315541CF0261F4B4AA3C4194F436DF283155412CFA7DD2B5AA3C417E899B9927315541E4D7727AA9AA3C417584E112273155414FFC2099A9AA3C41B8B9E7E526315541A85B6E30B1AA3C41D0CAA23927315541B572AB7FB5AA3C41F3FF6AC726315541FC73B04DB8AA3C4102C307E626315541AF8EA960BAAA3C41EC49A6DB2331554164CC7E29B4AA3C4175A2CF9723315541D1063F03B4AA3C41B9E5E1CF233155419A2929F0ABAA3C4199DFC07723315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2040, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000F2E0E237AEAA3C41832CA04F23315541261A6F01BAAA3C413D81FBD923315541B19DDB4BBDAA3C41A475BC711F315541A42C1684B1AA3C41A60B00E51E315541F2E0E237AEAA3C41832CA04F23315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2041, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000002EF2FE89B1AA3C41A849B9E91E31554189FD6FB7BEAA3C41A09BC67E1F315541937CFEBDC5AA3C4107FF882516315541AAC35F97B8AA3C41E5F06787153155412EF2FE89B1AA3C41A849B9E91E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2042, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B00000021871454D8AA3C414473996B56315541A9015AB4DEAA3C418D7874BC56315541D1587FF2DDAA3C41A95B0BB157315541C4558E50E2AA3C4131966DE8573155415115111BE3AA3C41649EEAE856315541C6F7C5ABE7AA3C41EC1ECF22573155411680EB20EDAA3C410BC4004050315541AD23791AE1AA3C415BA182A74F31554132F20505E1AA3C41CBF892C24F3155417FF46EBCDDAA3C41375BEF984F31554121871454D8AA3C414473996B56315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2043, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000E830808FBEAA3C41DD853FE84D315541E9DF0557C4AA3C41DE5040264E31554159B06415C5AA3C41E738560A4D315541693F29FFC7AA3C41910F97294D315541977DECBDC8AA3C417E30170D4C315541BD1B0B35C6AA3C4154CAE5F14B3155412A7E6301CBAA3C41750BF8C944315541F2A1FAD8C4AA3C41E8CFE78744315541E830808FBEAA3C41DD853FE84D315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2044, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000006000000F3A609C9BFAA3C419D54EA8E453155417DCCC5ECC0AA3C4111ABDEB145315541C042A42FC3AA3C41AC73E9834431554171AAD605B6AA3C412A0A28F0423155410434F8C2B3AA3C418F411D1E44315541F3A609C9BFAA3C419D54EA8E45315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2045, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000D5287F2CB0AA3C4116B2C6644D315541A0225E8CB4AA3C418E97AA8F4C31554134B1E98E9FAA3C41C5EFDAAA4531554169B70A2F9BAA3C41430AF77F46315541D5287F2CB0AA3C4116B2C6644D315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2046, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000090000008F9F32DBBAAA3C41BC41931254315541CCCADDF6BEAA3C411EF30BA25331554185AA5ED5C3AA3C41C3FB247A5631554183891E15C7AA3C4183B32521563155414C07A10FB9AA3C411B7E7BF04D31554144390B40B4AA3C41DA1243744E3155413D098D90B5AA3C41B8E3D1384F315541E0CCB704B3AA3C41D6E5907E4F3155418F9F32DBBAAA3C41BC41931254315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2047, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000057D543BC8AA3C4132FBE3035D3155416FBFD78DC2AA3C410947770A5931554160E2551FADAA3C419683EE135831554170713B88AAAA3C416C823FAE5B315541057D543BC8AA3C4132FBE3035D315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2048, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000080000009B7A599BACAA3C414D3B08744C315541C57ABCD09AAA3C4108BE3198463155416ECD2D6794AA3C412D93E1CE4731554192B64CDDA4AA3C41C0E67F3E4D315541A0E63FB8A3AA3C4151516F5C4D315541B254CDDEAFAA3C4171C52A73543155416D288CE5B8AA3C4148891F87533155419B7A599BACAA3C414D3B08744C315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2049, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000005D74ECB8C6AA3C41B896683E6A3155415ABD1EBCC6AA3C410FB2D1E76A31554119643FE7CCAA3C4153FAF4E56A3155411C1B0DE4CCAA3C41F1DE8B3C6A3155415D74ECB8C6AA3C41B896683E6A315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2050, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000001D00000014735211AEAA3C41C4E79218713155418CE6331FB0AA3C4108EF425C713155415696CF6AB1AA3C41647D3DBB70315541DE22EE5CAFAA3C4120768D7770315541A79B1FA1B6AA3C41B22149F06C315541833CB3D4ADAA3C41FBAA5ECE6B315541B33A8360A9AA3C418DBF04F86D3155415C20FF1BA8AA3C41D8C83FCE6D315541EDB0B243A7AA3C41805C47376E31554115CFF22B9FAA3C4137309E2C6D315541BDED19809FAA3C41BB58C1036D315541FAA534E499AA3C41F7DFEF4A6C31554177DAD8F293AA3C41AF72AC2D6F3155412314F8D9A2AA3C41279BBA187131554174C46BC0A1AA3C412B15739671315541E12B15A2A0AA3C416FD9E16F71315541A8B1F7869CAA3C41D1E59155733155419BC5CDECA4AA3C41DB015172743155414AE3A37EA6AA3C410E72AEBE73315541629AD0C9A8AA3C4198D36B0E7431554166D7418BAAAA3C410C35B32D733155415F70387BA8AA3C41AE8D23EA723155415164EF06A9AA3C4187A32DA2723155414095475FAAAA3C41795656D272315541F2088F13ABAA3C41DFBE12747231554119C91E4CADAA3C41282141BD72315541FB019343AEAA3C41DDB11845723155415BC1A132ACAA3C41EBC703017231554114735211AEAA3C41C4E7921871315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2051, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000048000000D73B928FDEAA3C415528FB6966315541F412C664DEAA3C41A00C3E6966315541AFADE139DEAA3C4148627069663155412A9D380FDEAA3C4128C7916A6631554144FF1DE5DDAA3C417D07A06C6631554108DCE3BBDDAA3C41E521976F663155414986DA93DDAA3C41834F717366315541F1FE4F6DDDAA3C41D80E277866315541005D8F48DDAA3C41C832AF7D663155416A3BE025DDAA3C413CF4FE8366315541D72D8605DDAA3C4135070A8B66315541F03BC0E7DCAA3C41ADB2C29266315541E367C8CCDCAA3C418FEB199B66315541533CD3B4DCAA3C41BB71FFA366315541FB660FA0DCAA3C41D4EF61AD66315541455CA58EDCAA3C41191D2FB766315541430AB780DCAA3C41D3E053C166315541E6945F76DCAA3C41C077BCCB66315541AD22B36FDCAA3C41569A54D666315541DAB3BE6CDCAA3C418FA407E1663155417B0A886DDCAA3C41E0BDC0EB66315541F89D0D72DCAA3C4102026BF6663155414C9F467ADCAA3C417BA9F10067315541EF082386DCAA3C414A32400B6731554166BF8B95DCAA3C41BA87421567315541B9BC62A8DCAA3C419029E51E673155417B4C83BEDCAA3C410C521528673155414A52C2D7DCAA3C41721AC130673155412E9EEEF3DCAA3C41D69DD738673155410D4CD112DDAA3C41501A494067315541932F2E34DDAA3C41530F0747673155414448C457DDAA3C412D5A044D67315541AB404E7DDDAA3C418D4F355267315541BEF582A4DDAA3C413BD28F5667315541A40416CDDDAA3C41BB660B5A673155415960B8F6DDAA3C411344A15C67315541B3EA1821DEAA3C41A1604C5E673155419613E54BDEAA3C41567C095F67315541DA78C976DEAA3C41AD26D75E673155415F8972A1DEAA3C41CEC1B55D6731554145278DCBDEAA3C417981A75B67315541824AC7F4DEAA3C411167B0586731554141A0D01CDFAA3C417339D6546731554199275B43DFAA3C411E7A2050673155418AC91B68DFAA3C412D56984A6731554120EBCA8ADFAA3C41BA94484467315541B3F824ABDFAA3C41C1813D3D673155419AEAEAC8DFAA3C4149D6843567315541A7BEE2E3DFAA3C41679D2D2D6731554137EAD7FBDFAA3C413B174824673155418FBF9B10E0AA3C412199E51A6731554144CA0522E0AA3C41DD6B181167315541471CF42FE0AA3C4123A8F30667315541A4914B3AE0AA3C4136118BFC66315541DD03F840E0AA3C41A0EEF2F166315541AF72EC43E0AA3C4167E43FE7663155410F1C2343E0AA3C4116CB86DC6631554192889D3EE0AA3C41F486DCD1663155413E876436E0AA3C417BDF55C7663155419B1D882AE0AA3C41AC5607BD6631554123671F1BE0AA3C413C0105B366315541D1694808E0AA3C41665F62A9663155410FDA27F2DFAA3C41EA3632A0663155413FD4E8D8DFAA3C41846E8697663155415C88BCBCDFAA3C411FEB6F8F663155417CDAD99DDFAA3C41A66EFE8766315541F7F67C7CDFAA3C41A37940816631554146DEE658DFAA3C41C92E437B66315541DFE55C33DFAA3C416939127666315541CC30280CDFAA3C41BBB6B771663155416A483FF5DEAA3C413D37A16F66315541D73B928FDEAA3C415528FB6966315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2052, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000069DC4036B2AA3C41CD2428BB75315541F1170EADB4AA3C41848EA90D763155414548DD87B6AA3C414D8DC62A75315541BD0C1011B4AA3C41A12345D87431554169DC4036B2AA3C41CD2428BB75315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2053, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B0000004392F68AC0AA3C41E031DB477331554197EC8EEAC4AA3C41A8BFC5D97331554120C4DFC6C2AA3C4182A36AE0743155410551B5D8C6AA3C41E6BF326875315541913D4AADD6AA3C415C50C4D06D3155415C64AF6CCEAA3C41EFA46EBD6C31554150196253C7AA3C41F12AED24703155414413AC5AC8AA3C4176A13D477031554110B50AC7C2AA3C4189CFDDF37231554117ADED8EC1AA3C41465A30CB723155414392F68AC0AA3C41E031DB4773315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2054, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000A7DA3CB2C0AA3C417DBD8E666731554157F4A090D0AA3C41CDA34D7667315541EB360BB6D0AA3C419431FC1A653155410BEF729AC9AA3C4148B4EE13653155410E03C8A0C9AA3C41A0D2D2AD643155411E356885C7AA3C4136A1BBAB643155418CDB687FC7AA3C41B426710C65315541ACD7FCD7C0AA3C411AEFD60565315541A7DA3CB2C0AA3C417DBD8E6667315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2055, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000001400000000E3F8BAD7AA3C4132EEA1FC6831554100E3F8BAD7AA3C414AFD6739683155419744AC98D8AA3C414AFD6739683155419744AC98D8AA3C419EE2C0C76731554152CD51E5D7AA3C419EE2C0C76731554152CD51E5D7AA3C411077F3906731554103541F5CDBAA3C411077F39067315541C44D9972DBAA3C4116BFCC4A6431554158B0A620D1AA3C414CCB824664315541B4F9EA06D1AA3C417C5C3E2165315541DDF6F375D7AA3C4168A7AE2465315541F3C3AD81D7AA3C410496D86B67315541601E95D1D3AA3C410496D86B67315541601E95D1D3AA3C4132EEA1FC68315541B7A8A205D3AA3C4145CD80FF68315541B7A8A205D3AA3C41910851AE693155414039E195D1AA3C41910851AE693155414039E195D1AA3C41F846DFF76A31554100E3F8BAD7AA3C41F846DFF76A31554100E3F8BAD7AA3C4132EEA1FC68315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2056, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B000000C8A30A59C2AA3C41A2AB1BE66A315541C8A30A59C2AA3C41A81A3F2B6A315541E4A70E48BBAA3C41A81A3F2B6A315541E4A70E48BBAA3C416FB95D8269315541A027D0BAB5AA3C416FB95D8269315541A027D0BAB5AA3C41778905346A31554163292F4AB6AA3C41778905346A31554163292F4AB6AA3C41013408776A315541473A6630B8AA3C41013408776A315541473A6630B8AA3C4149758FE26A315541C8A30A59C2AA3C41A2AB1BE66A315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2057, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000E5ABB0916BAA3C41F4D64743F9305541D01AC7DC76AA3C417FF3BFC6F9305541D919DC1378AA3C419454C868F8305541711076E16CAA3C41D6C589C9F7305541E5ABB0916BAA3C41F4D64743F9305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2058, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000070000003CF406C666AA3C410F6E24DEE83055414D3BDF6D6CAA3C413314F41FE9305541A9289CA56CAA3C41D44D50D3E830554150256FC676AA3C414F592B49E9305541C44E5A8678AA3C414D0048E1E63055410E0BAFBD68AA3C41AE4E9D29E63055413CF406C666AA3C410F6E24DEE8305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2059, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000002A0000005A9F961958AA3C41192CFEDBE6305541E8AC19A060AA3C4185DBEB44E73055410E6613DB60AA3C413AD140F8E63055419DA810F660AA3C412BC735F4E6305541B9513B1061AA3C41608ED7EFE6305541D95E832961AA3C4108D328EBE63055411858D94161AA3C4192722CE6E6305541B0592E5961AA3C41F079E5E0E6305541131D746F61AA3C41B82357DBE6305541A9019D8461AA3C412AD684D5E630554126159C9861AA3C411B2172CFE6305541761B65AB61AA3C41C8BB22C9E63055413796ECBC61AA3C4191829AC2E6305541C7CB27CD61AA3C419A74DDBBE6305541CCCD0CDC61AA3C415AB1EFB4E6305541507F92E961AA3C411576D5ADE63055414D9AB0F561AA3C41451B93A6E6305541C1B45F0062AA3C41F1112D9FE63055413845990962AA3C41F3E0A797E6305541C7A6571162AA3C4137220890E6305541871C961762AA3C41E77F5288E630554174D4501C62AA3C4191B18B80E6305541C9E9841F62AA3C414779B878E6305541C266302162AA3C41B1A0DD70E6305541D245522162AA3C4122F6FF68E63055413F72EA1F62AA3C41A7492461E630554131C8F91C62AA3C41166A4F59E63055412B14821862AA3C411B228651E6305541F311861262AA3C414935CD49E6305541E36A090B62AA3C41325D2942E6305541ACB3100262AA3C4183469F3AE63055418969A1F761AA3C41278E3333E6305541E6EEC1EB61AA3C4172BEEA2BE6305541728779DE61AA3C415E4CC924E6305541B353D0CF61AA3C41D094D31DE6305541094CCFBF61AA3C41E8D90D17E6305541333B80AE61AA3C416E407C10E630554151B8ED9B61AA3C4141CD220AE6305541976AD04362AA3C41D7EFC157E530554177B0549359AA3C41906B52F9E43055415457633F59AA3C411DA2A4FFE53055415A9F961958AA3C41192CFEDBE6305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2060, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000006000000B4D7745064AA3C4154E533F4E9305541BA1FA82A63AA3C41DF776C8DEB3055415E4DF81967AA3C4128CE68A2EB3055413DBB2B3A6BAA3C41EB531ED9EB3055418EDF0D596CAA3C419C69A352EA305541B4D7745064AA3C4154E533F4E9305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2063, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000800000032EEF9ED69AA3C41C8AD78DFF33055419DA28B2072AA3C41C8AD78DFF33055411914202575AA3C4140621A34F43055419068E70E75AA3C41A186CCFFF430554150780CB179AA3C413FE3E207F5305541A6A0510D7AAA3C41339C13BAF13055410CF1EE2C6AAA3C41F7685D9EF130554132EEF9ED69AA3C41C8AD78DFF3305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2064, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000089D900816FAA3C412664B9B8F6305541E208A7D177AA3C41DF5D7DD5F63055410662982578AA3C419D214151F5305541AC32F2D46FAA3C41E4277D34F530554189D900816FAA3C412664B9B8F6305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2065, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000B81383CD8CAA3C416DA4D8C3E630554170DE367C85AA3C419DFECD87E63055415F22441085AA3C4130BA4D5AE7305541A05790618CAA3C41FF5F5896E7305541B81383CD8CAA3C416DA4D8C3E6305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2066, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000ED892AA580AA3C411CF24FDAEA3055412EDD31EE7FAA3C41B82AEAD2EB30554146141D1189AA3C415746813EEC305541FEC015C889AA3C41BA0DE745EB305541ED892AA580AA3C411CF24FDAEA305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2067, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000140000004D1841B68DAA3C412D4F8EBEEA3055411A557EDA9FAA3C41B4A4179DEB3055416AEC91DBA0AA3C416A72C64DEA305541CFEDA16DA4AA3C4149DD1694EB305541DE11BA07ABAA3C4184F2C66CEA305541CB667A6AA6AA3C413C1057CFE8305541A53B0897A5AA3C41DC2919F5E830554116D58ADFA4AA3C41AB79E0B4E83055418D13BAA3A1AA3C411977B348E9305541C34B4610A2AA3C41C1F31DBBE8305541688C4F6499AA3C41EF64BE50E83055418C988F8D99AA3C41D169F01AE83055410EE5414597AA3C41F2F4F0FEE7305541D345971F97AA3C41A2481230E83055410A739BF094AA3C41CC6A4915E83055418EB1151195AA3C419DBEECEAE73055414C5FE9FA91AA3C4145F40FC5E7305541945560CE91AA3C4101DE26FFE7305541F4B48FE38FAA3C417B34A2E7E73055414D1841B68DAA3C412D4F8EBEEA305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2068, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000CCC64C9398AA3C417836DC4BE4305541F0C044B197AA3C419CF35811E73055415D86AB55A5AA3C4156EDE256E7305541C8EB1C3BA6AA3C4145C4B086E4305541B350E395A1AA3C4157E0026FE4305541BB325DAFA1AA3C4117690B1FE43055415FE079739FAA3C41D44CA813E4305541C99E96569FAA3C410230556EE4305541CCC64C9398AA3C417836DC4BE4305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2069, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000B000000299021D7CDAA3C410391E34DED305541810273C9CDAA3C4185D9D58AED305541C72FD3DDC5AA3C4146F4626EED305541ED0DA679C5AA3C41825CA02CEF305541CE9CAA9FCCAA3C418E7C4D46EF305541D3D0B878CCAA3C414266C8F3EF3055410C80D3B6CFAA3C4191FF6DFFEF305541DE7C6E9ECFAA3C41A5B0186CF030554106215E05DEAA3C410390D39FF0305541AC9F90B6DEAA3C417F447E8AED305541299021D7CDAA3C410391E34DED305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2070, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000B451778D6AAA3C4139DE4BB8FA3055412212801A6AAA3C411A6AE76AFB30554164E604B16FAA3C414F1D74A4FB305541F125FC2370AA3C416E91D8F1FA305541B451778D6AAA3C4139DE4BB8FA305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2071, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000D0000005162D19AAAAA3C41B613FEBDFD305541067E8508BFAA3C4162E4A7D2FC305541AA59B77FBDAA3C4159CE17B1FA305541C0374A0FB8AA3C41978EC0EFFA3055416EA04EEAB7AA3C41FD1F63BCFA305541D40AFDBFB2AA3C417B3CE4F7FA3055410B35E1EAB2AA3C4113777633FB305541E093CAD6B0AA3C419B1F684BFB305541891DD6A8B0AA3C41AE97940BFB305541AD830FE4ADAA3C4185B0792BFB3055411558AA1CAEAA3C418BD7177AFB305541F52E9222A9AA3C41C0686DB3FB3055415162D19AAAAA3C41B613FEBDFD305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2072, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000416383ACCEAA3C41880A8770FD305541F829D13CD0AA3C41D5D80882FB30554126D7B407C4AA3C413639EBE3FA30554178106777C2AA3C41EA6A69D2FC305541416383ACCEAA3C41880A8770FD305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2073, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000F000000B6BC47B79EAA3C41B3C92DC6F23055419C42F163A3AA3C41ABB9D600F330554177AA1FD8A2AA3C41E38E1BB3F3305541E6893995A7AA3C4185C992EEF3305541BFA65B2FA7AA3C41FB177470F43055410EC7C996AFAA3C41E06EEAD9F4305541090D0FFCAFAA3C4199B5CB58F4305541C88C1D37B1AA3C417B5C3D68F430554127CABC59B2AA3C419E54B2F5F230554147489C29B8AA3C419FADA13EF3305541A56A46A7B9AA3C41645B0258F130554131D61C47B1AA3C418238E7EEF0305541974053DBB0AA3C417C0A5578F13055418B515D5FA0AA3C41F1AB78A9F0305541B6BC47B79EAA3C41B3C92DC6F2305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2074, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000090000004F7A0712BAAA3C41D8CC3225F63055417E3715B1BEAA3C411F913767F6305541A3843D47BEAA3C41D9BFC2DDF630554113AF652BC2AA3C41EE8F5915F7305541A84798E6C3AA3C4154EFF724F5305541300A77C3BFAA3C412F82DDE9F43055419D4FAC1AC0AA3C4175343188F430554161A597BABBAA3C413E0DB049F43055414F7A0712BAAA3C41D8CC3225F6305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2075, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000277514B698AA3C41AD4E4E92F2305541F2A0DBC497AA3C41CD85CDB9F3305541E3F54DB09AAA3C413117F0DFF330554111CA86A19BAA3C4113E070B8F2305541277514B698AA3C41AD4E4E92F2305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2076, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000B21A488F84AA3C41FEA57A5CE8305541F8139C598AAA3C41686DB5A1E8305541255D09E48AAA3C41260076E8E7305541EC63B51985AA3C41BA383BA3E7305541B21A488F84AA3C41FEA57A5CE8305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2077, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000007AB499FB7EAA3C4153EDCF85E53055410C82166E7EAA3C411C47BC6DE6305541B840FA6982AA3C41962AA194E630554126737DF782AA3C41CDD0B4ACE53055417AB499FB7EAA3C4153EDCF85E5305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2078, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000130000007A3E502BB0AA3C414EF5308CEC3055412E6FA1F5A9AA3C412A716242EC30554118A075DFA8AA3C41107ED8B8ED305541FE239D9BB3AA3C411A457038EE305541AC93FED6B3AA3C4155CC80E8ED3055417FAE5269B5AA3C419CC22EFBED30554103FBD3C2B3AA3C41EE02ED33F03055418CF17DF7BAAA3C41E5289289F03055415E63BB19BCAA3C410CFCDC02EF305541650AB359BDAA3C418B06B811EF305541C21FCF5DBEAA3C41933892B3ED3055419E6CA83DBDAA3C41AA5631A6ED30554179458EA0BDAA3C410E9F0F21ED30554181CCD49BB9AA3C41EB7E4CF1EC3055415F45ADDFB9AA3C412FDCF795EC30554149C33259B7AA3C413400F477EC3055417C26BB1CB8AA3C41FC66BC70EB305541AF67A73AB1AA3C4161DBEC1EEB3055417A3E502BB0AA3C414EF5308CEC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2079, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000005000000BE6EBAE084AA3C4134544689E8305541D22D756584AA3C418D352E42E930554171B1C2BD89AA3C416070317BE930554154F207398AAA3C41058F49C2E8305541BE6EBAE084AA3C4134544689E8305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2080, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000009E0256B698AA3C41731E686C0D3155419E0256B698AA3C416C06D6780631554122599123B2AA3C416C06D6780631554122599123B2AA3C410082DB4F0D3155419E0256B698AA3C41731E686C0D315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2081, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000001234C7B9C4AA3C41D7BF4FBC113155411234C7B9C4AA3C41B8A7DAC6083155419035F7D7E4AA3C41B8A7DAC6083155419035F7D7E4AA3C41D7BF4FBC113155411234C7B9C4AA3C41D7BF4FBC11315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2082, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000009000000AEBFFF0769AA3C41B34A1E6A1031554186B0EAAD75AA3C41E72AD21A0F315541B62F1BEB7AAA3C41B16E57F10B31554186B0EAAD75AA3C417BB2DCC708315541AEBFFF0769AA3C41AF92907807315541D6CE14625CAA3C417BB2DCC708315541A64FE42457AA3C41B16E57F10B315541D6CE14625CAA3C41E72AD21A0F315541AEBFFF0769AA3C41B34A1E6A10315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2083, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '0103000020910800000100000008000000563924FAC5AA3C418482C8B47B315541F27F9F02C5AA3C41EDB780FB7B315541F504FA80C7AA3C41088524877C31554162631FD1C9AA3C417F45F5DD7B31554104EF8BE9C5AA3C41D45D8D207B3155413E46E0C6B1AA3C41FD79F7637A315541255CDE77B1AA3C418714F0EA7A315541563924FAC5AA3C418482C8B47B315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2084, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000500000027683A58AFAA3C41D9360E0D75315541BAB9883AB1AA3C41BFE8935675315541589B5972B2AA3C4134B5BBD674315541025B159AB0AA3C419DCABD8E7431554127683A58AFAA3C41D9360E0D75315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2085, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000F000000EA6AF74BFFAA3C412D7A2AA145315541161BDFDC04AB3C4150AE11CC45315541827BD6B504AB3C41E46D501B463155414912B7E309AB3C4165CE214446315541B3F69C1509AB3C4159FB8DE647315541BCE2B42F0EAB3C41AF70C30E483155417DE7227B0EAB3C41EFC5A0754731554173EA721B14AB3C41B606F8A147315541647B9B8F15AB3C417B4A6CAE44315541FA6E5BE908AB3C41E44DBB4A4431554183A0B1C308AB3C4175D53197443155419DBFBE4705AB3C41FF4ABC7B443155412BCFD85A05AB3C416CA0F454443155414530530400AB3C41CAECE22A44315541EA6AF74BFFAA3C412D7A2AA145315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2086, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '01030000209108000001000000050000007247DF41F8AA3C41F98D2A62433155414BCF8F0A0CAB3C417580534844315541F435078E0FAB3C4115C8ED673F3155411D02E1C3FBAA3C410B77CB833E3155417247DF41F8AA3C41F98D2A6243315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2087, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000700000009EF471603AB3C41AC40560F34315541B587C6A9FBAA3C41852CA7483E31554117566A350FAB3C41CF58172C3F315541E1CB9BE612AB3C41053725473A315541F7CC519A26AB3C4165AB672C3B3155416CFC67792AAB3C41F229A9D93531554109EF471603AB3C41AC40560F34315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2088, 4, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.326778', '010300002091080000010000000E000000B587C6A9FBAA3C41852CA7483E31554109EF471603AB3C41AC40560F343155417341A06403AB3C415BCF9CA333315541C4B59BBBF8AA3C4191F7902733315541DAA75155F5AA3C41DACA36D437315541504C12BDF8AA3C4152D2D6FB3731554172497B78F7AA3C414C7626BA39315541706A2566F5AA3C4141490BA239315541ECC17CA6F4AA3C41F53093A93A31554184FE76CCF6AA3C41E4ED92C23A3155412229DC70F5AA3C4151D387A03C31554126B57256F2AA3C4169C26B7C3C31554183D3D65EF1AA3C41AF18E2D03D315541B587C6A9FBAA3C41852CA7483E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2089, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000866F9D8514AB3C41E3B9B31B2D3155410341A3BB1BAB3C412DB867582C3155410D41818016AB3C4165A3474129315541F9797B4A0FAB3C41B0A793042A315541866F9D8514AB3C41E3B9B31B2D315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2090, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '010300002091080000010000000500000071E344A00CAB3C412C3FEBAC2C315541032E95E311AB3C41BEF338292C3155418E1506BD0FAB3C41E08831C92A31554123CEB5790AAB3C412AD5E34C2B31554171E344A00CAB3C412C3FEBAC2C315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2091, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000080A2F4B0AAB3C4101CD3FDA2A315541CD8FF8050FAB3C41468240792A3155413E4E32EC0DAB3C41EFA06B9D29315541E3C9683109AB3C412DEC6AFE29315541080A2F4B0AAB3C4101CD3FDA2A315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2092, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000FCBDBF2900AB3C410FF3252C1F3155410555BE0105AB3C41210DB1C31F31554140A5DF3B0AAB3C416A535E171D3155410807E16305AB3C41B23AD37F1C315541FCBDBF2900AB3C410FF3252C1F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2093, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '01030000209108000001000000060000000555BE0105AB3C41210DB1C31F315541FCBDBF2900AB3C410FF3252C1F3155417B26FB78F7AA3C410962E69D233155418EB1F950FCAA3C41517E713524315541B3380D66FDAA3C4157F2BEA7233155410555BE0105AB3C41210DB1C31F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2094, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '010300002091080000010000000700000095425EC402AB3C419988B44F243155415910BF8F0BAB3C412D5658D01F315541AAC2309A0FAB3C4109E653BF1D31554140A5DF3B0AAB3C416A535E171D3155410555BE0105AB3C41210DB1C31F315541B3380D66FDAA3C4157F2BEA72331554195425EC402AB3C419988B44F24315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2095, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '0103000020910800000100000005000000E9CCD47619AB3C414272E374203155413F928CEB28AB3C412B6FE86419315541092C4C501DAB3C41C85F80CE173155415E9994DB0DAB3C41215B7BDE1E315541E9CCD47619AB3C414272E37420315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2096, 6, NULL, 1, 5, 1001, 104, 10002, '2019-05-30 14:50:01.504054', '01030000209108000001000000090000005910BF8F0BAB3C412D5658D01F31554195425EC402AB3C419988B44F24315541EFD8D78907AB3C41763DFCE424315541A4D8A7890CAB3C41377A7C5622315541A2B646C610AB3C41037B0ADB2231554186078DEC12AB3C412F11A1C1213155412FBC426A0FAB3C41F1B1D853213155411C488D0F11AB3C41D5A9657C203155415910BF8F0BAB3C412D5658D01F315541');
-- buildings_bulk_load.added
diff --git a/db/tests/testdata/db/buildings_reference.sql b/db/tests/testdata/db/buildings_reference.sql
index 1cc37994..5fb448ad 100644
--- a/db/tests/testdata/db/buildings_reference.sql
+++ b/db/tests/testdata/db/buildings_reference.sql
@@ -47,11 +47,11 @@ INSERT INTO buildings_reference.river_polygons (river_polygon_id, external_river
-- buildings_reference.suburb_locality
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (101, 101, 'Kelburn', '010600002091080000010000000103000000010000000500000066CEB1BCE2A93C41897FD94E1E315541B8C07DEFDDA73C4153A0BCF81F315541EBBFD613DBA73C41E6696DE47A3155417ECF8220DFA93C41692FC9727B31554166CEB1BCE2A93C41897FD94E1E315541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (102, 102, 'Aro Valley', '010600002091080000010000000103000000010000000500000062B26B4CADA83C419541DA4D1F31554157B126DEADA83C415EEB31D0EC30554130ECB486DFA73C417A89315EED305541B8C07DEFDDA73C4153A0BCF81F31554162B26B4CADA83C419541DA4D1F315541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (103, 103, 'Newtown', '010600002091080000010000000103000000010000000500000057B126DEADA83C415EEB31D0EC30554162B26B4CADA83C419541DA4D1F31554166CEB1BCE2A93C41897FD94E1E315541E08618B0E4A93C41AD1B4CFAEB30554157B126DEADA83C415EEB31D0EC305541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (104, 104, 'Hokowhitu', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (107, 107, 'Test Island', '0106000020910800000100000001030000000100000005000000529CA67245A93C416CC0358DB1315541BB6C28D49BA93C4124914C0CB2315541C9D567C7A2A93C4180CF6FD28B315541AEB1EB2E47A93C417A11C4A58B315541529CA67245A93C416CC0358DB1315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (101, 101, 'Kelburn', 'Wellington', '010600002091080000010000000103000000010000000500000066CEB1BCE2A93C41897FD94E1E315541B8C07DEFDDA73C4153A0BCF81F315541EBBFD613DBA73C41E6696DE47A3155417ECF8220DFA93C41692FC9727B31554166CEB1BCE2A93C41897FD94E1E315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (102, 102, 'Aro Valley', 'Wellington', '010600002091080000010000000103000000010000000500000062B26B4CADA83C419541DA4D1F31554157B126DEADA83C415EEB31D0EC30554130ECB486DFA73C417A89315EED305541B8C07DEFDDA73C4153A0BCF81F31554162B26B4CADA83C419541DA4D1F315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (103, 103, 'Newtown', 'Wellington', '010600002091080000010000000103000000010000000500000057B126DEADA83C415EEB31D0EC30554162B26B4CADA83C419541DA4D1F31554166CEB1BCE2A93C41897FD94E1E315541E08618B0E4A93C41AD1B4CFAEB30554157B126DEADA83C415EEB31D0EC305541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (104, 104, 'Hokowhitu', 'Palmerston North', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (107, 107, 'Test Island', '', '0106000020910800000100000001030000000100000005000000529CA67245A93C416CC0358DB1315541BB6C28D49BA93C4124914C0CB2315541C9D567C7A2A93C4180CF6FD28B315541AEB1EB2E47A93C417A11C4A58B315541529CA67245A93C416CC0358DB1315541');
-- buildings_reference.swamp_polygons
@@ -63,11 +63,6 @@ INSERT INTO buildings_reference.swamp_polygons (swamp_polygon_id, external_swamp
INSERT INTO buildings_reference.territorial_authority (territorial_authority_id, external_territorial_authority_id, name, shape) VALUES (10002, 10002, 'Manawatu-Whanganui', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
INSERT INTO buildings_reference.territorial_authority (territorial_authority_id, external_territorial_authority_id, name, shape) VALUES (10001, 10001, 'Wellington', '0106000020910800000100000001030000000100000007000000652E991C93A73C411D143F0A86315541365AC9A1C6A73C41D290699ED3315541B4EDA920F9A93C415A63FDC3D33155419BAA7B1333AA3C411D1A1C7F863155419BC2EFE634AA3C411A459E65DA30554165460DF094A73C411A4B7BDADA305541652E991C93A73C411D143F0A86315541');
--- buildings_reference.town_city
-
-INSERT INTO buildings_reference.town_city (town_city_id, external_city_id, name, shape) VALUES (1001, 1001, 'Wellington', '0106000020910800000100000001030000000100000005000000EBBFD613DBA73C41E6696DE47A3155417ECF8220DFA93C41692FC9727B315541E08618B0E4A93C41AD1B4CFAEB30554130ECB486DFA73C417A89315EED305541EBBFD613DBA73C41E6696DE47A315541');
-INSERT INTO buildings_reference.town_city (town_city_id, external_city_id, name, shape) VALUES (1002, 1002, 'Palmerston North', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
-
-- buildings_reference.nz_imagery_survey_index
INSERT INTO buildings_reference.nz_imagery_survey_index (imagery_survey_id, name, imagery_id, index_id, set_order, ground_sample_distance, accuracy, supplier, licensor, flown_from, flown_to, shape) VALUES (1, 'Imagery One', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2016-01-01', '2016-02-01', '0106000020910800000100000001030000000100000005000000652E991C93A73C411D143F0A863155419BAA7B1333AA3C411D1A1C7F863155419BC2EFE634AA3C411A459E65DA30554165460DF094A73C411A4B7BDADA305541652E991C93A73C411D143F0A86315541');
diff --git a/db/tests/testdata/insert_test_data_publish_lds.sql b/db/tests/testdata/insert_test_data_publish_lds.sql
index 78dc62aa..df53605a 100644
--- a/db/tests/testdata/insert_test_data_publish_lds.sql
+++ b/db/tests/testdata/insert_test_data_publish_lds.sql
@@ -61,30 +61,30 @@ VALUES (1500001, '2017-01-01 09:00:00 GMT+12', NULL),
-- Building Outlines
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape)
-VALUES (150001, 1500001, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00 GMT+12', '2018-01-01 09:00:00 GMT+12', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541'),
- (160001, 1500001, 5, 1001, 1, 102, 1001, 10001, '2018-01-01 09:00:00 GMT+12', NULL, '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541'),
- (150002, 1500002, 5, 1001, 1, 102, 1001, 10001, '2017-01-02 09:00:00 GMT+12', '2018-01-02 09:00:00 GMT+12', '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541'),
- (150003, 1500003, 5, 1001, 1, 101, 1001, 10001, '2017-01-03 09:00:00 GMT+12', NULL, '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541'),
- (150004, 1500004, 5, 1001, 1, 101, 1001, 10001, '2017-01-04 09:00:00 GMT+12', NULL, '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541'),
- (150005, 1500005, 5, 1001, 1, 101, 1001, 10001, '2017-01-05 09:00:00 GMT+12', NULL, '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541'),
- (150006, 1500006, 5, 1001, 1, 102, 1001, 10001, '2017-01-06 09:00:00 GMT+12', NULL, '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541'),
- (150007, 1500007, 5, 1001, 1, 102, 1001, 10001, '2017-01-07 09:00:00 GMT+12', NULL, '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541'),
- (150008, 1500008, 5, 1001, 1, 103, 1001, 10001, '2017-01-08 09:00:00 GMT+12', NULL, '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541'),
- (150009, 1500009, 5, 1001, 1, 102, 1001, 10001, '2017-01-09 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541'),
- (150010, 1500010, 5, 1001, 1, 102, 1001, 10001, '2017-01-10 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541'),
- (150011, 1500011, 5, 1001, 1, 103, 1001, 10001, '2017-01-11 09:00:00 GMT+12', NULL, '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541'),
- (150012, 1500012, 5, 1001, 1, 102, 1001, 10001, '2017-01-12 09:00:00 GMT+12', NULL, '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541'),
- (150013, 1500013, 5, 1001, 1, 103, 1001, 10001, '2017-01-13 09:00:00 GMT+12', NULL, '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541'),
- (150014, 1500014, 5, 1001, 1, 102, 1001, 10001, '2017-01-14 09:00:00 GMT+12', NULL, '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541'),
- (150015, 1500015, 5, 1001, 1, 103, 1001, 10001, '2017-01-15 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541'),
- (150016, 1500016, 5, 1001, 1, 102, 1001, 10001, '2017-01-16 09:00:00 GMT+12', NULL, '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541'),
- (150017, 1500017, 5, 1001, 1, 102, 1001, 10001, '2017-01-17 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541'),
- (150018, 1500018, 5, 1001, 1, 103, 1001, 10001, '2017-01-18 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541'),
- (150019, 1500019, 5, 1001, 1, 103, 1001, 10001, '2017-01-19 09:00:00 GMT+12', NULL, '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541'),
- (150020, 1500020, 5, 1001, 1, 103, 1001, 10001, '2017-01-20 09:00:00 GMT+12', '2018-01-20 09:00:00 GMT+12', '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541'),
- (150021, 1500021, 5, 1001, 1, 102, 1001, 10001, '2017-01-21 09:00:00 GMT+12', NULL, '0103000020910800000100000006000000BEBC5B497EA83C41D6A394F7F330554124BEE1587EA83C4141DBC15CF63055410F0C77C78CA83C41E75AE058F6305541DA07E5988CA83C41E532F115EF30554121B7430B7EA83C41D8B14C0AEF305541BEBC5B497EA83C41D6A394F7F3305541'),
- (150022, 1500022, 5, 1001, 1, 102, 1001, 10001, '2017-01-22 09:00:00 GMT+12', '2018-01-22 09:00:00 GMT+12', '01030000209108000001000000050000001E28EFFD8DA83C418EDAFE54F630554146C3FE36B1A83C41D892055FF630554159303D24B1A83C4154F67632F33055415025E3DE8DA83C419791C62DF33055411E28EFFD8DA83C418EDAFE54F6305541');
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape)
+VALUES (150001, 1500001, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00 GMT+12', '2018-01-01 09:00:00 GMT+12', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541'),
+ (160001, 1500001, 5, 1001, 1, 102, 10001, '2018-01-01 09:00:00 GMT+12', NULL, '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541'),
+ (150002, 1500002, 5, 1001, 1, 102, 10001, '2017-01-02 09:00:00 GMT+12', '2018-01-02 09:00:00 GMT+12', '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541'),
+ (150003, 1500003, 5, 1001, 1, 101, 10001, '2017-01-03 09:00:00 GMT+12', NULL, '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541'),
+ (150004, 1500004, 5, 1001, 1, 101, 10001, '2017-01-04 09:00:00 GMT+12', NULL, '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541'),
+ (150005, 1500005, 5, 1001, 1, 101, 10001, '2017-01-05 09:00:00 GMT+12', NULL, '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541'),
+ (150006, 1500006, 5, 1001, 1, 102, 10001, '2017-01-06 09:00:00 GMT+12', NULL, '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541'),
+ (150007, 1500007, 5, 1001, 1, 102, 10001, '2017-01-07 09:00:00 GMT+12', NULL, '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541'),
+ (150008, 1500008, 5, 1001, 1, 103, 10001, '2017-01-08 09:00:00 GMT+12', NULL, '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541'),
+ (150009, 1500009, 5, 1001, 1, 102, 10001, '2017-01-09 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541'),
+ (150010, 1500010, 5, 1001, 1, 102, 10001, '2017-01-10 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541'),
+ (150011, 1500011, 5, 1001, 1, 103, 10001, '2017-01-11 09:00:00 GMT+12', NULL, '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541'),
+ (150012, 1500012, 5, 1001, 1, 102, 10001, '2017-01-12 09:00:00 GMT+12', NULL, '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541'),
+ (150013, 1500013, 5, 1001, 1, 103, 10001, '2017-01-13 09:00:00 GMT+12', NULL, '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541'),
+ (150014, 1500014, 5, 1001, 1, 102, 10001, '2017-01-14 09:00:00 GMT+12', NULL, '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541'),
+ (150015, 1500015, 5, 1001, 1, 103, 10001, '2017-01-15 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541'),
+ (150016, 1500016, 5, 1001, 1, 102, 10001, '2017-01-16 09:00:00 GMT+12', NULL, '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541'),
+ (150017, 1500017, 5, 1001, 1, 102, 10001, '2017-01-17 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541'),
+ (150018, 1500018, 5, 1001, 1, 103, 10001, '2017-01-18 09:00:00 GMT+12', NULL, '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541'),
+ (150019, 1500019, 5, 1001, 1, 103, 10001, '2017-01-19 09:00:00 GMT+12', NULL, '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541'),
+ (150020, 1500020, 5, 1001, 1, 103, 10001, '2017-01-20 09:00:00 GMT+12', '2018-01-20 09:00:00 GMT+12', '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541'),
+ (150021, 1500021, 5, 1001, 1, 102, 10001, '2017-01-21 09:00:00 GMT+12', NULL, '0103000020910800000100000006000000BEBC5B497EA83C41D6A394F7F330554124BEE1587EA83C4141DBC15CF63055410F0C77C78CA83C41E75AE058F6305541DA07E5988CA83C41E532F115EF30554121B7430B7EA83C41D8B14C0AEF305541BEBC5B497EA83C41D6A394F7F3305541'),
+ (150022, 1500022, 5, 1001, 1, 102, 10001, '2017-01-22 09:00:00 GMT+12', '2018-01-22 09:00:00 GMT+12', '01030000209108000001000000050000001E28EFFD8DA83C418EDAFE54F630554146C3FE36B1A83C41D892055FF630554159303D24B1A83C4154F67632F33055415025E3DE8DA83C419791C62DF33055411E28EFFD8DA83C418EDAFE54F6305541');
-- Building Name
diff --git a/db/tests/testdata/plugin/buildings.sql b/db/tests/testdata/plugin/buildings.sql
index 1be3dad4..5aee3f96 100644
--- a/db/tests/testdata/plugin/buildings.sql
+++ b/db/tests/testdata/plugin/buildings.sql
@@ -48,39 +48,39 @@ INSERT INTO buildings.building_name (building_name_id, building_id, building_nam
-- buildings.building_outlines
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1001, 10001, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1002, 10002, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1003, 10003, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1004, 10004, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1005, 10005, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1006, 10006, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1007, 10007, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1008, 10008, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1009, 10009, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1010, 10010, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1011, 10011, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1012, 10012, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1013, 10013, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1014, 10014, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1015, 10015, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1016, 10016, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1017, 10017, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1018, 10018, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1019, 10019, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1020, 10020, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1021, 10021, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000006000000E6BBDD5281A83C410FD98FADEC3055414CBD636281A83C417A10BD12EF305541370BF9D08FA83C412090DB0EEF305541020767A28FA83C411E68ECCBE730554149B6C51481A83C4111E747C0E7305541E6BBDD5281A83C410FD98FADEC305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1022, 10022, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000004627710791A83C41C70FFA0AEF3055416EC28040B4A83C4111C80015EF305541812FBF2DB4A83C418D2B72E8EB305541782465E890A83C41D0C6C1E3EB3055414627710791A83C41C70FFA0AEF305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1023, 10023, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000036A3DF0B5A83C419D7488FAEE305541A7AF674FD9A83C412E11801AEF30554174B2736ED9A83C41B3ECE386ED305541219B50DAB5A83C4119F63D62ED305541036A3DF0B5A83C419D7488FAEE305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1024, 10024, 5, 1001, 1, 102, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000DE25EBF790A83C411ABF608EEB305541A2CF414E98A83C41C13E7F8AEB3055416CCBAF1F98A83C4111B83EB8E5305541A92159C990A83C4110B83EB8E5305541DE25EBF790A83C411ABF608EEB305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1025, 10025, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000A9FAE07CD1A83C41A264A12DED305541A6AF674FD9A83C4149E4BF29ED30554142B57F8DD9A83C416F6EC711E8305541AAFAE07CD1A83C416F6EC711E8305541A9FAE07CD1A83C41A264A12DED305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1026, 10026, 5, 1001, 1, 103, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000080000007B6AB49EC4A83C41DDC70F00ED3055415B75A424D0A83C413321FBFCEC305541C7D4BED9CFA83C41A4A16248EA305541A1D26DB1C4A83C41FD21444CEA305541D4279898C4A83C414C53ACE5EB30554121D46304B6A83C41343C37E6EB30554109752A06B6A83C4162299EF8EC3055417B6AB49EC4A83C41DDC70F00ED305541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1027, 10027, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000007000000E81F573A9EA83C416A5F58182B3155414B1160A8A8A83C41971F491A2B31554197109DA0A8A83C41D08849E22C3155411ABBB6FEAFA83C41FD483AE42C31554150BF482DB0A83C41CE9D9F42283155419C201A429EA83C41A1DDAE4028315541E81F573A9EA83C416A5F58182B315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1028, 10028, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000E01AFAF292A83C415870661F34315541CB33BB35B5A83C41F16EE00F34315541CF3A5983B5A83C41CB73B1BD2E3155414215E2B492A83C411773EEB52E315541E01AFAF292A83C415870661F34315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1029, 10029, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000009753A5568AA83C41E5F7710A45315541A3EB4D27BDA83C4182FD8948453155412010EABABEA83C419EE046F938315541D25ED5D28AA83C41EBDF83F1383155419753A5568AA83C41E5F7710A45315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1030, 10030, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000C0000007B4A2B50CCA83C4149685AF554315541B5555BCCCCA83C41A354061C5431554199DD118CBCA83C416D5074ED533155415FD2E10FBCA83C412D8E7C98563155416D64ED108BA83C41C185583B56315541F396C53F8DA83C4128E093134F315541A9E7CB1AD3A83C418ADA7BD54E315541F50E74CDD4A83C41A86483BD493155412358E25969A83C413C5C5F6049315541E94CB2DD68A83C415DDB46EE59315541413FFBD3CBA83C41FAE05E2C5A3155417B4A2B50CCA83C4149685AF554315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1031, 10031, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000004618243924A83C4196D4B8C26F315541D08E8BC127A93C41D0DFE83E7031554145A5EBB928A93C41AEB0D72563315541802354B524A83C4173A5A7A9623155414618243924A83C4196D4B8C26F315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1032, 10032, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000020B4A9AF6A83C41B6522B9354315541994B20BBF8A83C4128E9F8A24231554158D2F189B5A93C411960CEF042315541A37FC604B4A93C415CA995D053315541020B4A9AF6A83C41B6522B9354315541', NULL);
-INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1033, 10033, 5, 1001, 1, 101, 1001, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000B9522B1575A93C417396CD1D4131554158D2F189B5A93C41A7AF2D5841315541F012C8AAB7A93C415E5B1CEA313155416EA5569A76A93C41F4285C7531315541B9522B1575A93C417396CD1D41315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1001, 10001, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1002, 10002, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1003, 10003, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1004, 10004, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1005, 10005, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1006, 10006, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1007, 10007, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1008, 10008, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1009, 10009, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1010, 10010, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1011, 10011, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1012, 10012, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1013, 10013, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1014, 10014, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1015, 10015, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1016, 10016, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1017, 10017, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1018, 10018, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1019, 10019, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1020, 10020, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1021, 10021, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000006000000E6BBDD5281A83C410FD98FADEC3055414CBD636281A83C417A10BD12EF305541370BF9D08FA83C412090DB0EEF305541020767A28FA83C411E68ECCBE730554149B6C51481A83C4111E747C0E7305541E6BBDD5281A83C410FD98FADEC305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1022, 10022, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000004627710791A83C41C70FFA0AEF3055416EC28040B4A83C4111C80015EF305541812FBF2DB4A83C418D2B72E8EB305541782465E890A83C41D0C6C1E3EB3055414627710791A83C41C70FFA0AEF305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1023, 10023, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000036A3DF0B5A83C419D7488FAEE305541A7AF674FD9A83C412E11801AEF30554174B2736ED9A83C41B3ECE386ED305541219B50DAB5A83C4119F63D62ED305541036A3DF0B5A83C419D7488FAEE305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1024, 10024, 5, 1001, 1, 102, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000DE25EBF790A83C411ABF608EEB305541A2CF414E98A83C41C13E7F8AEB3055416CCBAF1F98A83C4111B83EB8E5305541A92159C990A83C4110B83EB8E5305541DE25EBF790A83C411ABF608EEB305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1025, 10025, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000A9FAE07CD1A83C41A264A12DED305541A6AF674FD9A83C4149E4BF29ED30554142B57F8DD9A83C416F6EC711E8305541AAFAE07CD1A83C416F6EC711E8305541A9FAE07CD1A83C41A264A12DED305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1026, 10026, 5, 1001, 1, 103, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000080000007B6AB49EC4A83C41DDC70F00ED3055415B75A424D0A83C413321FBFCEC305541C7D4BED9CFA83C41A4A16248EA305541A1D26DB1C4A83C41FD21444CEA305541D4279898C4A83C414C53ACE5EB30554121D46304B6A83C41343C37E6EB30554109752A06B6A83C4162299EF8EC3055417B6AB49EC4A83C41DDC70F00ED305541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1027, 10027, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000007000000E81F573A9EA83C416A5F58182B3155414B1160A8A8A83C41971F491A2B31554197109DA0A8A83C41D08849E22C3155411ABBB6FEAFA83C41FD483AE42C31554150BF482DB0A83C41CE9D9F42283155419C201A429EA83C41A1DDAE4028315541E81F573A9EA83C416A5F58182B315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1028, 10028, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000E01AFAF292A83C415870661F34315541CB33BB35B5A83C41F16EE00F34315541CF3A5983B5A83C41CB73B1BD2E3155414215E2B492A83C411773EEB52E315541E01AFAF292A83C415870661F34315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1029, 10029, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000009753A5568AA83C41E5F7710A45315541A3EB4D27BDA83C4182FD8948453155412010EABABEA83C419EE046F938315541D25ED5D28AA83C41EBDF83F1383155419753A5568AA83C41E5F7710A45315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1030, 10030, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '010300002091080000010000000C0000007B4A2B50CCA83C4149685AF554315541B5555BCCCCA83C41A354061C5431554199DD118CBCA83C416D5074ED533155415FD2E10FBCA83C412D8E7C98563155416D64ED108BA83C41C185583B56315541F396C53F8DA83C4128E093134F315541A9E7CB1AD3A83C418ADA7BD54E315541F50E74CDD4A83C41A86483BD493155412358E25969A83C413C5C5F6049315541E94CB2DD68A83C415DDB46EE59315541413FFBD3CBA83C41FAE05E2C5A3155417B4A2B50CCA83C4149685AF554315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1031, 10031, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '01030000209108000001000000050000004618243924A83C4196D4B8C26F315541D08E8BC127A93C41D0DFE83E7031554145A5EBB928A93C41AEB0D72563315541802354B524A83C4173A5A7A9623155414618243924A83C4196D4B8C26F315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1032, 10032, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000020B4A9AF6A83C41B6522B9354315541994B20BBF8A83C4128E9F8A24231554158D2F189B5A93C411960CEF042315541A37FC604B4A93C415CA995D053315541020B4A9AF6A83C41B6522B9354315541', NULL);
+INSERT INTO buildings.building_outlines (building_outline_id, building_id, capture_method_id, capture_source_id, lifecycle_stage_id, suburb_locality_id, territorial_authority_id, begin_lifespan, end_lifespan, shape, last_modified) VALUES (1033, 10033, 5, 1001, 1, 101, 10001, '2017-01-01 09:00:00', NULL, '0103000020910800000100000005000000B9522B1575A93C417396CD1D4131554158D2F189B5A93C41A7AF2D5841315541F012C8AAB7A93C415E5B1CEA313155416EA5569A76A93C41F4285C7531315541B9522B1575A93C417396CD1D41315541', NULL);
-- buildings.building_use
diff --git a/db/tests/testdata/plugin/buildings_bulk_load.sql b/db/tests/testdata/plugin/buildings_bulk_load.sql
index c1310409..46569358 100644
--- a/db/tests/testdata/plugin/buildings_bulk_load.sql
+++ b/db/tests/testdata/plugin/buildings_bulk_load.sql
@@ -6,72 +6,72 @@ INSERT INTO buildings_bulk_load.supplied_datasets (supplied_dataset_id, descript
-- buildings_bulk_load.bulk_load_outlines
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1001, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1002, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1003, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1004, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1005, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1006, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1007, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1008, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1009, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1010, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1011, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1012, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1013, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1014, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1015, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1016, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1017, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1018, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1019, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1020, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1021, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000006000000E6BBDD5281A83C410FD98FADEC3055414CBD636281A83C417A10BD12EF305541370BF9D08FA83C412090DB0EEF305541020767A28FA83C411E68ECCBE730554149B6C51481A83C4111E747C0E7305541E6BBDD5281A83C410FD98FADEC305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1022, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000004627710791A83C41C70FFA0AEF3055416EC28040B4A83C4111C80015EF305541812FBF2DB4A83C418D2B72E8EB305541782465E890A83C41D0C6C1E3EB3055414627710791A83C41C70FFA0AEF305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1023, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000036A3DF0B5A83C419D7488FAEE305541A7AF674FD9A83C412E11801AEF30554174B2736ED9A83C41B3ECE386ED305541219B50DAB5A83C4119F63D62ED305541036A3DF0B5A83C419D7488FAEE305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1024, 1, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000DE25EBF790A83C411ABF608EEB305541A2CF414E98A83C41C13E7F8AEB3055416CCBAF1F98A83C4111B83EB8E5305541A92159C990A83C4110B83EB8E5305541DE25EBF790A83C411ABF608EEB305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1025, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000A9FAE07CD1A83C41A264A12DED305541A6AF674FD9A83C4149E4BF29ED30554142B57F8DD9A83C416F6EC711E8305541AAFAE07CD1A83C416F6EC711E8305541A9FAE07CD1A83C41A264A12DED305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1026, 1, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000080000007B6AB49EC4A83C41DDC70F00ED3055415B75A424D0A83C413321FBFCEC305541C7D4BED9CFA83C41A4A16248EA305541A1D26DB1C4A83C41FD21444CEA305541D4279898C4A83C414C53ACE5EB30554121D46304B6A83C41343C37E6EB30554109752A06B6A83C4162299EF8EC3055417B6AB49EC4A83C41DDC70F00ED305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1027, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000007000000E81F573A9EA83C416A5F58182B3155414B1160A8A8A83C41971F491A2B31554197109DA0A8A83C41D08849E22C3155411ABBB6FEAFA83C41FD483AE42C31554150BF482DB0A83C41CE9D9F42283155419C201A429EA83C41A1DDAE4028315541E81F573A9EA83C416A5F58182B315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1028, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000E01AFAF292A83C415870661F34315541CB33BB35B5A83C41F16EE00F34315541CF3A5983B5A83C41CB73B1BD2E3155414215E2B492A83C411773EEB52E315541E01AFAF292A83C415870661F34315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1029, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000009753A5568AA83C41E5F7710A45315541A3EB4D27BDA83C4182FD8948453155412010EABABEA83C419EE046F938315541D25ED5D28AA83C41EBDF83F1383155419753A5568AA83C41E5F7710A45315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1030, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000C0000007B4A2B50CCA83C4149685AF554315541B5555BCCCCA83C41A354061C5431554199DD118CBCA83C416D5074ED533155415FD2E10FBCA83C412D8E7C98563155416D64ED108BA83C41C185583B56315541F396C53F8DA83C4128E093134F315541A9E7CB1AD3A83C418ADA7BD54E315541F50E74CDD4A83C41A86483BD493155412358E25969A83C413C5C5F6049315541E94CB2DD68A83C415DDB46EE59315541413FFBD3CBA83C41FAE05E2C5A3155417B4A2B50CCA83C4149685AF554315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1031, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000004618243924A83C4196D4B8C26F315541D08E8BC127A93C41D0DFE83E7031554145A5EBB928A93C41AEB0D72563315541802354B524A83C4173A5A7A9623155414618243924A83C4196D4B8C26F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1032, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000020B4A9AF6A83C41B6522B9354315541994B20BBF8A83C4128E9F8A24231554158D2F189B5A93C411960CEF042315541A37FC604B4A93C415CA995D053315541020B4A9AF6A83C41B6522B9354315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (1033, 1, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000B9522B1575A93C417396CD1D4131554158D2F189B5A93C41A7AF2D5841315541F012C8AAB7A93C415E5B1CEA313155416EA5569A76A93C41F4285C7531315541B9522B1575A93C417396CD1D41315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2001, 2, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000FB0DA8AB6BA83C4167030B97213155413A8A8B2B87A83C4167030B9721315541558CD44287A83C41D248AE4A1C315541C609167D6BA83C41FF089F4C1C315541FB0DA8AB6BA83C4167030B9721315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2002, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000080000001489153E9DA83C416624D80323315541AE878F2E9DA83C4127CEAAD124315541A1416B37A5A83C41DACE6DD92431554170447756A5A83C414787BBC1213155416F6303BDB1A83C41FB877EC9213155413D660FDCB1A83C41366B438B20315541628852369DA83C41AF2A7185203155411489153E9DA83C416624D80323315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2003, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000772E37A2D0A83C41C57C6FAF2231554142E46BBAD7A83C4110DE7BAD22315541F7D1B2B2D7A83C410DB2F0D620315541B5ACCF8ED0A83C416632D2DA20315541772E37A2D0A83C41C57C6FAF22315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2004, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000003897AF1E28A93C415A5857A426315541C8139BAF4EA93C415A5857A4263155416519B3ED4EA93C4170844C7C1D3155413897AF1E28A93C413F87589B1D3155413897AF1E28A93C415A5857A426315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2005, 2, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000901BBDFA92A83C413522A83D1931554180E266C2BCA83C418FA289411931554119E1E0B2BCA83C419A3884AD14315541901BBDFA92A83C4140B8A2A914315541901BBDFA92A83C413522A83D19315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2006, 2, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000900000071EA6ADB90A83C415149C4560A3155410EF0821991A83C41FD0A01B512315541CE608337C2A83C41718D2BD0123155413E7045E2C2A83C412ECD74810A315541234F7064B6A83C41D34C937D0A31554187495826B6A83C416550E62C10315541B70196EC9CA83C41BFD0C73010315541230ABA499DA83C41064A875E0A31554171EA6ADB90A83C415149C4560A315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2007, 2, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000500000037D65B0B9BA83C41B3806D3307315541B38F842EB9A83C414D7FE7230731554187992E9BB9A83C41ECE45278003155416CDAED399BA83C4139E48F700031554137D65B0B9BA83C41B3806D3307315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2008, 2, NULL, 1, 5, 1001, 103, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000007C515C3F8AA83C417C19F035FD3055415B911A60CFA83C416117A71EFD305541C7993EBDCFA83C418BB688EFF8305541DF4B44018AA83C4170B43FD8F83055417C515C3F8AA83C417C19F035FD305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2009, 2, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000D0000008221CD2F80A83C41A1B39338EF305541C349B56ADAA83C4155B45640EF305541604FCDA8DAA83C414F066EBBE73055416966E897D0A83C41B707F4CAE73055416966E897D0A83C41BF3D9B20EA3055417C3B69ADC3A83C4165BDB91CEA305541E43CEFBCC3A83C416D5F2B95EB305541B563772B99A83C41EB5B5C6EEB30554171DE40F198A83C418F92007FE53055412E8A54C58FA83C41A6F2F87FE5305541C788CEB58FA83C411A02DC8CE73055411619A9D27FA83C411A02DC8CE73055418221CD2F80A83C41A1B39338EF305541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2010, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000070000009301B41E0DA83C415FB6485229315541A6C4768C15A83C415FB64852293155413EC3F07C15A83C41E26941042631554127E7D11922A83C4189E95F00263155418EE8572922A83C4154BD6217243155415DFD21F00CA83C4107BE251F243155419301B41E0DA83C415FB6485229315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2011, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000273225049FA83C415DDEB30C2B315541B7F1184BA7A83C415EDEB30C2B3155416BF2DB52A7A83C410ADF345028315541DB32E80B9FA83C4109DF345028315541273225049FA83C415DDEB30C2B315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2012, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002122A862A9A83C41379F25522831554189232E72A9A83C4123C589B92C31554174A76225AFA83C4123C589B92C3155410CA6DC15AFA83C41635F1654283155412122A862A9A83C41379F255228315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2013, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002334660A94A83C41B3FE41FA31315541EB4E6042A0A83C413A3F140032315541844DDA32A0A83C41E675FAD42E31554107321DF393A83C41B9B509D32E3155412334660A94A83C41B3FE41FA31315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2014, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000003FACAF4AA4A83C41C17FE60532315541EB1437E0B3A83C41B4FE41FA313155413C1B1226B4A83C417B3771E62E315541A2A6970CA4A83C417B3771E62E3155413FACAF4AA4A83C41C17FE60532315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2015, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000B72B42AD93A83C41DBA99AD733315541652534ACB3A83C41D1736DD2333155411C122BC1B3A83C41D307295F32315541852E4ECC93A83C412D880A6332315541B72B42AD93A83C41DBA99AD733315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2016, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000004F8371668CA83C418EA17E8B3E315541C73EDB8F9FA83C418FA17E8B3E315541024A0B0CA0A83C4191293D5C39315541898EA1E28CA83C41F82AC36B393155414F8371668CA83C418EA17E8B3E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2017, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002122A862A9A83C412CA796C93E31554158C4A574BBA83C4193A81CD93E315541CDDA056DBCA83C41F82AC36B393155412122A862A9A83C41F92AC36B393155412122A862A9A83C412CA796C93E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2018, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000888EA1E28CA83C41332D149444315541F02D93D59EA83C41B430E3BA44315541BF309FF49EA83C41B6B8A18B3F315541919CDD7D8DA83C4103B8DE833F315541888EA1E28CA83C41332D149444315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2019, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000004A1160A8A8A83C41E93475E944315541E2AD457CBAA83C413734B2E144315541BABE8D36BBA83C419FBDF6C13F315541F024B481A9A83C41ECBC33BA3F3155414A1160A8A8A83C41E93475E944315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2020, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000009ACC05AD8FA83C41E8D7F8584E31554186AFDBADD0A83C417515369D4E315541E9A9C36FD0A83C419BAD79204A31554175F288D28FA83C411D3817D6493155419ACC05AD8FA83C41E8D7F8584E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2021, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000007FE8F1597CA83C411E55CB7254315541C8F4BCDB89A83C4116D7B75F5431554189838B3D8BA83C41A04A82D6493155413334F8A47CA83C418B38E0F5493155417FE8F1597CA83C411E55CB7254315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2022, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000007000000A3B112627DA83C41579FC3C854315541D13DEF7B7DA83C416E24CABC5931554158B551CFA6A83C41946081F15931554132DBD4F4A6A83C41FB5E307B573155411B5D5A5589A83C4174B1EE6157315541F7FDED8A89A83C41323CACD354315541A3B112627DA83C41579FC3C854315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2023, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000007000000C48C0086A9A83C41AB7223D2593155410DEB9230C8A83C4116190DD55931554147F6C2ACC8A83C4165A0089E543155416A37926DC0A83C41FE9E828E543155418D3F5012C0A83C410B784BAC5731554150FC637BA9A83C4185BD18A557315541C48C0086A9A83C41AB7223D259315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2024, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000001DA11A816CA83C41AF1787C5593155413FD02B9A79A83C41481601B65931554179DB5B167AA83C4134ACF3104A315541BAA632BF6CA83C41CDAA6D014A3155411DA11A816CA83C41AF1787C559315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2025, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000ED82ECD428A83C411000B1DF6E315541F8D5DE8A42A83C41AD05C91D6F315541A7F76EFF43A83C41501B5EFD643155419CA47C492AA83C41E819D8ED64315541ED82ECD428A83C411000B1DF6E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2026, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000E4832C5D81A83C414604430E6F315541100F0F809DA83C41DF02BDFE6E315541D703DF039DA83C41C02A20A8653155410C73E4A280A83C4159299A9865315541E4832C5D81A83C414604430E6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2027, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000A7548091ABA83C414504430E6F3155416680CA94C3A83C41AD05C91D6F31554115A25A09C5A83C4189268E7965315541D04338D7AAA83C415322FC4A65315541A7548091ABA83C414504430E6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2028, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000500000029511EC9EDA83C4115074F2D6F3155417578C67BEFA83C41C8385C436631554125B5F3EBD0A83C41262CA6B765315541D98D4B39CFA83C41770137EF6E31554129511EC9EDA83C4115074F2D6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2029, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000003A64B7ABF9A83C41780137EF6E315541A7A8B2CF1DA93C41DF02BDFE6E315541CF976A151DA93C41643E7481663155411075FF65FAA83C412F3AE252663155413A64B7ABF9A83C41780137EF6E315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2030, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000154E28CB52A83C41AD05C91D6F3155416AC8C2336EA83C417C08D53C6F31554141D90AEE6EA83C415422FC4A65315541886488C353A83C41B61CE40C65315541154E28CB52A83C41AD05C91D6F315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2031, 2, NULL, 1, 5, 1001, 102, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2032, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000137AA177FBA83C4179BBEA34533155418CA82234FEA83C4121DEAE14443155418B106F574CA93C41ECC44EDA43315541E5466E844AA93C41E3EDAAA953315541137AA177FBA83C4179BBEA3453315541');
-INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, town_city_id, territorial_authority_id, begin_lifespan, shape) VALUES (2033, 2, NULL, 1, 5, 1001, 101, 1001, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000006CBF296F71A93C41DB6FCA85523155419D2603DC7AA93C411B2C2893343155410C3FF0E3B1A93C415FCEB27F3431554192106F27AFA93C411F125572523155416CBF296F71A93C41DB6FCA8552315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1001, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1002, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000070000001A70C8616AA83C412ABBD73B21315541CBED31F185A83C41D13AF6372131554132EFB70086A83C41CBCEE9501F315541E6EF7A0886A83C41E02EC1EF1D315541E6EF7A0886A83C41B33FC7E51B3155417C6AB0236AA83C410DC0A8E91B3155411A70C8616AA83C412ABBD73B21315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1003, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000E0000007FE51DB69BA83C41336B438B203155417FE51DB69BA83C412DF8DA1A2131554162026916B3A83C410DB98E242131554115032C1EB3A83C417B63E2352031554149A9AB3CAFA83C417B63E23520315541B0AA314CAFA83C41E12EE2511F315541E205383DB3A83C41C9CEE9501F31554159886258B3A83C411AA6BB8E1D3155419C5812C0ABA83C415CC6A4911D3155419C5812C0ABA83C41FC0143C31E315541A9E76EDEA6A83C4129C233C51E3155414F678DDAA6A83C4173269D921D31554118E497A69BA83C4173269D921D3155417FE51DB69BA83C41336B438B20315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1004, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000005DC36E06CCA83C419A9BB14021315541E5C6C1B5D1A83C41999BB14021315541FEC80ACDD1A83C4187E4447D1D315541D1459921CCA83C415924547B1D3155415DC36E06CCA83C419A9BB14021315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1005, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000B00000056A6B8592EA93C414D01044424315541ABB8964545A93C41F380224024315541ACB8964545A93C41C96261F222315541AF0310733DA93C4123E342F622315541AF0310733DA93C41483089C320315541A70F0B0849A93C41EEAFA7BF20315541400E85F848A93C418E8D54431F315541E407A2A13DA93C41E70D36471F315541E407A2A13DA93C4125C2F1001C31554156A6B8592EA93C4117414DF51B31554156A6B8592EA93C414D01044424315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1006, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000090000006C7CBADC0CA83C4121486FCB21315541CD4560A120A83C41BA46E9BB21315541FE42548220A83C410146A22B1C3155413A7FC6FB0CA83C410FC746371C315541D37D40EC0CA83C418071DC0C1E315541ADAF5D241AA83C41CB7019051E315541ADAF5D241AA83C412420041120315541D37D40EC0CA83C4180A0E514203155416C7CBADC0CA83C4121486FCB21315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1007, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000500000030D8209A95A83C419573A19B183155412D1AC384A3A83C419373A19B18315541471C0C9CA3A83C41C3A6B8491531554130D8209A95A83C411F279A4D1531554130D8209A95A83C419573A19B18315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1008, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000006BE8B56EACA83C412D721B8C1831554117247D13BAA83C4179715884183155413326C62ABAA83C41FEE74D57153155416AE8B56EACA83C418428205D153155416BE8B56EACA83C412D721B8C18315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1009, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000307A0E8A91A83C4140EE208C0A315541307A0E8A91A83C4108700C28103155412178CD839CA83C4161F0ED2B10315541567C5FB29CA83C4141EE208C0A315541307A0E8A91A83C4140EE208C0A315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1010, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000977B949991A83C418128DE981231554159CA0443C1A83C41CD271B911231554127CD1062C1A83C415976E76D10315541307A0E8A91A83C41B1F6C87110315541977B949991A83C418128DE9812315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1011, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000006FDA81E4B6A83C41556F4920103155415ED1A290C1A83C41FBEE671C1031554161D840DEC1A83C410370889F0A315541D6DB07F4B6A83C415CF069A30A3155416FDA81E4B6A83C41556F492010315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1012, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000005475C1649CA83C41201B5DF406315541BC907EA4A8A83C416D1A9AEC06315541589696E2A8A83C41A998F01404315541A074FE5C9CA83C412FD9C21A043155415475C1649CA83C41201B5DF406315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1013, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000500000001E09111ACA83C416B1A9AEC0631554127E2E239B7A83C4199DA8AEE063155415DE67468B7A83C41D558E11604315541B5E05419ACA83C414F180F110431554101E09111ACA83C416B1A9AEC06315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1014, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000004F6E23179CA83C41B2485C6403315541229204B4A8A83C4166491F6C0331554189938AC3A8A83C41CB4A63B7003155416A706C2E9CA83C41164AA0AF003155414F6E23179CA83C41B2485C6403315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1015, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000CFE29D30ACA83C41A08AB479033155419BF84232B8A83C41CD4AA57B033155411CFC1159B8A83C413689ECA500315541E9E4E647ACA83C410AC9FBA300315541CFE29D30ACA83C41A08AB47903315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1016, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000002FEDF2718BA83C417EB010D0FC30554115D6D78295A83C4124302FCCFC30554131D8209A95A83C413E9E0042F930554115EBA95A8BA83C41311D5C36F93055412FEDF2718BA83C417EB010D0FC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1017, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000E436F6B199A83C41CAAF4DC8FC305541D1FE0D56A2A83C41712F6CC4FC3055412105E99BA2A83C41C5DED247F9305541653AC5D899A83C41971EE245F9305541E436F6B199A83C41CAAF4DC8FC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1018, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000FF817F01A8A83C41446F7BC2FC3055411361BAA5B1A83C4163AEC7B8FC305541FC650FDCB1A83C411E5FB44BF930554166830511A8A83C41F19EC349F9305541FF817F01A8A83C41446F7BC2FC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1019, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000001ED4A69EB6A83C4164AEC7B8FC3055418E9F8D69BFA83C4163AEC7B8FC3055417BAB80EDBFA83C414B1FA54DF930554170DA81E4B6A83C411E5FB44BF93055411ED4A69EB6A83C4164AEC7B8FC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1020, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000500000068158681C4A83C41DD6DF5B2FC30554146F02EF7CDA83C4137EED6B6FC30554165F9155CCEA83C414B1FA54DF9305541E91855A8C4A83C414B1FA54DF930554168158681C4A83C41DD6DF5B2FC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1021, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000006000000E6BBDD5281A83C410FD98FADEC3055414CBD636281A83C417A10BD12EF305541370BF9D08FA83C412090DB0EEF305541020767A28FA83C411E68ECCBE730554149B6C51481A83C4111E747C0E7305541E6BBDD5281A83C410FD98FADEC305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1022, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000004627710791A83C41C70FFA0AEF3055416EC28040B4A83C4111C80015EF305541812FBF2DB4A83C418D2B72E8EB305541782465E890A83C41D0C6C1E3EB3055414627710791A83C41C70FFA0AEF305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1023, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000036A3DF0B5A83C419D7488FAEE305541A7AF674FD9A83C412E11801AEF30554174B2736ED9A83C41B3ECE386ED305541219B50DAB5A83C4119F63D62ED305541036A3DF0B5A83C419D7488FAEE305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1024, 1, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000DE25EBF790A83C411ABF608EEB305541A2CF414E98A83C41C13E7F8AEB3055416CCBAF1F98A83C4111B83EB8E5305541A92159C990A83C4110B83EB8E5305541DE25EBF790A83C411ABF608EEB305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1025, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000A9FAE07CD1A83C41A264A12DED305541A6AF674FD9A83C4149E4BF29ED30554142B57F8DD9A83C416F6EC711E8305541AAFAE07CD1A83C416F6EC711E8305541A9FAE07CD1A83C41A264A12DED305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1026, 1, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000080000007B6AB49EC4A83C41DDC70F00ED3055415B75A424D0A83C413321FBFCEC305541C7D4BED9CFA83C41A4A16248EA305541A1D26DB1C4A83C41FD21444CEA305541D4279898C4A83C414C53ACE5EB30554121D46304B6A83C41343C37E6EB30554109752A06B6A83C4162299EF8EC3055417B6AB49EC4A83C41DDC70F00ED305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1027, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000007000000E81F573A9EA83C416A5F58182B3155414B1160A8A8A83C41971F491A2B31554197109DA0A8A83C41D08849E22C3155411ABBB6FEAFA83C41FD483AE42C31554150BF482DB0A83C41CE9D9F42283155419C201A429EA83C41A1DDAE4028315541E81F573A9EA83C416A5F58182B315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1028, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000E01AFAF292A83C415870661F34315541CB33BB35B5A83C41F16EE00F34315541CF3A5983B5A83C41CB73B1BD2E3155414215E2B492A83C411773EEB52E315541E01AFAF292A83C415870661F34315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1029, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000009753A5568AA83C41E5F7710A45315541A3EB4D27BDA83C4182FD8948453155412010EABABEA83C419EE046F938315541D25ED5D28AA83C41EBDF83F1383155419753A5568AA83C41E5F7710A45315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1030, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '010300002091080000010000000C0000007B4A2B50CCA83C4149685AF554315541B5555BCCCCA83C41A354061C5431554199DD118CBCA83C416D5074ED533155415FD2E10FBCA83C412D8E7C98563155416D64ED108BA83C41C185583B56315541F396C53F8DA83C4128E093134F315541A9E7CB1AD3A83C418ADA7BD54E315541F50E74CDD4A83C41A86483BD493155412358E25969A83C413C5C5F6049315541E94CB2DD68A83C415DDB46EE59315541413FFBD3CBA83C41FAE05E2C5A3155417B4A2B50CCA83C4149685AF554315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1031, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '01030000209108000001000000050000004618243924A83C4196D4B8C26F315541D08E8BC127A93C41D0DFE83E7031554145A5EBB928A93C41AEB0D72563315541802354B524A83C4173A5A7A9623155414618243924A83C4196D4B8C26F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1032, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000020B4A9AF6A83C41B6522B9354315541994B20BBF8A83C4128E9F8A24231554158D2F189B5A93C411960CEF042315541A37FC604B4A93C415CA995D053315541020B4A9AF6A83C41B6522B9354315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (1033, 1, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.235058', '0103000020910800000100000005000000B9522B1575A93C417396CD1D4131554158D2F189B5A93C41A7AF2D5841315541F012C8AAB7A93C415E5B1CEA313155416EA5569A76A93C41F4285C7531315541B9522B1575A93C417396CD1D41315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2001, 2, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000FB0DA8AB6BA83C4167030B97213155413A8A8B2B87A83C4167030B9721315541558CD44287A83C41D248AE4A1C315541C609167D6BA83C41FF089F4C1C315541FB0DA8AB6BA83C4167030B9721315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2002, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000080000001489153E9DA83C416624D80323315541AE878F2E9DA83C4127CEAAD124315541A1416B37A5A83C41DACE6DD92431554170447756A5A83C414787BBC1213155416F6303BDB1A83C41FB877EC9213155413D660FDCB1A83C41366B438B20315541628852369DA83C41AF2A7185203155411489153E9DA83C416624D80323315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2003, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000772E37A2D0A83C41C57C6FAF2231554142E46BBAD7A83C4110DE7BAD22315541F7D1B2B2D7A83C410DB2F0D620315541B5ACCF8ED0A83C416632D2DA20315541772E37A2D0A83C41C57C6FAF22315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2004, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000003897AF1E28A93C415A5857A426315541C8139BAF4EA93C415A5857A4263155416519B3ED4EA93C4170844C7C1D3155413897AF1E28A93C413F87589B1D3155413897AF1E28A93C415A5857A426315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2005, 2, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000901BBDFA92A83C413522A83D1931554180E266C2BCA83C418FA289411931554119E1E0B2BCA83C419A3884AD14315541901BBDFA92A83C4140B8A2A914315541901BBDFA92A83C413522A83D19315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2006, 2, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000900000071EA6ADB90A83C415149C4560A3155410EF0821991A83C41FD0A01B512315541CE608337C2A83C41718D2BD0123155413E7045E2C2A83C412ECD74810A315541234F7064B6A83C41D34C937D0A31554187495826B6A83C416550E62C10315541B70196EC9CA83C41BFD0C73010315541230ABA499DA83C41064A875E0A31554171EA6ADB90A83C415149C4560A315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2007, 2, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000500000037D65B0B9BA83C41B3806D3307315541B38F842EB9A83C414D7FE7230731554187992E9BB9A83C41ECE45278003155416CDAED399BA83C4139E48F700031554137D65B0B9BA83C41B3806D3307315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2008, 2, NULL, 1, 5, 1001, 103, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000007C515C3F8AA83C417C19F035FD3055415B911A60CFA83C416117A71EFD305541C7993EBDCFA83C418BB688EFF8305541DF4B44018AA83C4170B43FD8F83055417C515C3F8AA83C417C19F035FD305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2009, 2, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000D0000008221CD2F80A83C41A1B39338EF305541C349B56ADAA83C4155B45640EF305541604FCDA8DAA83C414F066EBBE73055416966E897D0A83C41B707F4CAE73055416966E897D0A83C41BF3D9B20EA3055417C3B69ADC3A83C4165BDB91CEA305541E43CEFBCC3A83C416D5F2B95EB305541B563772B99A83C41EB5B5C6EEB30554171DE40F198A83C418F92007FE53055412E8A54C58FA83C41A6F2F87FE5305541C788CEB58FA83C411A02DC8CE73055411619A9D27FA83C411A02DC8CE73055418221CD2F80A83C41A1B39338EF305541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2010, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000070000009301B41E0DA83C415FB6485229315541A6C4768C15A83C415FB64852293155413EC3F07C15A83C41E26941042631554127E7D11922A83C4189E95F00263155418EE8572922A83C4154BD6217243155415DFD21F00CA83C4107BE251F243155419301B41E0DA83C415FB6485229315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2011, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000273225049FA83C415DDEB30C2B315541B7F1184BA7A83C415EDEB30C2B3155416BF2DB52A7A83C410ADF345028315541DB32E80B9FA83C4109DF345028315541273225049FA83C415DDEB30C2B315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2012, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002122A862A9A83C41379F25522831554189232E72A9A83C4123C589B92C31554174A76225AFA83C4123C589B92C3155410CA6DC15AFA83C41635F1654283155412122A862A9A83C41379F255228315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2013, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002334660A94A83C41B3FE41FA31315541EB4E6042A0A83C413A3F140032315541844DDA32A0A83C41E675FAD42E31554107321DF393A83C41B9B509D32E3155412334660A94A83C41B3FE41FA31315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2014, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000003FACAF4AA4A83C41C17FE60532315541EB1437E0B3A83C41B4FE41FA313155413C1B1226B4A83C417B3771E62E315541A2A6970CA4A83C417B3771E62E3155413FACAF4AA4A83C41C17FE60532315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2015, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000B72B42AD93A83C41DBA99AD733315541652534ACB3A83C41D1736DD2333155411C122BC1B3A83C41D307295F32315541852E4ECC93A83C412D880A6332315541B72B42AD93A83C41DBA99AD733315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2016, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000004F8371668CA83C418EA17E8B3E315541C73EDB8F9FA83C418FA17E8B3E315541024A0B0CA0A83C4191293D5C39315541898EA1E28CA83C41F82AC36B393155414F8371668CA83C418EA17E8B3E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2017, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002122A862A9A83C412CA796C93E31554158C4A574BBA83C4193A81CD93E315541CDDA056DBCA83C41F82AC36B393155412122A862A9A83C41F92AC36B393155412122A862A9A83C412CA796C93E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2018, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000888EA1E28CA83C41332D149444315541F02D93D59EA83C41B430E3BA44315541BF309FF49EA83C41B6B8A18B3F315541919CDD7D8DA83C4103B8DE833F315541888EA1E28CA83C41332D149444315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2019, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000004A1160A8A8A83C41E93475E944315541E2AD457CBAA83C413734B2E144315541BABE8D36BBA83C419FBDF6C13F315541F024B481A9A83C41ECBC33BA3F3155414A1160A8A8A83C41E93475E944315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2020, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000009ACC05AD8FA83C41E8D7F8584E31554186AFDBADD0A83C417515369D4E315541E9A9C36FD0A83C419BAD79204A31554175F288D28FA83C411D3817D6493155419ACC05AD8FA83C41E8D7F8584E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2021, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000007FE8F1597CA83C411E55CB7254315541C8F4BCDB89A83C4116D7B75F5431554189838B3D8BA83C41A04A82D6493155413334F8A47CA83C418B38E0F5493155417FE8F1597CA83C411E55CB7254315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2022, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000007000000A3B112627DA83C41579FC3C854315541D13DEF7B7DA83C416E24CABC5931554158B551CFA6A83C41946081F15931554132DBD4F4A6A83C41FB5E307B573155411B5D5A5589A83C4174B1EE6157315541F7FDED8A89A83C41323CACD354315541A3B112627DA83C41579FC3C854315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2023, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000007000000C48C0086A9A83C41AB7223D2593155410DEB9230C8A83C4116190DD55931554147F6C2ACC8A83C4165A0089E543155416A37926DC0A83C41FE9E828E543155418D3F5012C0A83C410B784BAC5731554150FC637BA9A83C4185BD18A557315541C48C0086A9A83C41AB7223D259315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2024, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000001DA11A816CA83C41AF1787C5593155413FD02B9A79A83C41481601B65931554179DB5B167AA83C4134ACF3104A315541BAA632BF6CA83C41CDAA6D014A3155411DA11A816CA83C41AF1787C559315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2025, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000ED82ECD428A83C411000B1DF6E315541F8D5DE8A42A83C41AD05C91D6F315541A7F76EFF43A83C41501B5EFD643155419CA47C492AA83C41E819D8ED64315541ED82ECD428A83C411000B1DF6E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2026, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000E4832C5D81A83C414604430E6F315541100F0F809DA83C41DF02BDFE6E315541D703DF039DA83C41C02A20A8653155410C73E4A280A83C4159299A9865315541E4832C5D81A83C414604430E6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2027, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000A7548091ABA83C414504430E6F3155416680CA94C3A83C41AD05C91D6F31554115A25A09C5A83C4189268E7965315541D04338D7AAA83C415322FC4A65315541A7548091ABA83C414504430E6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2028, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '010300002091080000010000000500000029511EC9EDA83C4115074F2D6F3155417578C67BEFA83C41C8385C436631554125B5F3EBD0A83C41262CA6B765315541D98D4B39CFA83C41770137EF6E31554129511EC9EDA83C4115074F2D6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2029, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000003A64B7ABF9A83C41780137EF6E315541A7A8B2CF1DA93C41DF02BDFE6E315541CF976A151DA93C41643E7481663155411075FF65FAA83C412F3AE252663155413A64B7ABF9A83C41780137EF6E315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2030, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000154E28CB52A83C41AD05C91D6F3155416AC8C2336EA83C417C08D53C6F31554141D90AEE6EA83C415422FC4A65315541886488C353A83C41B61CE40C65315541154E28CB52A83C41AD05C91D6F315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2031, 2, NULL, 1, 5, 1001, 102, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000002F9EEE1D40A83C4111B98E242131554135FAC7385AA83C416C3970282131554135FAC7385AA83C413B8099EB1B315541309EEE1D40A83C41877FD6E31B3155412F9EEE1D40A83C4111B98E2421315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2032, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '0103000020910800000100000005000000137AA177FBA83C4179BBEA34533155418CA82234FEA83C4121DEAE14443155418B106F574CA93C41ECC44EDA43315541E5466E844AA93C41E3EDAAA953315541137AA177FBA83C4179BBEA3453315541');
+INSERT INTO buildings_bulk_load.bulk_load_outlines (bulk_load_outline_id, supplied_dataset_id, external_outline_id, bulk_load_status_id, capture_method_id, capture_source_id, suburb_locality_id, territorial_authority_id, begin_lifespan, shape) VALUES (2033, 2, NULL, 1, 5, 1001, 101, 10001, '2019-06-18 08:20:36.246744', '01030000209108000001000000050000006CBF296F71A93C41DB6FCA85523155419D2603DC7AA93C411B2C2893343155410C3FF0E3B1A93C415FCEB27F3431554192106F27AFA93C411F125572523155416CBF296F71A93C41DB6FCA8552315541');
-- buildings_bulk_load.added
diff --git a/db/tests/testdata/plugin/buildings_reference.sql b/db/tests/testdata/plugin/buildings_reference.sql
index 0c1ec988..734877e8 100644
--- a/db/tests/testdata/plugin/buildings_reference.sql
+++ b/db/tests/testdata/plugin/buildings_reference.sql
@@ -62,10 +62,10 @@ INSERT INTO buildings_reference.shelter_points (shelter_points_id, external_shel
-- buildings_reference.suburb_locality
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (101, 101, 'Kelburn', '010600002091080000010000000103000000010000000500000066CEB1BCE2A93C41897FD94E1E315541B8C07DEFDDA73C4153A0BCF81F315541EBBFD613DBA73C41E6696DE47A3155417ECF8220DFA93C41692FC9727B31554166CEB1BCE2A93C41897FD94E1E315541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (102, 102, 'Aro Valley', '010600002091080000010000000103000000010000000500000062B26B4CADA83C419541DA4D1F31554157B126DEADA83C415EEB31D0EC30554130ECB486DFA73C417A89315EED305541B8C07DEFDDA73C4153A0BCF81F31554162B26B4CADA83C419541DA4D1F315541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (103, 103, 'Newtown', '010600002091080000010000000103000000010000000500000057B126DEADA83C415EEB31D0EC30554162B26B4CADA83C419541DA4D1F31554166CEB1BCE2A93C41897FD94E1E315541E08618B0E4A93C41AD1B4CFAEB30554157B126DEADA83C415EEB31D0EC305541');
-INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, name, shape) VALUES (104, 104, 'Hokowhitu', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (101, 101, 'Kelburn', 'Wellington', '010600002091080000010000000103000000010000000500000066CEB1BCE2A93C41897FD94E1E315541B8C07DEFDDA73C4153A0BCF81F315541EBBFD613DBA73C41E6696DE47A3155417ECF8220DFA93C41692FC9727B31554166CEB1BCE2A93C41897FD94E1E315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (102, 102, 'Aro Valley', 'Wellington', '010600002091080000010000000103000000010000000500000062B26B4CADA83C419541DA4D1F31554157B126DEADA83C415EEB31D0EC30554130ECB486DFA73C417A89315EED305541B8C07DEFDDA73C4153A0BCF81F31554162B26B4CADA83C419541DA4D1F315541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (103, 103, 'Newtown', 'Wellington', '010600002091080000010000000103000000010000000500000057B126DEADA83C415EEB31D0EC30554162B26B4CADA83C419541DA4D1F31554166CEB1BCE2A93C41897FD94E1E315541E08618B0E4A93C41AD1B4CFAEB30554157B126DEADA83C415EEB31D0EC305541');
+INSERT INTO buildings_reference.suburb_locality (suburb_locality_id, external_suburb_locality_id, suburb_locality, town_city, shape) VALUES (104, 104, 'Hokowhitu', 'Palmerston North', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
-- buildings_reference.swamp_polygons
@@ -76,8 +76,3 @@ INSERT INTO buildings_reference.swamp_polygons (swamp_polygon_id, external_swamp
INSERT INTO buildings_reference.territorial_authority (territorial_authority_id, external_territorial_authority_id, name, shape) VALUES (10002, 10002, 'Manawatu-Whanganui', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');
INSERT INTO buildings_reference.territorial_authority (territorial_authority_id, external_territorial_authority_id, name, shape) VALUES (10001, 10001, 'Wellington', '0106000020910800000100000001030000000100000007000000652E991C93A73C411D143F0A86315541C2F4C8A1C6A73C415F6B699ED3315541B4EDA920F9A93C415A63FDC3D33155419BAA7B1333AA3C411D1A1C7F863155419BC2EFE634AA3C411A459E65DA30554165460DF094A73C411A4B7BDADA305541652E991C93A73C411D143F0A86315541');
-
--- buildings_reference.town_city
-
-INSERT INTO buildings_reference.town_city (town_city_id, external_city_id, name, shape) VALUES (1001, 1001, 'Wellington', '0106000020910800000100000001030000000100000005000000EBBFD613DBA73C41E6696DE47A3155417ECF8220DFA93C41692FC9727B315541E08618B0E4A93C41AD1B4CFAEB30554130ECB486DFA73C417A89315EED305541EBBFD613DBA73C41E6696DE47A315541');
-INSERT INTO buildings_reference.town_city (town_city_id, external_city_id, name, shape) VALUES (1002, 1002, 'Palmerston North', '010600002091080000010000000103000000010000000500000025FC5C6832AA3C41FCB6751C8631554125FC5C6832AA3C41E86F6C4BDA305541E3B2A05848AB3C41E86F6C4BDA305541E3B2A05848AB3C41E191179B8531554125FC5C6832AA3C41FCB6751C86315541');