.pl 63
.ll 65
.ad 1
.bm 3
.fm 2
.bt $Copyright by   SAP AG, 1995$$Page %$
.tm 5
.hm 2
.hs 3
.tt 1 $SQL$Project Distributed Database System$VSP001CC$
.tt 2 $$$
.tt 3 $$packet_constants_and_types$1996-09-09$
***********************************************************
.nf


    ========== licence begin LGPL
    Copyright (C) 2000 SAP AG

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    ========== licence end

.fo
.nf
.sp
Module  : packet_constants_and_types
=========
.sp
Purpose : This are the constants and types of the database project
          which are the basis for all PASCAL modules concerning
          the SQL packet.
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  :
.sp
.cp 3
Created : 1995-04-04
.sp
.cp 3
Version : 1995-06-27
.sp
.cp 3
Release :  6.1.2 	 Date : 1995-06-27
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:
 
.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:
 
.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
/*PRETTY */
&ifndef DEBUG
#line 86					/* current line +2 */
&endif

/* CONST */
/* ******* next to the last byte of parsid ******* */
#define CSP1_P_NONE                        0
#define CSP1_P_COMMAND_EXECUTED            1
#define CSP1_P_USE_ADBS                    2
#define CSP1_P_RELEASE_FOUND              10
#define CSP1_P_FAST_SELECT_DIR_POSSIBLE   20
#define CSP1_P_NOT_ALLOWED_FOR_PROGRAM    30
#define CSP1_P_CLOSE_FOUND                40
#define CSP1_P_DESCRIBE_FOUND             41
#define CSP1_P_FETCH_FOUND                42
#define CSP1_P_MFETCH_FOUND               43
#define CSP1_P_MASS_SELECT_FOUND          44
#define CSP1_P_SELECT_FOR_UPDATE_FOUND    45
#define CSP1_P_REUSE_MASS_SELECT_FOUND    46
#define CSP1_P_REUSE_UPDATE_SEL_FOUND     47
#define CSP1_P_DIALOG_CALL                60
#define CSP1_P_MASS_COMMAND               70
#define CSP1_P_MSELECT_FOUND             114
#define CSP1_P_FOR_UPD_MSELECT_FOUND     115
#define CSP1_P_REUSE_MSELECT_FOUND       116
#define CSP1_P_REUSE_UPD_MSELECT_FOUND   117

 /* function codes as in ORACLE Call Interface */
