92 shipment->
id =
get_Idx(tuple, tupdesc, info[0], 0);
138 size_t *total_shipments,
141 const int column_count,
144 clock_t start_t = clock();
148 const int tuple_limit = 1000000;
157 bool moredata =
true;
158 (*total_shipments) = total_tuples = 0;
162 while (moredata ==
true) {
163 SPI_cursor_fetch(SPIportal,
true, tuple_limit);
164 if (total_tuples == 0) {
167 size_t ntuples = SPI_processed;
168 total_tuples += ntuples;
170 if ((*shipments) == NULL)
178 if ((*shipments) == NULL) {
179 elog(ERROR,
"Out of memory");
183 SPITupleTable *tuptable = SPI_tuptable;
184 TupleDesc tupdesc = SPI_tuptable->tupdesc;
185 for (t = 0; t < ntuples; t++) {
186 HeapTuple tuple = tuptable->vals[t];
188 &(*shipments)[total_tuples - ntuples + t], is_plain);
190 SPI_freetuptable(tuptable);
196 SPI_cursor_close(SPIportal);
198 if (total_tuples == 0) {
199 (*total_shipments) = 0;
203 (*total_shipments) = total_tuples;
205 time_msg(
"reading shipments", start_t, clock());
221 int kColumnCount = 12;
224 for (
int i = 0; i < kColumnCount; ++i) {
234 info[1].
name =
"p_location_id";
235 info[2].
name =
"p_setup";
236 info[3].
name =
"p_service";
239 info[4].
name =
"d_location_id";
240 info[5].
name =
"d_setup";
241 info[6].
name =
"d_service";
243 info[7].
name =
"amount";
244 info[8].
name =
"skills";
245 info[9].
name =
"priority";
246 info[10].
name =
"p_data";
247 info[11].
name =
"d_data";