LCOV - differential code coverage report
Current view: top level - src/interfaces/ecpg/ecpglib - error.c (source / functions) Coverage Total Hit UBC CBC
Current: ba12a202ce1b5581dc0ed149cf3f637d7897ad5d vs 2866d8c7dbfc9d882a7d80fef93fbbe763709932 Lines: 38.6 % 184 71 113 71
Current Date: 2026-08-27 14:31:44 +0300 Functions: 100.0 % 4 4 4
Baseline: lcov-20260827-baseline Branches: 36.5 % 63 23 40 23
Baseline Date: 2026-08-27 14:31:58 +0300 Line coverage date bins:
Legend: Lines:     hit not hit
Branches: + taken - not taken # not executed
(7,30] days: 100.0 % 4 4 4
(360..) days: 37.2 % 180 67 113 67
Function coverage date bins:
(360..) days: 100.0 % 4 4 4
Branch coverage date bins:
(360..) days: 36.5 % 63 23 40 23

 Age         Owner                    Branch data    TLA  Line data    Source code
                                  1                 :                : /* src/interfaces/ecpg/ecpglib/error.c */
                                  2                 :                : 
                                  3                 :                : #define POSTGRES_ECPG_INTERNAL
                                  4                 :                : #include "postgres_fe.h"
                                  5                 :                : 
                                  6                 :                : #include "ecpgerrno.h"
                                  7                 :                : #include "ecpglib.h"
                                  8                 :                : #include "ecpglib_extern.h"
                                  9                 :                : #include "ecpgtype.h"
                                 10                 :                : #include "sqlca.h"
                                 11                 :                : 
                                 12                 :                : void
 6903 meskes@postgresql.or       13                 :CBC          56 : ecpg_raise(int line, int code, const char *sqlstate, const char *str)
                                 14                 :                : {
 8474 bruce@momjian.us           15                 :             56 :     struct sqlca_t *sqlca = ECPGget_sqlca();
                                 16                 :                : 
 4091 meskes@postgresql.or       17         [ -  + ]:             56 :     if (sqlca == NULL)
                                 18                 :                :     {
 4091 meskes@postgresql.or       19                 :UBC           0 :         ecpg_log("out of memory");
                                 20                 :              0 :         ECPGfree_auto_mem();
                                 21                 :              0 :         return;
                                 22                 :                :     }
                                 23                 :                : 
 8474 bruce@momjian.us           24                 :CBC          56 :     sqlca->sqlcode = code;
 8427 peter_e@gmx.net            25                 :             56 :     strncpy(sqlca->sqlstate, sqlstate, sizeof(sqlca->sqlstate));
                                 26                 :                : 
 8565 meskes@postgresql.or       27   [ +  -  -  -  :             56 :     switch (code)
                                     -  -  -  -  -  
                                     -  +  -  -  -  
                                     +  +  -  +  -  
                                     -  -  -  -  -  
                                              +  - ]
                                 28                 :                :     {
                                 29                 :             25 :         case ECPG_NOT_FOUND:
 8474 bruce@momjian.us           30                 :             25 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 31                 :                :             /*------
                                 32                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6677 peter_e@gmx.net            33                 :             25 :                      ecpg_gettext("no data found on line %d"), line);
 8565 meskes@postgresql.or       34                 :             25 :             break;
                                 35                 :                : 
 8565 meskes@postgresql.or       36                 :UBC           0 :         case ECPG_OUT_OF_MEMORY:
 8474 bruce@momjian.us           37                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 38                 :                :             /*------
                                 39                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6677 peter_e@gmx.net            40                 :              0 :                      ecpg_gettext("out of memory on line %d"), line);
 8565 meskes@postgresql.or       41                 :              0 :             break;
                                 42                 :                : 
                                 43                 :              0 :         case ECPG_UNSUPPORTED:
 8474 bruce@momjian.us           44                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 45                 :                :             /*------
                                 46                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 3354 tgl@sss.pgh.pa.us          47                 :              0 :                      ecpg_gettext("unsupported type \"%s\" on line %d"), str, line);
 8565 meskes@postgresql.or       48                 :              0 :             break;
                                 49                 :                : 
                                 50                 :              0 :         case ECPG_TOO_MANY_ARGUMENTS:
 8474 bruce@momjian.us           51                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 52                 :                :             /*------
                                 53                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6677 peter_e@gmx.net            54                 :              0 :                      ecpg_gettext("too many arguments on line %d"), line);
 8565 meskes@postgresql.or       55                 :              0 :             break;
                                 56                 :                : 
                                 57                 :              0 :         case ECPG_TOO_FEW_ARGUMENTS:
 8474 bruce@momjian.us           58                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 59                 :                :             /*------
                                 60                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6677 peter_e@gmx.net            61                 :              0 :                      ecpg_gettext("too few arguments on line %d"), line);
 8565 meskes@postgresql.or       62                 :              0 :             break;
                                 63                 :                : 
                                 64                 :              0 :         case ECPG_INT_FORMAT:
 8474 bruce@momjian.us           65                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 66                 :                :             /*------
                                 67                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6433 peter_e@gmx.net            68                 :              0 :                      ecpg_gettext("invalid input syntax for type int: \"%s\", on line %d"), str, line);
 8565 meskes@postgresql.or       69                 :              0 :             break;
                                 70                 :                : 
                                 71                 :              0 :         case ECPG_UINT_FORMAT:
 8474 bruce@momjian.us           72                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 73                 :                :             /*------
                                 74                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6433 peter_e@gmx.net            75                 :              0 :                      ecpg_gettext("invalid input syntax for type unsigned int: \"%s\", on line %d"), str, line);
 8565 meskes@postgresql.or       76                 :              0 :             break;
                                 77                 :                : 
                                 78                 :              0 :         case ECPG_FLOAT_FORMAT:
 8474 bruce@momjian.us           79                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 80                 :                :             /*------
                                 81                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6433 peter_e@gmx.net            82                 :              0 :                      ecpg_gettext("invalid input syntax for floating-point type: \"%s\", on line %d"), str, line);
 8565 meskes@postgresql.or       83                 :              0 :             break;
                                 84                 :                : 
                                 85                 :              0 :         case ECPG_CONVERT_BOOL:
 6433 peter_e@gmx.net            86         [ #  # ]:              0 :             if (str)
                                 87                 :              0 :                 snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 88                 :                :                 /*------
                                 89                 :                :                    translator: this string will be truncated at 149 characters expanded.  */
                                 90                 :              0 :                          ecpg_gettext("invalid syntax for type boolean: \"%s\", on line %d"), str, line);
                                 91                 :                :             else
                                 92                 :              0 :                 snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                 93                 :                :                 /*------
                                 94                 :                :                    translator: this string will be truncated at 149 characters expanded.  */
                                 95                 :              0 :                          ecpg_gettext("could not convert boolean value: size mismatch, on line %d"), line);
 8565 meskes@postgresql.or       96                 :              0 :             break;
                                 97                 :                : 
                                 98                 :              0 :         case ECPG_EMPTY:
 8474 bruce@momjian.us           99                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                100                 :                :             /*------
                                101                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6677 peter_e@gmx.net           102                 :              0 :                      ecpg_gettext("empty query on line %d"), line);
 8565 meskes@postgresql.or      103                 :              0 :             break;
                                104                 :                : 
 8565 meskes@postgresql.or      105                 :CBC           6 :         case ECPG_MISSING_INDICATOR:
 8474 bruce@momjian.us          106                 :              6 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                107                 :                :             /*------
                                108                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 3354 tgl@sss.pgh.pa.us         109                 :              6 :                      ecpg_gettext("null value without indicator on line %d"), line);
 8565 meskes@postgresql.or      110                 :              6 :             break;
                                111                 :                : 
 8565 meskes@postgresql.or      112                 :UBC           0 :         case ECPG_NO_ARRAY:
 8474 bruce@momjian.us          113                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                114                 :                :             /*------
                                115                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6432 peter_e@gmx.net           116                 :              0 :                      ecpg_gettext("variable does not have an array type on line %d"), line);
 8565 meskes@postgresql.or      117                 :              0 :             break;
                                118                 :                : 
                                119                 :              0 :         case ECPG_DATA_NOT_ARRAY:
 8474 bruce@momjian.us          120                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                121                 :                :             /*------
                                122                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6433 peter_e@gmx.net           123                 :              0 :                      ecpg_gettext("data read from server is not an array on line %d"), line);
 8565 meskes@postgresql.or      124                 :              0 :             break;
                                125                 :                : 
                                126                 :              0 :         case ECPG_ARRAY_INSERT:
 8474 bruce@momjian.us          127                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                128                 :                :             /*------
                                129                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           130                 :              0 :                      ecpg_gettext("inserting an array of variables is not supported on line %d"), line);
 8565 meskes@postgresql.or      131                 :              0 :             break;
                                132                 :                : 
   17 michael@paquier.xyz       133                 :CBC           2 :         case ECPG_BYTEA_FORMAT:
                                134                 :              2 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                135                 :                :             /*------
                                136                 :                :                translator: this string will be truncated at 149 characters expanded.  */
                                137                 :              2 :                      ecpg_gettext("invalid input syntax for type bytea: \"%s\", on line %d"), str, line);
                                138                 :              2 :             break;
                                139                 :                : 
 8565 meskes@postgresql.or      140                 :             20 :         case ECPG_NO_CONN:
 8474 bruce@momjian.us          141                 :             20 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                142                 :                :             /*------
                                143                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           144                 :             20 :                      ecpg_gettext("connection \"%s\" does not exist on line %d"), str, line);
 8565 meskes@postgresql.or      145                 :             20 :             break;
                                146                 :                : 
 8565 meskes@postgresql.or      147                 :UBC           0 :         case ECPG_NOT_CONN:
 8474 bruce@momjian.us          148                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                149                 :                :             /*------
                                150                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           151                 :              0 :                      ecpg_gettext("not connected to connection \"%s\" on line %d"), str, line);
 8565 meskes@postgresql.or      152                 :              0 :             break;
                                153                 :                : 
 8565 meskes@postgresql.or      154                 :CBC           1 :         case ECPG_INVALID_STMT:
 8474 bruce@momjian.us          155                 :              1 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                156                 :                :             /*------
                                157                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           158                 :              1 :                      ecpg_gettext("invalid statement name \"%s\" on line %d"), str, line);
 8565 meskes@postgresql.or      159                 :              1 :             break;
                                160                 :                : 
 8565 meskes@postgresql.or      161                 :UBC           0 :         case ECPG_UNKNOWN_DESCRIPTOR:
 8474 bruce@momjian.us          162                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                163                 :                :             /*------
                                164                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           165                 :              0 :                      ecpg_gettext("descriptor \"%s\" not found on line %d"), str, line);
 8565 meskes@postgresql.or      166                 :              0 :             break;
                                167                 :                : 
                                168                 :              0 :         case ECPG_INVALID_DESCRIPTOR_INDEX:
 8474 bruce@momjian.us          169                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                170                 :                :             /*------
                                171                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 3354 tgl@sss.pgh.pa.us         172                 :              0 :                      ecpg_gettext("descriptor index out of range on line %d"), line);
 8565 meskes@postgresql.or      173                 :              0 :             break;
                                174                 :                : 
                                175                 :              0 :         case ECPG_UNKNOWN_DESCRIPTOR_ITEM:
 8474 bruce@momjian.us          176                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                177                 :                :             /*------
                                178                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           179                 :              0 :                      ecpg_gettext("unrecognized descriptor item \"%s\" on line %d"), str, line);
 8565 meskes@postgresql.or      180                 :              0 :             break;
                                181                 :                : 
                                182                 :              0 :         case ECPG_VAR_NOT_NUMERIC:
 8474 bruce@momjian.us          183                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                184                 :                :             /*------
                                185                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           186                 :              0 :                      ecpg_gettext("variable does not have a numeric type on line %d"), line);
 8565 meskes@postgresql.or      187                 :              0 :             break;
                                188                 :                : 
                                189                 :              0 :         case ECPG_VAR_NOT_CHAR:
 8474 bruce@momjian.us          190                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                191                 :                :             /*------
                                192                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           193                 :              0 :                      ecpg_gettext("variable does not have a character type on line %d"), line);
 8565 meskes@postgresql.or      194                 :              0 :             break;
                                195                 :                : 
                                196                 :              0 :         case ECPG_TRANS:
 8474 bruce@momjian.us          197                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                198                 :                :             /*------
                                199                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 3354 tgl@sss.pgh.pa.us         200                 :              0 :                      ecpg_gettext("error in transaction processing on line %d"), line);
 8565 meskes@postgresql.or      201                 :              0 :             break;
                                202                 :                : 
 8565 meskes@postgresql.or      203                 :CBC           2 :         case ECPG_CONNECT:
 8474 bruce@momjian.us          204                 :              2 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                205                 :                :             /*------
                                206                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           207                 :              2 :                      ecpg_gettext("could not connect to database \"%s\" on line %d"), str, line);
 8565 meskes@postgresql.or      208                 :              2 :             break;
                                209                 :                : 
 8565 meskes@postgresql.or      210                 :UBC           0 :         default:
 8474 bruce@momjian.us          211                 :              0 :             snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
                                212                 :                :             /*------
                                213                 :                :                translator: this string will be truncated at 149 characters expanded.  */
 6286                           214                 :              0 :                      ecpg_gettext("SQL error %d on line %d"), code, line);
 8565 meskes@postgresql.or      215                 :              0 :             break;
                                216                 :                :     }
                                217                 :                : 
 8474 bruce@momjian.us          218                 :CBC          56 :     sqlca->sqlerrm.sqlerrml = strlen(sqlca->sqlerrm.sqlerrmc);
 6677 peter_e@gmx.net           219                 :             56 :     ecpg_log("raising sqlcode %d on line %d: %s\n", code, line, sqlca->sqlerrm.sqlerrmc);
                                220                 :                : 
                                221                 :                :     /* free all memory we have allocated for the user */
 8565 meskes@postgresql.or      222                 :             56 :     ECPGfree_auto_mem();
                                223                 :                : }
                                224                 :                : 
                                225                 :                : void
 6903                           226                 :             13 : ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat)
                                227                 :                : {
 8427 peter_e@gmx.net           228                 :             13 :     struct sqlca_t *sqlca = ECPGget_sqlca();
                                229                 :                :     char       *sqlstate;
                                230                 :                :     char       *message;
                                231                 :                : 
 4091 meskes@postgresql.or      232         [ -  + ]:             13 :     if (sqlca == NULL)
                                233                 :                :     {
 4091 meskes@postgresql.or      234                 :UBC           0 :         ecpg_log("out of memory");
                                235                 :              0 :         ECPGfree_auto_mem();
                                236                 :              0 :         return;
                                237                 :                :     }
                                238                 :                : 
                                239                 :                :     /*
                                240                 :                :      * PQresultErrorField will return NULL if "result" is NULL, or if there is
                                241                 :                :      * no such field, which will happen for libpq-generated errors.  Fall back
                                242                 :                :      * to PQerrorMessage in such cases.
                                243                 :                :      */
 1543 tgl@sss.pgh.pa.us         244                 :CBC          13 :     sqlstate = PQresultErrorField(result, PG_DIAG_SQLSTATE);
                                245         [ -  + ]:             13 :     if (sqlstate == NULL)
 8420 peter_e@gmx.net           246                 :UBC           0 :         sqlstate = ECPG_SQLSTATE_ECPG_INTERNAL_ERROR;
 1543 tgl@sss.pgh.pa.us         247                 :CBC          13 :     message = PQresultErrorField(result, PG_DIAG_MESSAGE_PRIMARY);
                                248         [ -  + ]:             13 :     if (message == NULL)
 8420 peter_e@gmx.net           249                 :UBC           0 :         message = PQerrorMessage(conn);
                                250                 :                : 
 6016 meskes@postgresql.or      251         [ -  + ]:CBC          13 :     if (strcmp(sqlstate, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR) == 0)
                                252                 :                :     {
                                253                 :                :         /*
                                254                 :                :          * we might get here if the connection breaks down, so let's check for
                                255                 :                :          * this instead of giving just the generic internal error
                                256                 :                :          */
 6019 meskes@postgresql.or      257         [ #  # ]:UBC           0 :         if (PQstatus(conn) == CONNECTION_BAD)
                                258                 :                :         {
                                259                 :              0 :             sqlstate = "57P02";
                                260                 :              0 :             message = ecpg_gettext("the connection to the server was lost");
                                261                 :                :         }
                                262                 :                :     }
                                263                 :                : 
                                264                 :                :     /* copy error message */
 6677 peter_e@gmx.net           265                 :CBC          13 :     snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc), "%s on line %d", message, line);
 8427                           266                 :             13 :     sqlca->sqlerrm.sqlerrml = strlen(sqlca->sqlerrm.sqlerrmc);
                                267                 :                : 
                                268                 :                :     /* copy SQLSTATE */
 8420                           269                 :             13 :     strncpy(sqlca->sqlstate, sqlstate, sizeof(sqlca->sqlstate));
                                270                 :                : 
                                271                 :                :     /* assign SQLCODE for backward compatibility */
 8424 bruce@momjian.us          272         [ +  + ]:             13 :     if (strncmp(sqlca->sqlstate, "23505", sizeof(sqlca->sqlstate)) == 0)
 8427 peter_e@gmx.net           273   [ -  +  -  - ]:              1 :         sqlca->sqlcode = INFORMIX_MODE(compat) ? ECPG_INFORMIX_DUPLICATE_KEY : ECPG_DUPLICATE_KEY;
 7468 meskes@postgresql.or      274         [ +  + ]:             12 :     else if (strncmp(sqlca->sqlstate, "21000", sizeof(sqlca->sqlstate)) == 0)
 8427 peter_e@gmx.net           275   [ -  +  -  - ]:              1 :         sqlca->sqlcode = INFORMIX_MODE(compat) ? ECPG_INFORMIX_SUBSELECT_NOT_ONE : ECPG_SUBSELECT_NOT_ONE;
                                276                 :                :     else
                                277                 :             11 :         sqlca->sqlcode = ECPG_PGSQL;
                                278                 :                : 
 5465                           279                 :             13 :     ecpg_log("raising sqlstate %.*s (sqlcode %ld): %s\n",
 5464                           280                 :             13 :              (int) sizeof(sqlca->sqlstate), sqlca->sqlstate, sqlca->sqlcode, sqlca->sqlerrm.sqlerrmc);
                                281                 :                : 
                                282                 :                :     /* free all memory we have allocated for the user */
 8427                           283                 :             13 :     ECPGfree_auto_mem();
                                284                 :                : }
                                285                 :                : 
                                286                 :                : /* filter out all error codes */
                                287                 :                : bool
 6860 bruce@momjian.us          288                 :           4643 : ecpg_check_PQresult(PGresult *results, int lineno, PGconn *connection, enum COMPAT_MODE compat)
                                289                 :                : {
 6953 meskes@postgresql.or      290         [ -  + ]:           4643 :     if (results == NULL)
                                291                 :                :     {
 6019 meskes@postgresql.or      292                 :UBC           0 :         ecpg_log("ecpg_check_PQresult on line %d: no result - %s", lineno, PQerrorMessage(connection));
 6903                           293                 :              0 :         ecpg_raise_backend(lineno, NULL, connection, compat);
 3297 peter_e@gmx.net           294                 :              0 :         return false;
                                295                 :                :     }
                                296                 :                : 
 6953 meskes@postgresql.or      297   [ +  -  +  +  :CBC        4643 :     switch (PQresultStatus(results))
                                           +  -  - ]
                                298                 :                :     {
                                299                 :                : 
                                300                 :           1063 :         case PGRES_TUPLES_OK:
 3297 peter_e@gmx.net           301                 :           1063 :             return true;
                                302                 :                :             break;
 6953 meskes@postgresql.or      303                 :UBC           0 :         case PGRES_EMPTY_QUERY:
                                304                 :                :             /* do nothing */
 6903                           305                 :              0 :             ecpg_raise(lineno, ECPG_EMPTY, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR, NULL);
 6953                           306                 :              0 :             PQclear(results);
 3297 peter_e@gmx.net           307                 :              0 :             return false;
                                308                 :                :             break;
 6953 meskes@postgresql.or      309                 :CBC        3566 :         case PGRES_COMMAND_OK:
 3297 peter_e@gmx.net           310                 :           3566 :             return true;
                                311                 :                :             break;
 6953 meskes@postgresql.or      312                 :             13 :         case PGRES_NONFATAL_ERROR:
                                313                 :                :         case PGRES_FATAL_ERROR:
                                314                 :                :         case PGRES_BAD_RESPONSE:
 6019                           315                 :             13 :             ecpg_log("ecpg_check_PQresult on line %d: bad response - %s", lineno, PQresultErrorMessage(results));
 6903                           316                 :             13 :             ecpg_raise_backend(lineno, results, connection, compat);
 6953                           317                 :             13 :             PQclear(results);
 3297 peter_e@gmx.net           318                 :             13 :             return false;
                                319                 :                :             break;
 6953 meskes@postgresql.or      320                 :              1 :         case PGRES_COPY_OUT:
 3297 peter_e@gmx.net           321                 :              1 :             return true;
                                322                 :                :             break;
 6953 meskes@postgresql.or      323                 :UBC           0 :         case PGRES_COPY_IN:
 6677 peter_e@gmx.net           324                 :              0 :             ecpg_log("ecpg_check_PQresult on line %d: COPY IN data transfer in progress\n", lineno);
 6953 meskes@postgresql.or      325                 :              0 :             PQendcopy(connection);
                                326                 :              0 :             PQclear(results);
 3297 peter_e@gmx.net           327                 :              0 :             return false;
                                328                 :                :             break;
 6953 meskes@postgresql.or      329                 :              0 :         default:
 6677 peter_e@gmx.net           330                 :              0 :             ecpg_log("ecpg_check_PQresult on line %d: unknown execution status type\n",
                                331                 :                :                      lineno);
 6903 meskes@postgresql.or      332                 :              0 :             ecpg_raise_backend(lineno, results, connection, compat);
 6953                           333                 :              0 :             PQclear(results);
 3297 peter_e@gmx.net           334                 :              0 :             return false;
                                335                 :                :             break;
                                336                 :                :     }
                                337                 :                : }
                                338                 :                : 
                                339                 :                : /* print out an error message */
                                340                 :                : void
 8565 meskes@postgresql.or      341                 :CBC          15 : sqlprint(void)
                                342                 :                : {
 8474 bruce@momjian.us          343                 :             15 :     struct sqlca_t *sqlca = ECPGget_sqlca();
                                344                 :                : 
 4091 meskes@postgresql.or      345         [ -  + ]:             15 :     if (sqlca == NULL)
                                346                 :                :     {
 4091 meskes@postgresql.or      347                 :UBC           0 :         ecpg_log("out of memory");
                                348                 :              0 :         return;
                                349                 :                :     }
                                350                 :                : 
 8474 bruce@momjian.us          351                 :CBC          15 :     sqlca->sqlerrm.sqlerrmc[sqlca->sqlerrm.sqlerrml] = '\0';
 6433 peter_e@gmx.net           352                 :             15 :     fprintf(stderr, ecpg_gettext("SQL error: %s\n"), sqlca->sqlerrm.sqlerrmc);
                                353                 :                : }
        

Generated by: LCOV version 2.0-1