PGROUTING  2.5
testXYedges.c File Reference
Include dependency graph for testXYedges.c:

Go to the source code of this file.

Functions

 PG_FUNCTION_INFO_V1 (testXYedges)
 
static void process (char *edges_sql, bool *result_bool)
 
PGDLLEXPORT Datum testXYedges (PG_FUNCTION_ARGS)
 

Function Documentation

PG_FUNCTION_INFO_V1 ( testXYedges  )

Referenced by process().

Here is the caller graph for this function:

static void process ( char *  edges_sql,
bool *  result_bool 
)
static

Definition at line 42 of file testXYedges.c.

References do_pgr_testXYedges(), edges, PG_FUNCTION_INFO_V1(), PGR_DBG, pgr_get_edges_xy(), pgr_SPI_connect(), pgr_SPI_finish(), and testXYedges().

Referenced by testXYedges().

43  {
45 
46  PGR_DBG("Load data");
47  Pgr_edge_xy_t *edges = NULL;
48  size_t total_edges = 0;
49  pgr_get_edges_xy(edges_sql, &edges, &total_edges);
50 
51  if (total_edges == 0) {
52  PGR_DBG("No edges found");
53  (*result_bool) = true;
54  pfree(edges);
56  return;
57  }
58  PGR_DBG("Total %ld tuples in query:", total_edges);
59  size_t i;
60  for (i = 0; i < total_edges; ++i) {
61  PGR_DBG("id = %li \t source = %li \t target = %ld cost = %lf reverse_cost = %lf",
62  edges[i].id, edges[i].source, edges[i].target, edges[i].cost, edges[i].reverse_cost);
63  PGR_DBG(" (x1,y1) = (%.32lf ,%.32lf) (x2,y2) = (%.32lf,.%.32lf)",
64  edges[i].x1, edges[i].y1, edges[i].x2, edges[i].y2);
65  }
66 
67 
68  PGR_DBG("Starting processing");
69  char *err_msg = NULL;
70  char *log_msg = NULL;
71  (*result_bool) = do_pgr_testXYedges(
72  edges,
73  total_edges,
74  &log_msg,
75  &err_msg);
76 
77  pfree(edges);
78  PGR_DBG("Returned log message = %s\n", log_msg);
79  if (log_msg) {
80  elog(DEBUG1, "%s", log_msg);
81  free(log_msg);
82  }
83  PGR_DBG("Returned error message = %s\n", err_msg);
84 
85  if (err_msg) {
87  elog(ERROR, "%s", err_msg);
88  free(err_msg);
89  }
90 
92 }
static edge_t edges[22573]
#define PGR_DBG(...)
Definition: debug_macro.h:34
void pgr_SPI_finish(void)
void pgr_get_edges_xy(char *edges_sql, Pgr_edge_xy_t **edges, size_t *total_edges)
Edges with x, y vertices values.
Definition: edges_input.c:573
void pgr_SPI_connect(void)
bool do_pgr_testXYedges(Pgr_edge_xy_t *data_edges, size_t total_edges, char **log_msg, char **err_msg)

Here is the call graph for this function:

Here is the caller graph for this function:

PGDLLEXPORT Datum testXYedges ( PG_FUNCTION_ARGS  )

Definition at line 96 of file testXYedges.c.

References process().

Referenced by process().

96  {
97  bool result_bool = false;
98  process(
99  text_to_cstring(PG_GETARG_TEXT_P(0)),
100  &result_bool);
101 
102  PG_RETURN_BOOL(result_bool);
103 }
static void process(char *edges_sql, bool *result_bool)
Definition: testXYedges.c:42

Here is the call graph for this function:

Here is the caller graph for this function: