*COMDECK CSTRNDCLS
  
#     C O M M O N   D E C K    -   C S T R N D C L S                   #
  
# FOLLOWING BASED ARRAY IS FOR A CST RELATION WORK BLOCK (FIXED PART)#
  
        BASED ARRAY CSRLNBLK; 
  
          BEGIN              # CSRLNBLK BASED ARRAY # 
  
            ITEM CSNMAXRK U(0,0,12);   # MAXIMUM RANK IN THE RELATION#
                                       # BIT 12 RESERVED FOR LATER #
            ITEM CSNNAMLW U(0,13,2);   # RELATION NAME LENGTH IN WRDS#
            ITEM CSNLENTH U(0,15,15);  # LENGTH OF RELATION WORK BLCK#
            ITEM CSNSERPT U(0,30,15);  # SEARCH TABLE POINTER # 
            ITEM CSNQULPT U(0,45,15);  # QUALIFICATION TABLE POINTER #
  
            ITEM CSNNAME  C(1,0,30);   # RELATION NAME (1-30 CHARACT)#
  
          END                # CSRLNBLK BASED ARRAY # 
  
  
  
# FOLLOWING BASED ARRAY IS FOR A CST RELATION WORK BLOCK SEARCH TABLE#
  
        BASED ARRAY CSRLNSER; 
  
          BEGIN              # CSRLNSER BASED ARRAY # 
  
            ITEM CSNSSOUR U(0,0,60);   # FULL 60-BIT SEARCH SOURCE WD#
            ITEM CSNSJNPT U(0,0,15);   # JOIN BUFFER OFFSET POINTER # 
            ITEM CSNSSTRA U(0,15,3);   # SEARCH STRATEGY (KEY INDICT)#
            ITEM CSNSMISF U(0,18,6);   # MISCELLANEOUS FLAG INFORMATN#
              ITEM CSNSNMAP B(0,18,1); # TRUE IFF NO MAPPING FOR RANK#
              ITEM CSNSFRST B(0,19,1); # TRUE IFF FIRST RANK RETRIEVE#
              ITEM CSNSRETR B(0,20,1); # TRUE IFF QUAL CHILD RETURNED#
              ITEM CSNSBREK B(0,21,1); # TRUE IFF RANK CONTROL BREAK #
              ITEM CSNSCOLA U(0,22,2); # COLLATING SEQUENCE OPTIONS # 
                                       # BITS 24-26 RESERVE FOR LATER#
            ITEM CSNSSIZE U(0,27,9);   # CHARACTER SIZE OF JOIN ITEM #
            ITEM CSNSSBCP U(0,36,6);   # SOURCE ITEM BEGIN CHAR POSIT#
            ITEM CSNSSBWP U(0,42,18);  # SOURCE ITEM BEGIN WORD POSIT#
  
            ITEM CSNSTARG U(1,0,60);   # FULL 60-BIT SEARCH TARGET WD#
            ITEM CSNSAORD U(1,0,12);   # AREA ORDINAL OF THIS RANK #
            ITEM CSNSTYPE U(1,12,6);   # DATA TYPE OF THE JOIN ITEM # 
                                       # BITS 18-20 RESERVE FOR LATER#
            ITEM CSNSQLPT U(1,21,15);  # QUALIFY TABLE OFFSET POINTER#
            ITEM CSNSTBCP U(1,36,6);   # TARGET ITEM BEGIN CHAR POSIT#
            ITEM CSNSTBWP U(1,42,18);  # TARGET ITEM BEGIN WORD POSIT#
  
          END                # CSRLNSER BASED ARRAY # 
  
# FOLLOWING BASED ARRAY FOR CST RELATION QUALIFICATION HEADER/STACK # 
  
        BASED ARRAY CSRLNQUL; 
  
          BEGIN              # CSRLNQUL BASED ARRAY # 
  
            ITEM CSNQHEAD U(0,0,60);   # FULL 60-BIT QUAL HEADER WORD#
                                       # BITS 0-11 RESERVED FOR LATER#
            ITEM CSNQMXRK U(0,12,12);  # MAXIMUM QUALIFIED RANK # 
            ITEM CSNQLENG U(0,24,15);  # QUALIFY TABLE WORD LENGTH #
                                       # BITS 39-59 RESERVE FOR LATER#
  
            ITEM CSNQSTAK U(0,0,60);   # FULL 60-BIT QUAL STACK WORD #
            ITEM CSNQTYPE U(0,0,3);    # STACK ENTRY TYPE (VALUE 1-5)#
            ITEM CSNQOPOR U(0,3,18);   # OPERATOR CODE AND/OR ORDINAL#
              ITEM CSNQOPER U(0,3,6);  # OPERATOR CODE (CSNQTYPE = 5)#
              ITEM CSNQORDN U(0,9,12); # SUBSCHEMA ITEM/REC ORDINAL # 
            ITEM CSNQSLEN U(0,21,9);   # STACK WORD LENGTH FOR RANK # 
            ITEM CSNQRANK U(0,30,12);  # RANK NUMBER (ROOT IS RANK 1)#
                                       # BITS 42-44 RESERVE FOR LATER#
            ITEM CSNQATPT U(0,45,15);  # ATTRIBUTE OFFSET POINTER # 
  
          END                # CSRLNQUL BASED ARRAY # 
  
  
  
