Harmonize parameter names in ecpg code.

Make ecpg function declarations consistently use named parameters.  Also
make sure that the declarations use names that match corresponding names
from function definitions.

Like other recent commits that cleaned up function parameter names, this
commit was written with help from clang-tidy.

Author: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: David Rowley <dgrowleyml@gmail.com>
Discussion: https://postgr.es/m/CAH2-WznJt9CMM9KJTMjJh_zbL5hD9oX44qdJ4aqZtjFi-zA3Tg@mail.gmail.com
This commit is contained in:
Peter Geoghegan 2022-09-22 12:53:20 -07:00
parent 163b0993a1
commit 3535ebce5d
18 changed files with 268 additions and 230 deletions

View File

@ -172,52 +172,68 @@ bool ecpg_get_data(const PGresult *, int, int, int, enum ECPGttype type,
#ifdef ENABLE_THREAD_SAFETY #ifdef ENABLE_THREAD_SAFETY
void ecpg_pthreads_init(void); void ecpg_pthreads_init(void);
#endif #endif
struct connection *ecpg_get_connection(const char *); struct connection *ecpg_get_connection(const char *connection_name);
char *ecpg_alloc(long, int); char *ecpg_alloc(long size, int lineno);
char *ecpg_auto_alloc(long, int); char *ecpg_auto_alloc(long size, int lineno);
char *ecpg_realloc(void *, long, int); char *ecpg_realloc(void *ptr, long size, int lineno);
void ecpg_free(void *); void ecpg_free(void *ptr);
bool ecpg_init(const struct connection *, const char *, const int); bool ecpg_init(const struct connection *con,
char *ecpg_strdup(const char *, int); const char *connection_name,
const char *ecpg_type_name(enum ECPGttype); const int lineno);
int ecpg_dynamic_type(Oid); char *ecpg_strdup(const char *string, int lineno);
int sqlda_dynamic_type(Oid, enum COMPAT_MODE); const char *ecpg_type_name(enum ECPGttype typ);
int ecpg_dynamic_type(Oid type);
int sqlda_dynamic_type(Oid type, enum COMPAT_MODE compat);
void ecpg_clear_auto_mem(void); void ecpg_clear_auto_mem(void);
struct descriptor *ecpg_find_desc(int line, const char *name); struct descriptor *ecpg_find_desc(int line, const char *name);
struct prepared_statement *ecpg_find_prepared_statement(const char *, struct prepared_statement *ecpg_find_prepared_statement(const char *name,
struct connection *, struct prepared_statement **); struct connection *con,
struct prepared_statement **prev_);
bool ecpg_store_result(const PGresult *results, int act_field, bool ecpg_store_result(const PGresult *results, int act_field,
const struct statement *stmt, struct variable *var); const struct statement *stmt, struct variable *var);
bool ecpg_store_input(const int, const bool, const struct variable *, char **, bool); bool ecpg_store_input(const int lineno, const bool force_indicator,
const struct variable *var,
char **tobeinserted_p, bool quote);
void ecpg_free_params(struct statement *stmt, bool print); void ecpg_free_params(struct statement *stmt, bool print);
bool ecpg_do_prologue(int, const int, const int, const char *, const bool, bool ecpg_do_prologue(int lineno, const int compat,
enum ECPG_statement_type, const char *, va_list, const int force_indicator, const char *connection_name,
struct statement **); const bool questionmarks, enum ECPG_statement_type statement_type,
bool ecpg_build_params(struct statement *); const char *query, va_list args,
struct statement **stmt_out);
bool ecpg_build_params(struct statement *stmt);
bool ecpg_autostart_transaction(struct statement *stmt); bool ecpg_autostart_transaction(struct statement *stmt);
bool ecpg_execute(struct statement *stmt); bool ecpg_execute(struct statement *stmt);
bool ecpg_process_output(struct statement *, bool); bool ecpg_process_output(struct statement *stmt, bool clear_result);
void ecpg_do_epilogue(struct statement *); void ecpg_do_epilogue(struct statement *stmt);
bool ecpg_do(const int, const int, const int, const char *, const bool, bool ecpg_do(const int lineno, const int compat,
const int, const char *, va_list); const int force_indicator, const char *connection_name,
const bool questionmarks, const int st, const char *query,
va_list args);
bool ecpg_check_PQresult(PGresult *, int, PGconn *, enum COMPAT_MODE); bool ecpg_check_PQresult(PGresult *results, int lineno,
PGconn *connection, enum COMPAT_MODE compat);
void ecpg_raise(int line, int code, const char *sqlstate, const char *str); void ecpg_raise(int line, int code, const char *sqlstate, const char *str);
void ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat); void ecpg_raise_backend(int line, PGresult *result, PGconn *conn, int compat);
char *ecpg_prepared(const char *, struct connection *); char *ecpg_prepared(const char *name, struct connection *con);
bool ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection *conn); bool ecpg_deallocate_all_conn(int lineno, enum COMPAT_MODE c, struct connection *con);
void ecpg_log(const char *format,...) pg_attribute_printf(1, 2); void ecpg_log(const char *format,...) pg_attribute_printf(1, 2);
bool ecpg_auto_prepare(int, const char *, const int, char **, const char *); bool ecpg_auto_prepare(int lineno, const char *connection_name,
bool ecpg_register_prepared_stmt(struct statement *); const int compat, char **name, const char *query);
bool ecpg_register_prepared_stmt(struct statement *stmt);
void ecpg_init_sqlca(struct sqlca_t *sqlca); void ecpg_init_sqlca(struct sqlca_t *sqlca);
struct sqlda_compat *ecpg_build_compat_sqlda(int, PGresult *, int, enum COMPAT_MODE); struct sqlda_compat *ecpg_build_compat_sqlda(int line, PGresult *res, int row,
void ecpg_set_compat_sqlda(int, struct sqlda_compat **, const PGresult *, int, enum COMPAT_MODE); enum COMPAT_MODE compat);
struct sqlda_struct *ecpg_build_native_sqlda(int, PGresult *, int, enum COMPAT_MODE); void ecpg_set_compat_sqlda(int lineno, struct sqlda_compat **_sqlda,
void ecpg_set_native_sqlda(int, struct sqlda_struct **, const PGresult *, int, enum COMPAT_MODE); const PGresult *res, int row,
enum COMPAT_MODE compat);
struct sqlda_struct *ecpg_build_native_sqlda(int line, PGresult *res, int row,
enum COMPAT_MODE compat);
void ecpg_set_native_sqlda(int lineno, struct sqlda_struct **_sqlda,
const PGresult *res, int row, enum COMPAT_MODE compat);
unsigned ecpg_hex_dec_len(unsigned srclen); unsigned ecpg_hex_dec_len(unsigned srclen);
unsigned ecpg_hex_enc_len(unsigned srclen); unsigned ecpg_hex_enc_len(unsigned srclen);
unsigned ecpg_hex_encode(const char *src, unsigned len, char *dst); unsigned ecpg_hex_encode(const char *src, unsigned len, char *dst);

