diff --git a/WEGA/contrib/ingres/dbs/src/amx_lib/AAerror.c b/WEGA/contrib/ingres/dbs/src/amx_lib/AAerror.c new file mode 100644 index 0000000..3f2b77e --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/amx_lib/AAerror.c @@ -0,0 +1,78 @@ +# include "AA_liba.h" + +static char *AAERR[] = +{ + "OPEN", /* 0 */ + "CLOSE", /* 1 */ + "APPEND", /* 2 */ + "DELETE", /* 3 */ + "DELETE.AAgetequal", /* 4 */ + "REPLACE", /* 5 */ + "REPLACE.AAgetequal", /* 6 */ + "REPLACE.delete", /* 7 */ + "FIND.isam", /* 8 */ + "FIND.lisam", /* 9 */ + "FIND.hisam", /* 10 */ + "GET.getup", /* 11 */ + "GET.getid", /* 12 */ + "SETKEY.dom", /* 13 */ + "SETKEY.cond", /* 14 */ + "request", /* 15 */ + "release", /* 16 */ + "lock", /* 17 */ + "unlock", /* 18 */ + "get: not locked", /* 19 */ + "append: not locked", /* 20 */ + "delete: not locked", /* 21 */ + "replace: not locked", /* 22 */ + "release: not locked", /* 23 */ + "refresh", /* 24 */ + "GET.get", /* 25 */ +}; + +static char *AAERR100[] = +{ + "not available", /* 100 */ + "already open", /* 101 */ + "not enough memory", /* 102 */ + "has integrities", /* 103 */ + "has protections", /* 104 */ + "view", /* 105 */ + "not open", /* 106 */ + "concurrency confusion", /* 107 */ + "relation outside in use", /* 108 */ + "TA", /* 109 */ + "permission denied", /* 110 */ + "database lost", /* 111 */ +}; + +AAerror(err, msg) +register int err; +register char *msg; +{ + extern int errno; + extern int AAccerror; + + printf("\n\007AMXERR:\t* * * * * * *\t%d\n", err); + printf("\tBS\tpid\t%d\n", getpid()); + if (errno) + printf("\tBS\terror\t%d\n", errno); + if (AAccerror) + printf("\tACCESS\terror\t%d\n", AAccerror); + + if (err < 100) + { + printf("\tAMX-RC\t\t%d\n", AA); +# ifdef MSDOS + printf("bad %s: relation `%.10s'\n", +# else + printf("bad %s: relation `%.14s'\n", +# endif + AAERR[err], msg); + } + else + printf("`%s': %s\n", msg, AAERR100[err -100]); + + fflush(stdout); + exit(1); +} diff --git a/WEGA/contrib/ingres/dbs/src/amx_lib/AAreq.c b/WEGA/contrib/ingres/dbs/src/amx_lib/AAreq.c new file mode 100644 index 0000000..e40abdf --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/amx_lib/AAreq.c @@ -0,0 +1,101 @@ +# include "AA_liba.h" + + +AArequest(d, rel) +register DESCXX *d; +register char *rel; +{ +# ifdef AMX_TRACE + AAtTfp(11, 0, +# ifdef MSDOS + "retrieve\t`%.10s'\n", +# else + "retrieve\t`%.14s'\n", +# endif + rel); +# endif + + errno = 0; + if (!d) + AAerror(106, rel); + + if (AA_NOLOCKS) + return; + + do AAmark(d); while (d = d->xx_index); +} + + +static AAmark(d) +register DESCXX *d; +{ +# ifdef AMX_TRACE + AAtTfp(29, 0, +# ifdef MSDOS + "lock\t\t`%.10s' (%d) mod 0%o\n", +# else + "lock\t\t`%.14s' (%d) mod 0%o\n", +# endif + d->xx_desc.reldum.relid, d->xx_locks, M_SHARE); +# endif + + if (d->xx_locks++) + return; + + AA = 0; + if (AA_TA || AAsetrll(A_SLP, d->xx_desc.reltid, AA = M_SHARE) < 0) + AAerror(15, d->xx_desc.reldum.relid); + AA_LOCKS++; + d->xx_refresh = 0; + d->xx_excl = M_SHARE; +} + + +AArelease(d) +register DESCXX *d; +{ +# ifdef AMX_TRACE + AAtTfp(12, 0, +# ifdef MSDOS + "end retrieve\t`%.10s'\n", +# else + "end retrieve\t`%.14s'\n", +# endif + d->xx_desc.reldum.relid); +# endif + + if (AA_NOLOCKS) + return; + + do AAfree(d); while (d = d->xx_index); +} + + +static AAfree(d) +register DESCXX *d; +{ +# ifdef AMX_TRACE + AAtTfp(30, 0, +# ifdef MSDOS + "unlock\t\t`%.10s' (%d)\n", +# else + "unlock\t\t`%.14s' (%d)\n", +# endif + d->xx_desc.reldum.relid, d->xx_locks); +# endif + + if (d->xx_locks <= 0) + AAerror(23, d->xx_desc.reldum.relid); + + if (--d->xx_locks) + return; + + AAnoclose(d); + AA = 0; + if (AA_TA || (AA = AAunlrl(d->xx_desc.reltid)) < 0) + AAerror(16, d->xx_desc.reldum.relid); + + d->xx_refresh = 0; + d->xx_excl = 0; + --AA_LOCKS; +}