.nf
 
 
    ========== licence begin  GPL
    Copyright (c) 2000-2004 SAP AG
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end
 
.fo
*****************************************************
Copyright (c) 2000-2004 SAP AG
SAP Database Technology
 
Release :      Date : 2000-11-24
*****************************************************
modname : VAK41
changed : 2000-11-24
module  : AK_show_syntax
 
Author  : ThomasA
Created : 1985-10-16
*****************************************************
 
Purpose : AK_show_syntax
 
Define  :
 
        PROCEDURE
              a41_a_check_database (
                    VAR acv      : tak_all_command_glob;
                    VAR put_node : tsp00_Int2);
 
        PROCEDURE
              a41_astart_stop_statement (
                    VAR acv      : tak_all_command_glob;
                    VAR put_node : tsp00_Int2);
 
        PROCEDURE
              a41_show_semantic (VAR acv : tak_all_command_glob);
 
        PROCEDURE
              a41execute_show (
                    VAR acv    : tak_all_command_glob;
                    VAR mblock : tgg00_MessBlock);
 
        PROCEDURE
              a41get_table (
                    VAR acv      : tak_all_command_glob;
                    show_kind    : tgg00_ShowKind;
                    VAR base_ptr : tak_sysbufferaddress;
                    VAR b_err    : tgg00_BasisError);
 
        PROCEDURE
              a41glob_init;
 
        PROCEDURE
              a41init_show_glob (
                    VAR a41v  : tak40_show_glob;
                    mess_code : tsp00_CodeType);
 
        PROCEDURE
              a41show_result_name (
                    VAR acv      : tak_all_command_glob;
                    VAR put_node : tsp00_Int2);
 
        PROCEDURE
              a41table_exist (
                    VAR acv    : tak_all_command_glob;
                    VAR tablen : tsp00_KnlIdentifier;
                    VAR p_arr  : tak_syspointerarr;
                    VAR ok     : boolean);
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
        FROM
              AK_semantic_scanner_tools : VAK05;
 
        PROCEDURE
              a05identifier_get (
                    VAR acv     : tak_all_command_glob;
                    tree_index  : integer;
                    obj_len     : integer;
                    VAR moveobj : tsp00_KnlIdentifier);
 
      ------------------------------ 
 
        FROM
              AK_universal_semantic_tools : VAK06;
 
        PROCEDURE
              a06extcolno (
                    VAR baserec : tak_baserecord;
                    extcolno    : integer;
                    VAR col_ptr : tak00_colinfo_ptr);
 
      ------------------------------ 
 
        FROM
              AK_Identifier_Handling : VAK061;
 
        PROCEDURE
              a061get_colname (
                    VAR col_info : tak00_columninfo;
                    VAR colname  : tsp00_KnlIdentifier);
 
      ------------------------------ 
 
        FROM
              Systeminfo_cache   : VAK10;
 
        PROCEDURE
              a10_add_repl_sysinfo (
                    VAR acv      : tak_all_command_glob;
                    VAR syspoint : tak_sysbufferaddress;
                    add_sysinfo  : boolean;
                    VAR b_err    : tgg00_BasisError);
 
        PROCEDURE
              a10add_sysinfo (
                    VAR acv      : tak_all_command_glob;
                    VAR syspoint : tak_sysbufferaddress;
                    VAR b_err    : tgg00_BasisError);
 
        PROCEDURE
              a10cmd_rollback (VAR acv : tak_all_command_glob);
 
        PROCEDURE
              a10cpy_result (
                    VAR acv         : tak_all_command_glob;
                    VAR pars_syskey : tgg00_SysInfoKey;
                    VAR res_syskey  : tgg00_SysInfoKey;
                    rescnt          : tsp00_Int4;
                    VAR b_err       : tgg00_BasisError);
 
        PROCEDURE
              a10dispose (
                    VAR acv : tak_all_command_glob;
                    VAR p : tak_sysbufferaddress);
 
        PROCEDURE
              a10lock_fixed (VAR acv : tak_all_command_glob);
 
        PROCEDURE
              a10new (
                    VAR acv  : tak_all_command_glob;
                    obj_size : tsp00_Int4;
                    VAR p    : tak_sysbufferaddress);
 
        PROCEDURE
              a10unlock_fixed (VAR acv : tak_all_command_glob);
 
        PROCEDURE
              a10_fix_len_get_sysinfo (
                    VAR acv      : tak_all_command_glob;
                    VAR syskey   : tgg00_SysInfoKey;
                    dstate       : tak_directory_state;
                    required_len : integer;
                    plus         : integer;
                    VAR syspoint : tak_sysbufferaddress;
                    VAR b_err    : tgg00_BasisError);
 
        PROCEDURE
              a10del_sysinfo (
                    VAR acv     : tak_all_command_glob;
                    VAR syskey  : tgg00_SysInfoKey;
                    VAR b_err   : tgg00_BasisError);
 
        PROCEDURE
              a10parsinfos (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
&       ifdef trace
 
      ------------------------------ 
 
        FROM
              Test_Procedures : VTA01;
 
        PROCEDURE
              t01showkind (
                    debug     : tgg00_Debug;
                    nam       : tsp00_Sname; (*ptocSynonym const char**)
                    show_kind : tgg00_ShowKind);
 
        PROCEDURE
              t01int4 (
                    debug    : tgg00_Debug;
                    nam      : tsp00_Sname;
                    int      : tsp00_Int4);
 
        PROCEDURE
              t01lidentifier (
                    debug       : tgg00_Debug;
                    identifier  : tsp00_KnlIdentifier);
 
        PROCEDURE
              t01qual (debug : tgg00_Debug; VAR part1 : tgg00_QualBuf);
 
        PROCEDURE
              t01treeid (
                    debug      : tgg00_Debug;
                    nam        : tsp00_Sname;
                    VAR treeid : tgg00_FileId);
 
        PROCEDURE
              t01localstate (
                    layer : tgg00_Debug;
                    nam : tsp00_Sname;
                    s   : tgg00_TransState);
&       endif
 
      ------------------------------ 
 
        FROM
              DML_Help_Procedures : VAK54;
 
        PROCEDURE
              a54_dml_init (
                    VAR dmli : tak_dml_info;
                    in_union : boolean);
 
      ------------------------------ 
 
        FROM
              Select_Syntax : VAK60;
 
        PROCEDURE
              a60rescount (
                    VAR acv  : tak_all_command_glob;
                    rescount : tsp00_Int4);
 
        PROCEDURE
              a60_get_longinfobuffer (
                    VAR acv   : tak_all_command_glob;
                    VAR sparr : tak_syspointerarr;
                    col_cnt   : integer;
                    resultno  : tsp00_Int4);
 
        PROCEDURE
              a60_p_info_output (
                    VAR acv   : tak_all_command_glob;
                    VAR sparr : tak_syspointerarr);
 
      ------------------------------ 
 
        FROM
              Select_List : VAK61;
 
        PROCEDURE
              a61_p_long_info (
                    VAR acv    : tak_all_command_glob;
                    VAR dmli   : tak_dml_info;
                    VAR colinf : tak00_columninfo);
 
      ------------------------------ 
 
        FROM
              Execute_Select_Expression : VAK660;
 
        PROCEDURE
              a660_explain (
                    VAR acv   : tak_all_command_glob;
                    startnode : tsp00_Int2);
 
      ------------------------------ 
 
        FROM
              Resultname_handling : VAK663;
 
        PROCEDURE
              a663create_result_file (
                    VAR acv      : tak_all_command_glob;
                    m_type       : tgg00_MessType;
                    VAR res_tree : tgg00_FileId);
 
        PROCEDURE
              a663_get_result_info (
                    VAR acv          : tak_all_command_glob;
                    VAR resname      : tsp00_KnlIdentifier;
                    VAR modul_name   : tsp00_KnlIdentifier;
                    VAR resname_addr : tak_sysbufferaddress;
                    make_new_res     : boolean;
                    ftemptype        : tgg00_TfnTemp;
                    dstate           : tak_directory_state;
                    VAR f_ok         : boolean);
 
        FUNCTION
              a663parse_for_execute (VAR acv : tak_all_command_glob) : boolean;
 
        PROCEDURE
              a663_intern_resname_drop (VAR acv : tak_all_command_glob);
 
      ------------------------------ 
 
        FROM
              AK_universal_show_tools : VAK40;
 
        PROCEDURE
              a40get_catalog_table (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
      ------------------------------ 
 
        FROM
              AK_Show_table  : VAK47;
 
        PROCEDURE
              a47show_table (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob;
                    kw_index : integer);
 
      ------------------------------ 
 
        FROM
              AK_Show_view   : VAK48;
 
        PROCEDURE
              a48serverdb_show (
                    VAR acv       : tak_all_command_glob;
                    VAR a41v      : tak40_show_glob;
                    show_serverdb : boolean);
 
      ------------------------------ 
 
        FROM
              AK_Show_Procedure : VAK49;
 
        PROCEDURE
              a49execute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
      ------------------------------ 
 
        FROM
              AK_Show_statistics   : VAK42;
 
        PROCEDURE
              a42execute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
              (* PTS 1105189 E.Z. *)
 
      ------------------------------ 
 
        FROM
              AK_show_sysmon : VAK421;
 
        PROCEDURE
              a421connection (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421allocator (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421region (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421storage (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421ioaccess (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421backupioaccess (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421spec_thread (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421ukthread (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421deviothread (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421task (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421task_detail (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a421totalcount (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
              (* END PTS 1105189 E.Z. *)
 
        PROCEDURE
              a421spinlocks (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
      ------------------------------ 
 
        FROM
              AK_Show_user_priv    : VAK43;
 
        PROCEDURE
              a43execute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
      ------------------------------ 
 
        FROM
              AK_Show_synonym_domain  : VAK44;
 
        PROCEDURE
              a44containers (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a44domain_show (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a44dom_constraints (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a44oms_versions (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a44schemas (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a44sequence_show (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a44synonym_show_execute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
      ------------------------------ 
 
        FROM
              AK_Show_index_link   : VAK45;
 
        PROCEDURE
              a45bad_index_show (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
        PROCEDURE
              a45show_execute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob;
                    kw_index : integer);
 
      ------------------------------ 
 
        FROM
              AK_Show_program_usage : VAK46;
 
        PROCEDURE
              a46execute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
      ------------------------------ 
 
        FROM
              AK_Connect : VAK51;
 
        PROCEDURE
              a51switch_user (
                    VAR acv            : tak_all_command_glob;
                    VAR new_user_name  : tsp00_KnlIdentifier;
                    VAR curr_user_name : tsp00_KnlIdentifier);
 
      ------------------------------ 
 
        FROM
              Executing_dispatcher : VAK501;
 
        PROCEDURE
              a501GetResultName (
                    VAR acv : tak_all_command_glob;
                    VAR resultName : tsp00_KnlIdentifier);
 
      ------------------------------ 
 
        FROM
              Executing_complex : VAK502;
 
        PROCEDURE
              a502destroy_file (
                    VAR acv  : tak_all_command_glob;
                    VAR tree : tgg00_FileId);
 
      ------------------------------ 
 
        FROM
              Part2_Select_Expression : VAK67;
 
        PROCEDURE
              a67_keyspecs (
                    VAR reskeyrec : tak_sysbufferaddress;
                    primlen     : integer;
                    invlen      : integer);
 
      ------------------------------ 
 
        FROM
              Catalog_Select_Optimizer : VAK722;
 
        PROCEDURE
              a722update_strategy (
                    VAR acv       : tak_all_command_glob;
                    VAR cat_strat : tgg07_StrCatalog);
 
      ------------------------------ 
 
        FROM
              AK_syntax_tools : VAK02;
 
        PROCEDURE
              a02_aparameter_name (
                    VAR acv       : tak_all_command_glob;
                    VAR put_node  : tsp00_Int2;
                    VAR last_node : tsp00_Int2);
 
        PROCEDURE
              a02_put_identifier (
                    VAR acv       : tak_all_command_glob;
                    VAR put_node  : tsp00_Int2;
                    VAR last_node : tsp00_Int2);
 
      ------------------------------ 
 
        FROM
              Scanner : VAK01;
 
        VAR
              a01sysnullkey       : tgg00_SysInfoKey;
              a01_i_show          : tsp00_KnlIdentifier;
              a01_il_b_identifier : tsp00_KnlIdentifier;
 
        PROCEDURE
              a01_next_symbol (VAR acv : tak_all_command_glob);
 
        PROCEDURE
              a01_call_put (
                    VAR acv    : tak_all_command_glob;
                    proc       : tak_procs;
                    subproc    : tsp00_Int2;
                    VAR curr_n : tsp00_Int2);
 
        PROCEDURE
              a01_get_keyword (
                    VAR acv      : tak_all_command_glob;
                    VAR index    : integer;
                    VAR reserved : boolean);
 
        PROCEDURE
              a01_is_end_symbol (VAR acv : tak_all_command_glob);
 
        FUNCTION
              a01mandatory_keyword (
                    VAR acv          : tak_all_command_glob;
                    required_keyword : integer) : boolean;
 
        PROCEDURE
              a01sets_identifier (
                    VAR id         : tsp00_KnlIdentifier;
                    set_identifier : tak_oldidentifier);
 
        PROCEDURE
              a01set32_identifier (
                    VAR id         : tsp00_KnlIdentifier;
                    set_identifier : tsp00_Lname);
 
      ------------------------------ 
 
        FROM
              Single_Select : VKB720;
 
        PROCEDURE
              k720finish_catalog_select (
                    VAR m             : tgg00_MessBlock;
                    VAR sel           : tgg00_SelectFieldsParam;
                    VAR strat         : tgg07_StrategyInfo;
                    VAR selrec        : tgg07_select_context;
                    VAR getrec        : tgg07_get_param;
                    VAR lbuf          : tgg00_Rec);
 
        PROCEDURE
              k720start_catalog_select (
                    VAR m             : tgg00_MessBlock;
                    VAR sel           : tgg00_SelectFieldsParam;
                    VAR strat         : tgg07_StrategyInfo;
                    VAR selrec        : tgg07_select_context;
                    VAR finding_possible : boolean );
 
      ------------------------------ 
 
        FROM
              KB_Join_Select : VKB74;
 
        PROCEDURE
              k74finish_catalog_join (
                    VAR m           : tgg00_MessBlock;
                    VAR getrec      : tgg07_get_param;
                    VAR selrec      : tgg07_select_context;
                    strat_maxresult : tsp00_Int2;
                    last_join_tab   : boolean);
 
        PROCEDURE
              k74start_catalog_join (
                    VAR m           : tgg00_MessBlock;
                    VAR getrec      : tgg07_get_param;
                    VAR selrec      : tgg07_select_context);
 
      ------------------------------ 
 
        FROM
              Configuration_Parameter : VGG01;
 
        VAR
              g01code          : tgg04_CodeGlobals;
 
        FUNCTION
              g01maxdevspaces : tsp00_Int4;
 
        FUNCTION
              g01maxlocks : tsp00_Int4;
 
        FUNCTION
              g01maxuser : tsp00_Int4;
 
      ------------------------------ 
 
        FROM
              Kernel_move_and_fill : VGG101;
 
        PROCEDURE
              SAPDB_PascalFill (
                    mod_id      : tsp00_C6;
                    mod_num     : tsp00_Int4;
                    obj_upb     : tsp00_Int4;
                    obj         : tsp00_MoveObjPtr;
                    obj_pos     : tsp00_Int4;
                    length      : tsp00_Int4;
                    fillchar    : char;
                    VAR e       : tgg00_BasisError);
 
        PROCEDURE
              SAPDB_PascalUnicodeFill (
                    mod_id      : tsp00_C6;
                    mod_num     : tsp00_Int4;
                    obj_upb     : tsp00_Int4;
                    obj         : tsp00_MoveObjPtr;
                    obj_pos     : tsp00_Int4;
                    length      : tsp00_Int4;
                    fillchar    : tsp00_C2;
                    VAR e       : tgg00_BasisError);
 
        PROCEDURE
              SAPDB_PascalForcedUnicodeFill (
                    obj_upb     : tsp00_Int4;
                    obj         : tsp00_MoveObjPtr;
                    obj_pos     : tsp00_Int4;
                    length      : tsp00_Int4;
                    fillchar    : tsp00_C2 );
 
        PROCEDURE
              SAPDB_PascalMove (
                    mod_id      : tsp00_C6;
                    mod_num     : tsp00_Int4;
                    source_upb  : tsp00_Int4;
                    dest_upb    : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    src_pos     : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    dest_pos    : tsp00_Int4;
                    length      : tsp00_Int4;
                    VAR e       : tgg00_BasisError);
 
        PROCEDURE
              SAPDB_PascalOverlappingMove (
                    mod_id      : tsp00_C6;
                    mod_num     : tsp00_Int4;
                    source_upb  : tsp00_Int4;
                    dest_upb    : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    src_pos     : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    dest_pos    : tsp00_Int4;
                    length      : tsp00_Int4;
                    VAR e       : tgg00_BasisError);
 
        PROCEDURE
              SAPDB_PascalForcedFill (
                    size        : tsp00_Int4;
                    m           : tsp00_MoveObjPtr;
                    pos         : tsp00_Int4;
                    len         : tsp00_Int4;
                    fillchar    : char);
 
        PROCEDURE
              SAPDB_PascalForcedMove (
                    source_upb  : tsp00_Int4;
                    destin_upb  : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    source_pos  : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    destin_pos  : tsp00_Int4;
                    length      : tsp00_Int4);
 
        PROCEDURE
              SAPDB_PascalForcedOverlappingMove (
                    source_upb  : tsp00_Int4;
                    destin_upb  : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    source_pos  : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    destin_pos  : tsp00_Int4;
                    length      : tsp00_Int4);
 
        PROCEDURE
              g10mv (
                    mod_id      : tsp00_C6;
                    mod_num     : tsp00_Int4;
                    source_upb  : tsp00_Int4;
                    dest_upb    : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    src_pos     : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    dest_pos    : tsp00_Int4;
                    length      : tsp00_Int4;
                    VAR e       : tgg00_BasisError);
 
        PROCEDURE
              s10mv (
                    source_upb  : tsp00_Int4;
                    destin_upb  : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    source_pos  : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    destin_pos  : tsp00_Int4;
                    length      : tsp00_Int4);
 
      ------------------------------ 
 
        FROM
              GG_allocator_interface : VGG941;
 
        FUNCTION
              gg941Allocate(VAR TransContext : tgg00_TransContext;
                    wantedBytes : integer) : tgg00_DataPartPtr;
 
        PROCEDURE
              gg941Deallocate(VAR TransContext : tgg00_TransContext;
                    VAR p : tgg00_DataPartPtr);
 
      ------------------------------ 
 
        FROM
              filesysteminterface_1 : VBD01;
 
        VAR
              b01niltree_id : tgg00_FileId;
 
        PROCEDURE
              b01empty_file (
                    VAR t       : tgg00_TransContext;
                    VAR file_id : tgg00_FileId);
 
        PROCEDURE
              b01destroy_file (
                    VAR t       : tgg00_TransContext;
                    VAR file_id : tgg00_FileId);
 
      ------------------------------ 
 
        FROM
              AK_error_handling : VAK07;
 
        PROCEDURE
              a07ak_system_error (
                    VAR acv  : tak_all_command_glob;
                    modul_no : integer;
                    id       : integer);
 
        PROCEDURE
              a07_b_put_error (
                    VAR acv  : tak_all_command_glob;
                    b_err    : tgg00_BasisError;
                    err_code : tsp00_Int4);
 
        PROCEDURE
              a07_error (
                    VAR acv  : tak_all_command_glob;
                    err      : tgg00_BasisError;
                    VAR nod1 : tsp00_Int2;
                    VAR nod2 : tsp00_Int2);
 
      ------------------------------ 
 
        FROM
              AK_error_handling : VAK071;
 
        FUNCTION
              a07_return_code (
                    b_err   : tgg00_BasisError;
                    sqlmode : tsp00_SqlMode) : tsp00_Int2;
 
      ------------------------------ 
 
        FROM
              SystemViews : VAK400;
 
        FUNCTION
              a400SVEstimateRows(
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob) : integer;
 
        PROCEDURE
              a400SVExecute (
                    VAR acv  : tak_all_command_glob;
                    VAR a41v : tak40_show_glob);
 
.CM *-END-* use -----------------------------------------
***********************************************************
 
Synonym :
 
        PROCEDURE
              a05identifier_get;
 
              tsp00_MoveObj tsp00_KnlIdentifier
 
        FUNCTION
              gg941Allocate;
 
              tsp00_Addr tgg00_DataPartPtr
 
        PROCEDURE
              gg941Deallocate;
 
              tsp00_Addr tgg00_DataPartPtr
 
.CM *-END-* synonym -------------------------------------
***********************************************************
 
Specification:
 
Erkennt Syntax :
.sp
  'SHOW'  'TABLE' [  'QUICK'  ]
        [  <table_name>
        /  <auth_id> '.' '*'
         ]
.sp 3
Erkennt Syntax :
.sp
   'SHOW'  'TABLENAMES'
        [  '*'
        /  <prefix> '*'
        /  <auth_id> '.'
           [  '*'
           /  <prefix> '*'
            ]
         ]
.sp 3
Erkennt Syntax :
.sp
    'SHOW'
        'STATISTICS'
        ( 'CONFIG'
        / 'DATABASE'
        / 'LOG'
        / 'FILE' <file_name>
        / 'TABLE' <table_name>
        / 'COLUMN' <table_name>'.'<column_name>
        / 'INDEX' <table_name>'.' (<column_name> / <index_name>)
        / 'MONITORING' ( 'ON'
                       / 'OFF' )
        / 'USER' <username>
.sp 3
Erkennt Syntax :
.sp
    'SHOW'
        'DOMAIN'
           (
             [  <domain_name>  ]
           / <prefix>  '*'
           /  '*'
           )
.sp
Semantic_routinen :
.sp
   a44  :  1    show domain
        :  2    show domain  identifier / stern
.sp 3
Erkennt Syntax :
.sp
    'SHOW'
        'INDEX'
        [  <table_name>
        /  <auth_id> '.' <tablename>
         ]
.sp
Semantic_routinen :
.sp
   a43  :  1    show index   [ authid ] tablename
.sp 3
Erkennt Syntax :
.sp
    'SHOW'
        'SYNONYM'
        [  '*'
        /  <prefix> '*'
        /  <synonym_name>
         ]
.sp
Semantic_routinen :
.sp
   a44  :  3    show synonym
        :  4    show synonym  identifier / stern
.sp 3
Erkennt Syntax :
.sp
    'SHOW'
        'USER' [  <auth_id>
                  /  '*'    ]
.sp
Semantic_routinen :
.sp
   a43  :  1    show user
        :  2    show user authid
.CM *-END-* specification -------------------------------
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
PROCEDURE   ak41statistics (acv, put_node);
.sp 2
Erkennt 'show statistics' und erzeugt put_node mit
Semantic_call 'a42'  mit Art of
   1 :  start monitor
   2 :  show  monitor
   3 :  database
   4 :  log
   5 :  user
   6 :  config
   7 :  show version
   8 :  table
   9 :  index
  10 :  column
  11 :  string
  12 :  check database
  13 :  devspace
  20 :  start count
  21 :  stop  count
.sp 4
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.CM -lll-
Code    :
 
 
CONST
      showkeylen           = 4;
      c_allocatorstatistic = 'ALLOCATORSTATISTIC';
      c_bad_indexes        = 'BAD_INDEXES       ';
      c_columns            = 'COLUMNS           ';
      c_config             = 'CONFIGURATION     ';
      c_connected_users    = 'CONNECTED_USERS   ';
      c_connect_params     = 'CONNECTPARAMETERS ';
      c_consistent_views   = 'CONSISTENTVIEWS   '; (* PTS 1106007 *)
      c_constraints        = 'CONSTRAINTS       ';
      c_cons_columns       = 'CONSTCOLUMNS      ';
      c_containers         = 'CONTAINERS        ';
      c_container_roots    = 'CONTAINER_ROOTS   ';  (* PTS 1115641 FF *)
      c_container_chains   = 'CONTAINER_CHAINS  ';  (* PTS 1115641 FF *)
      c_container_keys     = 'CONTAINER_KEYS    ';  (* PTS 1115641 FF *)
      (*      c_ctrl_cache_stats   = 'CTRL_CACHE_STATS  '; *)
      (* PTS 1120445 D.T. *)
      c_ctrl_configuration = 'CTRL_CONFIGURATION';
      c_ctrl_volumes       = 'CTRL_VOLUMES      ';
      c_ctrl_io_statistics = 'CTRL_IO_STATISTICS';
      c_ctrl_locks         = 'CTRL_LOCKS        ';
      c_ctrl_log_statistics= 'CTRL_LOG_STATS    ';
      c_dbfunc_params      = 'DBFUNCPARAMS      ';
      c_dbfunctions        = 'DBFUNCTIONS       ';
      (* PTS 1115043 E.Z. *)
      c_dbm_state          = 'DBM_STATE         ';
      c_dbprocedures       = 'DBPROCEDURES      ';
      c_dbprocparams       = 'DBPROCPARAMETERS  ';
      c_db_columns         = 'DB_COLUMNS        ';
      c_db_cons_columns    = 'DB_CONSTCOLS      ';
      c_db_constraints     = 'DB_CONSTRAINTS    ';
      c_db_fk_keys         = 'DB_FOREIGN_KEYS   ';
      c_db_indexes         = 'DB_INDEXES        ';
      c_db_new_privileges  = 'DB_NEW_PRIVILEGES ';
      c_db_objects         = 'DB_OBJECTS        ';
      c_db_privileges      = 'DB_PRIVILEGES     ';
      c_db_procedures      = 'DB_PROCEDURES     ';
      c_db_ref_columns     = 'DB_REF_COLUMNS    ';
      c_db_roles           = 'DB_ROLES          ';
      c_db_sequences       = 'DB_SEQUENCES      ';
      c_db_synonyms        = 'DB_SYNONYMS       ';
      c_db_tables          = 'DB_TABLES         ';
      c_db_triggers        = 'DB_TRIGGERS       ';
      c_db_users           = 'DB_USERS          ';
      c_db_views           = 'DB_VIEWS          ';
      c_db_view_uses_table = 'DB_VIEW_USES_TABLE';
      c_volume_statistic   = 'VOLUMESTATISTICS  ';
      c_domains            = 'DOMAINS           ';
      c_domain_constraints = 'DOMAIN_CONSTRAINTS';
      c_files_old          = 'FILES             ';
      c_foreign_keys       = 'FOREIGN_KEYS      ';
      c_granted_privileges = 'GRANTED_PRIVILEGES';
      c_heap_content       = 'HEAP_CONTENT      ';
      c_history_info       = 'HISTORY_INFO      ';
      c_indexes            = 'INDEXES           ';
      c_indexpages         = 'INDEXPAGES        ';
      c_indexstatistics    = 'INDEXSTATISTICS   ';
      (* PTS 1115043 E.Z. *)
      c_info_gc_stats      = 'INFO_GC_STATS     ';
      (* PTS 1107717 E.Z. *)
      c_internal_state     = 'INTERNAL_STATE    ';
      c_locks_old          = 'LOCKS             ';
      c_lockstatistics_old = 'LOCKSTATISTICS    ';
      c_mapcharsets        = 'MAPCHARSETS       ';
      c_methods            = 'METHODS           ';
      c_monitor            = 'MONITOR           ';
      c_new_privileges     = 'NEW_PRIVILEGES    ';
      c_objects            = 'OBJECTS           ';
      c_odbc_columns       = 'ODBC_COLUMNS      ';
      c_odbc_indexes       = 'ODBC_INDEXES      ';
      c_odbc_index_stats   = 'ODBC_INDEXSTATS   ';
      c_odbc_table_stats   = 'ODBC_TABLESTATS   ';
      c_oms_lock_obj_info  = 'OMS_LOCKOBJ_INFO  '; (* PTS 1110315 *)
      c_oms_memory         = 'OMS_MEMORY        ';
      c_oms_monitor        = 'OMS_MONITOR       ';
      c_oms_versions       = 'OMS_VERSIONS      ';
      c_optimizer_stats    = 'OPTIMIZER_STATS   ';
      c_pages_const        = 'PAGES             ';
      c_parameters         = 'PARAMETERS        ';
      c_parsinfos          = 'PARSINFOS         ';
      c_privileges         = 'PRIVILEGES        ';
      c_ref_columns        = 'REFERENCED_COLUMNS';
      c_roles              = 'ROLES             ';
      c_roots              = 'ROOTS             ';
      c_running_cmds       = 'RUNNING_COMMANDS  ';
      c_schemas_old        = 'SCHEMAS           ';
      c_sequences          = 'SEQUENCES         ';
      c_serverdbs          = 'SERVERDBS         ';
      c_serverdb_stat      = 'SERVERDB_STATS    ';
      c_serverdb_state     = 'SERVER_DB_STATE   ';
      c_session_roles      = 'SESSION_ROLES     ';
      c_showview           = 'SHOWVIEW          ';
      (* PTS 1109404 E.Z. *)
      c_spinlocks          = 'SPINLOCKS         ';
      c_synonyms           = 'SYNONYMS          ';
      (* PTS 1114549 E.Z. *)
      c_sysmon_connection     = 'SYSMON_CONNECTION ';
      (* PTS 1105189 E.Z. *)
      c_sysmon_region         = 'SYSMON_REGION     ';
      c_sysmon_storage        = 'SYSMON_STORAGE    ';
      c_sysmon_ioaccess       = 'SYSMON_IOACCESS   ';
      c_sysmon_backupioaccess = 'SYSMON_BACKUPIOACC';
      c_sysmon_special_thread = 'SYSMON_SPECTHREAD ';
      c_sysmon_ukthread       = 'SYSMON_UKTHREAD   ';
      c_sysmon_iothread       = 'SYSMON_IOTHREAD   ';
      c_sysmon_task           = 'SYSMON_TASK       ';
      c_sysmon_active_task    = 'SYSMON_ACTIVE_TASK';
      c_sysmon_runnable       = 'SYSMON_RUNNABLE   ';
      c_sysmon_us             = 'SYSMON_US         ';
      c_sysmon_us_active      = 'SYSMON_US_ACTIVE  ';
      c_sysmon_us_runnable    = 'SYSMON_US_RUNNABLE';
      c_sysmon_sv             = 'SYSMON_SV         ';
      c_sysmon_sv_active      = 'SYSMON_SV_ACTIVE  ';
      c_sysmon_sv_runnable    = 'SYSMON_SV_RUNNABLE';
      c_sysmon_dw             = 'SYSMON_DW         ';
      c_sysmon_dw_active      = 'SYSMON_DW_ACTIVE  ';
      c_sysmon_dw_runnable    = 'SYSMON_DW_RUNNABLE';
      c_sysmon_totalcount     = 'SYSMON_TOTALCOUNT ';
      c_sysmon_task_detail    = 'SYSMON_TASK_DETAIL';
      (* END PTS 1105189 E.Z. *)
      (* PTS 1109995 E.Z. *)
      c_tables             = 'TABLES            ';
      c_table_stat         = 'TABLESTATISTICS   ';
      c_transactions_old   = 'TRANSACTIONS      ';
      c_trigger_params     = 'TRIGGERPARAMETERS ';
      c_triggers           = 'TRIGGERS          ';
      c_users              = 'USERS             ';
      c_user_statistics    = 'USERSTATISTICS    ';
      c_version_old        = 'VERSION           ';
      c_views              = 'VIEWS             ';
      c_view_uses_table    = 'VIEW_USES_TABLE   ';
      c_xparameters        = 'XPARAMETERS       ';
      (* BEGIN: PTS 1115043 U.J. *)
      c_activeconfiguration             = 'ACTIVECONFIGURATION             ';
      c_backupinformation               = 'BACKUPINFORMATION               ';
      c_backupthreads                   = 'BACKUPTHREADS                   ';
      c_cachestatistics                 = 'CACHESTATISTICS                 ';
      c_cachestatisticsreset            = 'CACHESTATISTICSRESET            ';
      c_classcontainers                 = 'CLASSCONTAINERS                 ';
      c_classcontainerstatistics        = 'CLASSCONTAINERSTATISTICS        ';
      c_classcontainerstatisticsreset   = 'CLASSCONTAINERSTATISTICSRESET   ';
      c_commandcachestatistics          = 'COMMANDCACHESTATISTICS          ';
      c_commandcachestatisticsreset     = 'COMMANDCACHESTATISTICSRESET     ';
      c_commandstatistics               = 'COMMANDSTATISTICS               ';
      c_commandstatisticsreset          = 'COMMANDSTATISTICSRESET          ';
      c_datacache                       = 'DATACACHE                       ';
      c_datastatistics                  = 'DATASTATISTICS                  ';
      c_datastatisticsreset             = 'DATASTATISTICSRESET             ';
      c_datavolumes                     = 'DATAVOLUMES                     ';
      c_events                          = 'EVENTS                          ';
      c_files                           = 'FILES_NEW                       ';
      c_historycleanupstatistics        = 'HISTORYCLEANUPSTATISTICS        ';
      c_historycleanupstatisticsreset   = 'HISTORYCLEANUPSTATISTICSRESET   ';
      c_hotstandbycomponent             = 'HOTSTANDBYCOMPONENT             ';
      c_hotstandbygroup                 = 'HOTSTANDBYGROUP                 ';
      c_indexsizedetails                = 'INDEXSIZEDETAILS                ';
      c_instance                        = 'INSTANCE                        ';
      c_iothreadstatistics              = 'IOTHREADSTATISTICS              ';
      c_iothreadstatisticsreset         = 'IOTHREADSTATISTICSRESET         ';
      c_kernelmessages                  = 'KERNELMESSAGES                  ';
      c_locks                           = 'LOCKS_NEW                       ';
      c_lockstatistics                  = 'LOCKSTATISTICS_NEW              ';
      c_lockstatisticsreset             = 'LOCKSTATISTICSRESET             ';
      c_logstatistics                   = 'LOGSTATISTICS                   ';
      c_logstatisticsreset              = 'LOGSTATISTICSRESET              ';
      c_logvolumes                      = 'LOGVOLUMES                      ';
      c_machineconfiguration            = 'MACHINECONFIGURATION            ';
      c_machineutilization              = 'MACHINEUTILIZATION              ';
      c_memoryallocatorstatistics       = 'MEMORYALLOCATORSTATISTICS       ';
      c_memoryallocatorstatisticsreset  = 'MEMORYALLOCATORSTATISTICSRESET  ';
      c_memoryholders                   = 'MEMORYHOLDERS                   ';
      c_miscellaneous                   = 'MISCELLANEOUS                   ';
      c_objectlocks                     = 'OBJECTLOCKS                     ';
      c_omslocks                        = 'OMSLOCKS                        ';
      c_omsprocedurestatistics          = 'OMSPROCEDURESTATISTICS          ';
      c_omsprocedurestatisticsreset     = 'OMSPROCEDURESTATISTICSRESET     ';
      c_omsversions                     = 'OMSVERSIONS                     ';
      c_optimizerinformation            = 'OPTIMIZERINFORMATION            ';
      c_pagelocks                       = 'PAGELOCKS                       ';
      c_readerwriterlockstatistics      = 'READERWRITERLOCKSTATISTICS      ';
      c_readerwriterlockstatisticsreset = 'READERWRITERLOCKSTATISTICSRESET ';
      c_regionlocks                     = 'REGIONLOCKS                     ';
      c_regionstatistics                = 'REGIONSTATISTICS                ';
      c_regionstatisticsreset           = 'REGIONSTATISTICSRESET           ';
      c_restartinformation              = 'RESTARTINFORMATION              ';
      c_schemas                         = 'SCHEMAS_NEW                     ';
      c_sessions                        = 'SESSIONS                        ';
      c_snapshots                       = 'SNAPSHOTS                       ';
      c_spinlockpoolstatistics          = 'SPINLOCKPOOLSTATISTICS          ';
      c_spinlockpoolstatisticsreset     = 'SPINLOCKPOOLSTATISTICSRESET     ';
      c_spinlockstatistics              = 'SPINLOCKSTATISTICS              ';
      c_spinlockstatisticsreset         = 'SPINLOCKSTATISTICSRESET         ';
      c_tablesizedetails                = 'TABLESIZEDETAILS                ';
      c_taskgroupstatistics             = 'TASKGROUPSTATISTICS             ';
      c_taskgroupstatisticsreset        = 'TASKGROUPSTATISTICSRESET        ';
      c_taskstatistics                  = 'TASKSTATISTICS                  ';
      c_taskstatisticsreset             = 'TASKSTATISTICSRESET             ';
      c_transactions                    = 'TRANSACTIONS_NEW                ';
      c_version                         = 'VERSION_NEW                     ';
      (* END: PTS 1115043 U.J. *)
 
VAR
      a41sysdd_tablenames : ARRAY[tgg00_ShowKind] OF tsp00_KnlIdentifier;
      a41sysdd_sort       : ARRAY[1..255] OF tgg00_ShowKind;
      a41sysdd_cnt        : integer;
 
 
(*------------------------------*) 
 
PROCEDURE
      a41show_result_name (
            VAR acv      : tak_all_command_glob;
            VAR put_node : tsp00_Int2);
 
VAR
      res_kw    : boolean;
      last_node : tsp00_Int2;
      ikw       : integer;
 
BEGIN
WITH acv, a_scv DO
    BEGIN
    a01_next_symbol (acv);
    IF  sc_symb = s_leftpar
    THEN
        BEGIN (* show (resultname) .... *)
        a01_next_symbol    (acv);
        a01_get_keyword (acv, ikw, res_kw);
        IF  (res_kw OR
            (ikw = cak_i_same) OR
            (ikw = cak_i_pos))
        THEN
            a07_error (acv, e_reserved_identifier,
                  put_node, put_node)
        ELSE
            BEGIN
            a02_put_identifier (acv, put_node, last_node);
            IF  sc_symb <> s_rightpar
            THEN
                a07_error (acv, e_missing_identifier,
                      put_node, put_node)
            ELSE
                a01_next_symbol (acv);
            (*ENDIF*) 
            END
        (*ENDIF*) 
        END;
    (*ENDIF*) 
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      ak41end_showfile   (
            VAR acv  : tak_all_command_glob;
            VAR a41v : tak40_show_glob);
 
VAR
      b_err   : tgg00_BasisError;
      ix      : integer;
      col_ptr : tak00_colinfo_ptr;
      ke      : tgg00_SysInfoKey;
      dmli    : tak_dml_info;
 
BEGIN
a54_dml_init (dmli, false);
WITH acv  DO
    IF  a_returncode = 0
    THEN
        WITH a41v, a4p_arr DO
            BEGIN
            (* PTS 1106265 E.Z. *)
            IF  a_ex_kind <> only_parsing
            THEN
                ak41create_fetch_record (acv, a41v)
            ELSE
                BEGIN
                ke              := a01sysnullkey;
                ke.sauthid[ 1 ] := cak_tempinfo_byte;
                g10mv ('VAK41 ',   1,    
                      sizeof(acv.a_pars_last_key), sizeof(ke.sauthid),
                      @acv.a_pars_last_key,
                      1, @ke.sauthid, 2, mxak_parskey, b_err);
                ke.sauthid[ mxak_parskey + 1 ]:= chr(0);
                ke.sentrytyp                  := cak_eresult;
                ke.slinkage[ 2 ]              := chr(1);
                a10cpy_result (acv, a4p_arr.pinfop^.syskey,
                      ke, -1, b_err);
                IF  (a663parse_for_execute( acv ) OR
                    (acv.a_cmd_segm^.sp1c_mess_type <> sp1m_parse))
                THEN
                    BEGIN
                    a10del_sysinfo (acv, a4p_arr.pinfop^.syskey, b_err);
                    a4p_arr.pinfop := NIL;
                    END
                (*ENDIF*) 
                END;
            (*ENDIF*) 
            a_intern_explain  := false;
            a_result_name     := a4showfile_name;
            a_output_data_pos := 1;
            IF  (a_returncode = 0) AND
                (a_ex_kind <> only_parsing)
            THEN
                BEGIN
                IF  a_info_output
                THEN
                    BEGIN
                    a60_get_longinfobuffer (acv, dmli.d_sparr,
                          a4p_arr.pinfop^.sbase.bmaxcol - 1,
                          a_show_curr.fileTempCnt_gg00);
                    IF  a_returncode = 0
                    THEN
                        FOR ix := 2 TO a4p_arr.pinfop^.sbase.bmaxcol DO
                            BEGIN
                            a06extcolno (a4p_arr.pinfop^.sbase,
                                  ix, col_ptr);
                            a61_p_long_info (acv, dmli, col_ptr^)
                            END;
                        (*ENDFOR*) 
                    (*ENDIF*) 
                    IF  a_returncode = 0
                    THEN
                        a60_p_info_output (acv, dmli.d_sparr);
                    (* PTS 1102464 E.Z. *)
                    (*ENDIF*) 
                    IF  a_returncode = 0
                    THEN
                        BEGIN
                        a10add_sysinfo (acv, dmli.d_sparr.pcolnamep, b_err);
                        IF  b_err <> e_ok
                        THEN
                            a07_b_put_error (acv, b_err, 1)
                        ELSE
                            BEGIN
                            a_resname_addr[cak_extern_pos]^.sresname.resinfobuf := 1;
                            WITH dmli.d_sparr.pinfop^ DO
                                b_sl := sizeof(sshortinfo) - sizeof(sshortinfo.siinfo) +
                                      sshortinfo.sicount * sizeof(tsp1_param_info);
                            (*ENDWITH*) 
                            a10add_sysinfo (acv, dmli.d_sparr.pinfop, b_err);
                            IF  b_err <> e_ok
                            THEN
                                a07_b_put_error (acv, b_err, 1)
                            ELSE
                                WITH a_resname_addr[ cak_extern_pos ]^.sresname DO
                                    resinfobuf := succ (resinfobuf);
                                (*ENDWITH*) 
                            (*ENDIF*) 
                            END;
                        (*ENDIF*) 
                        END
                    (*ENDIF*) 
                    END;
                (*ENDIF*) 
                a60rescount (acv, a_show_last_key);
&               IFDEF TRACE
                t01int4 (ak_sem, 'show_last_ke', acv.a_show_last_key);
&               ENDIF
                IF  (acv.a_show_last_key = 0)
                THEN (* no show-records in show file *)
                    a07_b_put_error (acv, e_row_not_found, 1);
                (*ENDIF*) 
                a_show_last_key := 0;
                END
            ELSE
                a_show_last_key := -1;
            (*ENDIF*) 
            END;
        (*ENDWITH*) 
    (*ENDIF*) 
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      ak41create_fetch_record (
            VAR acv  : tak_all_command_glob;
            VAR a41v : tak40_show_glob);
 
VAR
      b_err          : tgg00_BasisError;
      identifier_len : integer;
      i              : integer;
      ci             : integer;
      cnt            : integer;
      primlen        : integer;
      recordlen      : integer;
&     ifdef trace
      colname        : tsp00_KnlIdentifier;
&     endif
 
BEGIN
WITH acv, a41v, a4p_arr, pinfop^, sresult DO
    BEGIN
    a4sysk           := syskey;
    a4sysk.sentrytyp := cak_ereskey;
    a4sysk.slinkage  := cgg_zero_c2;
&   IFDEF TRACE
    t01int4 (ak_sem, 'skeylen -1  ', syskey.skeylen);
&   ENDIF
    identifier_len := sizeof (tsp00_KnlIdentifier);
    primlen := (3 * identifier_len) +
          2 * (identifier_len) + 1 + showkeylen;
    cnt := bmaxcol-1;
    ci  := bcolumn[bfirstcolind]^.cnextind;
    FOR i := 1 TO bmaxcol - 1 DO
        WITH bcolumn[ci]^ DO
            BEGIN
            IF  (cdatatyp = dunicode) AND (cinoutlen-1 > 255)
            THEN
                cnt := succ(cnt);
&           ifdef TRACE
            (*ENDIF*) 
            a061get_colname (bcolumn[ci]^, colname);
            t01lidentifier  (ak_sem, colname);
            t01int4 (ak_sem, 'inoutlen    ', bcolumn[ci]^.cinoutlen);
            t01int4 (ak_sem, 'cnt         ', cnt);
&           endif
            ci := cnextind
            END;
        (*ENDWITH*) 
    (*ENDFOR*) 
    recordlen := sizeof(tak_resultkeyrecord) - mxak_res_keysbuf +
          4 + cnt * mxak_change_colinfo + 4*primlen;
    a10_fix_len_get_sysinfo (acv, a4sysk, d_release,
          recordlen, 0, a4sysbuf, b_err);
&   IFDEF TRACE
    t01int4 (ak_sem, 'skeylen 6   ', syskey.skeylen);
&   ENDIF
    IF  a_returncode = 0
    THEN
        BEGIN
        WITH a4sysbuf^, sreskey DO
            BEGIN
            res_nextpos              := 0;
            res_actres               := a_show_last_key;
            res_prevpos              := 0;
            res_treeids.file_id      := b01niltree_id;
            res_treeids.inv_id       := b01niltree_id;
            res_restree              :=
                  a_resname_addr[ cak_extern_pos ]^.sresname.restreeid;
            res_resultname           := a4showfile_name;
            res_order                := a4sh_kind in [
                  sh_column,
                  sh_constraint,
                  sh_domain_data,
                  sh_index,
                  sh_odbc_index, (* PTS 1114119 T.A. *)
                  sh_link,
                  sh_mapset,
                  sh_procedure,
                  sh_table,
                  sh_trigger,
                  sh_user];
            res_build                := true;
            res_actres               := a_show_last_key;
            res_resstate             := [ rs_result, rs_reuseable ];
            res_keylen               := 0;
&           IFDEF TRACE
            t01int4 (ak_sem, 'res_keylen  ', res_keylen);
            t01int4 (ak_sem, 'showkeylen  ', showkeylen);
&           ENDIF
            res_keylen := res_keylen + showkeylen;
&           IFDEF TRACE
            t01int4 (ak_sem, 'res_keylen  ', res_keylen);
&           ENDIF
            res_reclen             := cgg_rec_key_offset +
                  res_keylen + blenfixedcol;
            res_updkey.ks_len      := 0;
            res_length             := res_reclen;
            res_useupdk            := 0;
            res_updtabid           := cgg_zero_id;
            res_for_update         := false;
            res_upd_tabcnt         := 0;
            res_outcolno           := bmaxcol - 1;
            res_unlocktab          := cgg_zero_id;
            res_parsinfob          := csp1_p_none;
            res_pars_dt_format     := dtf_none;
            (* PTS 1106955 E.Z. *)
            res_pars_sqlmode       := a_sqlmode;
            res_decresdel          := dr_sql_db;
            res_first_fetch        := true;
            res_eof                := false;
            res_change.cr_colcount := cnt;
            res_dist_optim         := NO_DISTINCT_OPTIM_GG07;
            res_qual_kind          := primary_only;
            ci                     := bcolumn[bfirstcolind]^.cnextind;
            i := 1;
            WHILE i <= cnt DO
                WITH res_change, cr_columns[i], bcolumn[ci]^ DO
                    BEGIN
                    ch_startpos := res_keylen + ccolstack.epos
                          + cgg_rec_key_offset;
                    ch_length   := chr(cinoutlen);
                    ch_type     := [  ];
                    IF  cdatatyp = dunicode
                    THEN
                        BEGIN
                        (* trick *)
                        ch_startpos := succ(ch_startpos);
                        ch_length   := pred(ch_length);
                        IF  a_out_packet^.sp1_header.sp1h_mess_swap <> sw_normal
                        THEN
                            ch_type     := [ ch_to_multibyte_set ]
                        ELSE
                            ch_type     := [ ];
                        (*ENDIF*) 
                        IF  cinoutlen-1 > 255
                        THEN
                            BEGIN
                            ch_length := chr(255);
                            cr_columns[i+1].ch_startpos := ch_startpos+255;
                            cr_columns[i+1].ch_length   := chr(cinoutlen-1 - 255);
                            cr_columns[i+1].ch_type     := cr_columns[i].ch_type;
                            i := succ(i)
                            END
                        (*ENDIF*) 
                        END
                    ELSE
                        BEGIN
                        IF  (a_mess_code <  csp_unicode_swap) AND
                            (a_mess_code <> g01code.ctype)
                        THEN
                            ch_type := ch_type + [ ch_to_ascii ]
                        ELSE
                            IF  ((a_out_packet^.sp1_header.sp1h_mess_code in
                                [ csp_unicode_swap, csp_unicode ]) AND
                                (cdatatyp in [ ddate, dtime ]))
                            THEN
                                BEGIN
                                ch_startpos := succ(ch_startpos);
                                ch_length   := pred(ch_length);
                                ch_type     := ch_type + [ ch_to_multibyte_set ];
                                END;
                            (*ENDIF*) 
                        (*ENDIF*) 
                        CASE cdatatyp OF
                            ddate :
                                BEGIN
                                ch_type := ch_type + [ ch_date ] -
                                      [ ch_to_ascii ];
                                END;
                            dtime :
                                BEGIN
                                ch_type := ch_type + [ ch_time_or_timestamp ] -
                                      [ ch_to_ascii ];
                                END;
                            dchb :
                                ch_type := ch_type -
                                      [ ch_to_ascii ];
                            OTHERWISE;
                            END
                        (*ENDCASE*) 
                        END;
                    (*ENDIF*) 
                    i := succ(i);
                    ci := cnextind
                    END;
                (*ENDWITH*) 
            (*ENDWHILE*) 
            a67_keyspecs (a4sysbuf, res_keylen, 0);
            SAPDB_PascalFill ('VAK41 ',   2,    
                  sizeof(res_keysbuf), @res_keysbuf,
                  res_stopkeys.reckeyspec.ks_pos,
                  res_stopkeys.reckeyspec.ks_len, chr(255),
                  a_returncode);
            a4sysbuf^.b_sl := sizeof(tak_resultkeyrecord) -
                  mxak_res_keysbuf +
                  4 + res_change.cr_colcount*mxak_change_colinfo +
                  4*res_keylen;
            a4sysbuf^.sreskey.res_fullen := a4sysbuf^.b_sl;
            a10_add_repl_sysinfo (acv,
                  a4sysbuf, b_err = e_sysinfo_not_found, b_err);
            IF  b_err <> e_ok
            THEN
                a07_b_put_error (acv, b_err, 1)
            ELSE
                a_resname_addr[ cak_extern_pos ]^.sresname.resexecuted :=
                      true;
            (*ENDIF*) 
            END;
        (*ENDWITH*) 
        END;
    (*ENDIF*) 
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      ak41init_showfile   (
            VAR acv  : tak_all_command_glob;
            VAR a41v : tak40_show_glob);
 
VAR
      i    : integer;
      f_ok : boolean;
 
BEGIN
WITH acv, a41v DO
    BEGIN
    a663_get_result_info (acv, a4showfile_name, a_modul_name,
          a_resname_addr[ cak_extern_pos ],
          true, ttfnUserResult_egg00, d_fix, f_ok);
    IF  f_ok
    THEN
        BEGIN
        a663create_result_file (acv, m_create_table,
              a_resname_addr[ cak_extern_pos ]^.sresname.restreeid);
        IF  a_transinf.tri_trans.trError_gg00 <> e_ok
        THEN
            a07_b_put_error (acv, a_transinf.tri_trans.trError_gg00, 1)
        ELSE
            BEGIN
            WITH a_resname_addr[ cak_extern_pos ]^.sresname DO
                BEGIN
                resstate         := resstate + [ rs_result, rs_reuseable ];
                reseparsk.p_kind := m_show;
                END;
            (*ENDWITH*) 
            FOR i := 1 TO 4 DO
                a4sh_key[ i ] := chr(0);
            (*ENDFOR*) 
            a_show_last_key := 0;
            END;
        (*ENDIF*) 
        END;
    (*ENDIF*) 
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41_a_check_database (
            VAR acv      : tak_all_command_glob;
            VAR put_node : tsp00_Int2);
 
VAR
      last_n : tsp00_Int2;
 
BEGIN
WITH acv, a_scv DO
    BEGIN
    a_return_segm^.sp1r_function_code := csp1_select_fc;
    a01_call_put (acv, a44, 1, put_node);
    IF  a01mandatory_keyword (acv, cak_i_database)
    THEN
        BEGIN
        a02_aparameter_name (acv, a_ap_tree^[ put_node ].n_lo_level,
              last_n);
        IF  a01mandatory_keyword (acv, cak_i_log)
        THEN
            a02_aparameter_name (acv,
                  a_ap_tree^[ last_n ].n_lo_level, last_n);
        (*ENDIF*) 
        END;
    (*ENDIF*) 
    a01_is_end_symbol (acv)
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41_astart_stop_statement  (
            VAR acv      : tak_all_command_glob;
            VAR put_node : tsp00_Int2);
 
VAR
      kw_index   : integer;
      last_n     : tsp00_Int2;
      res_kw     : boolean;
      scv        : tak_scanner_glob;
 
BEGIN
WITH acv, a_scv DO
    BEGIN
    a01_get_keyword (acv, kw_index, res_kw);
    IF  (kw_index = cak_i_monitor)
    THEN
        BEGIN
        a_return_segm^.sp1r_function_code := csp1_monitor_fc;
        a01_next_symbol (acv);
        a01_get_keyword (acv, kw_index, res_kw);
        CASE kw_index OF
            cak_i_on, cak_i_off :
                a01_call_put (acv, a42, kw_index, put_node);
            cak_i_init :
                BEGIN
                a01_call_put (acv, a42, kw_index, put_node);
                (* PTS 1108772 *)
                scv := acv.a_scv;
                a01_next_symbol(acv);
                IF  acv.a_scv.sc_symb <> s_eof
                THEN
                    BEGIN
                    IF  a01mandatory_keyword (acv, cak_i_object)
                    THEN
                        acv.a_ap_tree^[put_node].n_length := cak_i_object;
                    (*ENDIF*) 
                    END
                ELSE
                    BEGIN
                    acv.a_scv := scv;
                    acv.a_ap_tree^[put_node].n_length := cak_i_no_keyword;
                    END
                (*ENDIF*) 
                END;
            cak_i_object :
                BEGIN
                a01_next_symbol(acv);
                a01_get_keyword (acv, kw_index, res_kw);
                CASE kw_index OF
                    cak_i_on, cak_i_off :
                        BEGIN
                        a01_call_put (acv, a42, cak_i_object, put_node);
                        acv.a_ap_tree^[put_node].n_length := kw_index;
                        a01_next_symbol(acv);
                        END;
                    OTHERWISE
                        a07_error (acv, e_wanted_keyword, put_node, last_n);
                    END;
                (*ENDCASE*) 
                END;
            OTHERWISE
                a07_error (acv, e_wanted_keyword, put_node, last_n);
            END;
        (*ENDCASE*) 
        END
    ELSE
        a07_error (acv,e_invalid_keyword,put_node, last_n);
    (*ENDIF*) 
    a01_next_symbol   (acv);
    a01_is_end_symbol (acv);
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41glob_init;
 
VAR
      found    : boolean;
      ix       : tgg00_ShowKind;
      kx       : integer;
      sort_i   : integer;
      sort_cnt : integer;
 
BEGIN
FOR ix := sh_no_kind TO sh_fill3 DO
    FOR kx := 1 TO sizeof (a41sysdd_tablenames[ix]) DO
        a41sysdd_tablenames[ix, kx] := chr(255);
    (*ENDFOR*) 
(*ENDFOR*) 
a01sets_identifier (
      a41sysdd_tablenames[sh_allocatorstatistic], c_allocatorstatistic);
a01sets_identifier (
      a41sysdd_tablenames[sh_bad_index], c_bad_indexes);
a01sets_identifier (
      a41sysdd_tablenames[sh_column], c_columns);
(* PTS 1115043 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_dbm_state], c_dbm_state);
a01sets_identifier (
      a41sysdd_tablenames[sh_domain_data], c_parameters);
a01sets_identifier (
      a41sysdd_tablenames[sh_connect], c_connected_users);
a01sets_identifier (
      a41sysdd_tablenames[sh_connect_param], c_connect_params);
a01sets_identifier (
      a41sysdd_tablenames[sh_constraint], c_constraints);
a01sets_identifier (
      a41sysdd_tablenames[sh_cons_columns], c_cons_columns);
a01set32_identifier (
      a41sysdd_tablenames[sh_objectlocks], c_objectlocks);
a01sets_identifier (
      a41sysdd_tablenames[sh_oms_containers], c_containers);
a01sets_identifier (
      a41sysdd_tablenames[sh_container_roots], c_container_roots); (* PTS 1115641 FF *)
a01sets_identifier (
      a41sysdd_tablenames[sh_container_chains], c_container_chains); (* PTS 1115641 FF *)
a01sets_identifier (
      a41sysdd_tablenames[sh_container_keys], c_container_keys); (* PTS 1115641 FF *)
a01sets_identifier (
      a41sysdd_tablenames[sh_ctrl_configuration], c_ctrl_configuration);
a01sets_identifier (
      a41sysdd_tablenames[sh_ctrl_devspaces], c_ctrl_volumes);
a01sets_identifier (
      a41sysdd_tablenames[sh_ctrl_io_statistics], c_ctrl_io_statistics);
a01sets_identifier (
      a41sysdd_tablenames[sh_ctrl_locks], c_ctrl_locks);
a01sets_identifier (
      a41sysdd_tablenames[sh_ctrl_log], c_ctrl_log_statistics);
(* a01sets_identifier (
      a41sysdd_tablenames[sh_ctrl_cache], c_ctrl_cache_stats); *)
(* PTS 1120445 D.T. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_heap_content], c_heap_content);
a01sets_identifier (
      a41sysdd_tablenames[sh_history_info], c_history_info);
a01sets_identifier (
      a41sysdd_tablenames[sh_index], c_indexes);
a01sets_identifier (
      a41sysdd_tablenames[sh_info_gc_stats], c_info_gc_stats);
a01sets_identifier (
      a41sysdd_tablenames[sh_files_old], c_files_old);
a01sets_identifier (
      a41sysdd_tablenames[sh_link], c_foreign_keys);
a01sets_identifier (
      a41sysdd_tablenames[sh_lock], c_locks_old);
a01sets_identifier (
      a41sysdd_tablenames[sh_mapset], c_mapcharsets);
a01sets_identifier (
      a41sysdd_tablenames[sh_object], c_objects);
a01sets_identifier (
      a41sysdd_tablenames[sh_oms_lock], c_oms_lock_obj_info); (* PTS 1110315 *)
a01sets_identifier (
      a41sysdd_tablenames[sh_odbc_index], c_odbc_indexes); (* PTS 1114119 *)
a01sets_identifier (
      a41sysdd_tablenames[sh_oms_memory], c_oms_memory);
a01sets_identifier (
      a41sysdd_tablenames[sh_oms_versions], c_oms_versions);
a01sets_identifier (
      a41sysdd_tablenames[sh_monitor_oms], c_oms_monitor);
a01sets_identifier (
      a41sysdd_tablenames[sh_table_stat], c_optimizer_stats);
a01sets_identifier (
      a41sysdd_tablenames[sh_pages], c_pages_const);
a01sets_identifier (
      a41sysdd_tablenames[sh_p_prog], c_privileges);
a01sets_identifier (
      a41sysdd_tablenames[sh_param_dbproc], c_dbprocparams);
a01sets_identifier (
      a41sysdd_tablenames[sh_param_trigger], c_trigger_params);
a01sets_identifier (
      a41sysdd_tablenames[sh_priv_granted_to], c_granted_privileges);
a01sets_identifier (
      a41sysdd_tablenames[sh_sequence], c_sequences);
a01sets_identifier (
      a41sysdd_tablenames[sh_session_roles], c_session_roles);
a01sets_identifier (
      a41sysdd_tablenames[sh_procedure], c_dbprocedures);
a01sets_identifier (
      a41sysdd_tablenames[sh_ref_column], c_ref_columns);
a01sets_identifier (
      a41sysdd_tablenames[sh_roles], c_roles);
a01sets_identifier (
      a41sysdd_tablenames[sh_roots],  c_roots);
a01sets_identifier (
      a41sysdd_tablenames[sh_serverdb], c_serverdbs);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_config], c_config);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_database], c_serverdb_stat);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_devspace], c_volume_statistic);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_index], c_indexstatistics);
a01sets_identifier (
      a41sysdd_tablenames[sh_indexpages], c_indexpages);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_lock], c_lockstatistics_old);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_monitor], c_monitor);
a01sets_identifier (
      a41sysdd_tablenames[sh_methods], c_methods);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_state], c_serverdb_state);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_table], c_table_stat);
a01sets_identifier (
      a41sysdd_tablenames[sh_st_user], c_user_statistics);
a01sets_identifier (
      a41sysdd_tablenames[sh_synonym], c_synonyms);
a01sets_identifier (
      a41sysdd_tablenames[sh_table], c_tables);
a01sets_identifier (
      a41sysdd_tablenames[sh_trigger], c_triggers);
a01sets_identifier (
      a41sysdd_tablenames[sh_u_domain], c_domains);
a01sets_identifier (
      a41sysdd_tablenames[sh_user], c_users);
a01sets_identifier (
      a41sysdd_tablenames[sh_version_old], c_version_old);
a01sets_identifier (
      a41sysdd_tablenames[sh_view], c_views);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_column], c_db_columns);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_constraint], c_db_constraints);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_cons_columns], c_db_cons_columns);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_foreign_key], c_db_fk_keys);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_index], c_db_indexes);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_object], c_db_objects);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_priv_granted], c_db_privileges);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_procedures], c_db_procedures);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_roles], c_db_roles);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_sequences], c_db_sequences);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_synonyms], c_db_synonyms);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_table], c_db_tables);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_triggers], c_db_triggers);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_user], c_db_users);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_views], c_db_views);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_ref_columns], c_db_ref_columns);
