mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Fix default signature length for gist_ltree_ops
911e702077
implemented operator class parameters including the signature length in ltree. Previously, the signature length for gist_ltree_ops was 8. Because of bug911e702077
the default signature length for gist_ltree_ops became 28 for ltree 1.1 (where options method is NOT provided) and 8 for ltree 1.2 (where options method is provided). This commit changes the default signature length for ltree 1.1 to 8. Existing gist_ltree_ops indexes might be corrupted in various scenarios. Thus, we have to recommend reindexing all the gist_ltree_ops indexes after the upgrade. Reported-by: Victor Yegorov Reviewed-by: Tomas Vondra, Tom Lane, Andres Freund, Nikita Glukhov Reviewed-by: Andrew Dunstan Author: Tomas Vondra, Alexander Korotkov Discussion: https://postgr.es/m/17406-71e02820ae79bb40%40postgresql.org Discussion: https://postgr.es/m/d80e0a55-6c3e-5b26-53e3-3c4f973f737c%40enterprisedb.com
This commit is contained in:
@ -216,11 +216,13 @@ int ltree_strncasecmp(const char *a, const char *b, size_t s);
|
||||
|
||||
/* GiST support for ltree */
|
||||
|
||||
#define SIGLEN_MAX GISTMaxIndexKeySize
|
||||
#define SIGLEN_DEFAULT (2 * sizeof(int32))
|
||||
#define BITBYTE 8
|
||||
#define SIGLEN (sizeof(int32) * SIGLENINT)
|
||||
#define SIGLENBIT(siglen) ((siglen) * BITBYTE)
|
||||
#define LTREE_SIGLEN_DEFAULT (2 * sizeof(int32))
|
||||
#define LTREE_SIGLEN_MAX GISTMaxIndexKeySize
|
||||
#define LTREE_GET_SIGLEN() (PG_HAS_OPCLASS_OPTIONS() ? \
|
||||
((LtreeGistOptions *) PG_GET_OPCLASS_OPTIONS())->siglen : \
|
||||
LTREE_SIGLEN_DEFAULT)
|
||||
|
||||
typedef unsigned char *BITVECP;
|
||||
|
||||
|
Reference in New Issue
Block a user