135 pd_order->
id =
get_Id(tuple, tupdesc, info[0], -1);
171 pd_order->
id =
get_Id(tuple, tupdesc, info[0], -1);
206 pd_order->
id =
get_Id(tuple, tupdesc, info[0], -1);
243 size_t *total_pd_orders,
246 const int column_count,
250 clock_t start_t = clock();
254 const int tuple_limit = 1000000;
264 bool moredata =
true;
265 (*total_pd_orders) = total_tuples = 0;
269 while (moredata ==
true) {
270 SPI_cursor_fetch(SPIportal,
true, tuple_limit);
271 if (total_tuples == 0) {
274 size_t ntuples = SPI_processed;
275 total_tuples += ntuples;
277 if ((*pd_orders) == NULL)
285 if ((*pd_orders) == NULL) {
286 elog(ERROR,
"Out of memory");
290 SPITupleTable *tuptable = SPI_tuptable;
291 TupleDesc tupdesc = SPI_tuptable->tupdesc;
292 for (t = 0; t < ntuples; t++) {
293 HeapTuple tuple = tuptable->vals[t];
296 &(*pd_orders)[total_tuples - ntuples + t]);
298 case 1 :
fetch_raw(&tuple, &tupdesc, info,
299 &(*pd_orders)[total_tuples - ntuples + t]);
302 &(*pd_orders)[total_tuples - ntuples + t]);
306 SPI_freetuptable(tuptable);
312 SPI_cursor_close(SPIportal);
314 if (total_tuples == 0) {
315 (*total_pd_orders) = 0;
319 (*total_pd_orders) = total_tuples;
321 time_msg(
"reading shipments", start_t, clock());
334 size_t *total_rows) {
335 const int column_count = 10;
338 for (
int i = 0; i < column_count; ++i) {
346 info[1].
name =
"amount";
347 info[2].
name =
"p_id";
348 info[3].
name =
"p_tw_open";
349 info[4].
name =
"p_tw_close";
350 info[5].
name =
"p_t_service";
351 info[6].
name =
"d_id";
352 info[7].
name =
"d_tw_open";
353 info[8].
name =
"d_tw_close";
354 info[9].
name =
"d_t_service";
379 size_t *total_rows) {
380 const int column_count = 10;
383 for (
int i = 0; i < column_count; ++i) {
391 info[1].
name =
"amount";
392 info[2].
name =
"p_open";
393 info[3].
name =
"p_close";
394 info[4].
name =
"p_service";
395 info[5].
name =
"d_open";
396 info[6].
name =
"d_close";
397 info[7].
name =
"d_service";
398 info[8].
name =
"p_id";
399 info[9].
name =
"d_id";
417 size_t *total_rows) {
418 const int column_count = 12;
421 for (
int i = 0; i < column_count; ++i) {
429 info[1].
name =
"amount";
430 info[2].
name =
"p_open";
431 info[3].
name =
"p_close";
432 info[4].
name =
"p_service";
433 info[5].
name =
"d_open";
434 info[6].
name =
"d_close";
435 info[7].
name =
"d_service";
436 info[8].
name =
"p_x";
437 info[9].
name =
"p_y";
438 info[10].
name =
"d_x";
439 info[11].
name =
"d_y";