a01sets_identifier (
      a41sysdd_tablenames[sh_dbfunctions], c_dbfunctions);
a01sets_identifier (
      a41sysdd_tablenames[sh_view_uses_table], c_view_uses_table);
a01sets_identifier (
      a41sysdd_tablenames[sh_trans], c_transactions_old);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_view_uses_table], c_db_view_uses_table);
a01sets_identifier (
      a41sysdd_tablenames[sh_new_privileges], c_new_privileges);
a01sets_identifier (
      a41sysdd_tablenames[sh_all_new_privileges], c_db_new_privileges);
a01sets_identifier (
      a41sysdd_tablenames[sh_domain_constraints], c_domain_constraints);
a01sets_identifier (
      a41sysdd_tablenames[sh_dbfunc_parameters], c_dbfunc_params);
a01sets_identifier (
      a41sysdd_tablenames[sh_xparam], c_xparameters);
a01sets_identifier (
      a41sysdd_tablenames[sh_odbc_columns], c_odbc_columns);
a01sets_identifier (
      a41sysdd_tablenames[sh_odbc_st_index], c_odbc_index_stats);
a01sets_identifier (
      a41sysdd_tablenames[sh_odbc_st_table], c_odbc_table_stats);
a01sets_identifier (
      a41sysdd_tablenames[sh_show_view], c_showview);
