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

  @file         hgg04.h

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

  @author       ElkeZ

  @brief        Select_Help_Procedures

\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 HGG04_H
#define HGG04_H


/*===========================================================================*
 *     RefType: C++                                                          *
 *===========================================================================*/

/*===========================================================================*
 *     MD5: '\x82\xc1\x08\x9a\x42\xf2\x80\x91\x12\xd4\xcf\x9f\x6e\x34\x84\x65'
 *===========================================================================*/


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

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


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

externPascal void g04build_temp_tree_id (
    tgg00_FileId          &  curr,
    tgg00_TransContext    &  t);

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

externPascal void g04check_if_top_level (
    tgg00_StackListPtr    &  mb_st,
    integer                  stpos,
    integer                  maxstpos,
    pasbool               &  top_level);

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

externPascal void g04inbetween_change (
    tgg00_MessBlock       &  mblock,
    pasbool               &  finding_possible);

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

externPascal void g04incheck (
    tgg00_MessBlock       &  mblock,
    integer                  stpos);

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

externPascal void g04check_betw (
    tgg00_MessBlock       &  mblock,
    tsp00_Int2               stpos,
    pasbool               &  res_possible,
    pasbool               &  to_eq_changed);

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

externPascal void g04check_like (
    tgg00_MessBlock       &  mblock,
    tsp00_Int2               stpos,
    pasbool               &  to_eq_changed);

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

externPascal void g04init_select_fields (
    tgg00_SelectFieldsParam  &  sel,
    tsp00_MoveObjPtr         data_addr,
    tsp00_Int4               data_size,
    tgg00_ValueListPtr       valarr_addr,
    tsp00_Int4               validx_max,
    tgg00_StackListPtr       work_st_addr,
    tsp00_Int2               work_st_max,
    tsp00_MoveObjPtr         work_buf_addr,
    tsp00_Int4               work_buf_size,
    tsp00_SqlMode_Param      curr_sqlmode);

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

externPascal pasbool g04inv_tfn (
    tgg00_Tfn_Param          tfn);

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

externPascal void g04locate_col (
    const tgg00_StackEntry  &  st,
    const tgg00_Rec*         rec_buf_ptr,
    tgg00_VarColPosList   &  varcol_pos,
    integer               &  col_pos,
    integer               &  col_len);

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

externPascal void g04LocateOldVarCol (
    tgg00_StackEntry         st,
    tgg00_RecPtr             rec_buf_ptr,
    integer               &  col_pos,
    integer               &  col_len);

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

externPascal tsp00_Int2 g04calc_optimize_info_len (
    tgg00_MessBlock       &  mblock);

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

externPascal void g04mblock_optimize_info (
    tgg00_MessBlock       &  mblock);

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

externPascal void g04spec_null_check (
    tgg00_MessBlock       &  mblock,
    tgg00_BasisError      &  b_err);

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

externPascal void g04read_subquery (
    tgg00_TransContext    &  trns,
    tgg00_Rec             &  result,
    tgg00_FileId          &  subqtree_id,
    tgg00_Lkey            &  m_key,
    tgg00_BasisError      &  aux_error,
    pasbool               &  ok);

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

externPascal void g04index_tree_build (
    const tgg00_FileId    &  file_id,
    tgg00_FileId          &  index_tree,
    tsp00_Int2               index_no);

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

externPascal pasbool gg04IsPermStaticTfn (
    tgg00_Tfn_Param          Tfn);

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

externPascal pasbool gg04IsStaticPage (
    tgg00_PageType2_Param     PageType2);

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


#endif

