Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/contrib/btree_gist/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 1 kB image not shown  

Quelle  btree_gist.c

  Sprache: C
 

/*
 * contrib/btree_gist/btree_gist.c
 */

#include "postgres.h"

#include "access/cmptype.h"
#include "access/stratnum.h"
#include "utils/builtins.h"

PG_MODULE_MAGIC_EXT(
     .name = "btree_gist",
     .version = PG_VERSION
);

PG_FUNCTION_INFO_V1(gbt_decompress);
PG_FUNCTION_INFO_V1(gbtreekey_in);
PG_FUNCTION_INFO_V1(gbtreekey_out);
PG_FUNCTION_INFO_V1(gist_translate_cmptype_btree);

/**************************************************
 * In/Out for keys
 **************************************************/



Datum
gbtreekey_in(PG_FUNCTION_ARGS)
{
 Oid   typioparam = PG_GETARG_OID(1);

 ereport(ERROR,
   (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
    errmsg("cannot accept a value of type %s",
     format_type_extended(typioparam, -1,
           FORMAT_TYPE_ALLOW_INVALID))));

 PG_RETURN_VOID();   /* keep compiler quiet */
}

Datum
gbtreekey_out(PG_FUNCTION_ARGS)
{
 /* Sadly, we do not receive any indication of the specific type */
 ereport(ERROR,
   (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
    errmsg("cannot display a value of type %s""gbtreekey?")));

 PG_RETURN_VOID();   /* keep compiler quiet */
}


/*
** GiST DeCompress methods
** do not do anything.
*/

Datum
gbt_decompress(PG_FUNCTION_ARGS)
{
 PG_RETURN_POINTER(PG_GETARG_POINTER(0));
}

/*
 * Returns the btree number for supported operators, otherwise invalid.
 */

Datum
gist_translate_cmptype_btree(PG_FUNCTION_ARGS)
{
 CompareType cmptype = PG_GETARG_INT32(0);

 switch (cmptype)
 {
  case COMPARE_EQ:
   PG_RETURN_UINT16(BTEqualStrategyNumber);
  case COMPARE_LT:
   PG_RETURN_UINT16(BTLessStrategyNumber);
  case COMPARE_LE:
   PG_RETURN_UINT16(BTLessEqualStrategyNumber);
  case COMPARE_GT:
   PG_RETURN_UINT16(BTGreaterStrategyNumber);
  case COMPARE_GE:
   PG_RETURN_UINT16(BTGreaterEqualStrategyNumber);
  default:
   PG_RETURN_UINT16(InvalidStrategy);
 }
}

Messung V0.5 in Prozent
C=97 H=97 G=96

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.