diff --git a/WEGA/contrib/ingres/dbs/src/TQL/ingdb.txt b/WEGA/contrib/ingres/dbs/src/TQL/ingdb.txt new file mode 100644 index 0000000..1c29a59 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/ingdb.txt @@ -0,0 +1,196 @@ +/*********************** +** IIOPEN() +***********************/ + +struct ro_dateibereich *iiopen(filename, modus, rc) +{ +char *filename; /* PHYSISCHER DATEINAME */ +char modus; /* 'R' => NUR LESEN */ + /* 'U' => LESEN UND SCHREIBEN */ + /* 'L' => -=- -=- MIT LOGFUEHRUNG */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - DIE DATENBANKDATEI IST IM ANGEGEBN.MODUS ZU EROEFFNEN UND EIN + POINTER ZURUECKZUGEBEN, DER AUF EINEN DATEIBEREICH ZEIGT. + - DER DATEIBEREICH IST VON iiopen() ZU FUELLEN. + - FOLGENDE STRUKTURELEMENTE SIND EINZUTRAGEN + + int lendateibereich; /* LAENGE DES BEREICHES */ + long anzzeilen; /* Anzahl der zugewiesenen Zeilen */ + long index; /* := 0 */ + long indexalt; /* := -2 */ + char modus; /* Modus der Eroeffnung R, U, L */ + char filespec[RO_MAXFILSPEC]; /* phys. Name der TD */ + int anzspalten; /* Anzahl der Spalten der TD */ + struct ro_spalte *spalten; /* -> Liste aller Spalten der TD */ + int lenfilepuffer; /* LAENGE DES PUFFERS FUER EINEN VOLLST. SATZ */ + char *filepuffer; /* POINTER AUF DEN FILEPUFFER (MALLOC()) */ + int anfdaten; /* Byteoffset zum ersten Datensatz */ + struct spalte *markspalte; /* Datensaetze zum Loeschen markiert */ + int eof_flag; /* := 0 */ + + - SPALTEN ZEIGT AUF EINEN BEREICH, DER NACHEINANDER DIE STRUKTUREN + RO_SPALTE FUER ALLE SPALTEN ENTHAELT. + FOLGENDE STRUKTURELEMENTE SIND EINZUTRAGEN + + char name[9]; /* Spaltenname mit Blanks gefuellt */ + struct ro_ded ded; /* Beschreibung der Spalte */ + struct ro_ded charded; /* Beschreibung der Spalte in Zeichenkettenform*/ + + - FOLGENDE SPALTEN MUESSEN ENTHALTEN SEIN: + TQLRECNO: SATZNUMMER (PRIMAERINDEX) LONG + TQLMARK: LOESCHMARKIERUNG CHAR '*': ZUM LOESCHEN MARKIERT + ALLES ANDERE: NICHT MARKIERT + +/*********************** +** IICLOSE() +***********************/ + +int iiclose(dateibereich, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - ABSCHLIESSEN DER DATENBANKDATEI BEZUEGLICH ZUGRIFFSPROZESSOR + - DER DATEIBEREICH UND ALLE WEITEREN BEREICHE WERDEN VON TQL FREI- + GEGEBEN + + +/*********************** +** IINEXT() +***********************/ + +int iinext(dateibereich, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - ES IST DER NAECHSTE SATZ IN DEN FILEPUFFER ZU UEBERTRAGEN. + - WURDE KEIN INDEX EINGESTELLT (MIT IISETI), IST DER NAECHSTE + SATZ ENTSPRECHEND PRIMAERINDEX ZU UEBERTRAGEN - SONST ENTSPR. + DEM EINGESTELLTEN INDEX + - IN DATEIBEREICH SIND EINZUTRAGEN: + INDEX := SATZNUMMER + EOF_FLAG := 1 WENN ENDE ERREICHT + INDEX := 1 WENN ENDE ERREICHT + - TQLMARK WIRD NICHT AUSGEWERTET => INNERHALB VON TQL + +/*********************** +** IISETI() +***********************/ + +int iiseti(dateibereich, indexname, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +char *indexname; /* NULL ODER NAME DES EINZUSTELLENEN INDEXES */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - ES IST DER IN INDEXNAME ANGEGEBENE INDEX EINZUSTELLEN BZW. ZU VER- + MERKEN + - IST INDEXNAME GLEICH NULL, IST KEIN INDEX EINZUSTELLEN + - DIESER INDEX WIRD IN DEN FUNKTIONEN IINEXT() UND IIFIND() GENUTZT + - ALLE ANDEREN INDIZES WERDEN VON TQL NICHT BETRACHTES, ABER VOM + ZUGRIFFSPROZESSOR GEPFLEGT + +/*********************** +** IIFIND() +***********************/ + +int iifind(dateibereich, suchwert, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +char *suchwert; /* AUFZUFINDENER SATZ */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - ES IST DER SATZ ZU SUCHEN BZW. ZU POSITIONIEREN, DER DEM SUCHWERT + IM EINGESTELLTEN INDEX (MIT IISETI) ENTSPRICHT + - DER SATZ IST IN DEN FILEPUFFER ZU UEBERTRAGEN, FALLS GEFUNDEN + - IN DATEIBEREICH SIND EINZUTRAGEN: + INDEX := SATZNUMMER + EOF_FLAG := 1 WENN ENDE ERREICHT + INDEX := 1 WENN ENDE ERREICHT + - TQLMARK WIRD NICHT AUSGEWERTET => INNERHALB VON TQL + +/*********************** +** IIGOTO() +***********************/ + +int iigoto(dateibereich, satznummer, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +long satznummer; /* EINZUSTELLENDER SATZ */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - ES IST DER SATZ ENTSPR. PRIMAERINDEX EINZUSTELLEN , DASS BEIM + NAECHSTEN IINEXT() DER SATZ MIT DER ANGEGEB. SATZNUMMER GELESEN WIRD + (SOLLTE SO ARBEITEN, WIE LSEEK() ) + - WENN SATZNUMMER -1 IST, SOLL BEGIN OF FILE EINGESTELLT WERDEN, D.H. + - WENN KEIN INDEX AKTIV IST (MIT IISETI): SATZ 0 ENTSPR.PRIMAERINDEX + EINSTELLEN + - WENN INDEX AKTIV IST (MIT IISETI) : ERTSTEN SATZ ENTSPR. + INDEX EINSTELLEN + +/*********************** +** IIWRITE() +***********************/ + +int iiwrite(dateibereich, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - DER FILEPUFFER WIRD AUF DEN ZULETZT GELESENEN SATZ GESCHRIEBEN + - ALLE INDIZES SIND ZU AKTUALISIEREN + +/*********************** +** IIAPPEND() +***********************/ + +int iiappend(dateibereich, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - HINZUFUEGEN EINES SATZES, DESSEN SATZNUMMER IN INDEX STEHT. + - IM FILEPUFFER STEHT DER SCHREIBENE SATZ + - ALLE INDIZES SIND ZU AKTUALISIEREN + +/*********************** +** IIDELETE() +***********************/ + +int iidelete(dateibereich, rc) +{ +struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */ +int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */ + +RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H + +AKTIONEN: + - LOESCHEN EINES SATZES, DESSEN SATZNUMMER IN INDEX STEHT + - IM PRIMAERINDEX IST DIE SATZNUMMER ZU ENTFERNEN + - ALLE INDIZES SIND ZU AKTUALISIEREN diff --git a/WEGA/contrib/ingres/dbs/src/TQL/memory.h b/WEGA/contrib/ingres/dbs/src/TQL/memory.h new file mode 100644 index 0000000..bbf14f2 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/memory.h @@ -0,0 +1,16 @@ +#define RM_MEMLEN sizeof(struct rm_memtab) +#define RM_HMEMTAB sizeof(struct rm_tabhead) + +struct rm_memtab +{ + char mname[10]; + int moff; + short mlen; +}; + +struct rm_tabhead +{ + char *zmemory; + int lenmemory; + int manz; +}; diff --git a/WEGA/contrib/ingres/dbs/src/TQL/qdef.h b/WEGA/contrib/ingres/dbs/src/TQL/qdef.h new file mode 100644 index 0000000..58f232d --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/qdef.h @@ -0,0 +1,326 @@ +/* IDENT: 100359 - qdef */ +/* Design: van Treek */ + +# ifndef TQLSYS +# include "TQLSYS.H" /* Systemdefinitionen */ +# endif + +/* +** Definition der Symbole fuer ausgelassene Funktionsargumente +*/ + +# ifndef G_NILA +# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */ +# endif + +# ifndef G_NILI +# define G_NILI (-1) /* ausgelassener INT-Parameter */ +# endif + +# ifndef G_NILL +# define G_NILL (-1l) /* ausgelassener LONG-Parameter */ +# endif + +# ifndef G_NILC +# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */ +# endif +# ifndef G_NILF +# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */ +# endif +/* +** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes +*/ + +# ifndef gdebug + +# define gdebug(x,y) /* DEBUG ausschalten */ \ +{ \ +char *parm1, *parm2; \ + parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \ + parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \ +} + +# endif + +/**************************************************************************** +* +* Symbole der Kommandoschluesselwoerter, die in der ersten Position +* der Kommandozeile auftreten koennen. +* +****************************************************************************/ + +# define QT_ACC 0 +# define QT_APP QT_ACC + 1 +# define QT_AVE QT_APP + 1 +# define QT_BRO QT_AVE + 1 +# define QT_CAN QT_BRO + 1 +# define QT_CAS QT_CAN + 1 +# define QT_CHA QT_CAS + 1 +# define QT_CLE QT_CHA + 1 +# define QT_CLO QT_CLE + 1 +# define QT_COT QT_CLO + 1 +# define QT_COP 10 +# define QT_COU QT_COP + 1 +# define QT_CRE QT_COU + 1 +# define QT_DBG QT_CRE + 1 +# define QT_DEL QT_DBG + 1 +# define QT_DIR QT_DEL + 1 +# define QT_DIS QT_DIR + 1 +# define QT_DO QT_DIS + 1 +# define QT_EDI QT_DO + 1 +# define QT_EJE QT_EDI + 1 +# define QT_ELS 20 +# define QT_ENC QT_ELS + 1 +# define QT_ENI QT_ENC + 1 +# define QT_END QT_ENI + 1 +# define QT_ENT QT_END + 1 +# define QT_ERA QT_ENT + 1 +# define QT_EXI QT_ERA + 1 +# define QT_FIN QT_EXI + 1 +# define QT_GO QT_FIN + 1 +# define QT_GRA QT_GO + 1 /* GRAPHIC */ +# define QT_IF QT_GRA + 1 +# define QT_IND 31 +# define QT_INP QT_IND + 1 +# define QT_INS QT_INP + 1 +# define QT_JOI QT_INS + 1 +# define QT_LAB QT_JOI + 1 +# define QT_LIS QT_LAB + 1 +# define QT_LOC QT_LIS + 1 +# define QT_LOO QT_LOC + 1 +# define QT_MOD QT_LOO + 1 +# define QT_NOT QT_MOD + 1 +# define QT_OTH 41 +# define QT_PAC QT_OTH + 1 +# define QT_PAR QT_PAC + 1 +# define QT_PRI QT_PAR + 1 +# define QT_PUB QT_PRI + 1 +# define QT_QUI QT_PUB + 1 +# define QT_REA QT_QUI + 1 +# define QT_REC QT_REA + 1 +# define QT_REI QT_REC + 1 +# define QT_REL QT_REI + 1 +# define QT_REN 51 +# define QT_RPL QT_REN + 1 +# define QT_REP QT_RPL + 1 +# define QT_RST QT_REP + 1 +# define QT_RTU QT_RST + 1 +# define QT_RUN QT_RTU + 1 +# define QT_SAV QT_RUN + 1 +# define QT_SCA QT_SAV + 1 +# define QT_SEE QT_SCA + 1 /* SEEK */ +# define QT_SEL QT_SEE + 1 +# define QT_SET QT_SEL + 1 +# define QT_SKI 62 +# define QT_SOR QT_SKI + 1 +# define QT_STO QT_SOR + 1 +# define QT_SUM QT_STO + 1 +# define QT_TEX QT_SUM + 1 +# define QT_TOT QT_TEX + 1 +# define QT_TYP QT_TOT + 1 +# define QT_UPD QT_TYP + 1 +# define QT_USE QT_UPD + 1 +# define QT_WAI QT_USE + 1 +# define QT_ZAP 72 +# define QT_FRA QT_ZAP + 1 +# define QT_POS QT_FRA + 1 +# define QT_PRO QT_POS + 1 +# define QT_HEL QT_POS + 1 +# define QT_ASS QT_HEL + 1 +# define QT_EOF QT_ASS + 1 +# define QT_PLO QT_EOF + 1 + +/**************************************************************************** +* +* Symbole der Parameter-Schluesselworte +* +****************************************************************************/ + + +# define QP_ADD 0501 +# define QP_ALL 0502 +# define QP_ALT 0503 +# define QP_BEL 0504 +# define QP_BEF 0505 +# define QP_BLA 0506 +# define QP_BOT 0507 +# define QP_CAL 0510 +# define QP_CAR 0511 +# define QP_CAS 0512 +# define QP_COL 0513 +# define QP_CON 0514 +# define QP_COS 0515 +# define QP_DEB 0516 +# define QP_DEF 0517 +# define QP_DES 0520 +# define QP_DLM 0521 +# define QP_ECH 0522 +# define QP_ERA 0523 +# define QP_ESC 0524 +# define QP_EXA 0525 +# define QP_FIE 0526 +# define QP_FOM 0527 +# define QP_FOR 0530 +# define QP_FRO 0531 +# define QP_GET 0532 +# define QP_HEA 0533 +# define QP_IND 0534 +# define QP_INE 0535 +# define QP_LIK 0536 +# define QP_LIN 0537 +# define QP_MAR 0540 +# define QP_MEM 0541 +# define QP_NBU 0542 +# define QP_NEX 0543 +# define QP_NOT 0544 +# define QP_OFF 0545 +# define QP_ON 0546 +# define QP_PRI 0547 +# define QP_PRN 0550 +# define QP_RAW 0551 +# define QP_REA 0552 +# define QP_REO 0553 +# define QP_RNA 0554 +# define QP_REP 0555 +# define QP_RPO 0556 +# define QP_RSE 0557 +# define QP_SCR 0560 +# define QP_SDF 0561 +# define QP_SEO 0562 +# define QP_SEG 0563 +# define QP_STE 0564 +# define QP_STU 0565 +# define QP_SUM 0566 +# define QP_TAL 0567 +# define QP_TUT 0570 +# define QP_TOP 0571 +# define QP_TO 0572 +# define QP_VOL 0573 +# define QP_WHI 0574 +# define QP_WIT 0575 +# define QP_MDM 0576 +# define QP_EXT 0577 +# define QP_KEY 0600 +# define QP_CMN 0601 +# define QP_MST 0602 +# define QP_MPO 0603 +# define QP_DTE 0604 +# define QP_KYU 0605 +# define QP_MDP 0606 +# define QP_MME 0607 +# define QP_PRO 0610 +# define QP_ALI 0611 +# define QP_CLE 0612 +# define QP_COR 0613 +# define QP_COM 0614 +# define QP_DTB 0615 +# define QP_DEC 0616 +# define QP_DEL 0617 +# define QP_DLR 0620 +# define QP_DEV 0621 +# define QP_EXC 0622 +# define QP_FIL 0623 +# define QP_FLT 0624 +# define QP_FIX 0625 +# define QP_FRM 0626 +# define QP_FUN 0627 +# define QP_GTS 0630 +# define QP_HEL 0631 +# define QP_INT 0632 +# define QP_LAB 0633 +# define QP_MAS 0634 +# define QP_MDS 0635 +# define QP_MEN 0636 +# define QP_NOE 0637 +# define QP_PAT 0640 +# define QP_PIC 0641 +# define QP_PLA 0642 +# define QP_RAD 0643 +# define QP_RAG 0644 +# define QP_REL 0645 +# define QP_RPL 0646 +# define QP_SAF 0647 +# define QP_SAM 0650 +# define QP_SVE 0651 +# define QP_SAY 0652 +# define QP_STA 0653 +# define QP_UNI 0654 +# define QP_GRA 0655 + +/******************************************************** +* +* FEHLER-DEFINITIONEN +* +********************************************************/ + +# define QA_NOKDO 1 +# define QA_SYNTAX 2 +# define QA_NOTFOUND 3 +# define QA_EXPRESSION 4 +# define QA_KDOFILE 5 +# define QA_OVERWHILE 6 +# define QA_OVERIF 7 +# define QA_OVERDOCASE 8 +# define QA_NOSPACE 9 +# define QA_NOTVARIALBLE 10 +# define QA_NOTPRG 11 +# define QA_NOTREC 12 +# define QA_NOTALIAS 13 +# define QA_NOTIMP 14 +# define QA_PRGERROR 15 +# define QA_NOTHELP 16 +# define QA_BEREICH 17 +# define QA_NOTOPEN 18 +# define QA_INTERUPT 19 + +/* +** Sonstige Definitionen +*/ + +# define QS_NONAME '\176' /* keine Namenspruefung bei LEX */ + + +/* Zeichenkettenzeichen */ + +# define QZ_ZKCH1 '\'' +# define QZ_ZKCH2 '"' +# define QZ_ZKCH3 '[' + + +# define QA_KLAA 06101 +# define QA_KLAZ 06102 +# define QA_KENDE 06106 +# define QA_KOMMA 0200 + +# define QA_SONSTNAME 01003 + +# define QA_KONSTANTE 02000 +# define QA_ZKONST 02010 +# define QA_NKONST 02020 +# define QA_LKONST 02030 + +# define QA_TRUE 02031 +# define QA_FALSE 02032 + +# define QA_FUNKTION 03000 +# define QA_OPERATOR 04000 +# define QA_PRIORITAET 070 + +# define QA_NICHT 04061 +# define QA_EINMINUS 04062 /* einseitiges Minus */ + +# define QA_MUL 04051 +# define QA_DIV 04052 +# define QA_PLUS 04041 +# define QA_MINUS 04042 + +# define QA_GLEICH 04031 +# define QA_UNGLEICH 04032 +# define QA_GROESSER 04033 +# define QA_KLEINER 04034 +# define QA_GRGLEICH 04035 +# define QA_KLGLEICH 04036 + +# define QA_UND 04021 +# define QA_ODER 04011 + diff --git a/WEGA/contrib/ingres/dbs/src/TQL/qrmdef.h b/WEGA/contrib/ingres/dbs/src/TQL/qrmdef.h new file mode 100644 index 0000000..b5c7624 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/qrmdef.h @@ -0,0 +1,56 @@ + +/*------------------------------------------------------------------*/ +/* M A K R O D E F I N I T I O N E N fuer Generierung T Q L */ +/*------------------------------------------------------------------*/ +/* 1= in Benutzung + 0= nicht in Benutzung */ +#ifdef psu +#define TOP /* TQL/ESER nur fuer TOPAS */ +#endif + +#ifndef TOP + +#define GEN_TOP 1 +#define GEN_SFI 1 +#define GEN_FIX 1 +#define GEN_INT 0 + +#else + +#define GEN_TOP 1 /* Generierung nur TOPAS */ +#define GEN_SFI 0 +#define GEN_FIX 0 +#define GEN_INT 0 + +#endif + +/*------------------------------------------------------------------*/ +#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1 +#define GENIF(X) \ + if(X) +#else +#define GENIF(X) +#endif +/*------------------------------------------------------------------*/ +#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1 +#define GENSWITCH(X) \ + switch(X) +#else +#define GENSWITCH(X) +#endif +/*------------------------------------------------------------------*/ +#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1 +#define GENCASE(X) \ + case (X): +#else +#define GENCASE(X) +#endif +/*------------------------------------------------------------------*/ +#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1 +#define GENBREAK \ + break; +#else +#define GENBREAK +#endif +/*------------------------------------------------------------------*/ + diff --git a/WEGA/contrib/ingres/dbs/src/TQL/qstrd.h b/WEGA/contrib/ingres/dbs/src/TQL/qstrd.h new file mode 100644 index 0000000..61506ea --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/qstrd.h @@ -0,0 +1,252 @@ +/* IDENT: 102159 - qstrd */ +/* Design: van Treek */ + +/* +** Definition der Symbole fuer ausgelassene Funktionsargumente +*/ + +# ifndef G_NILA +# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */ +# endif + +# ifndef G_NILI +# define G_NILI (-1) /* ausgelassener INT-Parameter */ +# endif + +# ifndef G_NILL +# define G_NILL (-1l) /* ausgelassener LONG-Parameter */ +# endif + +# ifndef G_NILC +# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */ +# endif + +# ifndef G_NILF +# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */ +# endif + +/* +** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes +*/ + +# ifndef gdebug + +# define gdebug(x,y) /* DEBUG ausschalten */ \ +{ \ +char *parm1, *parm2; \ + parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \ + parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \ +} + +# endif + +/**************************************************************************** +* +* Definition der Makros zur Arbeit mit Interface +* +****************************************************************************/ + +# ifdef SPSU +# define fopen(a,b) \ + gu_fopen_eser(a,b) +# endif + +/**************************************************************************** +* +* Definition der Maximalen Feldgroessen bzw. Stackgroessen +* +****************************************************************************/ + +# ifndef NULL +# include /* nur einziehen wenn nicht gleichzeitig rostrd.h */ +# endif + +/*********************** 32 BIT VARIANTE ANFANG ***************************/ + +# ifdef SSVP + +# ifndef QC_MAXPGR +# define QC_MAXPGR 32 /* geschacht. Programmdatein */ +# endif + +/* HORN 13.1.89 Diese Definition wird auch in rostrd.h gebraucht, da sie + in einer Strukturdefinition verwendet wird. */ + +# define QC_MAXLOOP 32 /* geschacht. DO WHILE-Schleifen */ +# define QC_MAXIF 32 /* geschacht. IF-Anweisungen */ +# define QC_MAXCASE 32 /* geschacht. DO CASE-Anweisungen */ +# define QC_MAXFILSPEC 100 /* max.Laenge einer File-Angabe */ +# define QC_MAXBEREICH 256 /* Eingabepufferlaenge */ +# define QC_MAXPROC 101 /* max.Anzahl an Prozeduren */ +# define QC_MAXDO 33 /* max.Anzahl an Do-Dateien */ +# define QC_MAXPARAMETER 17 /* max.Anzahl an DO-Parametern */ + +# else + +/*********************** 16 BIT VARIANTE ANFANG ***************************/ + + +# ifndef QC_MAXPGR +# define QC_MAXPGR 5 /* geschacht. Programmdatein */ +# endif + +/* HORN 13.1.89 Diese Definition wird auch in rostrd.h gebraucht, da sie + in einer Strukturdefinition verwendet wird. */ + +# define QC_MAXLOOP 5 /* geschacht. DO WHILE-Schleifen */ +# define QC_MAXIF 5 /* geschacht. IF-Anweisungen */ +# define QC_MAXCASE 5 /* geschacht. DO CASE-Anweisungen */ +# define QC_MAXFILSPEC 40 /* max.Laenge einer File-Angabe */ +# define QC_MAXBEREICH 256 /* Eingabepufferlaenge */ +# define QC_MAXPROC 10 /* max.Anzahl an Prozeduren */ +# define QC_MAXDO 5 /* max.Anzahl an Do-Dateien */ +# define QC_MAXPARAMETER 5 /* max.Anzahl an DO-Parametern */ + +# endif + +/**************************************************************************** +* +* Stackdefinitionen: Programmstack und Schleifenstack. +* Jedes Programm (DO NAME) hat MAXLOOP moegliche Schleifen. +* Es gibt MAXPGR Programmstacks. +* +****************************************************************************/ + +struct doparm +{ + int do_flag; /* Kenner: 0->keine Variable 1->Var.*/ + char do_variable[40]; /* Variablen-Name */ +}; + +struct loopstack /* Schleifenstack */ +{ + int lcount; /* Stacktiefe */ + char *position[QC_MAXLOOP]; /* Satzposition */ + int aktifcount[QC_MAXLOOP]; /* If-Tiefe */ + int aktcasecount[QC_MAXLOOP]; /* Case-Tiefe */ +}; + +struct pgrstack /* Programmstack */ +{ + char pgrname[QC_MAXFILSPEC]; /* Programm-Name */ + struct loopstack *loop; /* Schleifenstack-Pointer */ + char *last; /* letzte Satzposition im Programm */ + struct doparm withparm[QC_MAXPARAMETER]; /* WITH */ + struct doparm paraparm[QC_MAXPARAMETER]; /* PARAMETERS */ +}; + +struct descr +{ + int len; /* Laenge der Zeichenkette */ + char *string; /* -> Zeichenkette */ +}; + +/**************************************************************************** +* +* Struktur des Parameterblocks, der an das RO-Interface uebergeben +* wird +* +****************************************************************************/ + + +struct qi_parameter +{ + long bereich; /* ALL | NEXT */ + char select; /* 'P' | 'S' */ + int q_opsave; /* FUER CONTINUE */ + int fl_all; /* ALL-Flag */ + int fl_record; /* RECORD-Flag */ + int fl_next; /* NEXT-Flag */ + int fl_parameter; /* Parameter-Flag 0->ohne Parameter */ + char *forp; /* Bedingung */ + char *to; /* Speicher-Name */ + char *file; /* TOPAS-Datei */ + char *input; /* Eigabedatei */ + char *outfile; /* Ausgabedatei */ + char *field; /* Spaltenliste */ + char *on; /* Spaltenname */ + char *mdm; /* Entity-Name */ + char *from; /* Append-From */ + char *delimit; /* Begrenzungszeichen */ + char *skey; /* Schluesselbaumname */ + char *pkey; + char *find; /* Zeichenkette */ + char *aus1; /* Ausdruck 1 */ + char *aus2; /* Ausdruck 2 */ + char *add; /* Spaltenliste */ + char *rep; /* -=- */ + + int sdf; /* SDF */ + int blank; /* BLANK */ + int extended; /* EXTENDED */ + int mdmfl; /* MDM */ + int structure; /* STRUCTURE */ + int off; /* OFF*/ + int rotop; /* TOP */ + int memory; /* MEMORY */ + int qindex; /* INDEX */ + int record; /* RECORD */ + int setfkt; + char *form; /* FORM */ + int report; /* REPORT */ + char *qheading; /* HEADING */ + char *with; /* WITH bei JOIN */ + int whileflag; /* WHILE spezif. */ + int read; /* READFLAG F. USE */ + char q_findsave[79]; /* FELD F.FIND UND LOCATE: CONTINUE */ + char qi_frei[1]; /* Reserve */ + +}; + +/**************************************************************************** +* +* Struktur des TQL-Steuerblocks q_tql +* +****************************************************************************/ + +struct q_tql +{ + struct ro_zvt zvt; /* zentrale Verarb.-Tabelle */ + int q_terminal; /* Terminalflag: 1 = TT: */ + int q_error; /* Fehlerwort: 0 = okay */ + int q_stopflag; /* Stopwort: 1 = Abbruch */ + int q_topkdo; /* Kommando-Code */ + FILE *q_kdofile; /* Kommando-Eingabefile */ + char *q_actsatz; /* aktueller Eingabesatz */ + char *q_kdoptr; /* Kdo-Pointer */ + char *q_kdosave; /* =-= */ + int q_rorc; /* RO-Rerurn-Code */ + struct pgrstack q_pgrstack[QC_MAXPGR]; /* Programm-Stack */ + struct loopstack q_loopstack[QC_MAXPGR];/* Schleifen-Stack */ + int q_ifstack[QC_MAXIF]; /* IF-Stack */ + int q_ifcount; /* IF-Zaehler */ + int q_casestack[QC_MAXCASE]; /* CASE-Stack */ + int q_casecount; /* CASE-Zaehler */ + struct qi_parameter qi_roparm; /* Parameterblock Interface */ + char q_parmbereich[QC_MAXBEREICH]; /* Parameterbereich */ + char *q_proctab; /* Prozedur-Tabelle */ + char *q_dotab; /* kdo-Datei-Tabelle */ + char *q_procspace; /* Speicher f.Procedure-Datei */ + char *q_aliastab; /* Aliasnamen-Tabelle */ + int q_assist; /* 0:aus 1:ein */ + char *q_lastparm; /* Letzter gelexter Parameter */ + int q_fullscr; /* 0:aus 1:ein */ + int q_stmflag; /* Debugger:TQL-Kdo -Flag */ + int q_frei[7]; /* Reserve */ +}; + +/***************************************************************** +* +* Struktur des Prozedurstacks +* +* Der Stack beinhaltet die Namen und die Adressen der sich im HS +* befindlichen Prozeduren. +* +*****************************************************************/ + +struct qc_proctab +{ + char procname[QC_MAXFILSPEC]; /* Prozedurname */ + char *procptr; /* Prozeduradresse */ +}; + \ No newline at end of file diff --git a/WEGA/contrib/ingres/dbs/src/TQL/rodef.h b/WEGA/contrib/ingres/dbs/src/TQL/rodef.h new file mode 100644 index 0000000..b21f0bf --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/rodef.h @@ -0,0 +1,245 @@ +/* IDENT: 100359 - RODEF.H */ + +# ifndef TQLSYS +# include "TQLSYS.H" /* Systemdefinitionen */ +# endif +/* +** Definition der Symbole fuer ausgelassene Funktionsargumente +*/ + +# ifndef G_NILA +# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */ +# endif + +# ifndef G_NILI +# define G_NILI (-1) /* ausgelassener INT-Parameter */ +# endif + +# ifndef G_NILL +# define G_NILL (-1l) /* ausgelassener LONG-Parameter */ +# endif + +# ifndef G_NILC +# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */ +# endif +# ifndef G_NILF +# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */ +# endif +/* +** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes +*/ + +# ifndef gdebug + +# define gdebug(x,y) /* DEBUG ausschalten */ \ +{ \ +char *parm1, *parm2; \ + parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \ + parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \ +} + +# endif + + + +/**************************************************************************** +* +* Definitionen zur Arbeit mit Relationalen Operatoren +* +****************************************************************************/ + + +# define RA_MAXINT 07777777777 /* groesste positive Zahl */ + +/* Definition der Funktionswerte der SET - Funktion */ + +# define RF_ALTE 0503 /* QP_ALT */ +# define RF_BELL 0504 /* QP_BEL */ +# define RF_CARR 0511 /* QP_CAR */ +# define RF_COLO 0613 /* QP_COR */ +# define RF_CONF 0514 /* QP_CON */ +# define RF_CONS 0515 /* QP_COS */ +# define RF_DEBU 0516 /* QP_DEB */ +# define RF_DECI 0616 /* QP_DEC */ +# define RF_DEFA 0517 /* QP_DEF */ +# define RF_DELE 0617 /* QP_DEL */ +# define RF_DELI 0620 /* QP_DLR */ +# define RF_DEVI 0621 /* QP_DEV */ +# define RF_ECHO 0522 /* QP_ECH */ +# define RF_ESCA 0524 /* QP_ESC */ +# define RF_EXAC 0525 /* QP_EXA */ +# define RF_FILT 0624 /* QP_FLT */ +# define RF_FIXE 0625 /* QP_FIX */ +# define RF_FORM 0527 /* QP_FOM */ +# define RF_HEAD 0533 /* QP_HEA */ +# define RF_HELP 0631 /* QP_HEL */ +# define RF_INDE 0534 /* QP_IND */ +# define RF_INTE 0535 /* QP_INE */ +# define RF_KYUP 0605 /* QP_KYU */ +# define RF_MARG 0540 /* QP_MAR */ +# define RF_MDMP 0606 /* QP_MDP */ +# define RF_MENU 0636 /* QP_MEN */ +# define RF_NBUF 0542 /* QP_NBU */ +# define RF_PATH 0640 /* QP_PAT */ +# define RF_PRIN 0550 /* QP_PRN */ +# define RF_PROC 0610 /* QP_PRO */ +# define RF_RELA 0645 /* QP_REL */ +# define RF_SAFE 0647 /* QP_SAF */ +# define RF_SCOR 0777 /* -----------------> BEI WILLI NICHT ENTHALTEN !!!! */ +# define RF_SEGR 0563 /* QP_SEG */ +# define RF_STEP 0564 /* QP_STE */ +# define RF_TALK 0567 /* QP_TAL */ +# define RF_TOPU 0570 /* QP_TUT */ +# define RF_UNIQ 0654 /* QP_UNI */ +# define RF_VOLU 0573 /* QP_VOL */ + +# define ANY '\177' +# define NONAME '\176' /* keine Namenspruefung bei LEX */ +# define NCON '\175' /* keine Namenspruefung bei dresp */ + +/* Zeichenkettenzeichen */ + +# define ZKCH1 '\'' +# define ZKCH2 '"' + +# define PECH '\0' /* Endezeichen fuer Parameterzeile */ + +/* Definitionen fuer Bearbeitung von Ausdruecken */ + +# define RA_MAXTERMINALSYMBOL 0777 + +# define RA_MASKE 07000 +# define RA_EINZELZEICHEN 06100 +# define RA_KLAA 06101 +# define RA_KLAZ 06102 +# define RA_INDIREKT 06103 +# define RA_KENDE 06106 +# define RA_KOMMA 06107 + +# define RA_NAME 01000 +# define RA_DATEIDES 01001 +# define RA_MEMNAME 01002 +# define RA_SONSTNAME 01003 + +# define RA_KONSTANTE 02000 +# define RA_ZKONST 02010 +# define RA_NKONST 02020 +# define RA_LKONST 02030 +# define RA_TRUE 02031 +# define RA_FALSE 02032 + +# define RA_FUNKTION 03000 +# define RA_FKTEIN 03100 + /* Oktalkodierung: 3 x y y [ 3 - Funktion ] */ + /* ^ Anzahl der Argumente */ + /* ^ zweistellige laufende Nummer */ +# define RA_FBOF 03001 /* ==> Funktionen ohne Argumente ohne Datumsbezug */ +# define RA_FEOF 03002 +# define RA_FRECNO 03003 +# define RA_FCOL 03006 +# define RA_FROW 03007 +# define RA_FPCOL 03010 +# define RA_FPROW 03011 +# define RA_FRC 03012 /* RECCOUNT */ +# define RA_FRS 03013 /* RECSIZE */ +# define RA_FDELE 03014 /* DELETED */ +# define RA_FDBF 03015 +# define RA_FPSPACE 03016 /* Plattenplatz */ +# define RA_FFOUND 03017 +# define RA_FISCOLOR 03020 +# define RA_FFKMAX 03021 +# define RA_FOS 03022 +# define RA_FVERSION 03023 + +# define RA_FDATE 03070 /* Datumsbezogene Funktion (ab oktal 60) */ +# define RA_FTIME 03071 + +# define RA_FASC 03101 /* ==> Funktionen mit 1 Argument */ +# define RA_FCHR 03102 +# define RA_FFILE 03103 +# define RA_FLEN 03104 +# define RA_FTRIM 03105 +# define RA_FRTRIM 03105 +# define RA_FVAL 03106 +# define RA_FUPPER 03107 +# define RA_FLOWER 03110 +# define RA_FISAL 03111 +# define RA_FISLOW 03112 +# define RA_FISUPP 03113 +# define RA_FSPA 03115 +# define RA_FTYPE 03116 +# define RA_FFIELD 03117 +# define RA_FLTRIM 03120 +# define RA_FNDX 03121 +# define RA_FFKLABEL 03122 + +# define RA_FABS 03150 /* mathematische Funktionen mit 1 Argument */ +# define RA_FINT 03151 /* laufende Nummer ab oktal 40 */ +# define RA_FEXP 03152 +# define RA_FLOG 03153 +# define RA_FSQRT 03154 + +# define RA_FDOW 03160 /* Datumsfunktionen mit 1 Argument */ +# define RA_FCDOW 03161 /* laufende Nummer ab oktal 60 */ +# define RA_FMONTH 03162 +# define RA_FCMONTH 03163 +# define RA_FDAY 03164 +# define RA_FYEAR 03165 +# define RA_FCTOD 03166 +# define RA_FDTOC 03167 + /* ==> Funktionen mit 2 Argumenten */ +# define RA_FZKENT 03201 /* AT */ +# define RA_FLEFT 03202 +# define RA_FRIGHT 03203 +# define RA_FREPLI 03204 /* REPLICATE */ +# define RA_FTRANS 03205 /* TRANSFORM */ + +# define RA_FMIN 03241 /* math. Funktion */ +# define RA_FMAX 03242 /* math. Funktion */ +# define RA_FMOD 03243 /* math. Funktion */ +# define RA_FROUND 03244 /* math. Funktion (45 auch vergeben (FCELM) */ + +# define RA_FSTR 03301 /* ==> Funktionen mit 3 Argumenten */ +# define RA_FTEILZK 03302 /* SUBSTR */ +# define RA_FIIF 03303 /* IIF */ + +# define RA_FCELM 03445 /* ==> Funktionen mit 4 Argumenten */ +# define RA_FSTUFF 03402 + +# define RA_OPERATOR 04000 +# define RA_PRIORITAET 070 + +# define RA_NICHT 04061 +# define RA_EINMINUS 04062 /*Einseitiges Minus */ +# define RA_MUL 04051 +# define RA_DIV 04052 +# define RA_PLUS 04041 +# define RA_MINUS 04042 +# define RA_MAX 04053 +# define RA_MIN 04054 + +# define RA_GLEICH 04031 +# define RA_UNGLEICH 04032 +# define RA_GROESSER 04033 +# define RA_KLEINER 04034 +# define RA_GRGLEICH 04035 +# define RA_KLGLEICH 04036 +# define RA_UND 04021 +# define RA_ODER 04011 + +/* Definitionen fuer Pol. Notation */ + +# define RA_RS 07001 +# define RA_SW 07002 +# define RA_WS 07003 +# define RA_RUNSTOP 07004 +# define RA_CC 07005 +# define RA_RM 07006 +# define RA_WM 07007 +# define RA_FS 07010 +# define RA_TS 07011 +# define RA_LC 07012 + +/* Definitionen fuer Spalte $$$$MARK */ + +# define RB_MARKDEL 01 /* Kennzeiche fuer Satz geloescht */ diff --git a/WEGA/contrib/ingres/dbs/src/TQL/roerr.h b/WEGA/contrib/ingres/dbs/src/TQL/roerr.h new file mode 100644 index 0000000..d77438b --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/roerr.h @@ -0,0 +1,189 @@ +/* IDENT: 100359 - roerr */ + +/* +** Definition der Symbole fuer ausgelassene Funktionsargumente +*/ + +# ifndef G_NILA +# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */ +# endif + +# ifndef G_NILI +# define G_NILI (-1) /* ausgelassener INT-Parameter */ +# endif + +# ifndef G_NILL +# define G_NILL (-1l) /* ausgelassener LONG-Parameter */ +# endif + +# ifndef G_NILC +# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */ +# endif +# ifndef G_NILF +# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */ +# endif +/* +** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes +*/ + +# ifndef gdebug + +# define gdebug(x,y) /* DEBUG ausschalten */ \ +{ \ +char *parm1, *parm2; \ + parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \ + parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \ +} + +# endif + +/**************************************************************************** +* +* Liste der verwendeten Fehlercodes fur Relationale Operatoren +* +*****************************************************************************/ + +/* Fehlercodes bei fehlerhafter Abarbeitung eines DML-Makro EDxxxx */ + +# define EDCELM 70 +# define EDRETR 71 +# define EDSTOR 72 +# define EDSEQR 73 +# define EDKYAD 74 +# define EDKYDF 75 +# define EDCLOS 76 +# define EDRDMD 77 +# define EDDEFN 78 +# define EDRDCD 79 +# define EDCDED 80 +# define EDRDVL 81 +# define EDFCTL 82 +# define EDOPN 83 +# define EDOPNR 84 +# define EDOPNU 85 +# define EDKYRT 86 +# define EDDELS 87 +# define EDNXTK 88 +# define EDSGTW 89 +# define EDDELI 90 +# define EDSCAN 91 +# define EDWTVL 92 +# define EDWTUA 93 +# define EDRDUA 94 +# define EDCREA 95 +# define EDRENA 96 +# define EDREFM 97 +# define EDCREC 98 + + +/* Fehlercodes der Relationalen Operatoren im Parameter RC */ + +# define TVOPEN 1 /* TV ist bereits eroeffnet */ +# define ARGERR 2 /* Argumentfehler in Standardfunktion */ +# define EOPNN 3 /* Argument d. einstelligen Operators EINMINUS ist nicht numerisch */ +# define EOPNL 4 /* Argument d. einstelligen Operators NICHT ist nicht logisch */ +# define NOOVERWRITE 5 /* Datei nicht zum ueberschreiben freigegeben */ +# define TERMBUF 6 /* Terminalpuffer ist zu klein */ +# define OFDATA 7 /* Datenueberlauf bei Angleichung der Dezimalstellenzahl */ +# define NOTV 8 /* TV kein Buchstabe */ +# define UNTV 9 /* bei qualifizierten Namen wurde falsche TV angegeben */ +# define SYNTAXLEX 10 /* Syntaxfehler durch LEX festgestellt */ +# define KEYDUP 11 /* Schluesselspalte ist bereits definiert */ +# define NOKOMMA 12 /* es wird eine Liste erwartet, Komma als Trennzeichen nicht gefunden */ +# define NOKLAZ 13 /* schliessende Klammer wird erwartet - nicht gefunden */ +# define NOMEMORY 14 /* malloc kann keinen weiteren Speicherplatz zuordnen */ +# define OFPOLNOT 15 /* Bereich fuer Interndarstellung von Ausdruecken ist voll */ +# define NOZLISTE 16 /* ungueltige Zuordnungsliste */ +# define NOCOND 17 /* ungueltige Bedingung */ +# define NOLOCATE 18 /* CONTINUE gegeben ohne vorausgehendes LOCATE */ +# define NOAUSDR 19 /* ungueltiger Ausdruck */ +# define NOCONV 20 /* Konvertierung nicht unterstuetzt */ +# define TVNDEF 21 /* TV nicht eroeffnet */ +# define NOINIT 22 /* kein INIT-Operator abgearbeitet oder falsche ZVT-Adresse angegeben */ +# define FPAR 23 /* ungueltiger Parameter */ +# define EFGETS 24 /* Fehler beim Lesen eines seriellen Files */ +# define NOPOLNOT 25 /* Fehler bei Interndarstellung von Ausdruecken */ +# define EFPUTS 26 /* Fehler beim Schreiben in ein serielles File */ +# define DIVBYZERO 27 /* Gleitkomma-Division durch Null */ +# define EFOPEN 28 /* Fehler beim Eroeffnen eines seriellen Files */ +# define NOSORTNAME 29 /* ungueltiger Name eines Schluesselbaumes angegeben */ +# define SRTDUP 30 /* Indexspalte mit gleichem Namen bereits definiert */ +# define COLDUP 31 /* Spalte ist bereits definiert (CREA) */ +# define NOSORTLI 32 /* falsche Sortliste bei PRNT angegeben */ +# define GETINDEX 33 /* kein Ausgabe-Index gefunden */ +# define NOZKAUSDR 34 /* kein Zeichenkettenausdruck */ +# define NOAFKTLI 35 /* fehlerhafte Liste von Aggregationsfunktionen */ +# define NOSPALI 36 /* fehlerhafte Liste von Spaltennamen */ +# define NOOUTCOL 37 /* Spaltenname im Dateibereich fuer Ausgabe nicht enthalten */ +# define NOMDMKOM 38 /* Eingabedatei fuer WTMD enthaelt falsches Kommando */ +# define NOMDMENT 39 /* Entity im MDM nicht gefunden */ +# define NONUMCOL 40 /* keine num. Spalte -> AGGR nicht moeglich */ +# define INVSPNAME 41 /* 1. Zeichen des Spaltennamen ist kein Alphazeichen sein */ +# define EKYUPDT 42 /* Fehler bei Aktualisierung Schluesselbaum */ +# define NOSETFKT 43 /* keine Set-Funktion */ +# define NOKEYCOL 44 /* Schluesselspalte nicht definiert */ +# define NOMEMNAME 45 /* Speichername nicht gefunden */ +# define NOAKTKEY 46 /* kein AKTKEY fuer FIND gesetzt */ +# define KABBRUCH 47 /* definierter Kommandoabbruch */ + +/*-------------------------------------------------------------VAX----------*/ + +# define SYNTAX 48 /* Syntaxfehler im Kommando */ +# define NOIMPL 49 /* Funktion noch nicht implementiert */ +# define EWRITE 50 /* Fehler bei WRITE in SFILE */ +# define EREAD 51 /* Fehler bei READ aus SFILE */ +# define ELSEEK 52 /* Fehler bei LSEEK im SFILE */ +# define EOPEN 53 /* Fehler bei OPEN eines SFILE */ +# define ECREAT 54 /* Fehler bei CREAT eines SFILE */ + +/*-------------------------------------------------------------SORTIERUNG---*/ + +# define SORTCCT 55 /* Can't Create Temp-File (zum Schreiben) */ +# define SORTCRT 56 /* Can't Reopen Temp-File (jetzt zum Lesen) */ +# define SORTSOF 57 /* Stack-Over-Flow */ +# define SORTUEOF 58 /* Undefines End Of File (Temp.sort) */ +# define SORTWERR 59 /* Fehler beim Schreiben auf des temporaeren Files */ +# define SORTFPOR 60 /* Field-Position Out of Range (bei Sort.-feldbeschr.)*/ +# define SORTFLOR 61 /* Field-Length Out of Range */ +# define SORTSYN 62 /* fehlerhafte Aufruffolge so_srta(), so_srto() */ + +/*---------------------------------------------------------FORMATIERTE E/A---*/ + +# define FMERRSC 63 /* Fehler bei Positionieren des Cursors */ +# define FMERRIN 64 /* Fehler bei Einlesen einer Zeichenkette */ +# define FMERROU 65 /* Fehler bei Ausgabe einer Zeichenkette */ +# define FMERRCL 66 /* Fehler bei Loeschen des Bildschirms */ +# define FMERRCR 67 /* Fehler bei Initialisierung des Terminals */ +# define FMNOINI 68 /* Terminal nicht fuer Full-Screen initialisierbar */ + +/*---------------------------------------------------------NEUE UNIXFEHLER --*/ + +# define NOSFI 69 /* KEINE TQL-DATENBANKDATEI */ + + +/*---------------------------------------------------------------------------*/ + + +# define INTERN 777 /* interner Fehler */ + +/*--------------------------------------------------WEITERE TQL MELDUNGEN----*/ + +# define FRUNVIEW 101 /* Fehler bei Abarbeitung einer SET RELATION - Kette */ +# define FDEFVIEW 102 /* Fehler bei Definition eines View (SET RELATION) */ +# define NOGETS 103 /* Keine GET-Variablen im READ-Zugriff */ +# define FALSE_PARM 104 /* Syntaxfehler - falsche Parameteranzahl */ +# define MAXEXTKEY 105 /* Max. 10 externe Zugriffshilfen zugelassen */ +# define TVEOF 106 /* Ende der Topas-Datei -> kein _retr mehr moeglich */ +# define OTOPCOM 107 /* Kommando nur fuer TOPAS-Datei implementiert */ +# define SCANWIK 108 /* SCAN mit aktiven Schluesselbaum aufgerufen */ +# define FSPSTRU 109 /* Spaltenstruktur ist fehlerhaft */ +# define NOMARKSPALTE 110 /* keine Markierungsspalte in der Datenbank */ + /* ==> kein DELETE bzw. RECALL - Kommando moeglich */ +# define NOSTRUDBF 111 /* Datenbankfile ist kein Struktur-Datenbankfile */ +# define NOSAVEFILE 112 /* keine von TQL erstellte SAVE-Datei angegeben */ + /* ==> kein RESTORE-Kommando moeglich */ +# define TVREAD 113 /* TOPAS-Datei mit Modus READ eroeffnet */ + /* -> Aenderungs-Kommandos nicht moeglich */ +# define NOFLOAT 114 /* Funktion nicht fuer Parameter vom Typ Gleitkomma */ +# define NODATE 115 /* das angegebene Datum ist kein gueltiges Datum */ +# define OTHAKTKEY 777 /* hat Buche sich ausgedacht ???????? */ diff --git a/WEGA/contrib/ingres/dbs/src/TQL/rostrd.h b/WEGA/contrib/ingres/dbs/src/TQL/rostrd.h new file mode 100644 index 0000000..93128c9 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/rostrd.h @@ -0,0 +1,419 @@ +/* IDENT: 100359 - rostrd */ + +# include "TQLSYS.H" /* Systemdefinitionen */ + +# include + +/* +** Definition der Symbole fuer ausgelassene Funktionsargumente +*/ + +# ifndef G_NILA +# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */ +# endif + +# ifndef G_NILI +# define G_NILI (-1) /* ausgelassener INT-Parameter */ +# endif + +# ifndef G_NILL +# define G_NILL (-1l) /* ausgelassener LONG-Parameter */ +# endif + +# ifndef G_NILC +# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */ +# endif +# ifndef G_NILF +# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */ +# endif + +/**************************************************************************** +* +* Definition der Makros zur Arbeit mit Relationalen Operatoren +* +****************************************************************************/ + +/* +** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes +*/ + +# ifndef gdebug + +# define gdebug(x,y) /* DEBUG ausschalten */ \ +{ \ +char *parm1, *parm2; \ + parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \ + parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \ +} + +# endif + + + +/**************************************************************************** +* +* Definition der Strukturen zur Arbeit mit Relationalen Operatoren +* +*****************************************************************************/ + +# ifndef NULL +# define NULL 0 /* Horn 24.1.89 wegen # undef NULL in stdio.h */ +# endif + + +# define O_RDONLY 000 /* Definitionen aus */ +# define O_RDWR 002 + +# ifndef QC_MAXPGR +# ifdef SSVP +# define QC_MAXPGR 32 +# else +# define QC_MAXPGR 5 +# endif +# endif + +# define RO_MAXFILSPEC 100 +# define RO_MAXVALSTACK 2048 +# define RO_MAXPOLNOT 3072 +# define RO_MAXMEMORY 100 +# define RO_MAXZEILE 256 +# define RO_MAXRECORD 512 +# define RO_MINSPLISTE 1 /* Anzahl der Spalten, wo Optimierung ansetzt */ + +/* +** Definition der Datentypen fuer TYP-Feld von RO_WERT und RO_DED +*/ + +#define MAXTYPE 5 /* Max. Typeanzahl */ + +#define C 0 /* CHAR */ +#define D 1 /* DATE */ +#define N 2 /* NUMERIC CHAR */ +#define L 3 /* LOGIC */ +#define F 4 /* FIXED BIN */ +#define E 5 /* FLOAT */ + + +/* Datenelementbeschreiber fuer RO */ + +struct ro_ded +{ + + int byte; /* Spaltenbreite in Bytes */ + char type; /* Typkennzeichen */ + char ro_ded_frei[sizeof (int) - 1]; /* Einhaltung Wortausrichtung */ + int prec; /* Anzahl der Dezimalstellen bei num. Spaltentypen */ + int pos; /* Position der Spalte im seriellen File */ +}; + +# ifndef _cded + +# define _cded(pded, ty, by, pre) \ +{ \ +struct ro_ded *ded; \ + ded = pded; \ + ded->type = (char)ty; \ + ded->byte = (int)by; \ + ded->prec = (int)pre; \ +} + +# endif + +/* Struktur zur Arbeit mit Werten */ + +#define RO_HWERT (sizeof(int) * 3) /* Laenge des Kopfes der Wertstruktur */ + +struct ro_wert{ + int len; /* Laenge des Puffers in Byte */ + char typ; /* Bearbeitungstyp der Spalten im Puffer */ + char wfrei[sizeof (int) - 1]; + int wprec; /* Anzahl der Dezimalstellen */ + union{ + char c[4]; + long n; + float g; + char l; /* fuer Typ L (logisch) = 'T' oder = 'F' */ + short s; + } + puffer; /* Zugriff auf n-Wert: i=wert.puffer.n[3] */ +}; + + +/* Spaltenbeschreibung fuer RO */ + +struct ro_spalte{ + char t; /* Tupelvariable */ + char name[9]; /* Spaltenname mit Blanks gefuellt */ + struct ro_ded ded; /* Beschreibung der Spalte */ + struct ro_ded charded; /* Beschreibung der Spalte im Zeichenkettenformat */ + struct ro_wert *lowerb,*upperb; /* Grenzen fuer Spaltenwerte */ + /* wenn Schluesselbaum: */ + char *lowkey; /* logisch kleinster Schluessel */ + char *highkey; /* logisch groesster Schluessel */ + short *sortdescr; /* Sortierfeldbeschreibungen fuer */ + /* max. 19 Spalten + Index (auch Sortierfeld) */ +}; + +/* Informationen fuer Realisierung VIEW */ + +struct ro_view{ + char viewspalten[RO_MAXZEILE]; /* Spaltenliste fuer Verkettung ueber Schluessel */ + short vofflenliste[100]; /* -"- bei SFILE mit Schluessel */ + int viewpol[100]; /* Pol. Not. fuer num. Ausdruck bei Verkettung ueber Index */ + char nexttv; /* Tupelvariable fuer naechsten Dateibereich */ + char viewzeichen[RO_MAXZEILE]; /* View in Zeichendarstellung ( Kommando nach TO) */ +}; + +struct ro_filter{ + char fcond[RO_MAXZEILE]; /* Filter in Zeichendarstellung */ + int filterpol[100]; /* Filter in Pol. Notation */ +}; + +/* Fuer jede eroeffnete Datei wird ein Dateibereich angelegt. +Dieser kann auch vom Nutzer gelesen werden. */ + +struct ro_dateibereich{ + int lendateibereich; + long anzzeilen; /* Anzahl der zugewiesenen Zeilen einer TD */ + long index; /* zuletzt benutzter Zeilenindex */ + long indexalt; /* vorher benutzter Index */ + char modus; /* Modus der Eroeffnung R, U, L */ + char reln[5]; /* log. Relationsname */ + /* SFI - einfaches seq. File mit Metadaten */ + char filespec[RO_MAXFILSPEC]; /* phys. Name der TD */ + int anzspalten; /* Anzahl der Spalten der TD */ + struct ro_spalte *spalten; /* -> Liste aller Spalten der TD */ + struct rb_keytree *aktschluessel;/* -> Schluesselbaum, ueber den der + augenblickliche Zugriff erfolgt */ + char *wertaktschluessel; /* zuletzt benutzter Schluesselwert der + aktiven Schluesselspalte */ + int lenfilepuffer; + char *filepuffer; + FILE *fp; /* Filepointer fuer OPEX-Verarbeitung */ + int fd; /* Filedescriptor fuer SFILE */ + int anfdaten; /* Byteoffset zum ersten Datensatz */ + struct ro_spalte *markspalte; /* Datensaetze zum Loeschen markiert */ + struct ro_filter *filter; /* zugeordnter Filter */ + struct ro_view *view; /* Informationen ueber Dateiverkettung */ + int found_flag; /* =1: FIND/LOCATE ergolgreich, =0: sonst */ + /* fuer Funktion FOUND() */ + int *lastlocatepol; /* Interndarst. der Bedingung aus LOCATE */ + /* merken. Wird bei CONTINUE gebraucht */ + int eof_flag; /* =1: EOF erreicht, =0: sonst */ + char *indexliste; /* Indexliste fuer 'kyupdate' */ + char *cur_indliste; /* Arbeitspointer fuer Indexliste */ + struct rb_keytree *pkeytree; /* 1. eroeffneter Schluesselbaum */ + char dfrei[8]; /* reserviert fuer die Zukunft */ +}; + +/* Struktur mit allen Informationen fuer Schluesselbaumpflege */ + +struct rb_kyupdt{ + int maxukeylen; /* laengster Schluesselbegriff -> malloc */ + FILE *fpdel; /* Hilfdatei fuer DEL-Schluessel */ + struct ro_spalte *upkey[20]; /* -> Schluesselspalten, die akt. werden muessen */ + int *changeind; /* -> Indezes der veraenderten Zeilen */ + char kfrei[40]; /* Reserve */ + + /* Puffer Hilfsdatei */ + char keyname[4]; /* Name Schluesselbaum */ + long delindex; /* Index fuer DEL-Schluessel */ + char keypuffer[2]; /* Schl. entsp. malloc(sizeof(struct rb_kyupdt)+maxukeylen) */ +}; + +/* Struktur fuer Metadatenbereich eines SFILE */ + +struct ro_fcontrol{ + int fsatzlaenge; /* Laenge eines Datensatzes in Byte */ + int fanzspalten; /* Anzahl der Spalten */ + int fanfdaten; /* Offset zum ersten Datensatz */ + int fanfwertetabellen; /* Offset zur ersten Wertetabelle */ + int flenwertetabellen; /* Laenge aller Wertetabellen */ + int fanzzeilen; /* Anzahl der Zeilen im SFILE */ + char keypfile[10][RO_MAXFILSPEC]; /* Filespezifik. fuer 10 Schluesselbaeume */ + struct ro_spalte keyspalte[10]; /* Spaltenbeschreiber fuer 10 SS */ + char ffrei[20]; /* Reserve */ +}; + + +/* SET Funktionen fuer Relationale Operatoren */ + +struct ro_set{ + + + int skyupdt; /* Schluesselbaumpflege ein/aus */ + + /* SET-Funktionen entsprechend dBASE III */ + + int alternate; + FILE *fpalternate; /* Filepointer fuer Alternatedatei */ + int bell; + int carry; + char color[30]; /* Farbtafel in Zeichenkettenform */ + int confirm; + int console; + int debug; + int decimals; + char sdefault[RO_MAXFILSPEC]; + int deleted; /* 0 = Zeile nicht geloescht */ + int sdelimiter; /* 1.Byte = linkes Begrenzungszeichen + 2.Byte = rechtes Begrenzungszeichen + 0 = Standard */ + int device; + int echo; + int escape; + int exact; + /* aktueller FILTER wird im zugeordneten Dateibereich abgelegt */ + int fixed; + FILE *format; /* Formatdatei fuer privaten Bildaufbau */ + /* function --> wird sofort abgearbeitet */ + int heading; + int help; + /* index --> wird sofort abgearbeitet */ + int intensity; + int margin; /* Anzahl der eingerueckten Zeichen */ + int menus; + /* path --> wird sofort abgearbeitet */ + int print; + FILE *fpprint; /* Drucker wird auf Datei PRINT.TXT abgebildet */ + char *procedure; /* Pointer auf Speicherbereich mit Kommandos */ + /* relation --> wird sofort abgearbeitet */ + int safety; + int graphic; + int step; + int talk; + int unique; + int century; + int set_frei[20]; /* for future use */ +}; + + +/* Zentrale Verarbeitungstabelle */ + +struct ro_zvt{ + int rostat; /* Statuscode intern */ + int roconv; /* Statuscode fuer Konvertierungsfehler */ + char zident[30]; /* IDENT-Information und Schutzidentifikator */ + char user[30]; /* Nutzeridentifikation */ + struct ro_dateibereich *tt['Z'-'A'+1]; /* Adressen eroeffnete + Dateibereiche -- portabel angegeben ESER -> Luecken bleiben frei */ + int *pstack; /* Stack fuer Auswertung von Ausdruecken */ + int *ptop; /* Stackpointer fuer STACK */ + int *ppolnot; /* Bereich fuer Ausdruck in Polnischer Notation */ + int *ppoltop; /* Pointer fuer POLNOT */ + /* globale Paramerter fuer Arbeit mit LEX */ + char lext; /* Vorgabe der Tupelvariable fuer Spaltenname */ + /* oder Uebergabe selektierter Dateibereich bei r_set */ + struct ro_spalte *lexspalte; /* -> Spalte, die zuletzt von Lex erkannt wurde */ + int lexlen; /* Laenge des zuletzt erkannten Symbols */ + struct ro_set set; + char *error; /* Bereich fuer Fehlerinformationen */ + int lenerror; /* Laenge des Bereiches */ + int eofflag; /* Dateiende fuer Funktion EOF() merken */ + int stopflag; /* bei >0 Kommandoabbruch */ + + /* Realisierung der formatierten E/A */ + int getanz; /* Anzahl der zu realisierenden 'GETs' */ + struct rd_stfeaget *firstget; /* ->: ersten 'GET'-Befehl */ + struct rd_stfeaget *lastget; /* ->: letzten 'GET'-Befehl */ + int fearow; /* aktuelle Display-Zeilennummer */ + int feacol; /* aktuelle Display-Spaltennummer */ + int term_init_flag; /* =1: Display initialisiert (sonst 0) */ + int tql_menue; /* =1: Standardmenue aktiv */ + int printf_anz; /* Anzahl der abgesetzten printf-Aufrufe */ + int flagwhile; /* Flag fuer While */ + int fea_intern; /* =1: Aufruf der fm-Moduln intern, 0: extern */ + int zrecconv; /* =1: '$RECCONV' mittels _defd definiert, 0: sonst */ + char ztbyte; /* Voruebersetzungsbyte bei Kommandos aus Programm */ + /* -1 => Kommando konnte nicht uebersetzt werden */ + /* QT_XXX => Num.Code des Schluesselwortes */ + char *zskipfalse; /* Adr. des Kommandos, welches bei .FALSE. abzu- + arbeiten ist , zeigt auf den Vorsatz des Kdo. */ + char *zskiptrue; /* Adr. des Kommandos, welches bei .TRUE. abzu- + arbeiten ist , zeigt auf den Vorsatz des Kdo. */ + char *zpolsave; /* Adr. des POLNOT fuer das aktuelle Kdo. */ + int simarkupdt; /* Anfangslaenge der Bitleiste in MARKUPDT fuer SFI */ + int readmessage;/* =1: Fehlermeldung auf Bildschirm, =0: sonst */ + char *memlevel[QC_MAXPGR]; /* Adr. der Hash-Tabellen fuer die Speicher- + variablen pro Programmebene */ + char zidende[16]; /* Endemarkierung ***Ende ZVT*** fuer Test */ + char zfrei[84]; /* Reserve fuer weitere Eintragungen */ +}; + + +/* GET-Struktur zur Realisierung der 'GET'-Funktion */ + +struct rd_stfeaget { + char gettyp; /* = 'M': Speichervariable (Memory) */ + /* = 'S': Spaltenname */ + char *getvar; /* Pointer auf Wertstruktur der SP-Variablen */ + /* bzw. Pointer auf Spaltenstruktur */ + int getbuflen; /* Laenge des Eingabepuffers */ + int getoriglen; /* Laenge einer Spalte als String */ + int getrow; /* Zeilennummer */ + int getcol; /* Spaltennummer */ + struct rd_stfeaget *flastget; /* vorhergehendes 'GET' */ + struct rd_stfeaget *fnextget; /* nachfolgendes 'GET' */ + short getrange; /* =1: Range angegeben, =0: sonst */ + struct ro_wert *getlower; /* untere Grenze (Range) */ + struct ro_wert *getupper; /* obere Grenze (Range) */ + char getpic[81]; /* Picture (max. 80 Zeichen und '\0') */ + char get_char[2]; /* Charakter-Darstellung von Zahlen */ + /* bzw. Puffer fuer Spaltenwerte */ + /* bzw. Puffer f. Picture-Aufbereitung*/ + /* nach hinten laenger */ +}; + +/* Strukturen zur Arbeit mit Memory */ + +# define RM_MEMLEN sizeof(struct rm_memtab) + +struct rm_memtab +{ + char mname[10]; /* Speichername */ + short mlen; /* Laenge des groessten zugewiesenen Speicherwertes */ + int moff; /* Offset d. Speicherwertes relativ zum Speicheranfang*/ + int mprot; /* = 0, falls Speichervariable nicht geschuetzt + = Programmstufe, in der Speichervariable geschuetzt*/ +}; + +struct rm_tabhead +{ + char *zmemory; /* -> Speicher zur Abspeicherung der Speicherwerte */ + int maxmemory; /* maximale Laenge des vorhandenen Speichers (Bytes) */ + int lenmemory; /* Laenge des belegten Speicherplatzes (Bytes) */ + int manz; /* Anzahl der in der Hash-Tabelle abgelegten Namen */ + short maxanz; /* maximale Anzahl der ablegbaren Speichernamen */ +}; + +/* Struktur fuer Metadaten eines Schluesselbaumes */ + +struct rb_keymeta { + char km_spalten[88]; /* einzelne Spaltennamen (+ 'END.') */ + int km_spanz; /* Anzahl der einfliessenden Spalten */ + int km_lenkey; /* Laenge eines Schluesselseintrages (mit Index) */ + int km_anzkey; /* Anzahl der Schluesseleintraege */ +}; + +#define KEYMETA sizeof(struct rb_keymeta) + +/* Struktur fuer einen Schluesselbaum */ + +struct rb_keytree { + int kfd; /* Filedescriptor */ + char kf_name[256]; /* vollstaendiger Filename */ + char kspliste[88]; /* Spaltenliste fuer Schluesselbaum */ + int kspanz; /* Anzahl der Spalten im Schluesselbaum */ + int klenkey; /* Laenge eines Schluessels (mit Index) */ + int kanzkey; /* Anzahl der Schluesseleintraege */ + char *klowkey; /* logisch kleinster Schluessel */ + char *khighkey; /* logisch groesster Schluessel */ + short *ksortdescr; /* Sortierfeldbeschreibung */ + int khsflag; /* =0: Filearbeit, =1: HS-Arbeit */ + char *khsbuffer; /* Puffer fuer HS-Arbeit */ + int klastoffset; /* letzter Offset im Schluesselbaum */ + struct rb_keytree *knexttree; /* Verkettung */ + char kfrei[16]; /* reserviert fuer die Zukunft */ +}; + + \ No newline at end of file diff --git a/WEGA/contrib/ingres/dbs/src/TQL/sordef.h b/WEGA/contrib/ingres/dbs/src/TQL/sordef.h new file mode 100644 index 0000000..92e4bc4 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/sordef.h @@ -0,0 +1,49 @@ +/* IDENT: 010968 - SORDEF.H */ +/* +** Autor: Buchert +*/ + +extern int uksort(); /* Compare Key by Type */ + +int sort_l = 256; /* Define maximum record length */ +int sort_v = 0; /* Define variable record format */ +int (*sort_c)() = uksort; /* Define default compare routine */ +int sort_r = 0; /* Non-zero for reverse comparison */ +int sort_n = 1; /* Default */ +int *f_p = 0; /* Default */ + +/* Festlegungen fuer die einzelnen Feld-Typen */ + +/* #define D_Z 0 unspecified */ +/* #define D_B 6 byte integer; 8-bit signed 2's-complement integer */ +/* #define D_BU 2 byte logical; 8-bit unsigned quantity */ +#define D_W 7 /* word integer; 16-bit signed 2's-complement integer */ +/* #define D_WU 3 word logical; 16-bit unsigned quantity */ +#define D_L 8 /* longword integer */ + /*32-bit signed 2's-complement integer */ +/* #define D_LU 4 longword logical; 32-bit unsigned quantity */ +/* #define D_Q 9 quadword integer */ + /* 64-bit signed 2's-complement integer */ +/* #define D_QU 5 quadword logical; 64-bit unsigned quantity */ +/* #define D_O 26 octaword integer */ + /* 128-bit signed 2's-complement integer */ +/* #define D_OU 25 octaword logical; 128-bit unsigned quantity */ +#define D_F 10 /* F_floating */ + /* 32-bit single-precision floating point */ +#define D_D 11 /* D_floating */ + /* 64-bit double-precision floating point */ +/* #define D_G 27 G_floating */ + /* 64-bit double-precision floating point */ +/* #define D_H 28 H_floating */ + /* 128-bit quadruple-precision floating point */ +#define D_T 14 /* a single character or a string */ +/* #define D_NU 15 numeric string, unsigned */ +/* #define D_NL 16 numeric string, left separate sign */ +/* #define D_NLO 17 numeric string, left overpunched sign */ +/* #define D_NR 18 numeric string, right separate sign */ +/* #define D_NRO 19 numeric string, right overpunched sign */ +/* #define D_NZ 20 numeric string, zoned sign */ +#define D_P 21 /* packed decimal string */ + +#define RECORD 0 /* RECORD-Sortierprozess */ +#define TAG 1 /* TAG-Sortierprozess */ diff --git a/WEGA/contrib/ingres/dbs/src/TQL/sorexd.h b/WEGA/contrib/ingres/dbs/src/TQL/sorexd.h new file mode 100644 index 0000000..82d24be --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/sorexd.h @@ -0,0 +1,61 @@ +/* IDENT: 010487 - SOREXD.H */ +/* +** Autor: Buchert +*/ + +/* Die Sortierfeldbeschreibungen sind in einem zusammenhaengenden Bereich +** in der Reihenfolge ihrer Anwendung abzulegen. +** +** Globale Symbole, die vom Nutzer der Sortierroutinen sorta() und sorto() +** vor dem ersten Aufruf von sorta() veraendert werden koennen. +** Andernfalls werden die im Kommentar angegebenen Werte verwendet. +*/ + +extern int uksort(); /* Compare Key by Type */ + +extern int sort_l; /* max. Laenge der zu sortierenden Saetze, + ** 256 Bytes */ +extern int sort_v; /* Eingabesatzformat, 0 - Zeichenketten */ +extern int (*sort_c)(); /* Adr. der Vergleichsfunktion, &strcmp() */ +extern char *sort_f; /* Name der Sortierarbeitsdatei, "sort.tmp" */ +extern int sort_r; /* Sortierrichtung, aufsteigend - 0 */ +extern int sort_n; /* Anzahl der uebergebenen Sortierfeldbeschrei- + ** bungen, 0 */ +extern int *f_p; /* Adr. der 1. Sortierfeldbeschreibung, NULL */ + + +/* Festlegungen fuer die einzelnen Feld-Typen */ + +/* #define D_Z 0 unspecified */ +/* #define D_B 6 byte integer; 8-bit signed 2's-complement integer */ +/* #define D_BU 2 byte logical; 8-bit unsigned quantity */ +#define D_W 7 /* word integer; 16-bit signed 2's-complement integer */ +/* #define D_WU 3 word logical; 16-bit unsigned quantity */ +#define D_L 8 /* longword integer */ + /*32-bit signed 2's-complement integer */ +/* #define D_LU 4 longword logical; 32-bit unsigned quantity */ +/* #define D_Q 9 quadword integer */ + /* 64-bit signed 2's-complement integer */ +/* #define D_QU 5 /* quadword logical; 64-bit unsigned quantity */ +/* #define D_O 26 octaword integer */ + /* 128-bit signed 2's-complement integer */ +/* #define D_OU 25 octaword logical; 128-bit unsigned quantity */ +#define D_F 10 /* F_floating */ + /* 32-bit single-precision floating point */ +#define D_D 11 /* D_floating */ + /* 64-bit double-precision floating point */ +/* #define D_G 27 G_floating */ + /* 64-bit double-precision floating point */ +/* #define D_H 28 H_floating */ + /* 128-bit quadruple-precision floating point */ +#define D_T 14 /* a single character or a string */ +/* #define D_NU 15 numeric string, unsigned */ +/* #define D_NL 16 numeric string, left separate sign */ +/* #define D_NLO 17 numeric string, left overpunched sign */ +/* #define D_NR 18 numeric string, right separate sign */ +/* #define D_NRO 19 numeric string, right overpunched sign */ +/* #define D_NZ 20 numeric string, zoned sign */ +#define D_P 21 /* packed decimal string */ + +#define RECORD 0 /* RECORD-Sortierprozess */ +#define TAG 1 /* TAG-Sortierprozess */ diff --git a/WEGA/contrib/ingres/dbs/src/TQL/stat.h b/WEGA/contrib/ingres/dbs/src/TQL/stat.h new file mode 100644 index 0000000..e14b1f8 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/stat.h @@ -0,0 +1,56 @@ +/*** +*sys\stat.h - defines structure used by stat() and fstat() +* +* Copyright (c) 1985-1987, Microsoft Corporation. All rights reserved. +* +*Purpose: +* This file defines the structure used by the stat() and fstat() +* routines. +* [System V] +* +*******************************************************************************/ + + +#ifndef NO_EXT_KEYS /* extensions enabled */ + #define CDECL cdecl +#else /* extensions not enabled */ + #define CDECL +#endif /* NO_EXT_KEYS */ + +#ifndef _TIME_T_DEFINED +typedef long time_t; +#define _TIME_T_DEFINED +#endif + +/* define structure for returning status information */ + +#ifndef _STAT_DEFINED +struct stat { + dev_t st_dev; + ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + dev_t st_rdev; + off_t st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; + }; +#define _STAT_DEFINED +#endif + +#define S_IFMT 0170000 /* file type mask */ +#define S_IFDIR 0040000 /* directory */ +#define S_IFCHR 0020000 /* character special */ +#define S_IFREG 0100000 /* regular */ +#define S_IREAD 0000400 /* read permission, owner */ +#define S_IWRITE 0000200 /* write permission, owner */ +#define S_IEXEC 0000100 /* execute/search permission, owner */ + + +/* function prototypes */ + +int CDECL fstat(int, struct stat *); +int CDECL stat(char *, struct stat *); diff --git a/WEGA/contrib/ingres/dbs/src/TQL/termde.h b/WEGA/contrib/ingres/dbs/src/TQL/termde.h new file mode 100644 index 0000000..cbc1e46 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/termde.h @@ -0,0 +1,71 @@ +/*$$+ TERMDE.h +$$*/ +/* IDENT: 010387 - TERMDE.h */ +/* Design: Buchert */ + +/****************************************************************************** +* +* TERMDE.h +* +* include-File zur Beschreibung des verwendeten Terminals +* +* #define 1 ==> dieser Terminaltyp wird verwendet, +* sonst wird '0' zugeordnet +* +*****************************************************************************/ + +/* Die #define-Anweisung fuer das entsprechende Terminal ist zu aktivieren */ + +#define VT_200_V 1 /* SMG-Routinen anwendbar */ +/* #define VT_100 0 */ /* Terminals der VT-Familie */ +/* #define T_7920 1 */ /* ESER-Terminal 7920 */ + + +#define TERMCOLS 80 /* Anzahl der Spalten */ +#define TERMROWS 24 /* Anzahl der Zeilen */ +#define FIRSTROW 1 /* Nummer der 1. Zeile */ +#define FIRSTCOL 1 /* Nummer der 1. Spalte */ + +/* Definitionen der moeglichen Eingabe-Terminatoren ***/ + +#define TRM_CR 1 /* zum naechsten Eingabe-Feld */ +#define TRM_DOWN_CUR 2 /* zum naechsten Eingabe-Feld */ +#define TRM_UP_CUR 3 /* zum vorhergehenden Eingabe-Feld */ +#define TRM_ENTER 4 /* fuer EDIT: zum naechsten Satz */ +#define TRM_CTRLE 7 /* Ende aller Eingaben */ +#define TRM_PRESC 9 /* vorhergehender Bildschirminhalt */ +#define TRM_NEXSC 10 /* Uebergang zum naechsten Bildschirm */ + +/* weitere Eingabe-Terminatoren */ +#define TRM_ACTRL 5 +#define TRM_DCTRL 6 +#define TRM_ICTRL 8 +#define TRM_UCTRL 11 /* Loeschen des aktuellen Eingabe-Feldes */ +#define TRM_WCTRL 12 /* Refresh Display */ +#define TRM_KCTRL 13 /* Eingabefeld verlassen ohne Pruefung */ + +/* Video-Attribute ************************************/ + +#define VIDEO_REVERSE 2 + +/* Fehlercodes ****************************************/ + +#define FMERRSC 63 /* Fehler bei Setzen des Cursors */ +#define FMERRIN 64 /* Fehler bei Eingabe */ +#define FMERROU 65 /* Fehler bei Ausgabe */ +#define FMERRCL 66 /* Fehler bei CLEAR */ +#define FMERRCR 67 /* Fehler bei Initialisierung (Create) */ +#define FMNOINI 68 /* Terminal nicht fuer Full-SCR initialisiert */ +#define NOGETS 103 /* Keine GET-Variablen im READ-Zugriff */ + + +/* UEBERTRAG AUS ROERR.H (UM NICHT NOCH #include "ROERR.H" zu machen */ + +#define TERMBUF 6 /* Terminalpuffer ist zu klein */ +#define NOMEMORY 14 /* malloc kann keinen weiteren Speicherplatz zuordnen */ +#define OFPOLNOT 15 /* Bereich fuer Interndarstellung von Ausdruecken ist voll */ +#define NOCOND 17 /* ungueltige Bedingung */ +#define NOINIT 22 /* kein INIT-Operator abgearbeitet oder falsche ZVT-Adresse angegeben */ +#define EFOPEN 28 /* Fehler beim Eroeffnen eines seriellen Files */ +#define GETINDEX 33 /* kein Ausgabe-Index gefunden */ +#define EKYUPDT 42 /* Fehler bei Aktualisierung Schluesselbaum */ +#define NOMEMNAME 45 /* Speichername nicht gefunden */ diff --git a/WEGA/contrib/ingres/dbs/src/TQL/tqlfun.h b/WEGA/contrib/ingres/dbs/src/TQL/tqlfun.h new file mode 100644 index 0000000..9760ae0 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/tqlfun.h @@ -0,0 +1,9 @@ +/* +** TQLFUNC.H +** Deklaration der benutzen Funktionen +** +** 12.04.89 v.Treek +*/ + +int qa_acc (struct q_tql *tql, char **ptr); +char *gu_mal (int size); diff --git a/WEGA/contrib/ingres/dbs/src/TQL/tqlsys.h b/WEGA/contrib/ingres/dbs/src/TQL/tqlsys.h new file mode 100644 index 0000000..166aeb8 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/tqlsys.h @@ -0,0 +1,20 @@ +/* +** Includefile zur Steuerung systemabhaengiger Teile in den TQL-Quellen +** +** Es koennen folgende Symbole definiert werden, die in den TQL-Quellen +** genutzt werden: +** +** # define SUNIX 1 = fuer UNIX-System +** # define SPSU 1 = fuer PSU-Besonderheiten +** # define SSVP 1 = fuer SVP 1800-Besonderheiten +** # define SDCP 1 = fuer DCP-Besonderheiten +** +** # define SFSTAT 1 = fstat() ist vorhanden +** +** v. Treek 19.04.89 +*/ + +# define TQLSYS 1 /* Includefile-Kenner */ +# define SDCP 1 /* DCP */ +# define SFSTAT 1 /* fstat() ist vorhanden */ + \ No newline at end of file diff --git a/WEGA/contrib/ingres/dbs/src/TQL/z_sort.h b/WEGA/contrib/ingres/dbs/src/TQL/z_sort.h new file mode 100644 index 0000000..1e3dc73 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/src/TQL/z_sort.h @@ -0,0 +1,36 @@ +# include + +#define D_Z DSC$K_DTYPE_Z /* unspecified */ +#define D_B DSC$K_DTYPE_B /* byte integer; 8-bit signed 2's-complement integer */ +#define D_BU DSC$K_DTYPE_BU /* byte logical; 8-bit unsigned quantity */ +#define D_W DSC$K_DTYPE_W /* word integer; 16-bit signed 2's-complement integer */ +#define D_WU DSC$K_DTYPE_WU /* word logical; 16-bit unsigned quantity */ +#define D_L DSC$K_DTYPE_L /* longword integer; 32-bit signed 2's-complement integer */ +#define D_LU DSC$K_DTYPE_LU /* longword logical; 32-bit unsigned quantity */ +#define D_Q DSC$K_DTYPE_Q /* quadword integer; 64-bit signed 2's-complement integer */ +#define D_QU DSC$K_DTYPE_QU /* quadword logical; 64-bit unsigned quantity */ +#define D_O DSC$K_DTYPE_O /* octaword integer; 128-bit signed 2's-complement integer */ +#define D_OU DSC$K_DTYPE_OU /* octaword logical; 128-bit unsigned quantity */ +#define D_F DSC$K_DTYPE_F /* F_floating; 32-bit single-precision floating point */ +#define D_D DSC$K_DTYPE_D /* D_floating; 64-bit double-precision floating point */ +#define D_G DSC$K_DTYPE_G /* G_floating; 64-bit double-precision floating point */ +#define D_H DSC$K_DTYPE_H /* H_floating; 128-bit quadruple-precision floating point */ +#define D_T DSC$K_DTYPE_T /* character-coded text; a single character or a string */ +#define D_NU DSC$K_DTYPE_NU /* numeric string, unsigned */ +#define D_NL DSC$K_DTYPE_NL /* numeric string, left separate sign */ +#define D_NLO DSC$K_DTYPE_NLO /* numeric string, left overpunched sign */ +#define D_NR DSC$K_DTYPE_NR /* numeric string, right separate sign */ +#define D_NRO DSC$K_DTYPE_NRO /* numeric string, right overpunched sign */ +#define D_NZ DSC$K_DTYPE_NZ /* numeric string, zoned sign */ +#define D_P DSC$K_DTYPE_P /* packed decimal string */ + +#define RECORD 0 /* RECORD-Sortierprozess */ +#define TAG 1 /* TAG-Sortierprozess */ + +struct sort_field /* Sortierfeldaufbau System-Sort */ +{ + short s_typ; /* Sortiertyp */ + short s_order; /* Sortierrichtung */ + short s_offset; /* Offset im Sort-Feld */ + short s_len; /* Laenge Sort-Kompon. */ +};