a01sets_identifier (
      a41sysdd_tablenames[sh_running_cmds], c_running_cmds);
a01sets_identifier (
      a41sysdd_tablenames[sh_schema], c_schemas_old);
(* PTS 1114549 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_connection], c_sysmon_connection);
(* PTS 1105189 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_region], c_sysmon_region);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_storage], c_sysmon_storage);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_ioaccess], c_sysmon_ioaccess);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_backupioaccess], c_sysmon_backupioaccess);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_specthread], c_sysmon_special_thread);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_ukthread], c_sysmon_ukthread);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_deviothread], c_sysmon_iothread);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_task], c_sysmon_task);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_active_task], c_sysmon_active_task);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_runnable], c_sysmon_runnable);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_us], c_sysmon_us);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_us_active], c_sysmon_us_active);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_us_runnable], c_sysmon_us_runnable);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_sv], c_sysmon_sv);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_sv_active], c_sysmon_sv_active);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_sv_runnable], c_sysmon_sv_runnable);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_dw], c_sysmon_dw);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_dw_active], c_sysmon_dw_active);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_dw_runnable], c_sysmon_dw_runnable);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_totalcount], c_sysmon_totalcount);
a01sets_identifier (
      a41sysdd_tablenames[sh_sysmon_task_detail], c_sysmon_task_detail);