#define  CSP1_NIL_FC  0
#define  CSP1_CREATE_TABLE_FC  1
#define  CSP1_SET_ROLE_FC  2    /* unused */
#define  CSP1_INSERT_FC  3
#define  CSP1_SELECT_FC  4
#define  CSP1_UPDATE_FC  5
#define  CSP1_DROP_ROLE_FC  6   /* unused */
#define  CSP1_DROP_VIEW_FC  7
#define  CSP1_DROP_TABLE_FC  8
#define  CSP1_DELETE_FC  9
#define  CSP1_CREATE_VIEW_FC  10
#define  CSP1_DROP_USER_FC  11
#define  CSP1_CREATE_ROLE_FC  12  /* unused */
#define  CSP1_CREATE_SEQUENCE_FC  13
#define  CSP1_ALTER_SEQUENCE_FC  14  /* unused */
#define  CSP1_UNUSED1_FC  15    /* unused */
#define  CSP1_DROP_SEQUENCE_FC  16
#define  CSP1_CREATE_SCHEMA_FC  17
#define  CSP1_CREATE_CLUSTER_FC  18  /* unused */
#define  CSP1_CREATE_USER_FC  19
#define  CSP1_CREATE_INDEX_FC  20
#define  CSP1_DROP_INDEX_FC  21
#define  CSP1_DROP_CLUSTER_FC  22  /* unused */
#define  CSP1_VALIDATE_INDEX_FC  23  /* unused */
#define  CSP1_CREATE_PROCEDURE_FC  24
#define  CSP1_ALTER_PROCEDURE_FC  25  /* unused */
#define  CSP1_ALTER_TABLE_FC  26
#define  CSP1_EXPLAIN_FC  27
#define  CSP1_GRANT_FC  28
#define  CSP1_REVOKE_FC  29
#define  CSP1_CREATE_SYNONYM_FC  30
#define  CSP1_DROP_SYNONYM_FC  31
#define  CSP1_ALTER_SYSTEM_SWITH_LOG_FC  32  /* unused */
#define  CSP1_SET_TRANSACTION_FC  33  /* unused */
#define  CSP1_PL_SQL_EXECUTE_FC  34  /* unused */
#define  CSP1_LOCK_TABLE_FC  35
#define  CSP1_UNUSED2_FC  36    /* unused */
#define  CSP1_RENAME_FC  37
#define  CSP1_COMMENT_FC  38
#define  CSP1_AUDIT_FC  39      /* unused */
#define  CSP1_NOAUDIT_FC  40    /* unused */
#define  CSP1_ALTER_INDEX_FC  41  /* unused */
#define  CSP1_CREATE_EXTERNAL_DATABASE_FC  42  /* unused */
#define  CSP1_DROP_EXTERNAL_DATABASE_FC  43  /* unused */
#define  CSP1_CREATE_DATABASE_FC  44  /* unused */
#define  CSP1_ALTER_DATABASE_FC  45  /* unused */
#define  CSP1_CREATE_ROLLBACK_SEGMENT_FC  46  /* unused */
#define  CSP1_ALTER_ROLLBACK_SEGMENT_FC  47  /* unused */
#define  CSP1_DROP_ROLLBACK_SEGMENT_FC  48  /* unused */
#define  CSP1_CREATE_TABLESPACE_FC  49  /* unused */
#define  CSP1_ALTER_TABLESPACE_FC  50  /* unused */
#define  CSP1_DROP_TABLESPACE_FC  51  /* unused */
#define  CSP1_ALTER_SESSION_FC  52  /* unused */
#define  CSP1_ALTER_USER_FC  53
#define  CSP1_COMMIT_FC  54
#define  CSP1_ROLLBACK_FC  55
#define  CSP1_SAVEPOINT_FC  56
#define  CSP1_CREATE_CONTROL_FILE_FC  57  /* unused */
#define  CSP1_ALTER_TRACING_FC  58  /* unused */
#define  CSP1_CREATE_TRIGGER_FC  59
#define  CSP1_ALTER_TRIGGER_FC  60  /* unused */
#define  CSP1_DROP_TRIGGER_FC  61
#define  CSP1_ANALYZE_TABLE_FC  62  /* unused */
#define  CSP1_ANALYZE_INDEX_FC  63  /* unused */
#define  CSP1_ANALYZE_CLUSTER_FC  64  /* unused */
#define  CSP1_CREATE_PROFILE_FC  65  /* unused */
#define  CSP1_DROP_PROFILE_FC  66  /* unused */
#define  CSP1_ALTER_PROFILE_FC  67  /* unused */
#define  CSP1_DROP_PROCEDURE_FC  68
#define  CSP1_UNUSED3_FC  69    /* unused */
#define  CSP1_ALTER_RESOURCE_COST_FC  70  /* unused */
#define  CSP1_CREATE_SNAPSHOT_LOG_FC  71
#define  CSP1_ALTER_SNAPSHOT_LOG_FC  72  /* unused */
#define  CSP1_DROP_SNAPSHOT_LOG_FC  73
#define  CSP1_CREATE_SNAPSHOT_FC  74
#define  CSP1_ALTER_SNAPSHOT_FC  75  /* unused */
#define  CSP1_DROP_SNAPSHOT_FC  76  /* unused */
#define  CSP1_SELECT_DIRECT_FC  201  /* ADABAS-special */
#define  CSP1_SELECT_FIRST_FC  202  /* ADABAS-special */
#define  CSP1_SELECT_LAST_FC  203  /* ADABAS-special */
#define  CSP1_SELECT_NEXT_FC  204  /* ADABAS-special */
#define  CSP1_SELECT_PREV_FC  205  /* ADABAS-special */
#define  CSP1_FETCH_FIRST_FC  206  /* ADABAS-special */
#define  CSP1_FETCH_LAST_FC  207  /* ADABAS-special */
#define  CSP1_FETCH_NEXT_FC  208  /* ADABAS-special */
#define  CSP1_FETCH_PREV_FC  209  /* ADABAS-special */
#define  CSP1_FETCH_POS_FC  210 /* ADABAS-special */
#define  CSP1_FETCH_SAME_FC  211  /* ADABAS-special */
#define  CSP1_STRING_COMMAND_FC  212  /* ADABAS-special */
#define  CSP1_MINSERT_FC  1003  /* ADABAS-masscmd */
#define  CSP1_MSELECT_FC  1004  /* ADABAS-masscmd */
#define  CSP1_MUPDATE_FC  1005  /* ADABAS-masscmd */
#define  CSP1_MDELETE_FC  1009  /* ADABAS-masscmd */
#define  CSP1_MFETCH_FIRST_FC  1206  /* ADABAS-masscmd */
#define  CSP1_MFETCH_LAST_FC  1207  /* ADABAS-masscmd */
#define  CSP1_MFETCH_NEXT_FC  1208  /* ADABAS-masscmd */
#define  CSP1_MFETCH_PREV_FC  1209  /* ADABAS-masscmd */
#define  CSP1_MFETCH_POS_FC  1210  /* ADABAS-masscmd */
#define  CSP1_MFETCH_SAME_FC  1211  /* ADABAS-masscmd */

