3#define POSTGRES_ECPG_INTERNAL
14#include "pg_config_paths.h"
23#define LONG_LONG_MIN LLONG_MIN
25#define LONG_LONG_MIN LONGLONG_MIN
34 'S',
'Q',
'L',
'C',
'A',
' ',
' ',
' '
45 'N',
'O',
'T',
' ',
'S',
'E',
'T',
' '
51 0, 0, 0, 0, 0, 0, 0, 0
54 '0',
'0',
'0',
'0',
'0'
168 ecpg_log(
"ECPGtrans on line %d: action \"%s\"; connection \"%s\"\n", lineno,
transaction, con ? con->
name :
"null");
299 *((
char *) ptr) =
'\0';
319 memset(ptr, 0xff,
sizeof(
float));
322 memset(ptr, 0xff,
sizeof(
double));
351_check(
const unsigned char *ptr,
int length)
353 for (length--; length >= 0; length--)
354 if (ptr[length] != 0xff)
368 if (*((
const char *) ptr) ==
'\0')
373 if (*((
const short int *) ptr) ==
SHRT_MIN)
378 if (*((
const int *) ptr) ==
INT_MIN)
384 if (*((
const long *) ptr) ==
LONG_MIN)
393 return _check(ptr,
sizeof(
float));
396 return _check(ptr,
sizeof(
double));
440 if (
mp->initstate != 1)
457 if (
mp->initstate != 1)
555 if (ptr->
number == number)
578 snprintf(
sqlca->sqlerrm.sqlerrmc,
sizeof(
sqlca->sqlerrm.sqlerrmc),
"out of memory on line %d", lineno);
#define PG_TEXTDOMAIN(domain)
struct connection * ecpg_get_connection(const char *connection_name)
#define fprintf(file, fmt, msg)
#define ECPG_OUT_OF_MEMORY
bool ecpg_check_PQresult(PGresult *results, int lineno, PGconn *connection, enum COMPAT_MODE compat)
#define ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY
#define ECPG_SQLSTATE_ECPG_INTERNAL_ERROR
#define ECPG_SQLSTATE_CONNECTION_DOES_NOT_EXIST
void ecpg_raise(int line, int code, const char *sqlstate, const char *str)
@ ECPGt_unsigned_long_long
PGTransactionStatusType PQtransactionStatus(const PGconn *conn)
PGresult * PQexec(PGconn *conn, const char *query)
void ECPGset_var(int number, void *pointer, int lineno)
PGTransactionStatusType ECPGtransactionStatus(const char *connection_name)
static pthread_key_t sqlca_key
struct sqlca_t * ECPGget_sqlca(void)
static void ecpg_sqlca_key_destructor(void *arg)
void ECPGset_noind_null(enum ECPGttype type, void *ptr)
static struct sqlca_t sqlca_init
static pthread_mutex_t debug_init_mutex
bool ECPGtrans(int lineno, const char *connection_name, const char *transaction)
static bool _check(const unsigned char *ptr, int length)
static pthread_mutex_t debug_mutex
bool ECPGis_noind_null(enum ECPGttype type, const void *ptr)
void ecpg_log(const char *format,...)
bool ecpg_init(const struct connection *con, const char *connection_name, const int lineno)
static FILE * debugstream
bool ECPGstatus(int lineno, const char *connection_name)
void ecpg_init_sqlca(struct sqlca_t *sqlca)
static volatile int simple_debug
void * ECPGget_var(int number)
bool ecpg_internal_regression_mode
static void ecpg_sqlca_key_init(void)
static pthread_once_t sqlca_key_once
void ECPGfree_auto_mem(void)
int pthread_mutex_unlock(pthread_mutex_t *mp)
int pthread_mutex_lock(pthread_mutex_t *mp)
void pthread_setspecific(pthread_key_t key, void *val)
void * pthread_getspecific(pthread_key_t key)
int pthread_mutex_init(pthread_mutex_t *mp, void *attr)
#define PTHREAD_MUTEX_INITIALIZER
char arr[FLEXIBLE_ARRAY_MEMBER]
static void * fn(void *arg)