(* END PTS 1105189 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_consistent_view], c_consistent_views); (* PTS 1106007 *)
(* PTS 1106167 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_parsinfos], c_parsinfos);
(* PTS 1107717 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_internal_state], c_internal_state);
(* PTS 1109404 E.Z. *)
a01sets_identifier (
      a41sysdd_tablenames[sh_spinlock], c_spinlocks);
(* BEGIN: PTS 1115043 U.J. *)
a01set32_identifier (
      a41sysdd_tablenames[sh_activeconfiguration], c_activeconfiguration);
a01set32_identifier (
      a41sysdd_tablenames[sh_backupinformation], c_backupinformation);
a01set32_identifier (
      a41sysdd_tablenames[sh_backupthreads], c_backupthreads);
a01set32_identifier (
      a41sysdd_tablenames[sh_cachestatistics], c_cachestatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_cachestatisticsreset], c_cachestatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_classcontainers], c_classcontainers);
a01set32_identifier (
      a41sysdd_tablenames[sh_classcontainerstatistics], c_classcontainerstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_classcontainerstatisticsreset], c_classcontainerstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_commandcachestatistics], c_commandcachestatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_commandcachestatisticsreset], c_commandcachestatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_commandstatistics], c_commandstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_commandstatisticsreset], c_commandstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_datacache], c_datacache);