# THE FOLLOWING BASED ARRAY FOR CST RELATION QUALIFICATION ATTRIBUTES#
  
        BASED ARRAY CSRLNATR; 
  
          BEGIN              # CSRLNATR BASED ARRAY # 
  
            ITEM CSNAOPER U(0,0,6);    # OPERATOR CODE (CSNQTYPE = 5)#
                                       # BITS 6-41 RESERVED FOR LATER#
            ITEM CSNADNLC U(0,42,6);   # DATA NAME LENGTH IN CHARACTS#
            ITEM CSNALENG U(0,48,12);  # ATTRIBUTE ENTRY WORD LENGTH #
  
            ITEM CSNANAME C(1,0,30);   # DATA NAME (1-30 CHARACTERS) #
            ITEM CSNAWORD U(1,0,60);   # FULL 60-BIT ATTRIBUTE WORD # 
            ITEM CSNATYPE U(1,0,3);    # COBOL TYPE CODE FOR THE ITEM#
            ITEM CSNANMLW U(1,3,3);    # LENGTH OF ITEM NAME IN WORDS#
            ITEM CSNANMLC U(1,6,6);    # LENGTH OF ITEM NAME IN CHARS#
            ITEM CSNALEVL U(1,12,9);   # COBOL LEVEL NUMBER FOR ITEM #
            ITEM CSNAENTL U(1,21,18);  # SCHEMA ITEM ENTRY WRD LENGTH#
            ITEM CSNAMISF U(1,39,3);   # MISCELLANEOUS FLAG INFORMATN#
              ITEM CSNADPCH B(1,39,1); # T= (SUBSIDIARY) DBP OR CHECK#
              ITEM CSNACRAR B(1,40,1); # T= CONTRIBUTES TO ACT RESULT#
              ITEM CSNACOAR B(1,41,1); # T= CONTAINS AN ACTUAL RESULT#
            ITEM CSNAIORD U(1,42,18);  # ORDINAL ASSIGNED TO THE ITEM#
  
            ITEM CSNAIBWP U(2,0,18);   # ITEM BEGINNING WORD POSITION#
            ITEM CSNAIBCP U(2,18,6);   # ITEM BEGINNING CHAR POSITION#
            ITEM CSNACLAS U(2,24,6);   # DATA CLASS CODE FOR THE ITEM#
            ITEM CSNASIZE U(2,30,18);  # CHARACTER SIZE OF THE ITEM # 
                                       # BITS 48-59 RESERVE FOR LATER#
  
            ITEM CSNASIGN U(3,0,8);    # PICTURE SIGN INFORMATION # 
              ITEM CSNASLOC U(3,0,6);  # LOCATION - DIGITS FROM RIGHT#
              ITEM CSNASSEP B(3,6,1);  # T=SIGN SEPARATE, F=OVERPUNCH#
              ITEM CSNASFLG B(3,7,1);  # TRUE IFF SIGN IS SPECIFIED # 
                                       # BIT 8 RESERVED FOR LATER USE#
            ITEM CSNAPONT U(3,9,8);    # DECIMAL POINT INFORMATION #
              ITEM CSNAPLOC U(3,9,6);  # LOCATION - DIGITS FROM RIGHT#
              ITEM CSNAPACT B(3,15,1); # T=ACTUAL POINT, F=ASSUMED PT#
              ITEM CSNAPLEF B(3,16,1); # T=POINT TO LEFT, F=TO RIGHT #
                                       # BIT 17 RESERVE FOR LATER USE#
            ITEM CSNAOCUR U(3,18,42);  # OCCURS CLAUSE INFORMATION #
              ITEM CSNAODEP B(3,18,1); # TRUE IFF OCCURS DEPENDING ON#
                                       # BITS 19-20 RESERVE FOR LATER#
              ITEM CSNAOMAX U(3,21,21);# MAXIMUM OR FIX OCCURS COUNT #
              ITEM CSNAOORD U(3,42,18);# ORDINAL OF DEPENDING ON ITEM#
  
                                       # BITS 0-17 RESERVED FOR LATER#
            ITEM CSNADORD U(4,18,18);  # DOMINANT (GROUP) ITEM ORDINL#
                                       # BITS 36-38 RESERVE FOR LATER#
            ITEM CSNARSFL B(4,39,1);   # FALSE=RESULT OR RESULT PNT=0#
            ITEM CSNATYPF B(4,40,1);   # TRUE = TYPE CLAUSE SPECIFIED#
                                       # BITS 41-59 RESERVE FOR LATER#
  
            ITEM CSNARSPT U(5,0,12);   # DDL RESULT ENTRY POINTER # 
            ITEM CSNALKPT U(5,12,12);  # DDL ITEM LOCK ENTRY POINTER #
            ITEM CSNACHPT U(5,24,12);  # DDL ITEM CHECK ENTRY POINTER#
            ITEM CSNAEDPT U(5,36,12);  # DDL ENCODE/DECODE POINTER #
            ITEM CSNACLPT U(5,48,12);  # DDL ITEM CALL ENTRY POINTER #
  
          END                # CSRLNATR BASED ARRAY # 
