comparison pkg/imports/bn.go @ 3566:4c585b5d4fe8

Introduce hectometer based order for ranges of ISRS location codes
author Tom Gottfried <tom@intevation.de>
date Fri, 31 May 2019 20:06:27 +0200
parents c03224d33e78
children 02951a62e8c6
comparison
equal deleted inserted replaced
3565:f6d67697f158 3566:4c585b5d4fe8
44 const ( 44 const (
45 hasBottleneckSQL = ` 45 hasBottleneckSQL = `
46 SELECT true FROM waterway.bottlenecks WHERE bottleneck_id = $1` 46 SELECT true FROM waterway.bottlenecks WHERE bottleneck_id = $1`
47 47
48 insertBottleneckSQL = ` 48 insertBottleneckSQL = `
49 WITH
50 bounds (b) AS (VALUES (isrs_fromText($5)), (isrs_fromText($6))),
51 r AS (SELECT isrsrange(
52 (SELECT b FROM bounds ORDER BY b USING <~ FETCH FIRST ROW ONLY),
53 (SELECT b FROM bounds ORDER BY b USING >~ FETCH FIRST ROW ONLY)) AS r)
49 INSERT INTO waterway.bottlenecks ( 54 INSERT INTO waterway.bottlenecks (
50 bottleneck_id, 55 bottleneck_id,
51 gauge_location, 56 gauge_location,
52 gauge_validity, 57 gauge_validity,
53 objnam, 58 objnam,
68 (SELECT validity FROM waterway.gauges 73 (SELECT validity FROM waterway.gauges
69 WHERE location = isrs_fromText($2) AND NOT erased), 74 WHERE location = isrs_fromText($2) AND NOT erased),
70 tstzrange(NULL, NULL)), 75 tstzrange(NULL, NULL)),
71 $3, 76 $3,
72 $4, 77 $4,
73 isrsrange(least(isrs_fromText($5), isrs_fromText($6)), 78 (SELECT r FROM r),
74 greatest(isrs_fromText($5), isrs_fromText($6))),
75 ISRSrange_area( 79 ISRSrange_area(
76 ISRSrange_axis(isrsrange(least(isrs_fromText($5), isrs_fromText($6)), 80 ISRSrange_axis((SELECT r FROM r),
77 greatest(isrs_fromText($5), isrs_fromText($6))),
78 $14), 81 $14),
79 (SELECT ST_Collect(CAST(area AS geometry)) 82 (SELECT ST_Collect(CAST(area AS geometry))
80 FROM waterway.waterway_area)), 83 FROM waterway.waterway_area)),
81 $7, 84 $7,
82 $8, 85 $8,