a01set32_identifier (
      a41sysdd_tablenames[sh_datastatistics], c_datastatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_datastatisticsreset], c_datastatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_datavolumes], c_datavolumes);
a01set32_identifier (
      a41sysdd_tablenames[sh_events], c_events);
a01set32_identifier (
      a41sysdd_tablenames[sh_files], c_files);
a01set32_identifier (
      a41sysdd_tablenames[sh_historycleanupstatistics], c_historycleanupstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_historycleanupstatisticsreset], c_historycleanupstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_hotstandbycomponent], c_hotstandbycomponent);
a01set32_identifier (
      a41sysdd_tablenames[sh_hotstandbygroup], c_hotstandbygroup);
a01set32_identifier (
      a41sysdd_tablenames[sh_indexsizedetails], c_indexsizedetails);
a01set32_identifier (
      a41sysdd_tablenames[sh_instance], c_instance);
a01set32_identifier (
      a41sysdd_tablenames[sh_iothreadstatistics], c_iothreadstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_iothreadstatisticsreset], c_iothreadstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_kernelmessages], c_kernelmessages);
a01set32_identifier (
      a41sysdd_tablenames[sh_locks], c_locks);
a01set32_identifier (
      a41sysdd_tablenames[sh_lockstatistics], c_lockstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_lockstatisticsreset], c_lockstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_logstatistics], c_logstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_logstatisticsreset], c_logstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_logvolumes], c_logvolumes);
a01set32_identifier (
      a41sysdd_tablenames[sh_machineconfiguration], c_machineconfiguration);
a01set32_identifier (
      a41sysdd_tablenames[sh_machineutilization], c_machineutilization);
a01set32_identifier (
      a41sysdd_tablenames[sh_memoryallocatorstatistics], c_memoryallocatorstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_memoryallocatorstatisticsreset], c_memoryallocatorstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_memoryholders], c_memoryholders);
a01set32_identifier (
      a41sysdd_tablenames[sh_miscellaneous], c_miscellaneous);
a01set32_identifier (
      a41sysdd_tablenames[sh_omslocks], c_omslocks);
a01set32_identifier (
      a41sysdd_tablenames[sh_omsprocedurestatistics], c_omsprocedurestatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_omsprocedurestatisticsreset], c_omsprocedurestatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_omsversions], c_omsversions);
a01set32_identifier (
      a41sysdd_tablenames[sh_optimizerinformation], c_optimizerinformation);
a01set32_identifier (
      a41sysdd_tablenames[sh_pagelocks], c_pagelocks);
a01set32_identifier (
      a41sysdd_tablenames[sh_readerwriterlockstatistics], c_readerwriterlockstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_readerwriterlockstatisticsreset], c_readerwriterlockstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_regionlocks], c_regionlocks);
a01set32_identifier (
      a41sysdd_tablenames[sh_regionstatistics], c_regionstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_regionstatisticsreset], c_regionstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_restartinformation], c_restartinformation);
a01set32_identifier (
      a41sysdd_tablenames[sh_schemas], c_schemas);
a01set32_identifier (
      a41sysdd_tablenames[sh_sessions], c_sessions);
a01set32_identifier (
      a41sysdd_tablenames[sh_snapshot], c_snapshots);
a01set32_identifier (
      a41sysdd_tablenames[sh_spinlockpoolstatistics], c_spinlockpoolstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_spinlockpoolstatisticsreset], c_spinlockpoolstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_spinlockstatistics], c_spinlockstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_spinlockstatisticsreset], c_spinlockstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_tablesizedetails], c_tablesizedetails);
a01set32_identifier (
      a41sysdd_tablenames[sh_taskgroupstatistics], c_taskgroupstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_taskgroupstatisticsreset], c_taskgroupstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_taskstatistics], c_taskstatistics);
a01set32_identifier (
      a41sysdd_tablenames[sh_taskstatisticsreset], c_taskstatisticsreset);
a01set32_identifier (
      a41sysdd_tablenames[sh_transactions], c_transactions);
a01set32_identifier (
      a41sysdd_tablenames[sh_version], c_version);
(* END: PTS 1115043 U.J. *)
(* PTS 1120445 D.T. *)
sort_cnt := 0;
FOR ix := sh_no_kind TO sh_fill3 DO
    BEGIN
    sort_i := 1;
    found  := false;
    IF  a41sysdd_tablenames[ix, 1] <> chr(255)
    THEN
        BEGIN
        WHILE NOT found AND (sort_i <= sort_cnt) DO
            IF  a41sysdd_tablenames[a41sysdd_sort[sort_i]] >
                a41sysdd_tablenames[ix]
            THEN
                BEGIN
                FOR kx := sort_cnt DOWNTO sort_i DO
                    a41sysdd_sort[kx+1] := a41sysdd_sort[kx];
                (*ENDFOR*) 
                found := true
                END
            ELSE
                sort_i := sort_i + 1;
            (*ENDIF*) 
        (*ENDWHILE*) 
        a41sysdd_sort[sort_i] := ix;
        sort_cnt := sort_cnt + 1
        END
    (*ENDIF*) 
    END;
(*ENDFOR*) 
a41sysdd_cnt := sort_cnt;
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41init_show_glob (
            VAR a41v  : tak40_show_glob;
            mess_code : tsp00_CodeType);
 
