v12 support
authorTeodor Sigaev <teodor@sigaev.ru>
Wed, 8 Apr 2020 09:46:05 +0000 (12:46 +0300)
committerTeodor Sigaev <teodor@sigaev.ru>
Wed, 8 Apr 2020 09:46:05 +0000 (12:46 +0300)
73 files changed:
expected/bit.out
expected/bytea.out
expected/char.out
expected/cidr.out
expected/composite_int4.out
expected/composite_text.out
expected/date.out
expected/float4.out
expected/float8.out
expected/inet.out
expected/int2.out
expected/int4.out
expected/int4g.out
expected/int4i.out
expected/int8.out
expected/int8g.out
expected/int8i.out
expected/interval.out
expected/intervalg.out
expected/intervali.out
expected/macaddr.out
expected/money.out
expected/numeric.out
expected/oid.out
expected/smlar.out
expected/text.out
expected/textg.out
expected/texti.out
expected/time.out
expected/timestamp.out
expected/timestamptz.out
expected/timetz.out
expected/varbit.out
expected/varchar.out
smlar.c
smlar_gist.c
sql/bit.sql
sql/bytea.sql
sql/char.sql
sql/cidr.sql
sql/composite_int4.sql
sql/composite_text.sql
sql/date.sql
sql/float4.sql
sql/float8.sql
sql/inet.sql
sql/int2.sql
sql/int4.sql
sql/int4g.sql
sql/int4i.sql
sql/int8.sql
sql/int8g.sql
sql/int8i.sql
sql/int8n.sql
sql/interval.sql
sql/intervalg.sql
sql/intervali.sql
sql/intervaln.sql
sql/macaddr.sql
sql/money.sql
sql/numeric.sql
sql/oid.sql
sql/smlar.sql
sql/text.sql
sql/textg.sql
sql/texti.sql
sql/textn.sql
sql/time.sql
sql/timestamp.sql
sql/timestamptz.sql
sql/timetz.sql
sql/varbit.sql
sql/varchar.sql

index 980cbaf..fff8c6e 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 6e98885..2c3d4c9 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index b754250..af7e037 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 38d1ad4..0313210 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index fc1d243..1a46c08 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 0b77edc..4824934 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 10b7fe3..8801337 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 70eb507..f44cc0d 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 4a9286f..bff792c 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 7bde3d8..b7d47d0 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 8c43891..ed54190 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 1f69657..90f28ab 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index fd234b5..433fcd7 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
  set_smlar_limit 
 -----------------
index 81e8284..92a8246 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
  set_smlar_limit 
 -----------------
index ee943d2..7fdaebe 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 432fa35..b38ba2c 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
  set_smlar_limit 
 -----------------
index 9ffcc4d..201cf63 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
  set_smlar_limit 
 -----------------
index a8bd2bd..1d33b6e 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 6731e3c..7122a90 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
  set_smlar_limit 
 -----------------
index 9d34998..fd1f5b8 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
  set_smlar_limit 
 -----------------
index 9397042..14cac5f 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index c04d690..d3f4ae1 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 84eb7ee..cf8882f 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index c76ce6f..ac67cf7 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 2a34641..5dac034 100644 (file)
@@ -1,4 +1,5 @@
 CREATE EXTENSION smlar;
+set extra_float_digits =0;
 --sanity check
 SELECT 
        opc.opcname, 
index 622a89e..56cbd36 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index a48cb24..38fc578 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
  set_smlar_limit 
 -----------------
index 751d140..b52ff23 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
  set_smlar_limit 
 -----------------
index 2fe47ed..e724702 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 72ab686..3ef57c2 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index a73c451..a5dc890 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index cd5191d..d0fa0e9 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 06332ab..6f614d8 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
index 9fab6c4..f74b110 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
  set_smlar_limit 
 -----------------
diff --git a/smlar.c b/smlar.c
index 13c8169..ce7e2ad 100644 (file)
--- a/smlar.c
+++ b/smlar.c
@@ -16,7 +16,9 @@
 #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"
 
@@ -28,6 +30,7 @@ PG_MODULE_MAGIC;
 #define SNAPSHOT SnapshotNow
 #endif
 
+
 static Oid
 getDefaultOpclass(Oid amoid, Oid typid)
 {
@@ -56,7 +59,11 @@ 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
                }
        }
 
index 788876c..b1d9073 100644 (file)
@@ -164,7 +164,9 @@ Array2HashedArray(ProcTypeInfo info, ArrayType *a)
 
        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
@@ -239,7 +241,11 @@ getHashedCache(void *cache)
                getFmgrInfoHash(stat->info);
                for(i=0;i<stat->nelems;i++)
                {
-                       uint32  hash = DatumGetUInt32( FunctionCall1( &stat->info->hashFunc, stat->elems[i].datum ) );
+                       uint32  hash;
+
+                       hash = DatumGetUInt32(FunctionCall1Coll(&stat->info->hashFunc,
+                                                                                                       DEFAULT_COLLATION_OID,
+                                                                                                       stat->elems[i].datum));
                        int             index = HASHVAL(hash);
 
                        stat->helems[i].hash = hash;
@@ -296,7 +302,9 @@ fillHashVal(void *cache, SimpleArray *a)
        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]));
 }
 
 
index 028268a..1669561 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index e86d6cb..952aa74 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 9a39f66..b557da9 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index afe69d4..d8ff861 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 0ba908f..aab069b 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 CREATE TYPE cint AS (id int, w float4);
index 6c0b85d..2f41ff8 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 CREATE TYPE ctext AS (id text, w float4);
index 8643579..219122c 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 53668e9..09343c4 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 3841941..3753a42 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 22febf6..7aaa2f1 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index c55464d..e3e913c 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 2b16272..4a31600 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 982ce4d..e7d4f09 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
 
 SET smlar.type = "tfidf";
index 58e9b0d..7a9d58d 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
 SET smlar.type='overlap';
 
index 9b3e2be..8ea868c 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 4449e32..f7262ef 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
 
 SET smlar.type = "tfidf";
index ad458e4..b74a464 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
 SET smlar.type='overlap';
 
index 81144c9..957288e 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.8);
 
 DROP INDEX idx_test_int8;
index 7b45c95..8611a7c 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 5bc25ca..f41394b 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
 
 SET smlar.type = "tfidf";
index 2287d1a..335ab36 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
 SET smlar.type='overlap';
 
index f36759d..2e03e0d 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.8);
 
 DROP INDEX idx_test_interval;
index 92492c8..9b36359 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 43ea5ae..f280e0b 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 5b54b2d..04626f0 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 2436a32..3c3d5ae 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index da93dfe..c498675 100644 (file)
@@ -1,4 +1,5 @@
 CREATE EXTENSION smlar;
+set extra_float_digits =0;
 
 --sanity check
 SELECT 
index 98cac43..c160920 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index c937a5b..e8d2575 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.3);
 
 SET smlar.type = "tfidf";
index ea974b7..96833e6 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(5.0);
 SET smlar.type='overlap';
 
index dd6e65e..b3f1ae8 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.8);
 
 DROP INDEX idx_test_text;
index 81360e7..9218a59 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index f85a310..736e0b8 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 8e9081f..e2a8687 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index c3e18f3..8d47bab 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index 23c3b5c..4389dfe 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT 
index fe6c720..9faaf32 100644 (file)
@@ -1,3 +1,4 @@
+set extra_float_digits =0;
 SELECT set_smlar_limit(0.6);
 
 SELECT