75 PGR_DBG(
"execution_date: %ld ", execution_date);
80 (errcode(ERRCODE_INTERNAL_ERROR),
81 errmsg(
"Illegal value in parameter: factor"),
82 errhint(
"Value found: %f <= 0", factor)));
88 (errcode(ERRCODE_INTERNAL_ERROR),
89 errmsg(
"Illegal value in parameter: max_cycles"),
90 errhint(
"Value found: %d <= 0", max_cycles)));
96 size_t total_pd_orders = 0;
98 get_shipments(pd_orders_sql, &pd_orders_arr, &total_pd_orders);
103 if (total_pd_orders == 0) {
105 (*result_tuples) = NULL;
108 if (pd_orders_arr) {pfree(pd_orders_arr); pd_orders_arr = NULL;}
115 size_t total_vehicles = 0;
116 if (use_timestamps) {
117 get_vehicles(vehicles_sql, &vehicles_arr, &total_vehicles,
true);
122 if (total_vehicles == 0) {
124 (*result_tuples) = NULL;
127 if (pd_orders_arr) {pfree(pd_orders_arr); pd_orders_arr = NULL;}
128 if (vehicles_arr) {pfree(vehicles_arr); vehicles_arr = NULL;}
131 (errcode(ERRCODE_INTERNAL_ERROR),
132 errmsg(
"No vehicles found")));
139 size_t total_multipliers_arr = 0;
140 if (use_timestamps) {
141 PGR_DBG(
"get_timeMultipliers");
144 PGR_DBG(
"get_timeMultipliers_raw");
148 if (total_multipliers_arr == 0) {
150 (errcode(ERRCODE_INTERNAL_ERROR),
151 errmsg(
"No matrix found")));
153 (*result_tuples) = NULL;
156 if (pd_orders_arr) {pfree(pd_orders_arr); pd_orders_arr = NULL;}
157 if (vehicles_arr) {pfree(vehicles_arr); vehicles_arr = NULL;}
158 if (multipliers_arr) {pfree(multipliers_arr); multipliers_arr = NULL;}
165 size_t total_cells = 0;
166 if (use_timestamps) {
172 if (total_cells == 0) {
174 (*result_tuples) = NULL;
177 if (pd_orders_arr) {pfree(pd_orders_arr); pd_orders_arr = NULL;}
178 if (vehicles_arr) {pfree(vehicles_arr); vehicles_arr = NULL;}
179 if (multipliers_arr) {pfree(multipliers_arr); multipliers_arr = NULL;}
180 if (matrix_cells_arr) {pfree(matrix_cells_arr); matrix_cells_arr = NULL;}
183 (errcode(ERRCODE_INTERNAL_ERROR),
184 errmsg(
"No matrix found")));
189 PGR_DBG(
"Total %ld orders in query:", total_pd_orders);
190 PGR_DBG(
"Total %ld vehicles in query:", total_vehicles);
191 PGR_DBG(
"Total %ld matrix cells in query:", total_cells);
192 PGR_DBG(
"Total %ld time dependant multipliers:", total_multipliers_arr);
194 clock_t start_t = clock();
195 char *log_msg = NULL;
196 char *notice_msg = NULL;
197 char *err_msg = NULL;
200 pd_orders_arr, total_pd_orders,
201 vehicles_arr, total_vehicles,
202 matrix_cells_arr, total_cells,
203 multipliers_arr, total_multipliers_arr,
219 time_msg(
"pgr_pickDeliver", start_t, clock());
221 if (err_msg && (*result_tuples)) {
222 pfree(*result_tuples);
224 (*result_tuples) = NULL;
229 if (log_msg) {pfree(log_msg); log_msg = NULL;}
230 if (notice_msg) {pfree(notice_msg); notice_msg = NULL;}
231 if (err_msg) {pfree(err_msg); err_msg = NULL;}
232 if (pd_orders_arr) {pfree(pd_orders_arr); pd_orders_arr = NULL;}
233 if (vehicles_arr) {pfree(vehicles_arr); vehicles_arr = NULL;}
234 if (multipliers_arr) {pfree(multipliers_arr); multipliers_arr = NULL;}
235 if (matrix_cells_arr) {pfree(matrix_cells_arr); matrix_cells_arr = NULL;}