BEGIN
WITH a41v DO
    BEGIN
    SAPDB_PascalForcedFill ( sizeof(a41v), @a41v, 1, sizeof(a41v), chr(0));
    a4sysbuf            := NIL;
    a4ci                := 0;
    a4ti                := 0;
    a4id_len            := sizeof (tsp00_KnlIdentifier);
    a4p_arr.pcount      := 0;
    a4p_arr.pinfop      := NIL;
    a4p_arr.pbasep      := NIL;
    a4authname          := a01_il_b_identifier;
    a4tablen            := a01_il_b_identifier;
    a4user              := a01_il_b_identifier;
    a4coln              := a01_il_b_identifier;
    a4sysk              := a01sysnullkey;
    a4showfile_name     := a01_il_b_identifier;
    a4sh_kind           := sh_no_kind;
    a4priv_check        := false;
    a4systab_select     := false;
    a4is_synonym        := false;
    a4unique            := false;
    a4tab_count         := 0;
    a4col_len           := 0;
    a4tab_len           := 0;
    a4error_pos         := 1;
    a4is_systable       := false;
    a4all_objects       := false;
    a4use_base          := true;
    a4use_view          := true;
    a4synname           := a01_il_b_identifier;
    WITH a4mblock DO
        BEGIN
        mb_data             := @a4data;
        mb_data^.mbp_reclen := 0
        END;
    (*ENDWITH*) 
    a4tree_pos.tpsPno_gg00    := NIL_PAGE_NO_GG00;
    a4mess_code         := mess_code;
    a4row_ptr           := NIL
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41_show_semantic (VAR acv : tak_all_command_glob);
 
VAR
      _f_ok           : boolean;
      _ix             : integer;
      _a41v           : tak40_show_glob;
 
BEGIN
a41init_show_glob (_a41v, acv.a_cmd_packet_header.sp1h_mess_code);
FOR _ix := 1 TO MAX_SHOW_COLUMNS_GG04 DO
    _a41v.a4strategy.str_catalog.scat_col_needed[_ix] := true;
(*ENDFOR*) 
_a41v.a4ti := 1;
IF  acv.a_ap_tree^[ _a41v.a4ti ].n_sa_level <> 0
THEN
    a05identifier_get (acv, acv.a_ap_tree^[_a41v.a4ti].n_sa_level,
          sizeof (_a41v.a4showfile_name), _a41v.a4showfile_name)
ELSE
    IF  acv.a_resname_part <> NIL
    THEN
        a501GetResultName (acv, _a41v.a4showfile_name)
    ELSE
        _a41v.a4showfile_name := a01_i_show;
    (*ENDIF*) 
(*ENDIF*) 
acv.a_show_curr.fileRoot_gg00 := NIL_PAGE_NO_GG00;
IF  (NOT acv.a_intern_explain AND
    NOT a663parse_for_execute (acv))
THEN
    ak41init_showfile (acv, _a41v)
ELSE
    BEGIN
    IF  (NOT acv.a_intern_explain) OR acv.a_parsing_again
    THEN
        a663_get_result_info (acv, _a41v.a4showfile_name, acv.a_modul_name,
              acv.a_resname_addr[ cak_extern_pos ],
              true, ttfnUserResult_egg00, d_fix, _f_ok);
    (*ENDIF*) 
    IF  acv.a_returncode = 0
    THEN
        BEGIN
        acv.a_resname_addr[ cak_extern_pos ]^.sresname.resstate         :=
              acv.a_resname_addr[ cak_extern_pos ]^.sresname.resstate +
              [ rs_result, rs_reuseable ];
        acv.a_resname_addr[ cak_extern_pos ]^.sresname.reseparsk.p_kind :=
              m_show;
        END;
    (*ENDIF*) 
    END;
(*ENDIF*) 
IF  acv.a_returncode = 0
THEN
    BEGIN
    acv.a_show_curr := acv.a_resname_addr[ cak_extern_pos ]^.sresname.restreeid;
    acv.a_resname_addr[ cak_extern_pos ]^.sresname.resstate    :=
          acv.a_resname_addr[ cak_extern_pos ]^.sresname.resstate + [ rs_show ];
    END;
(*ENDIF*) 
IF  acv.a_returncode = 0
THEN
    ak41explain_semantic (acv, _a41v);
(*ENDIF*) 
IF  acv.a_intern_select_cnt = acv.a_max_intern_select
THEN
    ak41end_showfile (acv, _a41v);
(*ENDIF*) 
IF  (acv.a_returncode <> 100) AND
    (acv.a_returncode <> 0)
    AND NOT (acv.a_optimize_info.o_optimized)
THEN
    BEGIN
    IF  acv.a_show_curr.fileRoot_gg00 <> NIL_PAGE_NO_GG00
    THEN
        BEGIN
        a502destroy_file (acv, acv.a_show_curr);
        IF  acv.a_resname_addr[cak_extern_pos] <> NIL
        THEN
            WITH acv.a_resname_addr[cak_extern_pos]^.sresname DO
                BEGIN
                restreeid.fileRoot_gg00 := NIL_PAGE_NO_GG00;
                resstate                := resstate - [rs_result]
                END;
            (*ENDWITH*) 
        (*ENDIF*) 
        END;
    (*ENDIF*) 
    a10cmd_rollback (acv);
    acv.a_shortinfo_key := cgg_zero_id;
    END;
(*ENDIF*) 
IF  _a41v.a4unique
THEN
    b01empty_file (acv.a_transinf.tri_trans, acv.a_into_tree)
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      ak41explain_semantic (
            VAR acv  : tak_all_command_glob;
            VAR a41v : tak40_show_glob);
 
BEGIN
CASE acv.a_ap_tree^[acv.a_ap_tree^[ 0 ].n_lo_level].n_length OF
    cak_i_join :
        acv.a_explain_kind := ex_join;
    cak_i_sequence :
        acv.a_explain_kind := ex_sequence;
    OTHERWISE
        acv.a_explain_kind := ex_default;
    END;
(*ENDCASE*) 
acv.a_result_name := a41v.a4showfile_name;
a660_explain (acv, acv.a_ap_tree^[ acv.a_ap_tree^[ 0 ].n_lo_level ].n_lo_level);
(* PTS 1106025 E.Z. *)
a663_intern_resname_drop (acv);
IF  acv.a_intern_select_cnt = acv.a_max_intern_select
THEN
    BEGIN
    a41v.a4sh_kind := sh_explain;
    a40get_catalog_table (acv, a41v)
    END
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41execute_show (
            VAR acv    : tak_all_command_glob;
            VAR mblock : tgg00_MessBlock);
 
CONST
      c_serverdb = true;
 
VAR
      init_cmd_kind  : tak_commandkind;
      change_user    : boolean;
      is_join        : boolean;
      last_join      : boolean;
      _find_poss     : boolean;
      ix             : integer;
      dummy          : integer;
      init_user_name : tsp00_KnlIdentifier;
      a41v           : tak40_show_glob;
 
BEGIN
&ifdef trace
t01localstate (ak_sem, 'tr_st 41 in ',
      acv.a_transinf.tri_trans.trState_gg00);
t01qual (ak_sem, acv.a_mblock.mb_qual^);
&endif
change_user := false;
a41init_show_glob (a41v, acv.a_cmd_packet_header.sp1h_mess_code);
a41v.a4res_buf_ptr := gg941Allocate (acv.a_transinf.tri_trans, sizeof (tsp00_Buf));
IF  a41v.a4res_buf_ptr = NIL
THEN
    a07_b_put_error (acv, e_no_more_memory, 1)
ELSE
    WITH acv, a41v DO
        IF  a_returncode = 0
        THEN
            BEGIN
            mblock.mb_trns            := @a_transinf.tri_trans;
            mblock.mb_work_st         := a_work_st_addr;
            mblock.mb_work_st_max     := a_work_st_max;
            mblock.mb_workbuf         := a_work_buf_addr;
            mblock.mb_workbuf_size    := a_work_buf_size;
            a4res_buf_ptr^.mbp_reclen := 0;
            mblock.mb_type            := m_select;
            mblock.mb_trns^.trError_gg00    := e_ok;
            is_join                   := (mblock.mb_type2 = mm_with_join)
                  OR (mblock.mb_type2 = mm_join_with_last_tab);
            a4systab_select            := true;
            a4pos                      := 1;
            (* PTS 1116801 E.Z. *)
            a4long_desc_len := mxsp_long_desc;
            a_show_last_key            := 0;
            init_cmd_kind              := a_command_kind;
            a_command_kind             := show_command;
            WITH mblock, mb_qual^ DO
                BEGIN
                g10mv ('VAK41 ',   3,    
                      mb_strat_size, sizeof( a4strategy ),
                      @mb_strat^, mb_st^[ mstrat_pos ].epos,
                      @a4strategy, 1, mb_st^[ mstrat_pos ].elen_var,
                      a_returncode);
                IF  a41v.a4strategy.str_strategy <> strat_catalog
                THEN
                    a07_b_put_error (acv, e_unknown_strategy, 1)
                ELSE
                    BEGIN
                    IF  a41v.a4strategy.str_catalog.scat_upd_strat
                    THEN
                        a722update_strategy (acv, a4strategy.str_catalog);
                    (*ENDIF*) 
                    a4sh_kind  := a41v.a4strategy.str_catalog.scat_show_kind;
&                   ifdef trace
                    t01treeid (ak_sem, 'res_tree_id ',
                          a41v.a4strategy.str_result_id);
&                   endif
                    IF  a4strategy.str_catalog.scat_authname <> cak_is_undefined
                    THEN
                        BEGIN
&                       ifdef trace
                        t01int4 (ak_sem, 'shw_authname',
                              a4strategy.str_catalog.scat_authname);
&                       endif
                        dummy := ak41get_value (mblock, a41v.a4authname,
                              a4strategy.str_catalog.scat_authname)
                        END;
                    (*ENDIF*) 
                    IF  a4strategy.str_catalog.scat_tablename <> cak_is_undefined
                    THEN
                        BEGIN
&                       ifdef trace
                        t01int4 (ak_sem, 'shw_tabname ',
                              a4strategy.str_catalog.scat_tablename);
&                       endif
                        a4tab_len := ak41get_value (mblock, a41v.a4tablen,
                              a4strategy.str_catalog.scat_tablename);
                        END;
                    (*ENDIF*) 
                    IF  a4strategy.str_catalog.scat_username <> cak_is_undefined
                    THEN
                        dummy := ak41get_value (mblock, a41v.a4user,
                              a4strategy.str_catalog.scat_username);
                    (*ENDIF*) 
                    IF  a4strategy.str_catalog.scat_columnname <> cak_is_undefined
                    THEN
                        BEGIN
                        a4col_len := ak41get_value (mblock, a41v.a4coln,
                              a4strategy.str_catalog.scat_columnname);
                        END;
                    (* check, if current user has been changed due to *)
                    (* complex view execution                         *)
                    (*ENDIF*) 
                    IF  a_acc_user <> a_curr_user_name
                    THEN
                        (* difference may be caused by group user *)
                        IF  a_acc_groupname <> a01_il_b_identifier
                        THEN
                            BEGIN
                            IF  a_acc_groupname <> a_curr_user_name
                            THEN
                                BEGIN
                                change_user := true;
                                a51switch_user (acv,
                                      a_acc_groupname, init_user_name)
                                END
                            (*ENDIF*) 
                            END
                        ELSE
                            BEGIN
                            change_user := true;
                            a51switch_user (acv, a_acc_user, init_user_name)
                            END;
                        (*ENDIF*) 
                    (*ENDIF*) 
                    END;
                (*ENDIF*) 
                END;
            (*ENDWITH*) 
&           ifdef trace
            t01lidentifier (ak_sem, a41v.a4authname);
            t01lidentifier (ak_sem, a41v.a4tablen);
            FOR ix := 1 TO MAX_SHOW_COLUMNS_GG04 DO
                IF  a41v.a4strategy.str_catalog.scat_col_needed[ix]
                THEN
                    t01int4 (ak_sem, 'col required', ix);
                (*ENDIF*) 
            (*ENDFOR*) 
            FOR ix := 1 TO MAX_SHOW_COLUMNS_GG04 DO
                IF  a41v.a4strategy.str_catalog.scat_qual_cols[ix]
                THEN
                    t01int4 (ak_sem, 'qualfied    ', ix);
&               endif
                (*ENDIF*) 
            (*ENDFOR*) 
            IF  mblock.mb_struct = mbs_stack_addr
            THEN
                mblock.mb_qual^.msqlmode := a_sqlmode;
            (*ENDIF*) 
            IF  acv.a_returncode = 0
            THEN
                ak41alloc_mem (acv, a41v);
            (*ENDIF*) 
            IF  acv.a_returncode = 0
            THEN
                BEGIN
                mblock.mb_qual^.mtree.fileHandling_gg00 :=
                      mblock.mb_qual^.mtree.fileHandling_gg00 -
                      [hsTempLock_egg00, hsPermLock_egg00];
                mblock.mb_trns^.trState_gg00 :=
                      a_transinf.tri_trans.trState_gg00;
                IF  is_join
                THEN
                    BEGIN
                    last_join := mblock.mb_type2 = mm_join_with_last_tab;
                    k74start_catalog_join (mblock, a4get_param^, a4sel_param^ );
                    _find_poss := true;
                    END;
                (*ENDIF*) 
                k720start_catalog_select (mblock, a4sel^, a4strategy,
                      a4sel_param^, _find_poss );
                (* PTS 1107952 E.Z. *)
                a_transinf.tri_trans.trState_gg00 :=
                      mblock.mb_trns^.trState_gg00;
                IF  NOT _find_poss
                THEN
                    mblock.mb_trns^.trError_gg00 := e_row_not_found;
&               ifdef trace
                (*ENDIF*) 
                t01int4 (ak_sem, 'a4sh_kind   ', ord (a4sh_kind));