#define  CSP1_MSELECT_INTO_FC 1244  /* ADABAS-masscmd */
 /* */
#define  CSP1_MASSCMD_FC_OFFSET  1000
#define  CSP1_OLD_VARPART_SIZE  8240
#define  CSP1_PART_ALIGN_LENGTH  8
 /* */
#define  CSP1_FIRST_SP1_VERSION  "61200"

#define  CSP1_MAX_PACKET_CNT  2

#define  CSP1_MAXVARIABLES 1900

/* TYPE */
/*typedef char        tsp_c5   [ 5 ];*/

enum  tsp1_cmd_mess_type {
      SP1M_NIL  = 0,
      SP1M_CMD_LOWER_BOUND  = 1,
      SP1M_DBS  = 2,
      SP1M_PARSE  = 3,
      SP1M_GETPARSE  = 4,
      SP1M_SYNTAX   = 5,
      SP1M_CFILL1   = 6,
      SP1M_CFILL2   = 7,
      SP1M_CFILL3   = 8,
      SP1M_CFILL4   = 9,
      SP1M_CFILL5  = 10,
      SP1M_CMD_UPPER_BOUND  = 11,
      SP1M_NO_CMD_LOWER_BOUND  = 12,
      SP1M_EXECUTE  = 13,
      SP1M_GETEXECUTE  = 14,
      SP1M_PUTVAL  = 15,
      SP1M_GETVAL  = 16,
      SP1M_LOAD  = 17,
      SP1M_UNLOAD  = 18,
      SP1M_NCFILL1  = 19,
      SP1M_NCFILL2  = 20,
      SP1M_NCFILL3  = 21,
      SP1M_NCFILL4  = 22,
      SP1M_NCFILL5  = 23,
      SP1M_NO_CMD_UPPER_BOUND  = 24,
      SP1M_HELLO  = 25,
      SP1M_UTIL_LOWER_BOUND  = 26,
      SP1M_UTILITY  = 27,
      SP1M_INCOPY  = 28,
      SP1M_UFILL1  = 29,
      SP1M_OUTCOPY  = 30,
      SP1M_UFILL2  = 31,
      SP1M_UFILL3  = 32,
      SP1M_UFILL4  = 33,
      SP1M_UFILL5  = 34,
      SP1M_UFILL6  = 35,
      SP1M_UFILL7  = 36,
      SP1M_UTIL_UPPER_BOUND  = 37,
      SP1M_SPECIALS_LOWER_BOUND  = 38,
      SP1M_SWITCH  = 39,
      SP1M_SWITCHLIMIT  = 40,
      SP1M_BUFLENGTH  = 41,
      SP1M_MINBUF  = 42,
      SP1M_MAXBUF  = 43,
      SP1M_SFILL1  = 44,
      SP1M_SFILL2  = 45,
      SP1M_SFILL3  = 46,
      SP1M_SFILL4  = 47,
      SP1M_SFILL5  = 48,
      SP1M_SPECIALS_UPPER_BOUND  = 49};

 /* */   
enum tsp1_comm_error {
            SP1CE_OK                = 0,
            SP1CE_NOTOK             = 1,
            SP1CE_TASKLIMIT         = 2,
            SP1CE_TIMEOUT           = 3,
            SP1CE_CRASH             = 4,
            SP1CE_START_REQUIRED    = 5,
            SP1CE_SHUTDOWN          = 6,
            SP1CE_SEND_LINE_DOWN    = 7,
            SP1CE_RECEIVE_LINE_DOWN = 8,
            SP1CE_PACKET_LIMIT      = 9,
            SP1CE_RELEASED          =10,
            SP1CE_WOULDBLOCK        =11};
