Split ECPGdo() in constituent parts

This splits ECPGdo() into ecpg_prologue(), ecpg_do() and
ecpg_epilogue(), and renames free_params() into ecpg_free_params() and
exports it.  This makes it possible for future code to use these
routines for their own purposes.

There is no user-visible functionality change here, only code
reorganization.

Zoltán Böszörményi

Reviewed by Antonin Houska.  Larger, older versions of this patch were
reviewed by Noah Misch and Michael Meskes.
This commit is contained in:
Alvaro Herrera 2014-01-16 16:36:41 -03:00
parent 8ba288da5d
commit 3291301385
20 changed files with 246 additions and 176 deletions

View File

@ -104,6 +104,7 @@ free_statement(struct statement * stmt)
free_variable(stmt->outlist);
ecpg_free(stmt->command);
ecpg_free(stmt->name);
ecpg_free(stmt->oldlocale);
ecpg_free(stmt);
}
@ -1077,21 +1078,22 @@ ecpg_store_input(const int lineno, const bool force_indicator, const struct vari
return true;
}
static void
free_params(char **paramValues, int nParams, bool print, int lineno)
void
ecpg_free_params(struct statement * stmt, bool print)
{
int n;
for (n = 0; n < nParams; n++)
for (n = 0; n < stmt->nparams; n++)
{
if (print)
ecpg_log("free_params on line %d: parameter %d = %s\n", lineno, n + 1, paramValues[n] ? paramValues[n] : "null");
ecpg_free(paramValues[n]);
ecpg_log("ecpg_free_params on line %d: parameter %d = %s\n", stmt->lineno, n + 1, stmt->paramvalues[n] ? stmt->paramvalues[n] : "null");
ecpg_free(stmt->paramvalues[n]);
}
ecpg_free(paramValues);
ecpg_free(stmt->paramvalues);
stmt->paramvalues = NULL;
stmt->nparams = 0;
}
static bool
insert_tobeinserted(int position, int ph_len, struct statement * stmt, char *tobeinserted)
{
@ -1133,8 +1135,6 @@ ecpg_execute(struct statement * stmt)
PGnotify *notify;
struct variable *var;
int desc_counter = 0;
char **paramValues = NULL;
int nParams = 0;
int position = 0;
struct sqlca_t *sqlca = ECPGget_sqlca();
bool clear_result = true;
@ -1337,7 +1337,7 @@ ecpg_execute(struct statement * stmt)
ecpg_raise(stmt->lineno, ECPG_TOO_MANY_ARGUMENTS,
ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS,
NULL);
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
@ -1352,7 +1352,7 @@ ecpg_execute(struct statement * stmt)
if (!insert_tobeinserted(position, ph_len, stmt, tobeinserted))
{
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
tobeinserted = NULL;
@ -1367,21 +1367,24 @@ ecpg_execute(struct statement * stmt)
{
if (!insert_tobeinserted(position, 2, stmt, tobeinserted))
{
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
tobeinserted = NULL;
}
else
{
nParams++;
if (!(paramValues = (char **) ecpg_realloc(paramValues, sizeof(char *) * nParams, stmt->lineno)))
char **paramvalues;
if (!(paramvalues = (char **) ecpg_realloc(stmt->paramvalues, sizeof(char *) * (stmt->nparams + 1), stmt->lineno)))
{
ecpg_free(paramValues);
ecpg_free_params(stmt, false);
return false;
}
paramValues[nParams - 1] = tobeinserted;
stmt->nparams++;
stmt->paramvalues = paramvalues;
stmt->paramvalues[stmt->nparams - 1] = tobeinserted;
/* let's see if this was an old style placeholder */
if (stmt->command[position] == '?')
@ -1392,7 +1395,7 @@ ecpg_execute(struct statement * stmt)
if (!(tobeinserted = (char *) ecpg_alloc(buffersize, stmt->lineno)))
{
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
@ -1400,7 +1403,7 @@ ecpg_execute(struct statement * stmt)
if (!insert_tobeinserted(position, 2, stmt, tobeinserted))
{
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
tobeinserted = NULL;
@ -1416,7 +1419,7 @@ ecpg_execute(struct statement * stmt)
{
ecpg_raise(stmt->lineno, ECPG_TOO_FEW_ARGUMENTS,
ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS, NULL);
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
@ -1427,33 +1430,33 @@ ecpg_execute(struct statement * stmt)
results = PQexec(stmt->connection->connection, "begin transaction");
if (!ecpg_check_PQresult(results, stmt->lineno, stmt->connection->connection, stmt->compat))
{
free_params(paramValues, nParams, false, stmt->lineno);
ecpg_free_params(stmt, false);
return false;
}
PQclear(results);
}
ecpg_log("ecpg_execute on line %d: query: %s; with %d parameter(s) on connection %s\n", stmt->lineno, stmt->command, nParams, stmt->connection->name);
ecpg_log("ecpg_execute on line %d: query: %s; with %d parameter(s) on connection %s\n", stmt->lineno, stmt->command, stmt->nparams, stmt->connection->name);
if (stmt->statement_type == ECPGst_execute)
{
results = PQexecPrepared(stmt->connection->connection, stmt->name, nParams, (const char *const *) paramValues, NULL, NULL, 0);
results = PQexecPrepared(stmt->connection->connection, stmt->name, stmt->nparams, (const char *const *) stmt->paramvalues, NULL, NULL, 0);
ecpg_log("ecpg_execute on line %d: using PQexecPrepared for \"%s\"\n", stmt->lineno, stmt->command);
}
else
{
if (nParams == 0)
if (stmt->nparams == 0)
{
results = PQexec(stmt->connection->connection, stmt->command);
ecpg_log("ecpg_execute on line %d: using PQexec\n", stmt->lineno);
}
else
{
results = PQexecParams(stmt->connection->connection, stmt->command, nParams, NULL, (const char *const *) paramValues, NULL, NULL, 0);
results = PQexecParams(stmt->connection->connection, stmt->command, stmt->nparams, NULL, (const char *const *) stmt->paramvalues, NULL, NULL, 0);
ecpg_log("ecpg_execute on line %d: using PQexecParams\n", stmt->lineno);
}
}
free_params(paramValues, nParams, true, stmt->lineno);
ecpg_free_params(stmt, true);
if (!ecpg_check_PQresult(results, stmt->lineno, stmt->connection->connection, stmt->compat))
return (false);
@ -1701,28 +1704,49 @@ ecpg_execute(struct statement * stmt)
return status;
}
/*
* ecpg_do_prologue
*
* Initialize various infrastructure elements for executing the statement:
*
* - create the statement structure
* - set the C numeric locale for communicating with the backend
* - preprocess the variable list of input/output parameters into
* linked lists
*/
bool
ECPGdo(const int lineno, const int compat, const int force_indicator, const char *connection_name, const bool questionmarks, const int st, const char *query,...)
ecpg_do_prologue(int lineno, const int compat, const int force_indicator,
const char *connection_name, const bool questionmarks,
enum ECPG_statement_type statement_type, const char *query,
va_list args, struct statement ** stmt_out)
{
va_list args;
struct statement *stmt;
struct connection *con;
bool status;
char *oldlocale;
enum ECPGttype type;
struct variable **list;
enum ECPG_statement_type statement_type = (enum ECPG_statement_type) st;
char *prepname;
*stmt_out = NULL;
if (!query)
{
ecpg_raise(lineno, ECPG_EMPTY, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR, NULL);
return (false);
}
/* Make sure we do NOT honor the locale for numeric input/output */
/* since the database wants the standard decimal point */
oldlocale = ecpg_strdup(setlocale(LC_NUMERIC, NULL), lineno);
if (!(stmt = (struct statement *) ecpg_alloc(sizeof(struct statement), lineno)))
return false;
/*
* Make sure we do NOT honor the locale for numeric input/output since the
* database wants the standard decimal point
*/
stmt->oldlocale = ecpg_strdup(setlocale(LC_NUMERIC, NULL), lineno);
if (stmt->oldlocale == NULL)
{
ecpg_do_epilogue(stmt);
return false;
}
setlocale(LC_NUMERIC, "C");
#ifdef ENABLE_THREAD_SAFETY
@ -1733,34 +1757,10 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
if (!ecpg_init(con, connection_name, lineno))
{
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
ecpg_do_epilogue(stmt);
return (false);
}
/* construct statement in our own structure */
va_start(args, query);
/*
* create a list of variables The variables are listed with input
* variables preceding outputvariables The end of each group is marked by
* an end marker. per variable we list: type - as defined in ecpgtype.h
* value - where to store the data varcharsize - length of string in case
* we have a stringvariable, else 0 arraysize - 0 for pointer (we don't
* know the size of the array), 1 for simple variable, size for arrays
* offset - offset between ith and (i+1)th entry in an array, normally
* that means sizeof(type) ind_type - type of indicator variable ind_value
* - pointer to indicator variable ind_varcharsize - empty ind_arraysize -
* arraysize of indicator array ind_offset - indicator offset
*/
if (!(stmt = (struct statement *) ecpg_alloc(sizeof(struct statement), lineno)))
{
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
va_end(args);
return false;
}
/*
* If statement type is ECPGst_prepnormal we are supposed to prepare the
* statement before executing them
@ -1769,10 +1769,7 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
{
if (!ecpg_auto_prepare(lineno, connection_name, compat, &prepname, query))
{
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
free_statement(stmt);
va_end(args);
ecpg_do_epilogue(stmt);
return (false);
}
@ -1801,10 +1798,7 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
else
{
ecpg_raise(lineno, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, stmt->command);
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
free_statement(stmt);
va_end(args);
ecpg_do_epilogue(stmt);
return (false);
}
}
@ -1816,6 +1810,27 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
stmt->questionmarks = questionmarks;
stmt->statement_type = statement_type;
/*------
* create a list of variables
*
* The variables are listed with input variables preceding outputvariables
* The end of each group is marked by an end marker. per variable we list:
*
* type - as defined in ecpgtype.h
* value - where to store the data
* varcharsize - length of string in case we have a stringvariable, else 0
* arraysize - 0 for pointer (we don't know the size of the array), 1 for
* simple variable, size for arrays
* offset - offset between ith and (i+1)th entry in an array, normally
* that means sizeof(type)
* ind_type - type of indicator variable
* ind_value - pointer to indicator variable
* ind_varcharsize - empty
* ind_arraysize - arraysize of indicator array
* ind_offset - indicator offset
*------
*/
list = &(stmt->inlist);
type = va_arg(args, enum ECPGttype);
@ -1831,10 +1846,7 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
if (!(var = (struct variable *) ecpg_alloc(sizeof(struct variable), lineno)))
{
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
free_statement(stmt);
va_end(args);
ecpg_do_epilogue(stmt);
return false;
}
@ -1889,14 +1901,12 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
{
ecpg_raise(lineno, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, NULL);
ecpg_free(var);
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
free_statement(stmt);
va_end(args);
ecpg_do_epilogue(stmt);
return false;
}
for (ptr = *list; ptr && ptr->next; ptr = ptr->next);
for (ptr = *list; ptr && ptr->next; ptr = ptr->next)
;
if (ptr == NULL)
*list = var;
@ -1907,29 +1917,79 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
type = va_arg(args, enum ECPGttype);
}
va_end(args);
/* are we connected? */
if (con == NULL || con->connection == NULL)
{
free_statement(stmt);
ecpg_raise(lineno, ECPG_NOT_CONN, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR, (con) ? con->name : ecpg_gettext("<empty>"));
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
ecpg_do_epilogue(stmt);
return false;
}
/* initialize auto_mem struct */
ecpg_clear_auto_mem();
status = ecpg_execute(stmt);
*stmt_out = stmt;
return true;
}
/*
* ecpg_do_epilogue
* Restore the application locale and free the statement structure.
*/
void
ecpg_do_epilogue(struct statement * stmt)
{
if (stmt == NULL)
return;
setlocale(LC_NUMERIC, stmt->oldlocale);
free_statement(stmt);
}
/*
* Execute SQL statements in the backend.
* The input/output parameters (variable argument list) are passed
* in a va_list, so other functions can use this interface.
*/
bool
ecpg_do(const int lineno, const int compat, const int force_indicator, const char *connection_name, const bool questionmarks, const int st, const char *query, va_list args)
{
struct statement *stmt;
bool status;
if (!ecpg_do_prologue(lineno, compat, force_indicator, connection_name,
questionmarks, (enum ECPG_statement_type) st,
query, args, &stmt))
{
ecpg_do_epilogue(stmt);
return false;
}
status = ecpg_execute(stmt);
/* and reset locale value so our application is not affected */
setlocale(LC_NUMERIC, oldlocale);
ecpg_free(oldlocale);
ecpg_do_epilogue(stmt);
return (status);
return status;
}
/*
* Execute SQL statements in the backend.
* The input/output parameters are passed as variable-length argument list.
*/
bool
ECPGdo(const int lineno, const int compat, const int force_indicator, const char *connection_name, const bool questionmarks, const int st, const char *query,...)
{
va_list args;
bool ret;
va_start(args, query);
ret = ecpg_do(lineno, compat, force_indicator, connection_name,
questionmarks, st, query, args);
va_end(args);
return ret;
}
/* old descriptor interface */

View File

@ -60,6 +60,9 @@ struct statement
bool questionmarks;
struct variable *inlist;
struct variable *outlist;
char *oldlocale;
int nparams;
char **paramvalues;
};
/* structure to store prepared statements for a connection */
@ -164,6 +167,13 @@ struct prepared_statement *ecpg_find_prepared_statement(const char *,
bool ecpg_store_result(const PGresult *results, int act_field,
const struct statement * stmt, struct variable * var);
bool ecpg_store_input(const int, const bool, const struct variable *, char **, bool);
void ecpg_free_params(struct statement *stmt, bool print);
void ecpg_do_epilogue(struct statement *);
bool ecpg_do_prologue(int, const int, const int, const char *, const bool,
enum ECPG_statement_type, const char *, va_list,
struct statement **);
bool ecpg_do(const int, const int, const int, const char *, const bool,
const int, const char *, va_list);
bool ecpg_check_PQresult(PGresult *, int, PGconn *, enum COMPAT_MODE);
void ecpg_raise(int line, int code, const char *sqlstate, const char *str);

View File

@ -14,19 +14,19 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 1 = abc
[NO_PID]: ecpg_free_params on line 36: parameter 1 = abc
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 2 = 17
[NO_PID]: ecpg_free_params on line 36: parameter 2 = 17
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 3 = -74874
[NO_PID]: ecpg_free_params on line 36: parameter 3 = -74874
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 4 = t
[NO_PID]: ecpg_free_params on line 36: parameter 4 = t
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 5 = 3.71000003814697
[NO_PID]: ecpg_free_params on line 36: parameter 5 = 3.71000003814697
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 6 = 487444
[NO_PID]: ecpg_free_params on line 36: parameter 6 = 487444
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 7 = 404.404
[NO_PID]: ecpg_free_params on line 36: parameter 7 = 404.404
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -36,25 +36,25 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 52: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 1 = null
[NO_PID]: ecpg_free_params on line 52: parameter 1 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 2 = null
[NO_PID]: ecpg_free_params on line 52: parameter 2 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 3 = null
[NO_PID]: ecpg_free_params on line 52: parameter 3 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 4 = t
[NO_PID]: ecpg_free_params on line 52: parameter 4 = t
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 5 = null
[NO_PID]: ecpg_free_params on line 52: parameter 5 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 6 = null
[NO_PID]: ecpg_free_params on line 52: parameter 6 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 7 = null
[NO_PID]: ecpg_free_params on line 52: parameter 7 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 8 = null
[NO_PID]: ecpg_free_params on line 52: parameter 8 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 9 = null
[NO_PID]: ecpg_free_params on line 52: parameter 9 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 52: parameter 10 = null
[NO_PID]: ecpg_free_params on line 52: parameter 10 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 52: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -252,7 +252,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 184: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 184: parameter 1 = 4
[NO_PID]: ecpg_free_params on line 184: parameter 1 = 4
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 184: correctly got 1 tuples with 5 fields
[NO_PID]: sqlca: code: 0, state: 00000
@ -292,7 +292,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 221: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 221: parameter 1 = 4
[NO_PID]: ecpg_free_params on line 221: parameter 1 = 4
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 221: correctly got 1 tuples with 5 fields
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -12,7 +12,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 28: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 28: parameter 1 = 0
[NO_PID]: ecpg_free_params on line 28: parameter 1 = 0
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 28: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -33,7 +33,7 @@ DETAIL: Key (i)=(7) already exists.
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 1 = 14
[NO_PID]: ecpg_free_params on line 36: parameter 1 = 14
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -59,7 +59,7 @@ DETAIL: Key (i)=(7) already exists.
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 95: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 95: parameter 1 = 14
[NO_PID]: ecpg_free_params on line 95: parameter 1 = 14
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 95: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
@ -99,7 +99,7 @@ DETAIL: Key (i)=(7) already exists.
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 75: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 75: parameter 1 = 21.0
[NO_PID]: ecpg_free_params on line 75: parameter 1 = 21.0
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 75: OK: DELETE 0
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -32,7 +32,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 81: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 81: parameter 1 = 2003-05-07 13:28:34
[NO_PID]: ecpg_free_params on line 81: parameter 1 = 2003-05-07 13:28:34
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 81: correctly got 1 tuples with 2 fields
[NO_PID]: sqlca: code: 0, state: 00000
@ -44,9 +44,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 95: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 95: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 95: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 95: parameter 2 = 2003-05-08 15:53:39
[NO_PID]: ecpg_free_params on line 95: parameter 2 = 2003-05-08 15:53:39
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 95: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -24,9 +24,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 1 = 1966-01-17
[NO_PID]: ecpg_free_params on line 36: parameter 1 = 1966-01-17
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 2 = 2000-07-12 17:34:29
[NO_PID]: ecpg_free_params on line 36: parameter 2 = 2000-07-12 17:34:29
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -34,7 +34,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 38: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 38: parameter 1 = 1966-01-17
[NO_PID]: ecpg_free_params on line 38: parameter 1 = 1966-01-17
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 38: correctly got 1 tuples with 2 fields
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -36,9 +36,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 45: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 45: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 45: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 45: parameter 2 = NaN
[NO_PID]: ecpg_free_params on line 45: parameter 2 = NaN
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 45: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -46,9 +46,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 46: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 2 = NaN
[NO_PID]: ecpg_free_params on line 46: parameter 2 = NaN
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -68,9 +68,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 45: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 45: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 45: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 45: parameter 2 = Infinity
[NO_PID]: ecpg_free_params on line 45: parameter 2 = Infinity
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 45: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -78,9 +78,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 46: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 2 = Infinity
[NO_PID]: ecpg_free_params on line 46: parameter 2 = Infinity
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -100,9 +100,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 45: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 45: parameter 1 = 3
[NO_PID]: ecpg_free_params on line 45: parameter 1 = 3
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 45: parameter 2 = -Infinity
[NO_PID]: ecpg_free_params on line 45: parameter 2 = -Infinity
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 45: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -110,9 +110,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 1 = 3
[NO_PID]: ecpg_free_params on line 46: parameter 1 = 3
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 2 = -Infinity
[NO_PID]: ecpg_free_params on line 46: parameter 2 = -Infinity
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -286,7 +286,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 72: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 72: parameter 1 = NaN
[NO_PID]: ecpg_free_params on line 72: parameter 1 = NaN
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 72: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -294,7 +294,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 73: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 73: parameter 1 = NaN
[NO_PID]: ecpg_free_params on line 73: parameter 1 = NaN
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 73: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -14,7 +14,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 60: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 60: parameter 1 = 2369.7
[NO_PID]: ecpg_free_params on line 60: parameter 1 = 2369.7
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 60: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -26,7 +26,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 24: using PQexecPrepared for "insert into T values ( 1 , $1 )"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 24: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 24: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 24: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -36,7 +36,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecPrepared for "insert into T values ( 1 , $1 )"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -186,7 +186,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 24: using PQexecPrepared for "insert into T values ( 1 , $1 )"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 24: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 24: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 24: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -196,7 +196,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecPrepared for "insert into T values ( 1 , $1 )"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -18,7 +18,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 65: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 65: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 65: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 65: correctly got 1 tuples with 6 fields
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -22,9 +22,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 37: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 37: parameter 1 = {9,8,7,6,5,4,3,2,1,0}
[NO_PID]: ecpg_free_params on line 37: parameter 1 = {9,8,7,6,5,4,3,2,1,0}
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 37: parameter 2 = klmnopqrst
[NO_PID]: ecpg_free_params on line 37: parameter 2 = klmnopqrst
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 37: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -32,11 +32,11 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 39: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 39: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 39: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 39: parameter 2 = {9,8,7,6,5,4,3,2,1,0}
[NO_PID]: ecpg_free_params on line 39: parameter 2 = {9,8,7,6,5,4,3,2,1,0}
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 39: parameter 3 = 0123456789
[NO_PID]: ecpg_free_params on line 39: parameter 3 = 0123456789
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 39: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -58,7 +58,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 53: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 53: parameter 1 = 140787
[NO_PID]: ecpg_free_params on line 53: parameter 1 = 140787
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 53: correctly got 1 tuples with 2 fields
[NO_PID]: sqlca: code: 0, state: 00000
@ -72,7 +72,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 63: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 63: parameter 1 = 140787
[NO_PID]: ecpg_free_params on line 63: parameter 1 = 140787
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 63: correctly got 1 tuples with 1 fields
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -18,7 +18,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 51: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 51: parameter 1 = \001\155\000\212
[NO_PID]: ecpg_free_params on line 51: parameter 1 = \001\155\000\212
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 51: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -26,7 +26,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 59: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 59: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 59: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 59: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
@ -52,7 +52,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 73: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 73: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 73: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 73: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
@ -78,7 +78,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 90: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 90: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 90: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 90: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -14,7 +14,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 0
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 0
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -22,7 +22,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -30,7 +30,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -38,7 +38,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 3
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 3
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -46,7 +46,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 4
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 4
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -54,7 +54,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 5
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 5
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -62,7 +62,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 6
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 6
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -70,7 +70,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 7
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 7
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -78,7 +78,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 8
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 8
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -86,7 +86,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 26: parameter 1 = 9
[NO_PID]: ecpg_free_params on line 26: parameter 1 = 9
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 26: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -20,9 +20,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: using PQexecPrepared for "INSERT INTO test1 VALUES ($1, $2)"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 36: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 36: parameter 2 = one
[NO_PID]: ecpg_free_params on line 36: parameter 2 = one
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 36: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -30,9 +30,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: using PQexecPrepared for "INSERT INTO test1 VALUES ($1, $2)"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 41: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 41: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 41: parameter 2 = null
[NO_PID]: ecpg_free_params on line 41: parameter 2 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -40,9 +40,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: using PQexecPrepared for "INSERT INTO test1 VALUES ($1, $2)"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 1 = 3
[NO_PID]: ecpg_free_params on line 46: parameter 1 = 3
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 2 = this is a long test
[NO_PID]: ecpg_free_params on line 46: parameter 2 = this is a long test
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -52,9 +52,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 53: using PQexecPrepared for "SELECT * from test1 where a = $1 and b = $2"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 53: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 53: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 53: parameter 2 = one
[NO_PID]: ecpg_free_params on line 53: parameter 2 = one
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 53: correctly got 1 tuples with 2 fields
[NO_PID]: sqlca: code: 0, state: 00000
@ -68,9 +68,9 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 59: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 59: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 59: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 59: parameter 2 = one
[NO_PID]: ecpg_free_params on line 59: parameter 2 = one
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 59: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
@ -94,7 +94,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 71: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 71: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 71: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 71: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -34,7 +34,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: using PQexecPrepared for "insert into test (name, amount, letter) select name, amount+$1, letter from test"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 41: parameter 1 = 100
[NO_PID]: ecpg_free_params on line 41: parameter 1 = 100
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: OK: INSERT 0 4
[NO_PID]: sqlca: code: 0, state: 00000
@ -116,7 +116,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 74: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 74: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 74: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 74: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000
@ -146,7 +146,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 94: using PQexecPrepared for "select * from test where amount = $1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 94: parameter 1 = 2
[NO_PID]: ecpg_free_params on line 94: parameter 1 = 2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 94: correctly got 1 tuples with 3 fields
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -112,7 +112,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 46: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 46: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 46: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -22,7 +22,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 27: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 27: parameter 1 = null
[NO_PID]: ecpg_free_params on line 27: parameter 1 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 27: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -30,7 +30,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 29: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 29: parameter 1 = 5
[NO_PID]: ecpg_free_params on line 29: parameter 1 = 5
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 29: OK: INSERT 0 1
[NO_PID]: sqlca: code: 0, state: 00000
@ -64,7 +64,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 41: parameter 1 = null
[NO_PID]: ecpg_free_params on line 41: parameter 1 = null
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: OK: UPDATE 1
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -34,7 +34,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: using PQexecPrepared for "insert into test (name, amount, letter) select name, amount+$1, letter from test"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 41: parameter 1 = 100
[NO_PID]: ecpg_free_params on line 41: parameter 1 = 100
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 41: OK: INSERT 0 4
[NO_PID]: sqlca: code: 0, state: 00000
@ -116,7 +116,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 73: using PQexecParams
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 73: parameter 1 = 1
[NO_PID]: ecpg_free_params on line 73: parameter 1 = 1
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 73: OK: DECLARE CURSOR
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -224,7 +224,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 185: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 185: parameter 1 = 4
[NO_PID]: ecpg_free_params on line 185: parameter 1 = 4
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 185: correctly got 1 tuples with 5 fields
[NO_PID]: sqlca: code: 0, state: 00000
@ -262,7 +262,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 222: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1"
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: free_params on line 222: parameter 1 = 4
[NO_PID]: ecpg_free_params on line 222: parameter 1 = 4
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 222: correctly got 1 tuples with 5 fields
[NO_PID]: sqlca: code: 0, state: 00000