&               endif
                (* PTS 1104644 E.Z. *)
                IF  mblock.mb_trns^.trError_gg00 <> e_ok
                THEN
                    a07_b_put_error (acv, mblock.mb_trns^.trError_gg00, 1)
                ELSE
                    BEGIN
                    CASE a41v.a4sh_kind OF
                        sh_all_priv_granted :
                            a47show_table (acv, a41v, cak_i_privileges);
                        sh_allocatorstatistic :
                            a421allocator (acv, a41v);
                        sh_bad_index :
                            a45bad_index_show (acv, a41v);
                        sh_constraint, sh_all_constraint :
                            a47show_table (acv, a41v, cak_i_constraint);
                        sh_cons_columns, sh_all_cons_columns :
                            a47show_table (acv, a41v, cak_i_references);
                        sh_oms_containers :
                            a44containers (acv, a41v);
                        sh_index, sh_all_index, sh_odbc_index (* PTS 1114119 T.A. *) :
                            a45show_execute (acv, a41v, cak_i_index);
                        sh_column, sh_all_column, sh_odbc_columns :
                            a47show_table (acv, a41v, cak_i_column);
                        sh_link, sh_all_foreign_key :
                            a45show_execute (acv, a41v, cak_i_foreign);
                        sh_object, sh_all_object :
                            a47show_table (acv, a41v, cak_i_object);
                        sh_domain_data, sh_mapset:
                            a46execute (acv, a41v);
                        sh_param_trigger :
                            a47show_table (acv, a41v, cak_i_param);
                        sh_connect,         sh_connect_param,
                        sh_p_prog,          sh_priv_granted_to,
                        sh_new_privileges,  sh_all_new_privileges,
                        sh_session_roles,   sh_roles, sh_all_roles,
                        sh_user,            sh_all_user :
                            a43execute (acv, a41v);
                        sh_param_dbproc, sh_procedure, sh_all_procedures,
                        sh_dbfunctions, sh_dbfunc_parameters,
                        sh_methods :
                            a49execute (acv, a41v);
                        sh_oms_versions :
                            a44oms_versions (acv, a41v);
                        sh_ref_column, sh_all_ref_columns :
                            a47show_table (acv, a41v, cak_i_key);
                        sh_schema :
                            a44schemas (acv, a41v);
                        sh_sequence, sh_all_sequences :
                            a44sequence_show (acv, a41v);
                        sh_serverdb :
                            a48serverdb_show (acv, a41v, c_serverdb);
                        (* PTS 1109404 E.Z. *)
                        sh_spinlock :
                            a421spinlocks (acv, a41v);
                        sh_st_config, sh_st_database, sh_st_devspace,
                        sh_st_monitor, sh_st_state, sh_st_user, sh_version_old,
                        sh_trans, sh_roots, sh_running_cmds,
                        (* PTS 1109995 E.Z. *)
                        sh_st_lock, sh_lock, sh_ctrl_configuration,
                        sh_ctrl_devspaces, sh_ctrl_io_statistics, sh_ctrl_log,
                        (* sh_ctrl_cache, *) (* PTS 1120445 D.T. *)
                        sh_ctrl_locks, sh_monitor_oms, sh_consistent_view, sh_oms_memory, sh_history_info,
                        (* PTS 1107717 E.Z. *)
                        sh_internal_state,
                        sh_files_old,
                        sh_info_gc_stats,
                        (* PTS 1115641 FF *)
                        sh_container_roots,
                        sh_container_chains,
                        sh_container_keys,
                        (* PTS XXX *)
                        sh_heap_content,
                        (* PTS 1110315 *)
                        sh_oms_lock,
                        (* PTS 1115043 E.Z. *)
                        sh_dbm_state :
                            a42execute (acv, a41v);
                        sh_st_index, sh_odbc_st_index, sh_indexpages :
                            a47show_table (acv, a41v, cak_i_index);
                        sh_st_table, sh_odbc_st_table, sh_pages :
                            a47show_table (acv, a41v, cak_i_stat);
                        sh_synonym, sh_all_synonyms :
                            a44synonym_show_execute (acv, a41v);
                        sh_table_stat :
                            a47show_table (acv, a41v, cak_i_optimize);
                        sh_table, sh_all_table :
                            a47show_table (acv, a41v, cak_i_table);
                        sh_trigger, sh_all_triggers :
                            a47show_table (acv, a41v, cak_i_trigger);
                        sh_u_domain :
                            a44domain_show (acv, a41v);
                        sh_domain_constraints :
                            a44dom_constraints (acv, a41v);
                        sh_view, sh_all_views, sh_show_view :
                            a47show_table (acv, a41v, cak_i_view);
                        sh_view_uses_table, sh_all_view_uses_table :
                            a47show_table (acv, a41v, cak_i_using);
                        (* PTS 1114549 E.Z. *)
                        sh_sysmon_connection :
                            a421connection (acv, a41v);
                        (* PTS 1105189 E.Z. *)
                        sh_sysmon_region :
                            a421region (acv, a41v);
                        sh_sysmon_storage :
                            a421storage (acv, a41v);
                        sh_sysmon_ioaccess :
                            a421ioaccess (acv, a41v);
                        sh_sysmon_backupioaccess :
                            a421backupioaccess (acv, a41v);
                        sh_sysmon_specthread :
                            a421spec_thread (acv, a41v);
                        sh_sysmon_ukthread :
                            a421ukthread (acv, a41v);
                        sh_sysmon_deviothread :
                            a421deviothread (acv, a41v);
                        sh_sysmon_task,
                        sh_sysmon_active_task,
                        sh_sysmon_runnable,
                        sh_sysmon_us,
                        sh_sysmon_us_active,
                        sh_sysmon_us_runnable,
                        sh_sysmon_sv,
                        sh_sysmon_sv_active,
                        sh_sysmon_sv_runnable,
                        sh_sysmon_dw,
                        sh_sysmon_dw_active,
                        sh_sysmon_dw_runnable :
                            a421task (acv, a41v);
                        sh_sysmon_totalcount :
                            a421totalcount (acv, a41v);
                        sh_sysmon_task_detail :
                            a421task_detail (acv, a41v);
                        (* END PTS 1105189 E.Z. *)
                        (* PTS 1106167 E.Z. *)
                        sh_parsinfos :
                            a10parsinfos (acv, a41v);
                        (* BEGIN PTS 1115043 E.Z. *)
                        sh_activeconfiguration,
                        sh_backupinformation,
                        sh_backupthreads,
                        sh_cachestatistics,
                        sh_cachestatisticsreset,
                        sh_classcontainers,
                        sh_classcontainerstatistics,
                        sh_classcontainerstatisticsreset,
                        sh_commandcachestatistics,      (* PTS 1120445 D.T. *)
                        sh_commandcachestatisticsreset, (* PTS 1120445 D.T. *)
                        sh_commandstatistics,           (* PTS 1120445 D.T. *)
                        sh_commandstatisticsreset,      (* PTS 1120445 D.T. *)
                        sh_datacache,
                        sh_datastatistics,
                        sh_datastatisticsreset,
                        sh_datavolumes,
                        sh_events,
                        sh_files,
                        sh_historycleanupstatistics,
                        sh_historycleanupstatisticsreset,
                        sh_hotstandbycomponent,
                        sh_hotstandbygroup,
                        sh_indexsizedetails,
                        sh_instance,
                        sh_iothreadstatistics,
                        sh_iothreadstatisticsreset,
                        sh_kernelmessages,
                        sh_locks,
                        sh_lockstatistics,
                        sh_lockstatisticsreset,
                        sh_logstatistics,
                        sh_logstatisticsreset,
                        sh_logvolumes,
                        sh_machineconfiguration,
                        sh_machineutilization,
                        sh_memoryallocatorstatistics,
                        sh_memoryallocatorstatisticsreset,
                        sh_memoryholders,
                        sh_miscellaneous,
                        sh_objectlocks,
                        sh_omslocks,
                        sh_omsprocedurestatistics,
                        sh_omsprocedurestatisticsreset,
                        sh_omsversions,
                        sh_optimizerinformation,
                        sh_pagelocks,
                        sh_readerwriterlockstatistics,
                        sh_readerwriterlockstatisticsreset,
                        sh_regionlocks,
                        sh_regionstatistics,
                        sh_regionstatisticsreset,
                        sh_restartinformation,
                        sh_schemas,
                        sh_sessions,
                        sh_snapshot,
                        sh_spinlockpoolstatistics,
                        sh_spinlockpoolstatisticsreset,
                        sh_spinlockstatistics,
                        sh_spinlockstatisticsreset,
                        sh_tablesizedetails,
                        sh_taskgroupstatistics,
                        sh_taskgroupstatisticsreset,
                        sh_taskstatistics,
                        sh_taskstatisticsreset,
                        sh_transactions,
                        sh_version,
                        sh_xparam :
                            a400SVExecute ( acv, a41v);
                        (* END PTS 1115043 E.Z. *)
                        OTHERWISE
                            a07ak_system_error (acv, 41, 1);
                        END;
                    (*ENDCASE*) 
                    mblock.mb_trns^.trError_gg00 := e_ok;
                    IF  acv.a_returncode <> 0
                    THEN
                        IF  acv.a_returncode =
                            a07_return_code (e_enough_resultsets, acv.a_sqlmode)
                        THEN
                            BEGIN
                            acv.a_returncode := 0;
                            mblock.mb_trns^.trError_gg00 := e_enough_resultsets
                            END
                        ELSE (* assign any error to ensure clean up in KB *)
                            mblock.mb_trns^.trError_gg00 := e_key_not_found;
                        (*ENDIF*) 
                    (*ENDIF*) 
                    k720finish_catalog_select (mblock,
                          a4sel^, a4strategy, a4sel_param^, a4get_param^,
                          a4res_buf_ptr^.mbp_rec);
                    IF  is_join
                    THEN
                        BEGIN
                        k74finish_catalog_join (mblock, a4get_param^,
                              a4sel_param^, a4strategy.str_rowno, last_join);
                        END;
                    (*ENDIF*) 
                    IF  mblock.mb_trns^.trError_gg00 <> e_ok
                    THEN
                        a07_b_put_error (acv, mblock.mb_trns^.trError_gg00, 1);
                    (*ENDIF*) 
                    END;
                (*ENDIF*) 
                ak41free_mem (acv, a41v)
                END;
            (*ENDIF*) 
            acv.a_command_kind := init_cmd_kind;
            (* PTS 1106617 E.Z. *)
            IF  (a41v.a4p_arr.pinfop <> NIL) AND a41v.a4del_basetab
            THEN
                a10del_sysinfo (acv, a41v.a4p_arr.pinfop^.syskey,
                      mblock.mb_trns^.trError_gg00);
            (*ENDIF*) 
            IF  change_user
            THEN
                a51switch_user (acv, init_user_name, init_user_name);
            (*ENDIF*) 
            IF  a41v.a4unique
            THEN
                IF  a4treeid.fileRoot_gg00 = a_into_tree.fileRoot_gg00
                THEN
                    b01empty_file (a_transinf.tri_trans, a4treeid)
                ELSE
                    b01destroy_file (a_transinf.tri_trans, a4treeid);
                (*ENDIF*) 
            (*ENDIF*) 
            gg941Deallocate (acv.a_transinf.tri_trans, a41v.a4res_buf_ptr);
            END;
&       ifdef trace
        (*ENDIF*) 
    (*ENDWITH*) 
(*ENDIF*) 
t01localstate (ak_sem, 'tr_st 41 out',
      acv.a_transinf.tri_trans.trState_gg00);
&endif
END;
 
(*------------------------------*) 
 
PROCEDURE
      ak41alloc_mem (
            VAR acv  : tak_all_command_glob;
            VAR a41v : tak40_show_glob);
 
VAR
 
      univ_p : RECORD
            CASE integer OF
                1 :
                    (sys : tak_sysbufferaddress);
                2 :
                    (sel_ptr : tgg00_SelectParamPtr);
                3 :
                    (get_p_ptr : tgg07_get_param_ptr);
                4 :
                    (sel_p_ptr : tgg07_select_context_ptr);
                END;
            (*ENDCASE*) 
 
 
BEGIN
WITH a41v DO
    BEGIN
    a10lock_fixed (acv);
    a10new (acv, sizeof (a4get_param^), univ_p.sys);
    IF  univ_p.get_p_ptr <> NIL
    THEN
        BEGIN
        a4get_param := univ_p.get_p_ptr;
        a10new (acv, sizeof (a4sel_param^), univ_p.sys)
        END;
    (*ENDIF*) 
    IF  univ_p.sel_p_ptr <> NIL
    THEN
        BEGIN
        a4sel_param := univ_p.sel_p_ptr;
        a10new (acv, sizeof (a4sel^), univ_p.sys)
        END;
    (*ENDIF*) 
    IF  univ_p.sel_ptr <> NIL
    THEN
        a4sel := univ_p.sel_ptr
    ELSE
        a07_b_put_error (acv, e_no_more_memory, 1)
    (*ENDIF*) 
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      ak41free_mem (
            VAR acv  : tak_all_command_glob;
            VAR a41v : tak40_show_glob);
 
VAR
 
      univ_p : RECORD
            CASE integer OF
                1 :
                    (sys : tak_sysbufferaddress);
                2 :
                    (sel_ptr : tgg00_SelectParamPtr);
                3 :
                    (get_p_ptr : tgg07_get_param_ptr);
                4 :
                    (sel_p_ptr : tgg07_select_context_ptr);
                END;
            (*ENDCASE*) 
 
 
BEGIN
WITH a41v DO
    BEGIN
    a10unlock_fixed (acv);
    univ_p.get_p_ptr := a4get_param;
    a10dispose (acv, univ_p.sys);
    univ_p.sel_p_ptr := a4sel_param;
    a10dispose (acv, univ_p.sys);
    univ_p.sel_ptr := a4sel;
    a10dispose (acv, univ_p.sys);
    IF  a4row_ptr <> NIL
    THEN
        BEGIN
        univ_p.sys := @a4row_ptr^;
        a10dispose (acv, univ_p.sys)
        END;
    (*ENDIF*) 
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
FUNCTION
      ak41get_value (
            VAR mblock : tgg00_MessBlock;
            VAR name : tsp00_KnlIdentifier;
            st_pos   : integer) : integer;
 
VAR
      move_len : integer;
 
BEGIN
WITH mblock DO
    BEGIN
    move_len := mb_st^ [st_pos].elen_var - 1;
    IF  move_len > sizeof (name)
    THEN
        ak41get_value := 0
    ELSE
        BEGIN
        name := a01_il_b_identifier;
        g10mv ('VAK41 ',   4,    
              mb_data_size, sizeof (name),
              @mb_data^.mbp_buf, mb_st^ [st_pos].epos + 1,
              @name, 1, move_len, mb_trns^.trError_gg00);
        ak41get_value := sizeof(name)
        END;
    (*ENDIF*) 
    END;