View File

@ -33,55 +33,55 @@ extern "C"
{ {
#endif #endif
extern int rdatestr(date, char *); extern int rdatestr(date d, char *str);
extern void rtoday(date *); extern void rtoday(date * d);
extern int rjulmdy(date, short *); extern int rjulmdy(date d, short *mdy);
extern int rdefmtdate(date *, const char *, const char *); extern int rdefmtdate(date * d, const char *fmt, const char *str);
extern int rfmtdate(date, const char *, char *); extern int rfmtdate(date d, const char *fmt, char *str);
extern int rmdyjul(short *, date *); extern int rmdyjul(short *mdy, date * d);
extern int rstrdate(const char *, date *); extern int rstrdate(const char *str, date * d);
extern int rdayofweek(date); extern int rdayofweek(date d);
extern int rfmtlong(long, const char *, char *); extern int rfmtlong(long lng_val, const char *fmt, char *outbuf);
extern int rgetmsg(int, char *, int); extern int rgetmsg(int msgnum, char *s, int maxsize);
extern int risnull(int, const char *); extern int risnull(int t, const char *ptr);
extern int rsetnull(int, char *); extern int rsetnull(int t, char *ptr);
extern int rtypalign(int, int); extern int rtypalign(int offset, int type);
extern int rtypmsize(int, int); extern int rtypmsize(int type, int len);
extern int rtypwidth(int, int); extern int rtypwidth(int sqltype, int sqllen);
extern void rupshift(char *); extern void rupshift(char *str);
extern int byleng(char *, int); extern int byleng(char *str, int len);
extern void ldchar(char *, int, char *); extern void ldchar(char *src, int len, char *dest);
extern void ECPG_informix_set_var(int, void *, int); extern void ECPG_informix_set_var(int number, void *pointer, int lineno);
extern void *ECPG_informix_get_var(int); extern void *ECPG_informix_get_var(int number);
extern void ECPG_informix_reset_sqlca(void); extern void ECPG_informix_reset_sqlca(void);
/* Informix defines these in decimal.h */ /* Informix defines these in decimal.h */
int decadd(decimal *, decimal *, decimal *); int decadd(decimal *arg1, decimal *arg2, decimal *sum);
int deccmp(decimal *, decimal *); int deccmp(decimal *arg1, decimal *arg2);
void deccopy(decimal *, decimal *); void deccopy(decimal *src, decimal *target);
int deccvasc(const char *, int, decimal *); int deccvasc(const char *cp, int len, decimal *np);
int deccvdbl(double, decimal *); int deccvdbl(double dbl, decimal *np);
int deccvint(int, decimal *); int deccvint(int in, decimal *np);
int deccvlong(long, decimal *); int deccvlong(long lng, decimal *np);
int decdiv(decimal *, decimal *, decimal *); int decdiv(decimal *n1, decimal *n2, decimal *result);
int decmul(decimal *, decimal *, decimal *); int decmul(decimal *n1, decimal *n2, decimal *result);
int decsub(decimal *, decimal *, decimal *); int decsub(decimal *n1, decimal *n2, decimal *result);
int dectoasc(decimal *, char *, int, int); int dectoasc(decimal *np, char *cp, int len, int right);
int dectodbl(decimal *, double *); int dectodbl(decimal *np, double *dblp);
int dectoint(decimal *, int *); int dectoint(decimal *np, int *ip);
int dectolong(decimal *, long *); int dectolong(decimal *np, long *lngp);
/* Informix defines these in datetime.h */ /* Informix defines these in datetime.h */
extern void dtcurrent(timestamp *); extern void dtcurrent(timestamp * ts);
extern int dtcvasc(char *, timestamp *); extern int dtcvasc(char *str, timestamp * ts);
extern int dtsub(timestamp *, timestamp *, interval *); extern int dtsub(timestamp * ts1, timestamp * ts2, interval * iv);
extern int dttoasc(timestamp *, char *); extern int dttoasc(timestamp * ts, char *output);
extern int dttofmtasc(timestamp *, char *, int, char *); extern int dttofmtasc(timestamp * ts, char *output, int str_len, char *fmtstr);
extern int intoasc(interval *, char *); extern int intoasc(interval * i, char *str);
extern int dtcvfmtasc(char *, char *, timestamp *); extern int dtcvfmtasc(char *inbuf, char *fmtstr, timestamp * dtvalue);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -49,20 +49,24 @@ extern "C"
{ {
#endif #endif
void ECPGdebug(int, FILE *); void ECPGdebug(int n, FILE *dbgs);
bool ECPGstatus(int, const char *); bool ECPGstatus(int lineno, const char *connection_name);
bool ECPGsetcommit(int, const char *, const char *); bool ECPGsetcommit(int lineno, const char *mode, const char *connection_name);
bool ECPGsetconn(int, const char *); bool ECPGsetconn(int lineno, const char *connection_name);
bool ECPGconnect(int, int, const char *, const char *, const char *, const char *, int); bool ECPGconnect(int lineno, int c, const char *name, const char *user,
bool ECPGdo(const int, const int, const int, const char *, const bool, const int, const char *,...); const char *passwd, const char *connection_name, int autocommit);
bool ECPGtrans(int, const char *, const char *); bool ECPGdo(const int lineno, const int compat, const int force_indicator,
bool ECPGdisconnect(int, const char *); const char *connection_name, const bool questionmarks,
bool ECPGprepare(int, const char *, const bool, const char *, const char *); const int st, const char *query,...);
bool ECPGdeallocate(int, int, const char *, const char *); bool ECPGtrans(int lineno, const char *connection_name, const char *transaction);
bool ECPGdeallocate_all(int, int, const char *); bool ECPGdisconnect(int lineno, const char *connection_name);
char *ECPGprepared_statement(const char *, const char *, int); bool ECPGprepare(int lineno, const char *connection_name, const bool questionmarks,
PGconn *ECPGget_PGconn(const char *); const char *name, const char *variable);
PGTransactionStatusType ECPGtransactionStatus(const char *); bool ECPGdeallocate(int lineno, int c, const char *connection_name, const char *name);
bool ECPGdeallocate_all(int lineno, int compat, const char *connection_name);
char *ECPGprepared_statement(const char *connection_name, const char *name, int lineno);
PGconn *ECPGget_PGconn(const char *connection_name);
PGTransactionStatusType ECPGtransactionStatus(const char *connection_name);
/* print an error message */ /* print an error message */
void sqlprint(void); void sqlprint(void);
@ -74,19 +78,21 @@ void sqlprint(void);
/* dynamic SQL */ /* dynamic SQL */
bool ECPGdo_descriptor(int, const char *, const char *, const char *); bool ECPGdo_descriptor(int line, const char *connection,
bool ECPGdeallocate_desc(int, const char *); const char *descriptor, const char *query);
bool ECPGallocate_desc(int, const char *); bool ECPGdeallocate_desc(int line, const char *name);
bool ECPGget_desc_header(int, const char *, int *); bool ECPGallocate_desc(int line, const char *name);
bool ECPGget_desc(int, const char *, int,...); bool ECPGget_desc_header(int lineno, const char *desc_name, int *count);
bool ECPGset_desc_header(int, const char *, int); bool ECPGget_desc(int lineno, const char *desc_name, int index,...);
bool ECPGset_desc(int, const char *, int,...); bool ECPGset_desc_header(int lineno, const char *desc_name, int count);
bool ECPGset_desc(int lineno, const char *desc_name, int index,...);
void ECPGset_noind_null(enum ECPGttype, void *); void ECPGset_noind_null(enum ECPGttype type, void *ptr);
bool ECPGis_noind_null(enum ECPGttype, const void *); bool ECPGis_noind_null(enum ECPGttype type, const void *ptr);
bool ECPGdescribe(int, int, bool, const char *, const char *,...); bool ECPGdescribe(int line, int compat, bool input,
const char *connection_name, const char *stmt_name,...);
void ECPGset_var(int, void *, int); void ECPGset_var(int number, void *pointer, int lineno);
void *ECPGget_var(int number); void *ECPGget_var(int number);
/* dynamic result allocation */ /* dynamic result allocation */

View File

@ -14,16 +14,16 @@ extern "C"
#endif #endif
extern date * PGTYPESdate_new(void); extern date * PGTYPESdate_new(void);
extern void PGTYPESdate_free(date *); extern void PGTYPESdate_free(date * d);
extern date PGTYPESdate_from_asc(char *, char **); extern date PGTYPESdate_from_asc(char *str, char **endptr);
extern char *PGTYPESdate_to_asc(date); extern char *PGTYPESdate_to_asc(date dDate);
extern date PGTYPESdate_from_timestamp(timestamp); extern date PGTYPESdate_from_timestamp(timestamp dt);
extern void PGTYPESdate_julmdy(date, int *); extern void PGTYPESdate_julmdy(date jd, int *mdy);
extern void PGTYPESdate_mdyjul(int *, date *); extern void PGTYPESdate_mdyjul(int *mdy, date * jdate);
extern int PGTYPESdate_dayofweek(date); extern int PGTYPESdate_dayofweek(date dDate);
extern void PGTYPESdate_today(date *); extern void PGTYPESdate_today(date * d);
extern int PGTYPESdate_defmt_asc(date *, const char *, const char *); extern int PGTYPESdate_defmt_asc(date * d, const char *fmt, const char *str);
extern int PGTYPESdate_fmt_asc(date, const char *, char *); extern int PGTYPESdate_fmt_asc(date dDate, const char *fmtstring, char *outbuf);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -36,10 +36,10 @@ extern "C"
#endif #endif
extern interval * PGTYPESinterval_new(void); extern interval * PGTYPESinterval_new(void);
extern void PGTYPESinterval_free(interval *); extern void PGTYPESinterval_free(interval *intvl);
extern interval * PGTYPESinterval_from_asc(char *, char **); extern interval * PGTYPESinterval_from_asc(char *str, char **endptr);
extern char *PGTYPESinterval_to_asc(interval *); extern char *PGTYPESinterval_to_asc(interval *span);
extern int PGTYPESinterval_copy(interval *, interval *); extern int PGTYPESinterval_copy(interval *intvlsrc, interval *intvldest);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -43,24 +43,24 @@ extern "C"
numeric *PGTYPESnumeric_new(void); numeric *PGTYPESnumeric_new(void);
decimal *PGTYPESdecimal_new(void); decimal *PGTYPESdecimal_new(void);
void PGTYPESnumeric_free(numeric *); void PGTYPESnumeric_free(numeric *var);
void PGTYPESdecimal_free(decimal *); void PGTYPESdecimal_free(decimal *var);
numeric *PGTYPESnumeric_from_asc(char *, char **); numeric *PGTYPESnumeric_from_asc(char *str, char **endptr);
char *PGTYPESnumeric_to_asc(numeric *, int); char *PGTYPESnumeric_to_asc(numeric *num, int dscale);
int PGTYPESnumeric_add(numeric *, numeric *, numeric *); int PGTYPESnumeric_add(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_sub(numeric *, numeric *, numeric *); int PGTYPESnumeric_sub(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_mul(numeric *, numeric *, numeric *); int PGTYPESnumeric_mul(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_div(numeric *, numeric *, numeric *); int PGTYPESnumeric_div(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_cmp(numeric *, numeric *); int PGTYPESnumeric_cmp(numeric *var1, numeric *var2);
int PGTYPESnumeric_from_int(signed int, numeric *); int PGTYPESnumeric_from_int(signed int int_val, numeric *var);
int PGTYPESnumeric_from_long(signed long int, numeric *); int PGTYPESnumeric_from_long(signed long int long_val, numeric *var);
int PGTYPESnumeric_copy(numeric *, numeric *); int PGTYPESnumeric_copy(numeric *src, numeric *dst);
int PGTYPESnumeric_from_double(double, numeric *); int PGTYPESnumeric_from_double(double d, numeric *dst);
int PGTYPESnumeric_to_double(numeric *, double *); int PGTYPESnumeric_to_double(numeric *nv, double *dp);
int PGTYPESnumeric_to_int(numeric *, int *); int PGTYPESnumeric_to_int(numeric *nv, int *ip);
int PGTYPESnumeric_to_long(numeric *, long *); int PGTYPESnumeric_to_long(numeric *nv, long *lp);
int PGTYPESnumeric_to_decimal(numeric *, decimal *); int PGTYPESnumeric_to_decimal(numeric *src, decimal *dst);
int PGTYPESnumeric_from_decimal(decimal *, numeric *); int PGTYPESnumeric_from_decimal(decimal *src, numeric *dst);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -15,12 +15,12 @@ extern "C"
{ {
#endif #endif
extern timestamp PGTYPEStimestamp_from_asc(char *, char **); extern timestamp PGTYPEStimestamp_from_asc(char *str, char **endptr);
extern char *PGTYPEStimestamp_to_asc(timestamp); extern char *PGTYPEStimestamp_to_asc(timestamp tstamp);
extern int PGTYPEStimestamp_sub(timestamp *, timestamp *, interval *); extern int PGTYPEStimestamp_sub(timestamp * ts1, timestamp * ts2, interval * iv);
extern int PGTYPEStimestamp_fmt_asc(timestamp *, char *, int, const char *); extern int PGTYPEStimestamp_fmt_asc(timestamp * ts, char *output, int str_len, const char *fmtstr);
extern void PGTYPEStimestamp_current(timestamp *); extern void PGTYPEStimestamp_current(timestamp * ts);
extern int PGTYPEStimestamp_defmt_asc(const char *, const char *, timestamp *); extern int PGTYPEStimestamp_defmt_asc(const char *str, const char *fmt, timestamp * d);
extern int PGTYPEStimestamp_add_interval(timestamp * tin, interval * span, timestamp * tout); extern int PGTYPEStimestamp_add_interval(timestamp * tin, interval * span, timestamp * tout);
extern int PGTYPEStimestamp_sub_interval(timestamp * tin, interval * span, timestamp * tout); extern int PGTYPEStimestamp_sub_interval(timestamp * tin, interval * span, timestamp * tout);

View File

@ -311,22 +311,22 @@ do { \
#define TIMESTAMP_IS_NOEND(j) ((j) == DT_NOEND) #define TIMESTAMP_IS_NOEND(j) ((j) == DT_NOEND)
#define TIMESTAMP_NOT_FINITE(j) (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j)) #define TIMESTAMP_NOT_FINITE(j) (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j))
int DecodeInterval(char **, int *, int, int *, struct tm *, fsec_t *); int DecodeInterval(char **field, int *ftype, int nf, int *dtype, struct tm *tm, fsec_t *fsec);
int DecodeTime(char *, int *, struct tm *, fsec_t *); int DecodeTime(char *str, int *tmask, struct tm *tm, fsec_t *fsec);
void EncodeDateTime(struct tm *tm, fsec_t fsec, bool print_tz, int tz, const char *tzn, int style, char *str, bool EuroDates); void EncodeDateTime(struct tm *tm, fsec_t fsec, bool print_tz, int tz, const char *tzn, int style, char *str, bool EuroDates);
void EncodeInterval(struct tm *tm, fsec_t fsec, int style, char *str); void EncodeInterval(struct tm *tm, fsec_t fsec, int style, char *str);
int tm2timestamp(struct tm *, fsec_t, int *, timestamp *); int tm2timestamp(struct tm *tm, fsec_t fsec, int *tzp, timestamp *result);
int DecodeUnits(int field, char *lowtoken, int *val); int DecodeUnits(int field, char *lowtoken, int *val);
bool CheckDateTokenTables(void); bool CheckDateTokenTables(void);
void EncodeDateOnly(struct tm *tm, int style, char *str, bool EuroDates); void EncodeDateOnly(struct tm *tm, int style, char *str, bool EuroDates);
int GetEpochTime(struct tm *); int GetEpochTime(struct tm *tm);
int ParseDateTime(char *, char *, char **, int *, int *, char **); int ParseDateTime(char *timestr, char *lowstr, char **field, int *ftype, int *numfields, char **endstr);
int DecodeDateTime(char **, int *, int, int *, struct tm *, fsec_t *, bool); int DecodeDateTime(char **field, int *ftype, int nf, int *dtype, struct tm *tm, fsec_t *fsec, bool EuroDates);
void j2date(int, int *, int *, int *); void j2date(int jd, int *year, int *month, int *day);
void GetCurrentDateTime(struct tm *); void GetCurrentDateTime(struct tm *tm);
int date2j(int, int, int); int date2j(int y, int m, int d);
void TrimTrailingZeros(char *); void TrimTrailingZeros(char *str);
void dt2time(double, int *, int *, int *, fsec_t *); void dt2time(double jd, int *hour, int *min, int *sec, fsec_t *fsec);
int PGTYPEStimestamp_defmt_scan(char **str, char *fmt, timestamp * d, int PGTYPEStimestamp_defmt_scan(char **str, char *fmt, timestamp * d,
int *year, int *month, int *day, int *year, int *month, int *day,
int *hour, int *minute, int *second, int *hour, int *minute, int *second,

View File

@ -33,9 +33,11 @@ union un_fmt_comb
int64 int64_val; int64 int64_val;
}; };
int pgtypes_fmt_replace(union un_fmt_comb, int, char **, int *); int pgtypes_fmt_replace(union un_fmt_comb replace_val,
int replace_type, char **output,
int *pstr_len);
char *pgtypes_alloc(long); char *pgtypes_alloc(long size);
char *pgtypes_strdup(const char *); char *pgtypes_strdup(const char *str);
#endif /* _ECPG_PGTYPESLIB_EXTERN_H */ #endif /* _ECPG_PGTYPESLIB_EXTERN_H */

View File

@ -33,7 +33,7 @@ static const uint16 ScanCKeywordTokens[] = {
* ScanKeywordLookup(), except we want case-sensitive matching. * ScanKeywordLookup(), except we want case-sensitive matching.
*/ */
int int
ScanCKeywordLookup(const char *str) ScanCKeywordLookup(const char *text)
{ {
size_t len; size_t len;
int h; int h;
@ -43,7 +43,7 @@ ScanCKeywordLookup(const char *str)
* Reject immediately if too long to be any keyword. This saves useless * Reject immediately if too long to be any keyword. This saves useless
* hashing work on long strings. * hashing work on long strings.
*/ */
len = strlen(str); len = strlen(text);
if (len > ScanCKeywords.max_kw_len) if (len > ScanCKeywords.max_kw_len)
return -1; return -1;
@ -51,7 +51,7 @@ ScanCKeywordLookup(const char *str)
* Compute the hash function. Since it's a perfect hash, we need only * Compute the hash function. Since it's a perfect hash, we need only
* match to the specific keyword it identifies. * match to the specific keyword it identifies.
*/ */
h = ScanCKeywords_hash_func(str, len); h = ScanCKeywords_hash_func(text, len);
/* An out-of-range result implies no match */ /* An out-of-range result implies no match */
if (h < 0 || h >= ScanCKeywords.num_keywords) if (h < 0 || h >= ScanCKeywords.num_keywords)
@ -59,7 +59,7 @@ ScanCKeywordLookup(const char *str)
kw = GetScanKeyword(h, &ScanCKeywords); kw = GetScanKeyword(h, &ScanCKeywords);
if (strcmp(kw, str) == 0) if (strcmp(kw, text) == 0)
return ScanCKeywordTokens[h]; return ScanCKeywordTokens[h];
return -1; return -1;

View File

@ -64,7 +64,7 @@ static struct ECPGtype ecpg_query = {ECPGt_char_variable, NULL, NULL, NULL, {NUL
static void vmmerror(int error_code, enum errortype type, const char *error, va_list ap) pg_attribute_printf(3, 0); static void vmmerror(int error_code, enum errortype type, const char *error, va_list ap) pg_attribute_printf(3, 0);
static bool check_declared_list(const char*); static bool check_declared_list(const char *name);
/* /*
* Handle parsing errors and warnings * Handle parsing errors and warnings

View File

@ -4,7 +4,7 @@
#include "preproc_extern.h" #include "preproc_extern.h"
static void output_escaped_str(char *cmd, bool quoted); static void output_escaped_str(char *str, bool quoted);
void void
output_line_number(void) output_line_number(void)

View File

@ -56,7 +56,7 @@ static bool include_next;
#define startlit() (literalbuf[0] = '\0', literallen = 0) #define startlit() (literalbuf[0] = '\0', literallen = 0)
static void addlit(char *ytext, int yleng); static void addlit(char *ytext, int yleng);
static void addlitchar(unsigned char); static void addlitchar(unsigned char ychar);
static int process_integer_literal(const char *token, YYSTYPE *lval); static int process_integer_literal(const char *token, YYSTYPE *lval);
static void parse_include(void); static void parse_include(void);
static bool ecpg_isspace(char ch); static bool ecpg_isspace(char ch);

View File

@ -65,41 +65,50 @@ extern const uint16 SQLScanKeywordTokens[];
extern const char *get_dtype(enum ECPGdtype); extern const char *get_dtype(enum ECPGdtype);
extern void lex_init(void); extern void lex_init(void);
extern void output_line_number(void); extern void output_line_number(void);
extern void output_statement(char *, int, enum ECPG_statement_type); extern void output_statement(char *stmt, int whenever_mode, enum ECPG_statement_type st);
extern void output_prepare_statement(char *, char *); extern void output_prepare_statement(char *name, char *stmt);
extern void output_deallocate_prepare_statement(char *); extern void output_deallocate_prepare_statement(char *name);
extern void output_simple_statement(char *, int); extern void output_simple_statement(char *stmt, int whenever_mode);
extern char *hashline_number(void); extern char *hashline_number(void);
extern int base_yyparse(void); extern int base_yyparse(void);
extern int base_yylex(void); extern int base_yylex(void);
extern void base_yyerror(const char *); extern void base_yyerror(const char *error);
extern void *mm_alloc(size_t); extern void *mm_alloc(size_t size);
extern char *mm_strdup(const char *); extern char *mm_strdup(const char *string);
extern void mmerror(int errorcode, enum errortype type, const char *error,...) pg_attribute_printf(3, 4); extern void mmerror(int error_code, enum errortype type, const char *error,...) pg_attribute_printf(3, 4);
extern void mmfatal(int errorcode, const char *error,...) pg_attribute_printf(2, 3) pg_attribute_noreturn(); extern void mmfatal(int error_code, const char *error,...) pg_attribute_printf(2, 3) pg_attribute_noreturn();
extern void output_get_descr_header(char *); extern void output_get_descr_header(char *desc_name);
extern void output_get_descr(char *, char *); extern void output_get_descr(char *desc_name, char *index);
extern void output_set_descr_header(char *); extern void output_set_descr_header(char *desc_name);
extern void output_set_descr(char *, char *); extern void output_set_descr(char *desc_name, char *index);
extern void push_assignment(char *, enum ECPGdtype); extern void push_assignment(char *var, enum ECPGdtype value);
extern struct variable *find_variable(char *); extern struct variable *find_variable(char *name);
extern void whenever_action(int); extern void whenever_action(int mode);
extern void add_descriptor(char *, char *); extern void add_descriptor(char *name, char *connection);
extern void drop_descriptor(char *, char *); extern void drop_descriptor(char *name, char *connection);
extern struct descriptor *lookup_descriptor(char *, char *); extern struct descriptor *lookup_descriptor(char *name, char *connection);
extern struct variable *descriptor_variable(const char *name, int input); extern struct variable *descriptor_variable(const char *name, int input);
extern struct variable *sqlda_variable(const char *name); extern struct variable *sqlda_variable(const char *name);
extern void add_variable_to_head(struct arguments **, struct variable *, struct variable *); extern void add_variable_to_head(struct arguments **list,
extern void add_variable_to_tail(struct arguments **, struct variable *, struct variable *); struct variable *var,
struct variable *ind);
extern void add_variable_to_tail(struct arguments **list,
struct variable *var,
struct variable *ind);
extern void remove_variable_from_list(struct arguments **list, struct variable *var); extern void remove_variable_from_list(struct arguments **list, struct variable *var);
extern void dump_variables(struct arguments *, int); extern void dump_variables(struct arguments *list, int mode);
extern struct typedefs *get_typedef(const char *name, bool noerror); extern struct typedefs *get_typedef(const char *name, bool noerror);
extern void adjust_array(enum ECPGttype, char **, char **, char *, char *, int, bool); extern void adjust_array(enum ECPGttype type_enum, char **dimension,
char **length, char *type_dimension,
char *type_index, int pointer_len,
bool type_definition);
extern void reset_variables(void); extern void reset_variables(void);
extern void check_indicator(struct ECPGtype *); extern void check_indicator(struct ECPGtype *var);
extern void remove_typedefs(int); extern void remove_typedefs(int brace_level);
extern void remove_variables(int); extern void remove_variables(int brace_level);
extern struct variable *new_variable(const char *, struct ECPGtype *, int); extern struct variable *new_variable(const char *name,
struct ECPGtype *type,
int brace_level);
extern int ScanCKeywordLookup(const char *text); extern int ScanCKeywordLookup(const char *text);
extern int ScanECPGKeywordLookup(const char *text); extern int ScanECPGKeywordLookup(const char *text);
extern void parser_init(void); extern void parser_init(void);

View File

@ -233,7 +233,7 @@ get_type(enum ECPGttype type)
*/ */
static void ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type, static void ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
char *varcharsize, char *varcharsize,
char *arrsize, const char *size, const char *prefix, int); char *arrsize, const char *size, const char *prefix, int counter);
static void ECPGdump_a_struct(FILE *o, const char *name, const char *ind_name, char *arrsize, static void ECPGdump_a_struct(FILE *o, const char *name, const char *ind_name, char *arrsize,
struct ECPGtype *type, struct ECPGtype *ind_type, const char *prefix, const char *ind_prefix); struct ECPGtype *type, struct ECPGtype *ind_type, const char *prefix, const char *ind_prefix);

View File

@ -33,15 +33,18 @@ struct ECPGtype
}; };
/* Everything is malloced. */ /* Everything is malloced. */
void ECPGmake_struct_member(const char *, struct ECPGtype *, struct ECPGstruct_member **); void ECPGmake_struct_member(const char *name, struct ECPGtype *type,
struct ECPGtype *ECPGmake_simple_type(enum ECPGttype, char *, int); struct ECPGstruct_member **start);
struct ECPGtype *ECPGmake_array_type(struct ECPGtype *, char *); struct ECPGtype *ECPGmake_simple_type(enum ECPGttype type, char *size, int counter);
struct ECPGtype *ECPGmake_struct_type(struct ECPGstruct_member *, enum ECPGttype, char *, char *); struct ECPGtype *ECPGmake_array_type(struct ECPGtype *type, char *size);
struct ECPGstruct_member *ECPGstruct_member_dup(struct ECPGstruct_member *); struct ECPGtype *ECPGmake_struct_type(struct ECPGstruct_member *rm,
enum ECPGttype type, char *type_name,
char *struct_sizeof);
struct ECPGstruct_member *ECPGstruct_member_dup(struct ECPGstruct_member *rm);
/* Frees a type. */ /* Frees a type. */
void ECPGfree_struct_member(struct ECPGstruct_member *); void ECPGfree_struct_member(struct ECPGstruct_member *rm);
void ECPGfree_type(struct ECPGtype *); void ECPGfree_type(struct ECPGtype *type);
/* Dump a type. /* Dump a type.
The type is dumped as: The type is dumped as:
@ -53,10 +56,12 @@ void ECPGfree_type(struct ECPGtype *);
size is the maxsize in case it is a varchar. Otherwise it is the size of size is the maxsize in case it is a varchar. Otherwise it is the size of
the variable (required to do array fetches of structs). the variable (required to do array fetches of structs).
*/ */
void ECPGdump_a_type(FILE *, const char *, struct ECPGtype *, const int, void ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype *type,
const char *, struct ECPGtype *, const int, const int brace_level, const char *ind_name,
const char *, const char *, char *, struct ECPGtype *ind_type, const int ind_brace_level,
const char *, const char *); const char *prefix, const char *ind_prefix,
char *arr_str_size, const char *struct_sizeof,
const char *ind_struct_sizeof);
/* A simple struct to keep a variable and its type. */ /* A simple struct to keep a variable and its type. */
struct ECPGtemp_type struct ECPGtemp_type

View File

@ -70,24 +70,24 @@ extern "C"
numeric *PGTYPESnumeric_new(void); numeric *PGTYPESnumeric_new(void);
decimal *PGTYPESdecimal_new(void); decimal *PGTYPESdecimal_new(void);
void PGTYPESnumeric_free(numeric *); void PGTYPESnumeric_free(numeric *var);
void PGTYPESdecimal_free(decimal *); void PGTYPESdecimal_free(decimal *var);
numeric *PGTYPESnumeric_from_asc(char *, char **); numeric *PGTYPESnumeric_from_asc(char *str, char **endptr);
char *PGTYPESnumeric_to_asc(numeric *, int); char *PGTYPESnumeric_to_asc(numeric *num, int dscale);
int PGTYPESnumeric_add(numeric *, numeric *, numeric *); int PGTYPESnumeric_add(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_sub(numeric *, numeric *, numeric *); int PGTYPESnumeric_sub(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_mul(numeric *, numeric *, numeric *); int PGTYPESnumeric_mul(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_div(numeric *, numeric *, numeric *); int PGTYPESnumeric_div(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_cmp(numeric *, numeric *); int PGTYPESnumeric_cmp(numeric *var1, numeric *var2);
int PGTYPESnumeric_from_int(signed int, numeric *); int PGTYPESnumeric_from_int(signed int int_val, numeric *var);
int PGTYPESnumeric_from_long(signed long int, numeric *); int PGTYPESnumeric_from_long(signed long int long_val, numeric *var);
int PGTYPESnumeric_copy(numeric *, numeric *); int PGTYPESnumeric_copy(numeric *src, numeric *dst);
int PGTYPESnumeric_from_double(double, numeric *); int PGTYPESnumeric_from_double(double d, numeric *dst);
int PGTYPESnumeric_to_double(numeric *, double *); int PGTYPESnumeric_to_double(numeric *nv, double *dp);
int PGTYPESnumeric_to_int(numeric *, int *); int PGTYPESnumeric_to_int(numeric *nv, int *ip);
int PGTYPESnumeric_to_long(numeric *, long *); int PGTYPESnumeric_to_long(numeric *nv, long *lp);
int PGTYPESnumeric_to_decimal(numeric *, decimal *); int PGTYPESnumeric_to_decimal(numeric *src, decimal *dst);
int PGTYPESnumeric_from_decimal(decimal *, numeric *); int PGTYPESnumeric_from_decimal(decimal *src, numeric *dst);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -92,24 +92,24 @@ extern "C"
numeric *PGTYPESnumeric_new(void); numeric *PGTYPESnumeric_new(void);
decimal *PGTYPESdecimal_new(void); decimal *PGTYPESdecimal_new(void);
void PGTYPESnumeric_free(numeric *); void PGTYPESnumeric_free(numeric *var);
void PGTYPESdecimal_free(decimal *); void PGTYPESdecimal_free(decimal *var);
numeric *PGTYPESnumeric_from_asc(char *, char **); numeric *PGTYPESnumeric_from_asc(char *str, char **endptr);
char *PGTYPESnumeric_to_asc(numeric *, int); char *PGTYPESnumeric_to_asc(numeric *num, int dscale);
int PGTYPESnumeric_add(numeric *, numeric *, numeric *); int PGTYPESnumeric_add(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_sub(numeric *, numeric *, numeric *); int PGTYPESnumeric_sub(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_mul(numeric *, numeric *, numeric *); int PGTYPESnumeric_mul(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_div(numeric *, numeric *, numeric *); int PGTYPESnumeric_div(numeric *var1, numeric *var2, numeric *result);
int PGTYPESnumeric_cmp(numeric *, numeric *); int PGTYPESnumeric_cmp(numeric *var1, numeric *var2);
int PGTYPESnumeric_from_int(signed int, numeric *); int PGTYPESnumeric_from_int(signed int int_val, numeric *var);
int PGTYPESnumeric_from_long(signed long int, numeric *); int PGTYPESnumeric_from_long(signed long int long_val, numeric *var);
int PGTYPESnumeric_copy(numeric *, numeric *); int PGTYPESnumeric_copy(numeric *src, numeric *dst);
int PGTYPESnumeric_from_double(double, numeric *); int PGTYPESnumeric_from_double(double d, numeric *dst);
int PGTYPESnumeric_to_double(numeric *, double *); int PGTYPESnumeric_to_double(numeric *nv, double *dp);
int PGTYPESnumeric_to_int(numeric *, int *); int PGTYPESnumeric_to_int(numeric *nv, int *ip);
int PGTYPESnumeric_to_long(numeric *, long *); int PGTYPESnumeric_to_long(numeric *nv, long *lp);
int PGTYPESnumeric_to_decimal(numeric *, decimal *); int PGTYPESnumeric_to_decimal(numeric *src, decimal *dst);
int PGTYPESnumeric_from_decimal(decimal *, numeric *); int PGTYPESnumeric_from_decimal(decimal *src, numeric *dst);
#ifdef __cplusplus #ifdef __cplusplus
} }