/* */
enum  tsp1_intern_warning {
      SP1IW_WARN0  = 0,
      SP1IW_WARN1  = 1,
      SP1IW_WARN2  = 2,
      SP1IW_WARN3  = 3,
      SP1IW_WARN4  = 4,
      SP1IW_WARN5  = 5,
      SP1IW_WARN6  = 6,
      SP1IW_WARN7   = 7,
      SP1IW_WARN8   = 8,
      SP1IW_WARN9   = 9,
      SP1IW_WARN10  = 10,
      SP1IW_WARN11  = 11,
      SP1IW_WARN12  = 12,
      SP1IW_WARN13  = 13,
      SP1IW_WARN14  = 14,
      SP1IW_WARN15  = 15 };

 /* */
/* SET */ typedef UINT2 tsp1_warningset_intern;
/* SET typedef UINT2 tsp_warningset; */

 /* */

enum   tsp1_part_kind {
      SP1PK_NIL  = 0,
      SP1PK_APPL_PARAMETER_DESCRIPTION  = 1,
      SP1PK_COLUMNNAMES  = 2,
      SP1PK_COMMAND  = 3,
      SP1PK_CONV_TABLES_RETURNED  = 4,
      SP1PK_DATA   = 5,
      SP1PK_ERRORTEXT =   6,
      SP1PK_GETINFO   = 7,
      SP1PK_MODULNAME   = 8,
      SP1PK_PAGE    = 9,
      SP1PK_PARSID  = 10,
      SP1PK_PARSID_OF_SELECT  = 11,
      SP1PK_RESULTCOUNT  = 12,
      SP1PK_RESULTTABLENAME  = 13,
      SP1PK_SHORTINFO  = 14,
      SP1PK_USER_INFO_RETURNED  = 15,
      SP1PK_SURROGATE  = 16,
      SP1PK_BDINFO  = 17,
      SP1PK_LONGDATA  = 18,
      SP1PK_FUTURE_USE2  = 19,
      SP1PK_FUTURE_USE3  = 20,
      SP1PK_FUTURE_USE4  = 21,
      SP1PK_FUTURE_USE5  = 22 };

 /* */

enum   tsp1_part_attributes {
      SP1PA_LAST_PACKET  = 0,
      SP1PA_FILL1  = 1,
      SP1PA_FILL2  = 2,
      SP1PA_FILL3  = 3,
      SP1PA_FILL4  = 4,
      SP1PA_FILL5   = 5,
      SP1PA_FILL6   = 6,
      SP1PA_FILL7   = 7 };

 /* */
/* SET */ typedef signed char tsp1_part_attr;

 /* */

enum  tsp1_producer {
      SP1PR_NIL  = 0,
      SP1PR_USER_CMD  = 1,
      SP1PR_INTERNAL_CMD  = 2,
      SP1PR_KERNEL  = 3 };

 /*                sp1pr_internal_cmd given for example by LOAD, */
 /*                if command was not given by the user but      */
 /*                needed by LOAD for internal use               */
 /* */


enum   tsp1_segment_kind {
      SP1SK_NIL  = 0,
      SP1SK_CMD  = 1,
      SP1SK_RETURN  = 2 };

 /* */


enum   tsp1_sqlmode {
      SP1SM_NIL  = 0,
      SP1SM_SESSION_SQLMODE  = 1,
      SP1SM_ADABAS  = 2,
      SP1SM_ANSI  = 3,
      SP1SM_DB2  = 4,
      SP1SM_ORACLE  = 5 };


typedef struct
    {
    char            sp1p_part_kind;
    tsp1_part_attr  sp1p_attributes;
    tsp_int2        sp1p_arg_count;
    tsp_int4        sp1p_segm_offset;
    /* */
    tsp_int4        sp1p_buf_len;

    tsp_int4        sp1p_buf_size;
    }
tsp1_part_header;


/******** tsp1_part ********/

typedef struct 
            {
            tsp1_part_header sp1p_part_header;
            tsp_moveobj     sp1p_buf;
            }
     tsp1_part;

typedef tsp1_part *tsp1_part_ptr;


/********** tsp1_segment_header ************/

