/*!******************************************************************************

  @file         hkb721.h

  ------------------------------------------------------------------------------

  @author       ElkeZ

  @brief        Single_Select_Part2

\if EMIT_LICENCE

    ========== licence begin  GPL
    Copyright (c) 2000-2005 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

\endif

********************************************************************************/

#ifndef HKB721_H
#define HKB721_H


/*===========================================================================*
 *     RefType: Both                                                         *
 *===========================================================================*/

/*===========================================================================*
 *     MD5: '\x4b\x4e\x8e\xc5\xe7\x9c\x23\xb4\x12\xca\xdc\x67\x92\x1c\xe7\x7d'
 *===========================================================================*/


/*===========================================================================*
 *  INCLUDES                                                                 *
 *===========================================================================*/

#include "gsp00.h"
#include "ggg00.h"
#include "ggg07.h"


/*===========================================================================*
 *  FUNCTION PROTOTYPES                                                      *
 *===========================================================================*/

externPascal void k721add_into_result (
    tgg00_TransContext    VAR_VALUE_REF  t,
    tgg07_select_param    VAR_VALUE_REF  selrec,
    tgg00_MessBlockPtr    VAR_VALUE_REF  next_mblock);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721call_later_output (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    void                  *  res_buf,
    integer                              keylen);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721do_avg (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg07_select_param    VAR_VALUE_REF  selrec,
    pasbool                              later_output,
    integer                              keylen);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721do_rowno (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg07_select_param    VAR_VALUE_REF  selrec);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721eval_pagecount (
    tgg00_MessBlock       VAR_VALUE_REF  m);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721null_result (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg07_select_param    VAR_VALUE_REF  selrec,
    tgg00_SelectFieldsParam  VAR_VALUE_REF  sel,
    tsp00_Int4                           act_cntresult,
    pasbool                              later_output,
    integer                              h_keylen);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721catalog_add_into_result (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg00_SelectFieldsParam  VAR_VALUE_REF  sel,
    tgg07_select_context  VAR_VALUE_REF  selrec,
    tgg07_get_param       VAR_VALUE_REF  getrec,
    tgg00_Rec             VAR_VALUE_REF  result_rec,
    tgg00_Rec             VAR_VALUE_REF  one_res_rec,
    tsp00_Int4            VAR_VALUE_REF  res_cnt);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721read_subquery (
    tgg00_MessBlock       VAR_VALUE_REF  m);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721strat_distribution (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg07_get_param       VAR_VALUE_REF  getrec,
    tgg07_select_param    VAR_VALUE_REF  selrec,
    tgg00_SelectFieldsParam  VAR_VALUE_REF  selfields,
    tgg07_StrategyInfo    VAR_VALUE_REF  gg_strategy,
    pasbool               VAR_VALUE_REF  finding_possible);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721inv_gets (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg00_TwoFileIds      VAR_VALUE_REF  ftrees,
    tgg00_TwoKeys         VAR_VALUE_REF  startkeys,
    tgg00_TwoKeys         VAR_VALUE_REF  stopkeys,
    tgg00_Lkey            VAR_VALUE_REF  act_key,
    tgg00_BdInvSet        VAR_ARRAY_REF  istop,
    tgg00_MessType2_Param                 mtype,
    tgg07_get_param       VAR_VALUE_REF  getrec,
    tgg07_select_param    VAR_VALUE_REF  selrec,
    tgg00_SelectFieldsParam  VAR_VALUE_REF  selfields);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721function_add (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg07_select_param    VAR_VALUE_REF  selrec,
    pasbool                              aggr);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721Merge_ForAggregate (
    tgg00_MessBlockPtr                   M,
    tgg07_SelectParamPtr                 SelRec,
    tgg00_VoidPtr                        Source,
    tgg00_VoidPtr                        Destination,
    tsp00_Int2                           Length,
    pasbool                              Merge);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal pasbool k721GetKeyAndRecInfo_ForAggregate (
    tsp00_Int2            VAR_VALUE_REF  RecLength,
    tsp00_Int2            VAR_VALUE_REF  KeyCount,
    tgg00_VoidPtr                        KeyOffset,
    tgg00_VoidPtr                        KeyLength,
    tsp00_Int2                           MaxKeys);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal integer k721out_entry (
    tgg00_StackListPtr                   st_addr,
    integer                              start_entry);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721longcol_insert_select (
    tgg00_MessBlock       VAR_VALUE_REF  m,
    tgg00_Rec             VAR_VALUE_REF  result,
    tgg00_FileId          VAR_VALUE_REF  resf_id);

/* Don't edit this file by hand, it is generated by ptocProto.py */

externPascal void k721stddev (
    tgg00_TransContextPtr                 trans,
    tgg00_FileId          VAR_VALUE_REF  dist_file,
    tgg00_Rec             VAR_VALUE_REF  result,
    tgg00_Rec             VAR_VALUE_REF  buf1,
    void                  *  buf2,
    tgg00_StackOpFunc_Param                 func,
    integer                              outpos);

/* Don't edit this file by hand, it is generated by ptocProto.py */


#endif

