@golemio/pid 2.11.7-dev.1165818521 → 2.11.7-dev.1168947446
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/00_clear_test_data.sql +1 -0
- package/db/example/18_train_trip_with_cis_platform_code.sql +57 -0
- package/db/migrations/postgresql/20240205151434-cis-platform-code.js +53 -0
- package/db/migrations/postgresql/sqls/20240205151434-cis-platform-code-down.sql +341 -0
- package/db/migrations/postgresql/sqls/20240205151434-cis-platform-code-up.sql +382 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +3 -1
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +10 -4
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.d.ts +4 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.js +19 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +9 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/interfaces/TripRepositoryInterfaces.d.ts +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/mpv-net/MpvStopParser.d.ts +10 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/mpv-net/MpvStopParser.js +20 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/mpv-net/MpvStopParser.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/MpvMessageInterfaces.d.ts +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/TransformationInterfaces.d.ts +3 -17
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +11 -7
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/{PositionsTransformation.d.ts → MpvMessageTransformation.d.ts} +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/{PositionsTransformation.js → MpvMessageTransformation.js} +15 -55
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js.map +1 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.d.ts +7 -0
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +13 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
- package/dist/output-gateway/pid/index.d.ts +1 -0
- package/dist/output-gateway/pid/index.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopDto.d.ts +3 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopDto.d.ts +3 -2
- package/dist/schema-definitions/ropid-gtfs/models/StopDto.js +7 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopDto.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/StopTimesDto.d.ts +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/StopTimesDto.js +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/StopTimesDto.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js +4 -0
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +1 -0
- package/dist/schema-definitions/vehicle-positions/models/CisStopModel.d.ts +11 -0
- package/dist/schema-definitions/vehicle-positions/models/CisStopModel.js +41 -0
- package/dist/schema-definitions/vehicle-positions/models/CisStopModel.js.map +1 -0
- package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICisStopDto.d.ts +5 -0
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICisStopDto.js +3 -0
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICisStopDto.js.map +1 -0
- package/dist/schema-definitions/vehicle-positions/models/interfaces/IGtfsRtTripDto.d.ts +2 -0
- package/dist/schema-definitions/vehicle-positions/models/views/StopTimeDelayPredictionModel.d.ts +2 -0
- package/dist/schema-definitions/vehicle-positions/models/views/StopTimeDelayPredictionModel.js +8 -0
- package/dist/schema-definitions/vehicle-positions/models/views/StopTimeDelayPredictionModel.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/views/interfaces/IStopTimeDelayPredictionDto.d.ts +2 -0
- package/docs/assets/pid_vp_cis_erd.jpg +0 -0
- package/docs/implementation_documentation.md +4 -0
- package/package.json +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.js.map +0 -1
|
@@ -25,6 +25,7 @@ TRUNCATE
|
|
|
25
25
|
"vehiclepositions_metro_runs_messages",
|
|
26
26
|
"vehiclepositions_regional_bus_runs_messages",
|
|
27
27
|
"vehiclepositions_vehicle_descriptors",
|
|
28
|
+
"vehiclepositions_cis_stops",
|
|
28
29
|
"ropid_departures_directions",
|
|
29
30
|
"ropid_departures_presets",
|
|
30
31
|
"ropid_departures_preset_logs",
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
-- ropidgtfs_cis_stops_actual
|
|
2
|
+
INSERT INTO ropidgtfs_cis_stops_actual (alt_idos_name,cis,id,jtsk_x,jtsk_y,lat,lon,platform,wheelchair_access,"zone",create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
3
|
+
('Praha hl.n.',5457076,'142/301',-741816.7,-1043640.06,50.0830956,14.4361944,NULL,'possible','P',NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL);
|
|
4
|
+
|
|
5
|
+
-- ropidgtfs_stops_actual
|
|
6
|
+
INSERT INTO ropidgtfs_stops_actual (location_type,parent_station,platform_code,stop_id,stop_lat,stop_lon,stop_name,stop_url,wheelchair_boarding,zone_id,level_id,stop_code,stop_desc,stop_timezone,asw_node_id,asw_stop_id,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
7
|
+
(0,NULL,NULL,'U142Z301',50.083096,14.436194,'Praha hl.n.',NULL,0,'P',NULL,NULL,NULL,NULL,142,301,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL);
|
|
8
|
+
|
|
9
|
+
-- ropidgtfs_stop_times_actual
|
|
10
|
+
INSERT INTO ropidgtfs_stop_times_actual (arrival_time,arrival_time_seconds,departure_time,departure_time_seconds,drop_off_type,pickup_type,shape_dist_traveled,stop_headsign,stop_id,stop_sequence,trip_id,timepoint,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
11
|
+
('11:05:00',NULL,'11:05:00',NULL,'0','0',0.0,NULL,'U1384Z301',1,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
12
|
+
('11:10:30',NULL,'11:10:30',NULL,'0','0',6.965987,NULL,'U1592Z301',2,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
13
|
+
('11:13:00',NULL,'11:13:30',NULL,'0','0',9.234362,NULL,'U1383Z301',3,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
14
|
+
('11:15:30',NULL,'11:15:30',NULL,'0','0',10.599476,NULL,'U1553Z301',4,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
15
|
+
('11:16:00',NULL,'11:16:00',NULL,'1','1',10.977712,NULL,'T55045',5,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
16
|
+
('11:18:00',NULL,'11:18:00',NULL,'0','0',12.081005,NULL,'U1595Z301',6,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
17
|
+
('11:21:30',NULL,'11:22:00',NULL,'0','0',15.744629,NULL,'U1554Z301',7,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
18
|
+
('11:24:00',NULL,'11:24:00',NULL,'0','0',17.446669,NULL,'U1863Z301',8,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
19
|
+
('11:27:00',NULL,'11:27:00',NULL,'0','0',20.199308,NULL,'U2277Z301',9,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
20
|
+
('11:30:30',NULL,'11:31:00',NULL,'0','0',23.272876,NULL,'U1696Z301',10,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL);
|
|
21
|
+
INSERT INTO ropidgtfs_stop_times_actual (arrival_time,arrival_time_seconds,departure_time,departure_time_seconds,drop_off_type,pickup_type,shape_dist_traveled,stop_headsign,stop_id,stop_sequence,trip_id,timepoint,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
22
|
+
('11:34:30',NULL,'11:34:30',NULL,'0','0',26.724406,NULL,'U1928Z301',11,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
23
|
+
('11:38:00',NULL,'11:38:30',NULL,'0','0',30.18869,NULL,'U2142Z301',12,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
24
|
+
('11:40:00',NULL,'11:40:00',NULL,'1','1',31.640481,NULL,'T54985',13,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
25
|
+
('11:41:30',NULL,'11:41:30',NULL,'0','0',33.55939,NULL,'U1175Z301',14,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
26
|
+
('11:45:00',NULL,'11:45:30',NULL,'0','0',36.897057,NULL,'U461Z301',15,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
27
|
+
('11:48:00',NULL,'11:48:00',NULL,'0','0',39.372307,NULL,'U1069Z301',16,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
28
|
+
('11:50:30',NULL,'11:51:00',NULL,'0','0',41.600968,NULL,'U453Z301',17,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
29
|
+
('11:53:30',NULL,'11:53:30',NULL,'0','0',44.317898,NULL,'U2781Z301',18,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
30
|
+
('11:57:00',NULL,'11:57:00',NULL,'0','0',46.670035,NULL,'U680Z301',19,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
31
|
+
('12:00:00',NULL,'12:00:00',NULL,'0','0',48.583367,NULL,'U463Z301',20,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL);
|
|
32
|
+
INSERT INTO ropidgtfs_stop_times_actual (arrival_time,arrival_time_seconds,departure_time,departure_time_seconds,drop_off_type,pickup_type,shape_dist_traveled,stop_headsign,stop_id,stop_sequence,trip_id,timepoint,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
33
|
+
('12:03:00',NULL,'12:03:00',NULL,'1','1',50.333377,NULL,'T57073',21,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL),
|
|
34
|
+
('12:05:00',NULL,'12:05:00',NULL,'0','0',51.193462,NULL,'U142Z301',22,'1309_2530_231210',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL);
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
-- ropidgtfs_routes_actual
|
|
38
|
+
INSERT INTO ropidgtfs_routes_actual (agency_id,is_night,route_color,route_desc,route_id,route_long_name,route_short_name,route_text_color,route_type,route_url,is_regional,is_substitute_transport,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
39
|
+
('99','0','251E62',NULL,'L1309','Lysá nad Labem - Praha - Říčany - Strančice - Čerčany - Benešov u Prahy','S9','FFFFFF',2,'https://cz/linka/S9','1','0',NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL);
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
-- ropidgtfs_trips_actual
|
|
43
|
+
INSERT INTO ropidgtfs_trips_actual (bikes_allowed,block_id,direction_id,exceptional,route_id,service_id,shape_id,trip_headsign,trip_id,wheelchair_accessible,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by,trip_operation_type,trip_short_name) VALUES
|
|
44
|
+
(1,NULL,0,0,'L1309','1111111-2','L1249V1','Praha hl.n.','1309_2530_231210',1,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'2024-02-06 05:23:14.828',NULL,NULL,'Os 2530');
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
-- vehiclepositions_trips
|
|
48
|
+
INSERT INTO vehiclepositions_trips (cis_line_id,cis_trip_number,run_number,cis_line_short_name,created_at,gtfs_route_id,gtfs_route_short_name,gtfs_trip_id,id,updated_at,start_cis_stop_id,start_cis_stop_platform_code,start_time,start_timestamp,vehicle_type_id,wheelchair_accessible,create_batch_id,created_by,update_batch_id,updated_by,agency_name_scheduled,origin_route_name,agency_name_real,vehicle_registration_number,gtfs_trip_headsign,start_asw_stop_id,gtfs_route_type,gtfs_block_id,last_position_id,is_canceled,end_timestamp,gtfs_trip_short_name,last_position_context,internal_run_number,internal_route_name,gtfs_date,provider_source_type,gtfs_direction_id,gtfs_shape_id) VALUES
|
|
49
|
+
('none',2530,NULL,'S9',concat(CURRENT_DATE,'T10:05:52Z')::timestamp,'L1309','S9','1309_2530_231210',concat(CURRENT_DATE,'T10:05:00Z_2530'),concat(CURRENT_DATE,'T11:07:25Z')::timestamp,5455106,NULL,'11:05:00',concat(CURRENT_DATE,'T10:05:00Z')::timestamp,0,true,NULL,NULL,NULL,NULL,'ČESKÉ DRÁHY',NULL,NULL,NULL,'Praha hl.n.',NULL,2,NULL,2679563888,false,concat(CURRENT_DATE,'T11:05:00Z')::timestamp,'Os 2530',NULL,NULL,NULL,CURRENT_DATE,'1',0,'L1249V1');
|
|
50
|
+
|
|
51
|
+
-- vehiclepositions_positions
|
|
52
|
+
INSERT INTO vehiclepositions_positions (created_at,delay,delay_stop_arrival,delay_stop_departure,next_stop_id,shape_dist_traveled,is_canceled,lat,lng,origin_time,origin_timestamp,is_tracked,trips_id,create_batch_id,created_by,update_batch_id,updated_at,updated_by,id,bearing,cis_last_stop_id,cis_last_stop_sequence,last_stop_id,last_stop_sequence,next_stop_sequence,speed,last_stop_arrival_time,last_stop_departure_time,next_stop_arrival_time,next_stop_departure_time,asw_last_stop_id,state_process,state_position,this_stop_id,this_stop_sequence,tcp_event,last_stop_headsign,last_stop_name,next_stop_name,this_stop_name,valid_to,scheduled_timestamp) VALUES
|
|
53
|
+
(concat(CURRENT_DATE,'T11:06:05Z')::timestamp,35,60,NULL,'U142Z301',51.193,false,50.0829926,14.4362745,'12:05:35',concat(CURRENT_DATE,'T11:05:35Z')::timestamp,true,concat(CURRENT_DATE,'T10:05:00Z_2530'),NULL,NULL,NULL,'2024-02-06 12:06:06.762',NULL,2679563888,25,5457076,19,'U142Z301',22,22,NULL,concat(CURRENT_DATE,'T11:05:00Z')::timestamp,concat(CURRENT_DATE,'T11:05:00Z')::timestamp,concat(CURRENT_DATE,'T11:05:00Z')::timestamp,concat(CURRENT_DATE,'T11:05:00Z')::timestamp,NULL,'processed','at_stop','U142Z301',22,NULL,NULL,'Praha hl.n.',NULL,NULL,NULL,NULL);
|
|
54
|
+
|
|
55
|
+
-- vehiclepositions_cis_stops
|
|
56
|
+
insert into vehiclepositions_cis_stops (rt_trip_id, cis_stop_group_id, cis_stop_platform_code, created_at, updated_at) VALUES
|
|
57
|
+
(concat(CURRENT_DATE,'T10:05:00Z_2530'), 5457076, '1A/1', now(), now());
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dbm;
|
|
4
|
+
var type;
|
|
5
|
+
var seed;
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
var Promise;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
12
|
+
* This enables us to not have to rely on NODE_PATH.
|
|
13
|
+
*/
|
|
14
|
+
exports.setup = function(options, seedLink) {
|
|
15
|
+
dbm = options.dbmigrate;
|
|
16
|
+
type = dbm.dataType;
|
|
17
|
+
seed = seedLink;
|
|
18
|
+
Promise = options.Promise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.up = function(db) {
|
|
22
|
+
var filePath = path.join(__dirname, 'sqls', '20240205151434-cis-platform-code-up.sql');
|
|
23
|
+
return new Promise( function( resolve, reject ) {
|
|
24
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
25
|
+
if (err) return reject(err);
|
|
26
|
+
console.log('received data: ' + data);
|
|
27
|
+
|
|
28
|
+
resolve(data);
|
|
29
|
+
});
|
|
30
|
+
})
|
|
31
|
+
.then(function(data) {
|
|
32
|
+
return db.runSql(data);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.down = function(db) {
|
|
37
|
+
var filePath = path.join(__dirname, 'sqls', '20240205151434-cis-platform-code-down.sql');
|
|
38
|
+
return new Promise( function( resolve, reject ) {
|
|
39
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
40
|
+
if (err) return reject(err);
|
|
41
|
+
console.log('received data: ' + data);
|
|
42
|
+
|
|
43
|
+
resolve(data);
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
.then(function(data) {
|
|
47
|
+
return db.runSql(data);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports._meta = {
|
|
52
|
+
"version": 1
|
|
53
|
+
};
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
CREATE OR REPLACE PROCEDURE vehiclepositions_data_retention(inout numberOfRows int, in dataRetentionMinutes int)
|
|
2
|
+
LANGUAGE plpgsql
|
|
3
|
+
SET search_path FROM CURRENT
|
|
4
|
+
AS $procedure$
|
|
5
|
+
declare
|
|
6
|
+
idsForDelete varchar(255)[];
|
|
7
|
+
begin
|
|
8
|
+
select array_agg(t.id) from vehiclepositions_trips t
|
|
9
|
+
left join vehiclepositions_positions p on
|
|
10
|
+
p.id = t.last_position_id
|
|
11
|
+
where
|
|
12
|
+
p.valid_to < (NOW() - (dataRetentionMinutes || ' minutes')::interval)
|
|
13
|
+
or (gtfs_trip_id is null and p.created_at < NOW() - (dataRetentionMinutes || ' minutes')::interval) -- entries with valid to is null
|
|
14
|
+
into idsForDelete;
|
|
15
|
+
|
|
16
|
+
INSERT INTO vehiclepositions_trips_history
|
|
17
|
+
select * from vehiclepositions_trips where id = ANY(idsForDelete)
|
|
18
|
+
on conflict do nothing;
|
|
19
|
+
|
|
20
|
+
INSERT INTO vehiclepositions_positions_history
|
|
21
|
+
select * from vehiclepositions_positions where trips_id = ANY(idsForDelete)
|
|
22
|
+
on conflict do nothing;
|
|
23
|
+
|
|
24
|
+
insert into vehiclepositions_stop_times_history (
|
|
25
|
+
rt_trip_id,
|
|
26
|
+
gtfs_date,
|
|
27
|
+
gtfs_trip_id,
|
|
28
|
+
gtfs_direction_id,
|
|
29
|
+
gtfs_route_short_name,
|
|
30
|
+
gtfs_route_type,
|
|
31
|
+
run_number,
|
|
32
|
+
vehicle_registration_number,
|
|
33
|
+
gtfs_stop_id,
|
|
34
|
+
gtfs_stop_sequence,
|
|
35
|
+
current_stop_arrival,
|
|
36
|
+
current_stop_departure,
|
|
37
|
+
current_stop_arr_delay,
|
|
38
|
+
current_stop_dep_delay,
|
|
39
|
+
created_at,
|
|
40
|
+
updated_at,
|
|
41
|
+
origin_route_name
|
|
42
|
+
)
|
|
43
|
+
select
|
|
44
|
+
rt_trip.id,
|
|
45
|
+
rt_trip.gtfs_date,
|
|
46
|
+
rt_trip.gtfs_trip_id,
|
|
47
|
+
rt_trip.gtfs_direction_id,
|
|
48
|
+
rt_trip.gtfs_route_short_name,
|
|
49
|
+
rt_trip.gtfs_route_type,
|
|
50
|
+
rt_trip.run_number,
|
|
51
|
+
rt_trip.vehicle_registration_number,
|
|
52
|
+
stop_time.stop_id,
|
|
53
|
+
stop_time.stop_sequence,
|
|
54
|
+
stop_time.stop_arrival,
|
|
55
|
+
stop_time.stop_departure,
|
|
56
|
+
stop_time.stop_arr_delay,
|
|
57
|
+
stop_time.stop_dep_delay,
|
|
58
|
+
now(),
|
|
59
|
+
now(),
|
|
60
|
+
rt_trip.origin_route_name
|
|
61
|
+
from
|
|
62
|
+
vehiclepositions_trips rt_trip
|
|
63
|
+
join
|
|
64
|
+
v_vehiclepositions_past_stop_times stop_time on stop_time.rt_trip_id = rt_trip.id
|
|
65
|
+
where
|
|
66
|
+
rt_trip.id = ANY(idsForDelete)
|
|
67
|
+
on conflict do nothing;
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
delete from vehiclepositions_positions where trips_id = ANY(idsForDelete);
|
|
71
|
+
delete from vehiclepositions_trips where id = ANY(idsForDelete);
|
|
72
|
+
|
|
73
|
+
select array_length(idsForDelete,1) into numberOfRows;
|
|
74
|
+
end;
|
|
75
|
+
$procedure$;
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
drop function get_departures;
|
|
79
|
+
create function get_departures (
|
|
80
|
+
stopsIds varchar,
|
|
81
|
+
mode int,
|
|
82
|
+
dateDepartureBetweenStart timestamptz,
|
|
83
|
+
dateDepartureBetweenEnd timestamptz,
|
|
84
|
+
isNegativeMinutesBefore int,
|
|
85
|
+
dateCanceledDepartureBetweenStart timestamptz,
|
|
86
|
+
dateCanceledDepartureBetweenEnd timestamptz,
|
|
87
|
+
airconditioninfoenabled int
|
|
88
|
+
)
|
|
89
|
+
returns table (
|
|
90
|
+
departure_datetime_real timestamptz,
|
|
91
|
+
arrival_datetime_real timestamptz,
|
|
92
|
+
stop_sequence int2,
|
|
93
|
+
stop_headsign varchar(70),
|
|
94
|
+
arrival_datetime timestamptz,
|
|
95
|
+
departure_datetime timestamptz,
|
|
96
|
+
stop_id varchar(25),
|
|
97
|
+
platform_code varchar(10),
|
|
98
|
+
wheelchair_boarding int2,
|
|
99
|
+
min_stop_sequence int2,
|
|
100
|
+
max_stop_sequence int2,
|
|
101
|
+
trip_id varchar(50),
|
|
102
|
+
trip_headsign varchar(100),
|
|
103
|
+
trip_short_name varchar(30),
|
|
104
|
+
wheelchair_accessible int2,
|
|
105
|
+
route_short_name varchar(50),
|
|
106
|
+
route_type int2,
|
|
107
|
+
route_id varchar(20),
|
|
108
|
+
is_night bpchar(1),
|
|
109
|
+
is_regional bpchar(1),
|
|
110
|
+
is_substitute_transport bpchar(1),
|
|
111
|
+
next_stop_id varchar(30),
|
|
112
|
+
delay_seconds int4,
|
|
113
|
+
real_wheelchair_accessible bool,
|
|
114
|
+
is_canceled bool,
|
|
115
|
+
"trip.gtfs_trip_short_name" varchar(255),
|
|
116
|
+
"trip.gtfs_date" date,
|
|
117
|
+
"trip.internal_route_name" varchar(50),
|
|
118
|
+
"trip.internal_run_number" int4,
|
|
119
|
+
"trip.last_position.last_stop_id" varchar(255),
|
|
120
|
+
"trip.last_position.last_stop_sequence" int4,
|
|
121
|
+
"trip.last_position.last_stop_name" varchar(255),
|
|
122
|
+
"trip.last_position.this_stop_sequence" int4,
|
|
123
|
+
"trip.vehicle_descriptor.is_air_conditioned" bool,
|
|
124
|
+
delay_minutes int4,
|
|
125
|
+
is_delay_available bool
|
|
126
|
+
)
|
|
127
|
+
language SQL
|
|
128
|
+
set search_path from current
|
|
129
|
+
as $$
|
|
130
|
+
select
|
|
131
|
+
departure_boards_detailed."computed.departure_datetime_real",
|
|
132
|
+
departure_boards_detailed."computed.arrival_datetime_real",
|
|
133
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
|
|
134
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
|
|
135
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
|
|
136
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
|
|
137
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
|
|
138
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
|
|
139
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
140
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
141
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
142
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
|
|
143
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
|
|
144
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
|
|
145
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
146
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
|
|
147
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
|
|
148
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
|
|
149
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
|
|
150
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
|
|
151
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
152
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
|
|
153
|
+
departure_boards_detailed."delay_seconds",
|
|
154
|
+
departure_boards_detailed."real_wheelchair_accessible",
|
|
155
|
+
departure_boards_detailed."is_canceled",
|
|
156
|
+
departure_boards_detailed."trip.gtfs_trip_short_name",
|
|
157
|
+
departure_boards_detailed."trip.gtfs_date",
|
|
158
|
+
departure_boards_detailed."trip.internal_route_name",
|
|
159
|
+
departure_boards_detailed."trip.internal_run_number",
|
|
160
|
+
departure_boards_detailed."trip.last_position.last_stop_id",
|
|
161
|
+
departure_boards_detailed."trip.last_position.last_stop_sequence",
|
|
162
|
+
departure_boards_detailed."trip.last_position.last_stop_name",
|
|
163
|
+
departure_boards_detailed."trip.last_position.this_stop_sequence",
|
|
164
|
+
case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
|
|
165
|
+
TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
|
|
166
|
+
case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available"
|
|
167
|
+
from (
|
|
168
|
+
select
|
|
169
|
+
("departure_datetime"
|
|
170
|
+
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
|
|
171
|
+
- case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
|
|
172
|
+
then least (
|
|
173
|
+
MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
|
|
174
|
+
("departure_datetime" - "arrival_datetime")::interval
|
|
175
|
+
)
|
|
176
|
+
else MAKE_INTERVAL()
|
|
177
|
+
end
|
|
178
|
+
) "computed.departure_datetime_real",
|
|
179
|
+
"arrival_datetime" + MAKE_INTERVAL(secs => (
|
|
180
|
+
CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
|
|
181
|
+
)) "computed.arrival_datetime_real",
|
|
182
|
+
"ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
|
|
183
|
+
"ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
|
|
184
|
+
"ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
|
|
185
|
+
"ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
|
|
186
|
+
"ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
|
|
187
|
+
"ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
|
|
188
|
+
"ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
|
|
189
|
+
"ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
|
|
190
|
+
"ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
|
|
191
|
+
"ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
|
|
192
|
+
"ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
|
|
193
|
+
"ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
194
|
+
"ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
195
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
196
|
+
"ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
|
|
197
|
+
"ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
|
|
198
|
+
"ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
|
|
199
|
+
"ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
200
|
+
"ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
|
|
201
|
+
"ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
|
|
202
|
+
"ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
|
|
203
|
+
"ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
|
|
204
|
+
"ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
|
|
205
|
+
"ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
|
|
206
|
+
"ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
|
|
207
|
+
"ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
208
|
+
"ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
|
|
209
|
+
"ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
|
|
210
|
+
"ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
|
|
211
|
+
"ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
|
|
212
|
+
x.*
|
|
213
|
+
from
|
|
214
|
+
"ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
|
|
215
|
+
left outer join v_vehiclepositions_trip_position_vehicle_info as x on
|
|
216
|
+
"ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
|
|
217
|
+
) departure_boards_detailed
|
|
218
|
+
where
|
|
219
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
|
|
220
|
+
and (
|
|
221
|
+
(
|
|
222
|
+
(
|
|
223
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
224
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
225
|
+
)
|
|
226
|
+
and
|
|
227
|
+
(
|
|
228
|
+
0 = isNegativeMinutesBefore
|
|
229
|
+
or ( -- pro záporné minutes before
|
|
230
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
|
|
231
|
+
or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
|
|
232
|
+
)
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
)
|
|
236
|
+
or (
|
|
237
|
+
departure_boards_detailed."trip.is_canceled" = true
|
|
238
|
+
and
|
|
239
|
+
(
|
|
240
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
241
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
242
|
+
)
|
|
243
|
+
)
|
|
244
|
+
) and
|
|
245
|
+
(
|
|
246
|
+
(mode = 1 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence")) -- mode default/departures
|
|
247
|
+
or (mode=2 and (departure_boards_detailed."ropidgtfs_precomputed_departures.drop_off_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence")) -- mode arrivals
|
|
248
|
+
or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
|
|
249
|
+
);
|
|
250
|
+
$$;
|
|
251
|
+
|
|
252
|
+
drop view v_vehiclepositions_stop_time_delay_prediction;
|
|
253
|
+
create view v_vehiclepositions_stop_time_delay_prediction as
|
|
254
|
+
with recursive stop_times as (
|
|
255
|
+
select
|
|
256
|
+
rst.trip_id,
|
|
257
|
+
vt.provider_source_type,
|
|
258
|
+
vp.delay,
|
|
259
|
+
coalesce(vp.last_stop_sequence, 1) as initial_stop_sequence,
|
|
260
|
+
vp.state_position,
|
|
261
|
+
rst.stop_sequence,
|
|
262
|
+
rst.stop_id,
|
|
263
|
+
rst.computed_dwell_time_seconds,
|
|
264
|
+
case when vp.last_stop_sequence is null
|
|
265
|
+
then vp.delay
|
|
266
|
+
else vp.delay_stop_arrival
|
|
267
|
+
end as arrival_delay_seconds,
|
|
268
|
+
case when vp.last_stop_sequence is null
|
|
269
|
+
then predict_delay_seconds(vp.delay, rst.computed_dwell_time_seconds, vt.provider_source_type)
|
|
270
|
+
when vp.state_position = 'at_stop'
|
|
271
|
+
then case when vt.provider_source_type = '1' then greatest(0, vp.delay) else vp.delay end
|
|
272
|
+
else vp.delay_stop_departure
|
|
273
|
+
end as departure_delay_seconds
|
|
274
|
+
from ropidgtfs_stop_times rst
|
|
275
|
+
inner join vehiclepositions_trips vt on vt.gtfs_trip_id = rst.trip_id
|
|
276
|
+
inner join vehiclepositions_positions vp on vp.id = vt.last_position_id
|
|
277
|
+
and (vp.valid_to is null or vp.valid_to >= now())
|
|
278
|
+
where
|
|
279
|
+
vt.gtfs_trip_id is not null
|
|
280
|
+
and rst.stop_sequence = coalesce(vp.last_stop_sequence, 1)
|
|
281
|
+
union all
|
|
282
|
+
select
|
|
283
|
+
rst.trip_id,
|
|
284
|
+
previous_row.provider_source_type,
|
|
285
|
+
previous_row.delay,
|
|
286
|
+
previous_row.initial_stop_sequence,
|
|
287
|
+
previous_row.state_position,
|
|
288
|
+
rst.stop_sequence,
|
|
289
|
+
rst.stop_id,
|
|
290
|
+
rst.computed_dwell_time_seconds,
|
|
291
|
+
case when rst.stop_sequence - previous_row.initial_stop_sequence = 1 and previous_row.state_position != 'at_stop'
|
|
292
|
+
then previous_row.delay
|
|
293
|
+
else previous_row.departure_delay_seconds
|
|
294
|
+
end as arrival_delay_seconds,
|
|
295
|
+
predict_delay_seconds(
|
|
296
|
+
case when rst.stop_sequence - previous_row.initial_stop_sequence = 1 and previous_row.state_position != 'at_stop' then previous_row.delay else previous_row.departure_delay_seconds end,
|
|
297
|
+
rst.computed_dwell_time_seconds,
|
|
298
|
+
previous_row.provider_source_type
|
|
299
|
+
) as departure_delay_seconds
|
|
300
|
+
from stop_times previous_row
|
|
301
|
+
inner join ropidgtfs_stop_times rst on rst.trip_id = previous_row.trip_id and rst.stop_sequence = previous_row.stop_sequence + 1
|
|
302
|
+
)
|
|
303
|
+
select trip_id, stop_sequence, stop_id, arrival_delay_seconds, departure_delay_seconds
|
|
304
|
+
from stop_times
|
|
305
|
+
order by trip_id, stop_sequence;
|
|
306
|
+
|
|
307
|
+
comment on view v_vehiclepositions_stop_time_delay_prediction is '
|
|
308
|
+
This view contains the predicted delay of a vehicle at each stop.
|
|
309
|
+
';
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
CREATE OR REPLACE PROCEDURE ropidgtfs_preparetmptables()
|
|
313
|
+
LANGUAGE plpgsql
|
|
314
|
+
SET search_path from CURRENT
|
|
315
|
+
AS $procedure$
|
|
316
|
+
begin
|
|
317
|
+
CALL ropidgtfs_cleanTmpTables();
|
|
318
|
+
CALL ropidgtfs_cleanOldTables();
|
|
319
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_agency');
|
|
320
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_calendar');
|
|
321
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_calendar_dates');
|
|
322
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_shapes');
|
|
323
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_stop_times');
|
|
324
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_stops');
|
|
325
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_routes');
|
|
326
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_route_sub_agencies');
|
|
327
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_trips');
|
|
328
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_cis_stops');
|
|
329
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_cis_stop_groups');
|
|
330
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_run_numbers');
|
|
331
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_ois');
|
|
332
|
+
alter table ropidgtfs_stop_times_tmp drop computed_dwell_time_seconds;
|
|
333
|
+
alter table ropidgtfs_stop_times_tmp add computed_dwell_time_seconds int2 NOT NULL GENERATED ALWAYS AS (calculate_dwell_time_seconds(arrival_time, departure_time)) stored;
|
|
334
|
+
end
|
|
335
|
+
$procedure$
|
|
336
|
+
;
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
alter table ropidgtfs_stops drop column computed_cis_stop_id;
|
|
340
|
+
alter table ropidgtfs_precomputed_departures drop column cis_stop_group_id;
|
|
341
|
+
drop table vehiclepositions_cis_stops;
|