(*ENDWITH*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41table_exist (
            VAR acv    : tak_all_command_glob;
            VAR tablen : tsp00_KnlIdentifier;
            VAR p_arr  : tak_syspointerarr;
            VAR ok     : boolean);
 
VAR
      lwb       : integer;
      upb       : integer;
      index     : integer;
      b_err     : tgg00_BasisError;
 
BEGIN
ok        := false;
IF  (acv.a_initial_segment_header.sp1c_producer = sp1pr_installation) OR
    (acv.a_initial_segment_header.sp1c_producer = sp1pr_internal_cmd) OR
    (acv.a_comp_type = at_xci                                       ) OR
    (acv.a_max_intern_select > 0                                    ) OR
    (acv.a_optimize_info.o_optimized                                ) OR
    (acv.a_current_user_kind = ucontroluser                         ) OR
    acv.a_in_ddl_trigger                                              OR
    acv.a_isReplicationSession                                        OR
    acv.a_parsing_again
THEN
    BEGIN
    lwb := 1;
    upb :=  a41sysdd_cnt;
&   ifdef trace
    FOR index := 1 TO upb DO
        t01lidentifier (ak_sem, a41sysdd_tablenames[a41sysdd_sort[index]]);
    (*ENDFOR*) 
&   endif
    REPEAT
        index := (lwb + upb) DIV 2;
        IF  a41sysdd_tablenames[a41sysdd_sort[index]] > tablen
        THEN
            upb := index - 1
        ELSE
            lwb := index + 1;
        (*ENDIF*) 
    UNTIL
        lwb > upb;
    (*ENDREPEAT*) 
    IF  upb > 0
    THEN
        IF  a41sysdd_tablenames[a41sysdd_sort[upb]] = tablen
        THEN
            BEGIN
            a41get_table (acv, a41sysdd_sort[upb], p_arr.pbasep, b_err);
            ok := b_err = e_ok
            END
        (*ENDIF*) 
    (*ENDIF*) 
    END
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      a41get_table (
            VAR acv      : tak_all_command_glob;
            show_kind    : tgg00_ShowKind;
            VAR base_ptr : tak_sysbufferaddress;
            VAR b_err    : tgg00_BasisError);
 
CONST
      c_eval_allocator   = 12;
      c_eval_columns     = 50;
      c_eval_config      = 20;
      c_eval_com_objects = 100;
      c_eval_constraints = 3;
      c_eval_containers  = 255;
      c_eval_dbprocs     = 100;
      c_eval_domains     = 500;
      c_eval_functions   = 20;
      c_eval_indexes     = 3;
      c_eval_mapcharsets = 500;
      c_eval_monitor     = 200;
      c_eval_params      = 5;
      c_eval_priv        = 10;
      c_eval_schemas     = 10;
      c_eval_sequences   = 100;
      c_eval_sess_roles  = 5;
      c_eval_synonyms    = 100;
      c_eval_tables      = 2000;
      c_eval_users       = 100;
      c_eval_views       = 1000;
      (* PTS 1114549 E.Z. *)
      c_eval_s_connection     = 20;
      (* PTS 1105189 E.Z. *)
      c_eval_s_region         = 80;
      c_eval_s_storage        = 20;
      c_eval_s_ioaccess       = 20;
      c_eval_s_backupioaccess = 5;
      c_eval_s_specthread     = 20;
      c_eval_s_ukthread       = 20;
      c_eval_s_deviothread    = 20;
      c_eval_s_task           = 250;
      c_eval_s_active_task    = 50;
      c_eval_s_runnable       = 25;
      c_eval_s_us             = 100;
      c_eval_s_us_active      = c_eval_s_active_task;
      c_eval_s_us_runnable    = c_eval_s_runnable;
      c_eval_s_sv             = 50;
      c_eval_s_sv_active      = 5;
      c_eval_s_sv_runnable    = 2;
      c_eval_s_dw             = 3;
      c_eval_s_dw_active      = 1;
      c_eval_s_dw_runnable    = 1;
      c_eval_s_totalcount     = 1;
      c_eval_s_task_detail    = c_eval_s_task;
      (* END PTS 1105189 E.Z. *)
      c_eval_parsinfos        = 200;
      (* PTS 1107717 E.Z. *)
      c_internal_state        = 120;
      (* PTS 1109404 E.Z. *)
      c_spinlocks             =  20;
 
VAR
      ix      : integer;
      a41v    : tak40_show_glob;
&     ifdef trace
      colname : tsp00_KnlIdentifier;
&     endif
 
BEGIN
&ifdef trace
t01showkind( ak_sem, 'show_kind   ', show_kind);
&endif
b_err          := e_ok;
a41init_show_glob (a41v, acv.a_cmd_packet_header.sp1h_mess_code);
a41v.a4sh_kind       := show_kind;
a41v.a4systab_select := true;
a40get_catalog_table(acv, a41v);
base_ptr        := a41v.a4p_arr.pinfop;
IF  acv.a_returncode = 0
THEN
    WITH base_ptr^.sresult DO
        BEGIN
&       ifdef trace
        FOR ix := bfirstindex TO blastindex DO
            WITH bcolumn[ix]^ DO
                BEGIN
                a061get_colname (bcolumn[ix]^, colname);
                t01lidentifier  (ak_sem, colname);
                t01int4 (ak_sem, 'epos        ', ccolstack.epos);
                t01int4 (ak_sem, 'elen_var    ', ccolstack.elen_var);
                END;
            (*ENDWITH*) 
        (*ENDFOR*) 
&       endif
        btablen^ := a41sysdd_tablenames[show_kind];
        CASE show_kind OF
            sh_allocatorstatistic :
                brows := c_eval_allocator;
            sh_bad_index :
                brows := 1;
            sh_dbfunctions, sh_methods :
                brows   := c_eval_functions;
            sh_dbfunc_parameters :
                brows   := c_eval_functions * c_eval_params;
            (* PTS 1115043 E.Z. *)
            sh_dbm_state :
                brows := 1;
            sh_domain_data :
                brows   := 1;
            sh_column, sh_table_stat, sh_odbc_columns :
                brows   := c_eval_tables * c_eval_columns;
            sh_st_config :
                brows   := c_eval_config;
            sh_connect :
                brows   := g01maxuser;
            sh_connect_param :
                brows   := 1;
            sh_constraint :
                brows   := c_eval_tables * c_eval_constraints;
            sh_cons_columns :
                brows   := c_eval_tables;
            sh_monitor_oms :
                brows := c_eval_com_objects;
            sh_ctrl_configuration, sh_ctrl_devspaces, sh_ctrl_io_statistics,
            sh_ctrl_log,
            (* sh_ctrl_cache, *) (* PTS 1120445 D.T. *)
            sh_ctrl_locks :
                brows := 1;
            sh_oms_containers :
                brows := c_eval_containers;
            sh_domain_constraints :
                brows   := c_eval_domains * c_eval_constraints;
            sh_index, sh_odbc_index (* PTS 1114119 T.A. *) :
                brows   := c_eval_tables * c_eval_indexes;
            sh_link :
                brows   := c_eval_tables DIV 10;
            sh_lock :
                brows   := g01maxlocks;
            sh_mapset :
                brows   := c_eval_mapcharsets;
            sh_new_privileges :
                brows   := c_eval_tables * c_eval_priv;
            sh_odbc_st_index :
                brows   := c_eval_tables;
            sh_odbc_st_table :
                brows   := c_eval_tables;
            sh_st_monitor :
                brows   := c_eval_monitor;
            sh_object, sh_all_object :
                brows := c_eval_tables + c_eval_views +
                      c_eval_synonyms + c_eval_tables * c_eval_indexes;
            sh_oms_versions :
                brows := 1;
            sh_pages :
                brows := 1;
            sh_param_dbproc :
                brows   := c_eval_dbprocs * c_eval_params;
            sh_param_trigger :
                brows   := c_eval_tables DIV 10;
            sh_ref_column :
                brows   := c_eval_views * c_eval_columns;
            sh_priv_granted_to :
                brows   := c_eval_tables;
            sh_procedure :
                brows   := c_eval_dbprocs;
            sh_p_prog :
                brows   := c_eval_tables * c_eval_priv;
            sh_schema :
                brows := c_eval_schemas;
            sh_sequence :
                brows   := c_eval_sequences;
            sh_serverdb :
                brows   := 1;
            sh_session_roles :
                brows   := c_eval_sess_roles;
            sh_st_database :
                brows   := 1;
            sh_st_devspace :
                brows   := g01maxdevspaces;
            sh_st_index, sh_indexpages :
                brows   := c_eval_tables * c_eval_indexes * 30;
            sh_st_lock :
                brows   := g01maxlocks;
            sh_st_state :
                brows   := 24;
            sh_st_user :
                brows   := c_eval_users;
            sh_synonym :
                brows   := c_eval_synonyms;
            sh_table :
                brows   := c_eval_tables;
            (* PTS 1109995 E.Z. *)
            sh_st_table :
                brows   := c_eval_tables;
            sh_trans :
                brows   := g01maxuser;
            sh_trigger :
                brows   := c_eval_tables DIV 100;
            sh_user :
                brows   := c_eval_users;
            sh_u_domain :
                brows   := c_eval_domains;
            sh_version_old :
                brows   := 1;
            sh_view, sh_show_view :
                brows   := c_eval_views;
            sh_view_uses_table :
                brows   := c_eval_views;
            sh_xparam :
                brows   := 25;
            sh_all_column :
                brows   := c_eval_tables * c_eval_columns * 2;
            sh_all_cons_columns :
                brows   := c_eval_tables * 2;
            sh_all_constraint :
                brows   := c_eval_tables * 2;
            sh_all_foreign_key :
                brows   := c_eval_tables DIV 10 * 2;
            sh_all_index :
                brows   := c_eval_tables * c_eval_indexes * 2;
            sh_all_new_privileges :
                brows   := c_eval_tables * c_eval_priv * 2;
            sh_all_priv_granted :
                brows   := c_eval_tables * c_eval_priv * 2;
            sh_all_ref_columns :
                brows   := c_eval_views * c_eval_columns * 2;
            sh_all_procedures :
                brows   := c_eval_dbprocs * 2;
            sh_all_sequences :
                brows   := c_eval_sequences * 2;
            sh_all_synonyms :
                brows   := c_eval_synonyms * c_eval_users;
            sh_all_table :
                brows   := c_eval_tables * 2;
            sh_all_triggers :
                brows   := c_eval_tables DIV 100 * 2;
            sh_all_user  :
                brows   := c_eval_users;
            sh_all_views :
                brows   := c_eval_views * 2;
            sh_all_view_uses_table :
                brows   := c_eval_views * 2;
            sh_roles, sh_all_roles :
                brows := c_eval_users;
            sh_roots :
                brows := 1;
            sh_running_cmds :
                brows := g01maxuser;
            (* PTS 1114549 E.Z. *)
            sh_sysmon_connection :
                brows := c_eval_s_connection;
            (* PTS 1105189 E.Z. *)
            sh_sysmon_region :
                brows := c_eval_s_region;
            sh_sysmon_storage :
                brows := c_eval_s_storage;
            sh_sysmon_ioaccess :
                brows := c_eval_s_ioaccess;
            sh_sysmon_backupioaccess :
                brows := c_eval_s_backupioaccess;
            sh_sysmon_specthread :
                brows := c_eval_s_specthread;
            sh_sysmon_ukthread :
                brows := c_eval_s_ukthread;
            sh_sysmon_deviothread :
                brows := c_eval_s_deviothread;
            sh_sysmon_task :
                brows := c_eval_s_task;
            sh_sysmon_active_task :
                brows := c_eval_s_active_task;
            sh_sysmon_runnable :
                brows := c_eval_s_runnable;
            sh_sysmon_us :
                brows := c_eval_s_us;
            sh_sysmon_us_active :
                brows := c_eval_s_us_active;
            sh_sysmon_us_runnable :
                brows := c_eval_s_us_runnable;
            sh_sysmon_sv :
                brows := c_eval_s_sv;
            sh_sysmon_sv_active :
                brows := c_eval_s_sv_active;
            sh_sysmon_sv_runnable :
                brows := c_eval_s_sv_runnable;
            sh_sysmon_dw :
                brows := c_eval_s_dw;
            sh_sysmon_dw_active :
                brows := c_eval_s_dw_active;
            sh_sysmon_dw_runnable :
                brows := c_eval_s_dw_runnable;
            sh_sysmon_totalcount :
                brows := c_eval_s_totalcount;
            sh_sysmon_task_detail :
                brows := c_eval_s_task_detail;
            (* END PTS 1105189 E.Z. *)
            (* PTS 1106167 E.Z. *)
            sh_parsinfos :
                brows := c_eval_parsinfos;
            sh_consistent_view : (* PTS 1106007 *)
                brows := 1;
            sh_oms_memory :
                brows := 1;
            sh_history_info :
                brows := 1;
            (* PTS 1107717 E.Z. *)
            sh_internal_state :
                brows := c_internal_state;
            (* PTS 1109404 E.Z. *)
            sh_spinlock :
                brows := c_spinlocks;
            sh_oms_lock : (* PTS 1110315 *)
                brows := 1;
            sh_files_old :
                brows := 1;
            sh_info_gc_stats :
                brows := 1;
            sh_heap_content : (* PTS XXX *)
                brows := 1;
            sh_container_roots : (* PTS 1115641 FF *)
                brows := 1;
            sh_container_chains :(* PTS 1115641 FF *)
                brows := 1;
            sh_container_keys :  (* PTS 1115641 FF *)
                brows := 1;
            OTHERWISE
                BEGIN
                brows := a400SVEstimateRows ( acv, a41v );
                IF  brows = -1
                THEN
                    BEGIN
                    brows:=0;
                    b_err := e_sysinfo_not_found;
                    END;
                (*ENDIF*) 
                END;
            END;
        (*ENDCASE*) 
        WITH bcolumn[blastindex]^ DO
            bpages := brows * (ccolstack.epos + cinoutlen - 1) DIV
                  MAX_RECLEN_GG00;
        (*ENDWITH*) 
        IF  bpages <= 0
        THEN
            bpages := 1;
&       ifdef trace
        (*ENDIF*) 
        t01int4 (ak_sem, 'brows       ', brows);
        t01int4 (ak_sem, 'bpages      ', bpages);
&       endif
        btablekind   := tcatalog_table;
        bv_tablekind := tcatalog_table;
        bshowkind    := a41v.a4sh_kind;
        END
    (*ENDWITH*) 
ELSE
    b_err := e_sysinfo_not_found
(*ENDIF*) 
END;
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
.PA 
