1 : /******************************************************************************
2 : * $Id: ogrpgdebug.cpp 17112 2009-05-24 16:40:16Z rouault $
3 : *
4 : * Project: OpenGIS Simple Features Reference Implementation
5 : * Purpose: Debug infrastructure
6 : * Author: Even Rouault, <even dot rouault at mines dash paris dot org>
7 : *
8 : ******************************************************************************
9 : * Copyright (c) 2009, Even Rouault
10 : *
11 : * Permission is hereby granted, free of charge, to any person obtaining a
12 : * copy of this software and associated documentation files (the "Software"),
13 : * to deal in the Software without restriction, including without limitation
14 : * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15 : * and/or sell copies of the Software, and to permit persons to whom the
16 : * Software is furnished to do so, subject to the following conditions:
17 : *
18 : * The above copyright notice and this permission notice shall be included
19 : * in all copies or substantial portions of the Software.
20 : *
21 : * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 : * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 : * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24 : * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 : * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26 : * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27 : * DEALINGS IN THE SOFTWARE.
28 : ****************************************************************************/
29 :
30 : /* Do NOT include ogr_pg.h, otherwise the above PQexec call will expand to the */
31 : /* OGRPG_PQexec_dbg function */
32 : #include "libpq-fe.h"
33 : #include "cpl_conv.h"
34 :
35 : CPL_CVSID("$Id: ogrpgdebug.cpp 17112 2009-05-24 16:40:16Z rouault $");
36 :
37 : /************************************************************************/
38 : /* OGRPG_PQexec_dbg() */
39 : /************************************************************************/
40 : #ifdef DEBUG
41 : PGresult *OGRPG_PQexec_dbg(PGconn *conn, const char *query);
42 :
43 :
44 18701 : PGresult *OGRPG_PQexec_dbg(PGconn *conn, const char *query)
45 : {
46 18701 : PGresult* hResult = PQexec(conn, query);
47 18701 : const char* pszRetCode = "UNKNOWN";
48 : char szNTuples[32];
49 18701 : szNTuples[0] = '\0';
50 18701 : if (hResult)
51 : {
52 18701 : switch(PQresultStatus(hResult))
53 : {
54 : case PGRES_TUPLES_OK:
55 5591 : pszRetCode = "PGRES_TUPLES_OK";
56 5591 : sprintf(szNTuples, ", ntuples = %d", PQntuples(hResult));
57 5591 : break;
58 : case PGRES_COMMAND_OK:
59 13061 : pszRetCode = "PGRES_COMMAND_OK";
60 13061 : break;
61 : case PGRES_NONFATAL_ERROR:
62 0 : pszRetCode = "PGRES_NONFATAL_ERROR";
63 0 : break;
64 : case PGRES_FATAL_ERROR:
65 45 : pszRetCode = "PGRES_FATAL_ERROR";
66 : break;
67 : default: break;
68 : }
69 : }
70 18701 : CPLDebug("PG", "PQexec(%s) = %s%s", query, pszRetCode, szNTuples);
71 18701 : return hResult;
72 : }
73 : #endif
|