| 386 | /************************************************************************/ |
| 387 | |
| 388 | int msPOSTGRESQLJoinClose(joinObj *join) { |
| 389 | msPOSTGRESQLJoinInfo *joininfo = join->joininfo; |
| 390 | |
| 391 | if(!joininfo) { |
| 392 | msDebug("msPOSTGRESQLJoinClose() already close or never opened.\n"); |
| 393 | return MS_SUCCESS; |
| 394 | } |
| 395 | |
| 396 | if(joininfo->query_result) { |
| 397 | msDebug("msPOSTGRESQLJoinClose(): clearing query_result.\n"); |
| 398 | PQclear(joininfo->query_result); |
| 399 | joininfo->query_result = NULL; |
| 400 | } |
| 401 | |
| 402 | if(joininfo->conn) { |
| 403 | msDebug("msPOSTGRESQLJoinClose(): closing connection.\n"); |
| 404 | PQfinish(joininfo->conn); |
| 405 | joininfo->conn = NULL; |
| 406 | } |
| 407 | |
| 408 | /* removed free(joininfo->to_column), see bug #2936 */ |
| 409 | |
| 410 | if(joininfo->from_value) { |
| 411 | free(joininfo->from_value); |
| 412 | } |
| 413 | |
| 414 | free(joininfo); |
| 415 | join->joininfo = NULL; |
| 416 | |
| 417 | return MS_SUCCESS; |
| 418 | } |
| 419 | |
| 420 | #else /* not USE_POSTGIS */ |
| 421 | int msPOSTGRESQLJoinConnect(layerObj *layer, joinObj *join) { |
no test coverage detected