*DECK DB$BS50 
USETEXT BRGENTX 
      PROC DB$BS50; 
      BEGIN 
 #
* *   DB$BS50 - TEST AND SET JOURNAL LOG FLAG    PAGE  1
* *   P. A. MURRAY                               DATE  10/27/80 
* 
* DC  PURPOSE 
* 
*     TO SET THE JOURNAL LOG FLAG IN THE EXECUTION TABLE IF IT HAS NOT
*     BEEN PREVIOUSLY SET.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -JOURNAL- HAS BEEN DETECTED.
*     ENTRYCOUNT EQUALS THE NUMBER OF ENTRIES IN THE EXTABLE BLOCK. 
* 
* DC  EXIT CONDITIONS 
* 
*     EXIT IS TO DB$YES, UNDER BOTH NORMAL AND ABNORMAL CONDITIONS. 
* 
*     NORMAL - EXJLFLG IS SET TRUE. FILECLAUSE IS SET TO DFJOURNAL. 
* 
*     ABNORMAL - (1) IF JOURNAL LOGGING IS NOT SPECIFIED FOR THE SCHEMA,
*                   THEN ISSUE DIAGNOSTIC 313.
* 
*                (2) IF JOURNAL WAS PREVIOUSLY SPECIFIED, THEN
*                   ISSUE DIAGNOSTIC 306. 
* 
* DC  CALLING ROUTINES
* 
*     DB$BSTX - BASIC RECOVERY SYNTAX CRACKER 
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$DIAG;     # ISSUE DIAGNOSTIC MESSAGE                #
      XREF PROC DB$NO;       # SYNTAX TABLE DRIVER -NO- RETURN         #
      XREF PROC DB$YES;      # SYNTAX TABLE DRIVER -YES- RETURN        #
# 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     EXJLFLG                JOURNAL LOG FLAG 
* 
* DC  DESCRIPTION 
* 
*     - IF JOURNAL LOGGING IS NOT SPECIFIED FOR THE SCHEMA, THEN
*       ISSUE DIAGNOSTIC 313. 
* 
*     - IF JOURNAL WAS PREVIOUSLY SPECIFIED, THEN ISSUE 
*       DIAGNOSTIC 306. ELSE SET THE JOURNAL LOG FLAG IN THE
*       EXECUTION TABLE TO TRUE.
* 
*     - SET FILECLAUSE TO DFJOURNAL.
* 
*     - RETURN TO DB$YES. 
* 
 #
      CONTROL EJECT;
  
# S T A R T   O F   D B $ B S 5 0   E X E C U T A B L E   C O D E      #
  
  
# IF JOURNAL LOGGING IS NOT SPECIFIED FOR THE SCHEMA, THEN             #
# ISSUE DIAGNOSTIC 313.                                                #
  
      IF NOT MDSCJLFG[SDTINDX]
      THEN
        BEGIN 
        DB$DIAG(313); 
        END 
  
# IF JOURNAL WAS PREVIOUSLY SPECIFIED, THEN ISSUE DIAGNOSTIC 306.      #
# ELSE SET THE JOURNAL LOG FLAG IN THE EXECUTION TABLE TO TRUE.        #
  
      IF EXJLFLG[ENTRYCOUNT]
      THEN                   # JOURNAL WAS PREVIOUSLY SPECIFIED        #
        BEGIN 
        DB$DIAG(306); 
        END 
      ELSE
        BEGIN 
        EXJLFLG[ENTRYCOUNT] = TRUE; 
        END 
  
# SET FILECLAUSE TO DFJOURNAL.                                         #
  
      FILECLAUSE = DFJOURNAL; 
  
# RETURN TO DB$YES.                                                    #
  
      DB$YES; 
  
      END 
  
      TERM
