From a38ac37c5c832a1489d163712eaac4108e1be3da Mon Sep 17 00:00:00 2001 From: PerikAdjust Date: Tue, 18 Jun 2024 16:14:52 +0200 Subject: [PATCH] modification for pg 16, but still an error in ltree_gist.c for pg16 --- .github/workflows/main.yml | 3 ++- _ltree_gist.c | 8 ++++++-- _ltree_op.c | 4 ++++ lquery_op.c | 2 +- ltree_gist.c | 10 ++++++++-- ltxtquery_io.c | 3 +++ wltree.dylib | Bin 0 -> 81344 bytes 7 files changed, 24 insertions(+), 6 deletions(-) create mode 100755 wltree.dylib diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e654cb6..ef3f486 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,8 @@ jobs: test: strategy: matrix: - pg: [16, 15, 14, 13, 12, 11, 10] + pg: [15] + #pg: [16, 15, 14, 13, 12, 11, 10] name: 🐘 PostgreSQL ${{ matrix.pg }} runs-on: ubuntu-latest container: pgxn/pgxn-tools diff --git a/_ltree_gist.c b/_ltree_gist.c index f272143..4b08e5a 100644 --- a/_ltree_gist.c +++ b/_ltree_gist.c @@ -11,6 +11,10 @@ #include "access/skey.h" #include "crc32.h" #include "ltree.h" +#if PG_VERSION_NUM >= 160000 +#include "varatt.h" +#include "utils/array.h" +#endif PG_FUNCTION_INFO_V1(_ltree_compress); @@ -378,7 +382,7 @@ _ltree_picksplit(PG_FUNCTION_ARGS) _j = GETENTRY(entryvec, j); size_alpha = hemdist(datum_l, _j); size_beta = hemdist(datum_r, _j); - costvector[j - 1].cost = Abs(size_alpha - size_beta); + costvector[j - 1].cost = abs(size_alpha - size_beta); } qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost); @@ -556,7 +560,7 @@ Datum _ltree_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - char *query = (char *) DatumGetPointer(PG_DETOAST_DATUM(PG_GETARG_DATUM(1))); + char *query = (char *) DatumGetPointer(PG_GETARG_DATUM(1)); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); /* Oid subtype = PG_GETARG_OID(3); */ diff --git a/_ltree_op.c b/_ltree_op.c index 1b53af8..bb27038 100644 --- a/_ltree_op.c +++ b/_ltree_op.c @@ -6,6 +6,10 @@ * Teodor Sigaev */ #include "postgres.h" +#if PG_VERSION_NUM >= 160000 +#include "utils/array.h" +#endif + #include diff --git a/lquery_op.c b/lquery_op.c index 118e1e7..e564530 100644 --- a/lquery_op.c +++ b/lquery_op.c @@ -11,7 +11,7 @@ #include "utils/formatting.h" #include "ltree.h" #if PG_VERSION_NUM >= 160000 -#include "varatt.h" +#include "utils/array.h" #endif PG_FUNCTION_INFO_V1(ltq_regex); diff --git a/ltree_gist.c b/ltree_gist.c index 045974a..02d8cb7 100644 --- a/ltree_gist.c +++ b/ltree_gist.c @@ -10,6 +10,11 @@ #include "crc32.h" #include "ltree.h" +#if PG_VERSION_NUM >= 160000 +#include "varatt.h" +#include "utils/array.h" +#endif + #define NEXTVAL(x) ( (lquery*)( (char*)(x) + INTALIGN( VARSIZE(x) ) ) ) PG_FUNCTION_INFO_V1(ltree_gist_in); @@ -70,6 +75,7 @@ ltree_compress(PG_FUNCTION_ARGS) { /* ltree */ ltree_gist *key; ltree *val = (ltree *) DatumGetPointer(PG_DETOAST_DATUM(entry->key)); + // ltree *val = DatumGetLtreeP(entry->key); int4 len = LTG_HDRSIZE + VARSIZE(val); key = (ltree_gist *) palloc(len); @@ -89,7 +95,7 @@ Datum ltree_decompress(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - ltree_gist *key = (ltree_gist *) DatumGetPointer(PG_DETOAST_DATUM(entry->key)); + ltree_gist *key = (ltree_gist *) PG_DETOAST_DATUM(entry->key); if (PointerGetDatum(key) != entry->key) { @@ -707,7 +713,7 @@ ltree_consistent(PG_FUNCTION_ARGS) break; case 16: case 17: - query = DatumGetPointer(PG_DETOAST_DATUM(PG_GETARG_DATUM(1))); + query = PG_GETARG_ARRAYTYPE_P(1); if (GIST_LEAF(entry)) res = DatumGetBool(DirectFunctionCall2(lt_q_regex, PointerGetDatum(LTG_NODE(key)), diff --git a/ltxtquery_io.c b/ltxtquery_io.c index 826f4e1..33be326 100644 --- a/ltxtquery_io.c +++ b/ltxtquery_io.c @@ -9,6 +9,9 @@ #include "crc32.h" #include "ltree.h" +#if PG_VERSION_NUM >= 160000 +#include "varatt.h" +#endif PG_FUNCTION_INFO_V1(ltxtq_in); Datum ltxtq_in(PG_FUNCTION_ARGS); diff --git a/wltree.dylib b/wltree.dylib new file mode 100755 index 0000000000000000000000000000000000000000..cf45fd9f4dcdbfdb6a8d6de4a649dc588a3ebd60 GIT binary patch literal 81344 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 JZ=XQl{U`84VDtb0 literal 0 HcmV?d00001