+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
CREATE EXTENSION smlar;
+set extra_float_digits =0;
--sanity check
SELECT
opc.opcname,
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
set_smlar_limit
-----------------
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
#include "utils/memutils.h"
+#if (PG_VERSION_NUM < 120000)
#include "utils/tqual.h"
+#endif
#include "utils/syscache.h"
#include "utils/typcache.h"
#define SNAPSHOT SnapshotNow
#endif
+#if PG_VERSION_NUM >= 130000
+#define heap_open(r, l) table_open((r), (l))
+#define heap_close(r, l) table_close((r), (l))
+#endif
+
static Oid
getDefaultOpclass(Oid amoid, Oid typid)
{
{
if ( OidIsValid(opclassOid) )
elog(ERROR, "Ambiguous opclass for type %u (access method %u)", typid, amoid);
+#if (PG_VERSION_NUM >= 120000)
+ opclassOid = opclass->oid;
+#else
opclassOid = HeapTupleGetOid(tuple);
+#endif
}
}
/*
* Search binary-coercible type
*/
+#ifdef SearchSysCacheList1
+ catlist = SearchSysCacheList1(CASTSOURCETARGET,
+ ObjectIdGetDatum(typid));
+#else
catlist = SearchSysCacheList(CASTSOURCETARGET, 1,
ObjectIdGetDatum(typid),
0, 0, 0);
+#endif
for (i = 0; i < catlist->n_members; i++)
{
static ProcTypeInfo *cacheProcs = NULL;
static int nCacheProcs = 0;
+#ifndef TupleDescAttr
+#define TupleDescAttr(tupdesc, i) ((tupdesc)->attrs[(i)])
+#endif
+
static ProcTypeInfo
fillProcs(Oid typid)
{
if (tupdesc->natts != 2)
elog(ERROR,"Composite type has wrong number of fields");
- if (tupdesc->attrs[1]->atttypid != FLOAT4OID)
+ if (TupleDescAttr(tupdesc, 1)->atttypid != FLOAT4OID)
elog(ERROR,"Second field of composite type is not float4");
oldcontext = MemoryContextSwitchTo(TopMemoryContext);
ReleaseTupleDesc(tupdesc);
- info->cmpFuncOid = getAMProc(BTREE_AM_OID, info->tupDesc->attrs[0]->atttypid);
- info->hashFuncOid = getAMProc(HASH_AM_OID, info->tupDesc->attrs[0]->atttypid);
+ info->cmpFuncOid = getAMProc(BTREE_AM_OID,
+ TupleDescAttr(info->tupDesc, 0)->atttypid);
+ info->hashFuncOid = getAMProc(HASH_AM_OID,
+ TupleDescAttr(info->tupDesc, 0)->atttypid);
}
else
{
{
case TF_LOG:
s->df[i] = (1.0 + log( s->df[i] ));
+ /* FALLTHROUGH */
case TF_N:
s->df[i] *= stat->idf;
break;
#include "access/tupdesc.h"
#include "catalog/pg_collation.h"
+#include <math.h>
+
typedef struct ProcTypeInfoData *ProcTypeInfo;
typedef struct ProcTypeInfoData {
#include "fmgr.h"
#include "access/gin.h"
#include "access/skey.h"
+#if PG_VERSION_NUM < 130000
#include "access/tuptoaster.h"
+#else
+#include "access/heaptoast.h"
+#endif
PG_FUNCTION_INFO_V1(smlararrayextract);
Datum smlararrayextract(PG_FUNCTION_ARGS);
#include "fmgr.h"
#include "access/gist.h"
#include "access/skey.h"
+#if PG_VERSION_NUM < 130000
#include "access/tuptoaster.h"
+#else
+#include "access/heaptoast.h"
+#endif
#include "utils/memutils.h"
typedef struct SmlSign {
ptr = GETARR(sign);
for(i=0;i<s->nelems;i++)
- ptr[i] = DatumGetUInt32( FunctionCall1( &s->info->hashFunc, s->elems[i] ) );
+ ptr[i] = DatumGetUInt32(FunctionCall1Coll(&s->info->hashFunc,
+ DEFAULT_COLLATION_OID,
+ s->elems[i]));
/*
* there is a collision of hash-function; len is always equal or less than
getFmgrInfoHash(stat->info);
for(i=0;i<stat->nelems;i++)
{
- uint32 hash = DatumGetUInt32( FunctionCall1( &stat->info->hashFunc, stat->elems[i].datum ) );
- int index = HASHVAL(hash);
+ uint32 hash;
+ int index;
+
+ hash = DatumGetUInt32(FunctionCall1Coll(&stat->info->hashFunc,
+ DEFAULT_COLLATION_OID,
+ stat->elems[i].datum));
+ index = HASHVAL(hash);
stat->helems[i].hash = hash;
stat->helems[i].idfMin = stat->helems[i].idfMax = stat->elems[i].idf;
getFmgrInfoHash(a->info);
for(i=0;i<a->nelems;i++)
- a->hash[i] = DatumGetUInt32( FunctionCall1( &a->info->hashFunc, a->elems[i] ) );
+ a->hash[i] = DatumGetUInt32(FunctionCall1Coll(&a->info->hashFunc,
+ DEFAULT_COLLATION_OID,
+ a->elems[i]));
}
retval = (GISTENTRY *) palloc(sizeof(GISTENTRY));
gistentryinit(*retval, PointerGetDatum(sign),
entry->rel, entry->page,
- entry->offset, FALSE);
+ entry->offset, false);
}
else if ( ISSIGNKEY(DatumGetPointer(entry->key)) &&
!ISALLTRUE(DatumGetPointer(entry->key)) )
gistentryinit(*retval, PointerGetDatum(sign),
entry->rel, entry->page,
- entry->offset, FALSE);
+ entry->offset, false);
}
}
gistentryinit(*retval, PointerGetDatum(key),
entry->rel, entry->page,
- entry->offset, FALSE);
+ entry->offset, false);
PG_RETURN_POINTER(retval);
}
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
CREATE TYPE cint AS (id int, w float4);
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
CREATE TYPE ctext AS (id text, w float4);
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
SET smlar.type = "tfidf";
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
SET smlar.type='overlap';
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
SET smlar.type = "tfidf";
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
SET smlar.type='overlap';
+set extra_float_digits =0;
SELECT set_smlar_limit(0.8);
DROP INDEX idx_test_int8;
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
SET smlar.type = "tfidf";
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
SET smlar.type='overlap';
+set extra_float_digits =0;
SELECT set_smlar_limit(0.8);
DROP INDEX idx_test_interval;
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
CREATE EXTENSION smlar;
+set extra_float_digits =0;
--sanity check
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.3);
SET smlar.type = "tfidf";
+set extra_float_digits =0;
SELECT set_smlar_limit(5.0);
SET smlar.type='overlap';
+set extra_float_digits =0;
SELECT set_smlar_limit(0.8);
DROP INDEX idx_test_text;
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT
+set extra_float_digits =0;
SELECT set_smlar_limit(0.6);
SELECT