RETURN NEW;
END IF;
- NEW.interpolationtype = NEW.address->'interpolation';
+ -- if the line was newly inserted, split the line as necessary
+ IF OLD.indexed_status = 1 THEN
+ NEW.interpolationtype = NEW.address->'interpolation';
- IF NEW.address is not NULL THEN
- IF NEW.address ? 'street' THEN
- NEW.street = NEW.address->'street';
- END IF;
+ IF NEW.address is not NULL THEN
+ IF NEW.address ? 'street' THEN
+ NEW.street = NEW.address->'street';
+ END IF;
- IF NEW.address ? 'place' THEN
- NEW.addr_place = NEW.address->'place';
- END IF;
+ IF NEW.address ? 'place' THEN
+ NEW.addr_place = NEW.address->'place';
+ END IF;
- IF NEW.address ? 'postcode' THEN
- NEW.addr_place = NEW.address->'postcode';
+ IF NEW.address ? 'postcode' THEN
+ NEW.addr_place = NEW.address->'postcode';
+ END IF;
END IF;
- END IF;
- -- if the line was newly inserted, split the line as necessary
- IF OLD.indexed_status = 1 THEN
select nodes from planet_osm_ways where id = NEW.osm_id INTO waynodes;
IF array_upper(waynodes, 1) IS NULL THEN
END IF;
IF NEW.address ? 'postcode' THEN
- NEW.addr_place = NEW.address->'postcode';
+ NEW.postcode = NEW.address->'postcode';
END IF;
END IF;
IF NEW.class in ('place','boundary') AND NEW.type in ('postcode','postal_code') THEN
- IF NEW.postcode IS NULL THEN
+ IF NEW.address is NULL OR NOT NEW.address ? 'postcode' THEN
-- postcode was deleted, no longer retain in placex
DELETE FROM placex where place_id = existingplacex.place_id;
RETURN NULL;
END IF;
- NEW.name := hstore('ref', NEW.postcode);
+ NEW.name := hstore('ref', NEW.address->'postcode');
END IF;
update placex set
| osm | class | type | housenr | geometry |
| N1 | place | house | 2 | :n-middle-w |
| N2 | place | house | 6 | :n-middle-e |
- | W10 | place | houses | even | :w-middle |
+ And updating places
+ | osm | class | type | addr+interpolation | geometry |
+ | W10 | place | houses | even | :w-middle |
Then placex contains
| object | parent_place_id |
| N1 | W2 |
| osm | class | type | housenr | geometry |
| N1 | place | house | 2 | :n-middle-w |
| N2 | place | house | 6 | :n-middle-e |
+ And the places
+ | osm | class | type | addr+interpolation | geometry |
| W10 | place | houses | even | :w-middle |
And the places
| osm | class | type | name | geometry |
| parent_place_id | start | end |
| W2 | 2 | 6 |
When updating places
- | osm | class | type | housenr | street | geometry |
+ | osm | class | type | addr+interpolation | street | geometry |
| W10 | place | houses | even | Cloud Street | :w-middle |
Then placex contains
| object | parent_place_id |
| osm | class | type | housenr | geometry |
| N1 | place | house | 2 | :n-middle-w |
| N2 | place | house | 6 | :n-middle-e |
+ And the places
+ | osm | class | type | addr+interpolation | geometry |
| W10 | place | houses | even | :w-middle |
And the places
| osm | class | type | name | geometry |
| osm | class | type | housenr | geometry |
| N1 | place | house | 2 | :n-middle-w |
| N2 | place | house | 6 | :n-middle-e |
+ And the places
+ | osm | class | type | addr+interpolation | geometry |
| W10 | place | houses | even | :w-middle |
And the places
| osm | class | type | name | geometry |
| N1 | place | house | 2 | :n-middle-w |
| N2 | place | house | 6 | :n-middle-e |
And the places
- | osm | class | type | housenr | street | geometry |
+ | osm | class | type | addr+interpolation | street | geometry |
| W10 | place | houses | even | Cloud Street| :w-middle |
And the places
| osm | class | type | name | geometry |
| N1 | place | house | 2 | :n-middle-w |
| N2 | place | house | 6 | :n-middle-e |
And the places
- | osm | class | type | housenr | street | geometry |
+ | osm | class | type | addr+interpolation | street | geometry |
| W10 | place | houses | even | Cloud Street| :w-middle |
And the places
| osm | class | type | name | geometry |
| N1 | place | house | 2 | :n-north-w |
| N2 | place | house | 6 | :n-north-e |
And updating places
- | osm | class | type | housenr | street | geometry |
+ | osm | class | type | addr+interpolation | street | geometry |
| W1 | place | houses | even | Cloud Street| :w-north |
Then placex has no entry for W1
And W1 expands to interpolation
| id | nodes |
| 1 | 1,100,101,102,2 |
And the places
- | osm | class | type | housenr | street | geometry |
+ | osm | class | type | addr+interpolation | street | geometry |
| W1 | place | houses | even | Cloud Street| :w-north |
When importing
Then placex has no entry for W1
| id | nodes |
| 1 | 1,100,101,102,2 |
And the places
- | osm | class | type | housenr | geometry |
+ | osm | class | type | addr+interpolation | geometry |
| W1 | place | houses | even | :w-north |
When importing
Then W1 expands to no interpolation
| N1 | place | house | 2 | :n-north-w |
| N2 | place | house | 6 | :n-north-e |
And updating places
- | osm | class | type | housenr | street | geometry |
+ | osm | class | type | addr+interpolation | street | geometry |
| W1 | place | houses | even | Cloud Street| :w-north |
Then W1 expands to interpolation
| parent_place_id | start | end |
| id | nodes |
| 2 | 3,4,5 |
And the places
- | osm | class | type | housenr | geometry |
+ | osm | class | type | addr+interpolation | geometry |
| W2 | place | houses | even | 3,4,5 |
And the places
| osm | class | type | housenr |
| id | nodes |
| 2 | 3,4,5 |
And the places
- | osm | class | type | housenr | geometry |
+ | osm | class | type | addr+interpolation | geometry |
| W2 | place | houses | even | 3,4,5 |
And the places
| osm | class | type | housenr |
| id | nodes |
| 2 | 3,4 |
And the places
- | osm | class | type | housenr | geometry |
+ | osm | class | type | addr+interpolation | geometry |
| W2 | place | houses | even | 3,4 |
And the places
| osm | class | type | housenr |
self.columns['admin_level'] = int(value)
def set_key_housenr(self, value):
- self.add_hstore('address', 'housenumber', None if value == '' else value)
+ if value:
+ self.add_hstore('address', 'housenumber', value)
def set_key_postcode(self, value):
- self.add_hstore('address', 'postcode', None if value == '' else value)
+ if value:
+ self.add_hstore('address', 'postcode', value)
def set_key_street(self, value):
- self.add_hstore('address', 'street', None if value == '' else value)
+ if value:
+ self.add_hstore('address', 'street', value)
def set_key_addr_place(self, value):
- self.add_hstore('address', 'place', None if value == '' else value)
+ if value:
+ self.add_hstore('address', 'place', value)
def set_key_country(self, value):
- self.add_hstore('address', 'country', None if value == '' else value)
+ if value:
+ self.add_hstore('address', 'country', value)
def set_key_geometry(self, value):
self.geometry = self.context.osm.parse_geometry(value, self.context.scene)
if self.pid is None:
return "<null>"
- self.conn.cursor().execute("""SELECT osm_type, osm_id, class
- FROM placex WHERE place_id = %s""",
- self.pid)
+ cur = self.conn.cursor()
+ cur.execute("""SELECT osm_type, osm_id, class
+ FROM placex WHERE place_id = %s""",
+ (self.pid, ))
eq_(1, cur.rowcount, "No entry found for place id %s" % self.pid)
return "%s%s:%s" % cur.fetchone()
FROM word, (SELECT unnest(%s) as term) t
WHERE word_token = make_standard_name(t.term)""",
(terms,))
- ok_(subcur.rowcount >= len(terms))
+ ok_(subcur.rowcount >= len(terms),
+ "No word entry found for " + row[h])
for wid in subcur:
assert_in(wid[0], res[h],
"Missing term for %s/%s: %s" % (pid, h, wid[1]))