typedef  struct
            {
            tsp_int4        sp1s_segm_len;
            tsp_int4        sp1s_segm_offset;
            /*  */
            tsp_int2        sp1s_no_of_parts;
            tsp_int2        sp1s_own_index;
            char            sp1s_segm_kind;
            char            sp1c_mess_type;
            char            sp1c_sqlmode;
            char            sp1c_producer;
            /*  */
            BOOLEAN         sp1c_commit_immediately;
            BOOLEAN         sp1c_ignore_costwarning;
            BOOLEAN         sp1c_prepare;
            BOOLEAN         sp1c_with_info;
            BOOLEAN         sp1c_mass_cmd;
            BOOLEAN         sp1c_parsing_again;
            tsp_c2          sp1c_filler1;
            /*  */
            tsp_c8          sp1c_filler2;
            tsp_c8          sp1c_filler3;
            } 
	tsp1_segment_header_01;

	
typedef  struct
            {
            tsp_c8          sp1s_space2;
            /*  */
            tsp_c4          sp1s_space3;
            char            sp1s_space4;
            tsp_c5          sp1r_sqlstate;  /* 5 bytes */
            tsp_int2        sp1r_returncode;
            tsp_int4        sp1r_errorpos;
            /*  */
            tsp_warningset  sp1r_extern_warning;
            tsp1_warningset_intern sp1r_intern_warning;
            tsp_int2        sp1r_function_code;  /* csp1_.._fc */
            tsp_int2        sp1r_filler1;
            tsp_c8          sp1r_filler2;
            }
         tsp1_segment_header_02;
	
typedef  union
        {
         tsp1_segment_header_01   segh_01;
         tsp1_segment_header_02   segh_02;
        }
tsp1_segment_header;


/***********  tsp1_segment  *************/

typedef  struct
            {
            tsp1_segment_header sp1s_segm_header;
            tsp1_part       sp1p_part;
            }
         tsp1_segment;

typedef tsp1_segment *tsp1_segment_ptr;

 /*   
typedef tsp_c20 tsp1_rte_header;     not aligned, old RTE */

typedef struct
    {
    char            sp1h_mess_code;  /* code of old packet */
    char            sp1h_mess_swap;  /* swap of old packet */
    tsp_int2        sp1h_kanji_kind;
    tsp_c5          sp1h_appl_version;  /* | senderid of      */
    tsp_c3          sp1h_application;  /* |    old packet    */
    tsp_int4        sp1h_varpart_size;
    tsp_int4        sp1h_varpart_len;
    /*  */
    tsp_int2        sp1h_filler1;
    tsp_int2        sp1h_no_of_segm;
    tsp_c8          sp1h_filler3;
    }
tsp1_packet_header;

/*********  tsp1_packet ***********/

typedef struct
    {
    tsp1_packet_header sp1_header;
    tsp1_segment    sp1_segm;
    }
tsp1_packet;

typedef tsp1_packet *tsp1_packet_ptr;

typedef tsp1_packet_ptr  tsp1_packet_list [CSP1_MAX_PACKET_CNT];


enum   tsp1_param_opt_type {
      SP1OT_MANDATORY  = 0,
      SP1OT_OPTIONAL  = 1,
      SP1OT_DEFAULT  = 2,
      SP1OT_ESCAPE_CHAR  = 3 };

 /* */
/* SET */ typedef signed char tsp1_param_opt_set;

 /* */


enum  tsp1_param_io_type {
      SP1IO_INPUT  = 0,
      SP1IO_OUTPUT  = 1,
      SP1IO_INOUT  = 2 };


      
      
typedef struct
    {
    tsp1_param_opt_set sp1i_mode;
    char            sp1i_io_type;
    char            sp1i_data_type;
    tsp_int1        sp1i_frac;
    tsp_int2        sp1i_length;
    tsp_int2        sp1i_in_out_len;
    tsp_int4        sp1i_bufpos;
    }
tsp1_param_info;

typedef struct
    {
    char           para_type ;
    char           para_frac ;
    tsp_int2       para_length ;
    }
tsp1_param_spec ;

typedef tsp1_param_spec tsp1_parm_spec_list[CSP1_MAXVARIABLES];

.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
*-PRETTY-*  statements    :          0
*-PRETTY-*  lines of code :        401        PRETTY  3.09 
*-PRETTY-*  lines in file :        504         1992-11-23 
.PA 
