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

  @file         hak680.h

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

  @author       ElkeZ

  @brief        Join_Select

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


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

/*===========================================================================*
 *     MD5: '\xc9\xec\x53\xf5\xd1\x58\x1f\x0e\x2d\xc1\x5d\xc6\x3a\x97\x26\x18'
 *===========================================================================*/


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

#include "gsp00.h"
#include "ggg00.h"
#include "gak00.h"
#include "vak001.h"
#include "ggg07.h"
#include "gak68.h"
#include "gak71.h"


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

externPascal void a680_join (
    tak_all_command_glob  VAR_VALUE_REF  acv,
    tak_dml_info          VAR_VALUE_REF  dmli,
    tgg00_FileId          VAR_VALUE_REF  res_tree,
    tak71_strat_rec       VAR_VALUE_REF  ak_strat_interface,
    pasbool                              last_pars_part,
    tak68_joinview_rec    VAR_VALUE_REF  jvrec);

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

externPascal void a680search_sequence (
    tak_all_command_glob  VAR_VALUE_REF  acv,
    tak_dml_info          VAR_VALUE_REF  dmli,
    tak_parskey           VAR_VALUE_REF  parsk,
    tak68_eq_record       VAR_VALUE_REF  eq_rec,
    tgg00_FileId          VAR_VALUE_REF  res_tree,
    tak68_sequence        VAR_ARRAY_REF  series,
    tak71_strat_rec       VAR_VALUE_REF  ak_strat_interface,
    tak68_joinview_rec    VAR_VALUE_REF  jvrec,
    tgg07_opjoin_usage    VAR_VALUE_REF  use_operator_join);

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

externPascal void a680_first_table_cost (
    tak68_sequence_info   VAR_VALUE_REF  sequence_info,
    tak68_table_stats     VAR_ARRAY_REF  table_stats,
    tsp00_Int2                           first_table,
    tak68_result_info     VAR_VALUE_REF  res_info);

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

externPascal void a680standard_cost (
    tak_all_command_glob  VAR_VALUE_REF  acv,
    tak_dml_info          VAR_VALUE_REF  dmli,
    tak_sysbufferaddress                 config,
    tak68_table_stats     VAR_ARRAY_REF  table_stats,
    tak68_join_transitions  VAR_ARRAY_REF  jtrans,
    tak68_joininfos       VAR_VALUE_REF  jinfos,
    tak68_result_info     VAR_VALUE_REF  res_info,
    tak68_mult_tabs       VAR_VALUE_REF  mul_tabs,
    tak68_lastsuccession  VAR_VALUE_REF  lastsuccession,
    tsp00_Longreal        VAR_VALUE_REF  lowest_costs,
    tak68_sequence_info   VAR_VALUE_REF  sequence_info,
    tsp00_Int2                           succ_length,
    pasbool                              final_call);

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

externPascal void a680next_join_eval (
    tak_all_command_glob  VAR_VALUE_REF  acv,
    tak68_join_transition  VAR_VALUE_REF  jtrans,
    tak68_one_table_stat  VAR_VALUE_REF  table_stat,
    tsp00_Longreal        VAR_VALUE_REF  counted_multiplier,
    tsp00_Longreal        VAR_VALUE_REF  reverse_multiplier,
    tsp00_Longreal        VAR_VALUE_REF  newsum,
    tsp00_Longreal        VAR_VALUE_REF  newpages,
    tsp00_Int4                           old_recs_per_respage,
    tsp00_Int4                           recs_per_respage,
    pasbool                              use_operator_join);

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

externPascal void a680multiplier_get (
    tak_all_command_glob  VAR_VALUE_REF  acv,
    tak_sysbufferaddress                 base_ptr,
    tak00_columninfo      VAR_VALUE_REF  col_info,
    tak_jcolpropset       VAR_ARRAY_REF  jpropset,
    tsp00_Int4            VAR_VALUE_REF  jmultiplier,
    pasbool               VAR_VALUE_REF  do_col_upd_stat);

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

externPascal pasbool a680is_outer_predicate (
    tak_dml_info          VAR_VALUE_REF  dmli,
    tsp00_Int2                           st_pos);

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

externPascal void a680rollback_temp_jinfo (
    tak_all_command_glob  VAR_VALUE_REF  acv,
    tak_dml_info          VAR_VALUE_REF  dmli,
    const tak_parskey     VAR_VALUE_REF  parsk,
    const tgg00_Surrogate  VAR_ARRAY_REF  jv_tabid,
    tsp00_Int2                           info_cnt);

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


#endif

