mirror of
https://github.com/postgres/postgres.git
synced 2025-10-29 22:49:41 +03:00
Add prefix operator for TEXT type.
The prefix operator along with SP-GiST indexes can be used as an alternative for LIKE 'word%' commands and it doesn't have a limitation of string/prefix length as B-Tree has. Bump catalog version Author: Ildus Kurbangaliev with some editorization by me Review by: Arthur Zakirov, Alexander Korotkov, and me Discussion: https://www.postgresql.org/message-id/flat/20180202180327.222b04b3@wp.localdomain
This commit is contained in:
@@ -68,8 +68,9 @@ typedef uint16 StrategyNumber;
|
||||
#define RTSubEqualStrategyNumber 25 /* for inet <<= */
|
||||
#define RTSuperStrategyNumber 26 /* for inet << */
|
||||
#define RTSuperEqualStrategyNumber 27 /* for inet >>= */
|
||||
#define RTPrefixStrategyNumber 28 /* for text ^@ */
|
||||
|
||||
#define RTMaxStrategyNumber 27
|
||||
#define RTMaxStrategyNumber 28
|
||||
|
||||
|
||||
#endif /* STRATNUM_H */
|
||||
|
||||
@@ -53,6 +53,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 201803311
|
||||
#define CATALOG_VERSION_NO 201804031
|
||||
|
||||
#endif
|
||||
|
||||
@@ -799,6 +799,7 @@ DATA(insert ( 4017 25 25 11 s 664 4000 0 ));
|
||||
DATA(insert ( 4017 25 25 12 s 665 4000 0 ));
|
||||
DATA(insert ( 4017 25 25 14 s 667 4000 0 ));
|
||||
DATA(insert ( 4017 25 25 15 s 666 4000 0 ));
|
||||
DATA(insert ( 4017 25 25 28 s 3877 4000 0 ));
|
||||
|
||||
/*
|
||||
* btree jsonb_ops
|
||||
|
||||
@@ -134,6 +134,8 @@ DESCR("less than");
|
||||
DATA(insert OID = 98 ( "=" PGNSP PGUID b t t 25 25 16 98 531 texteq eqsel eqjoinsel ));
|
||||
DESCR("equal");
|
||||
#define TextEqualOperator 98
|
||||
DATA(insert OID = 3877 ( "^@" PGNSP PGUID b f f 25 25 16 0 0 starts_with prefixsel prefixjoinsel ));
|
||||
DESCR("starts with");
|
||||
|
||||
DATA(insert OID = 349 ( "||" PGNSP PGUID b f f 2277 2283 2277 0 0 array_append - - ));
|
||||
DESCR("append element onto end of array");
|
||||
|
||||
@@ -209,6 +209,7 @@ DATA(insert OID = 64 ( int2lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16
|
||||
DATA(insert OID = 65 ( int4eq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4eq _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 66 ( int4lt PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "23 23" _null_ _null_ _null_ _null_ _null_ int4lt _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 67 ( texteq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ texteq _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3696 ( starts_with PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "25 25" _null_ _null_ _null_ _null_ _null_ text_starts_with _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 68 ( xideq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "28 28" _null_ _null_ _null_ _null_ _null_ xideq _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3308 ( xidneq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "28 28" _null_ _null_ _null_ _null_ _null_ xidneq _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 69 ( cideq PGNSP PGUID 12 1 0 0 0 f f t t f i s 2 0 16 "29 29" _null_ _null_ _null_ _null_ _null_ cideq _null_ _null_ _null_ ));
|
||||
@@ -2584,6 +2585,10 @@ DATA(insert OID = 1828 ( nlikejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0
|
||||
DESCR("join selectivity of NOT LIKE");
|
||||
DATA(insert OID = 1829 ( icregexnejoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ icregexnejoinsel _null_ _null_ _null_ ));
|
||||
DESCR("join selectivity of case-insensitive regex non-match");
|
||||
DATA(insert OID = 3437 ( prefixsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 4 0 701 "2281 26 2281 23" _null_ _null_ _null_ _null_ _null_ prefixsel _null_ _null_ _null_ ));
|
||||
DESCR("restriction selectivity of exact prefix");
|
||||
DATA(insert OID = 3438 ( prefixjoinsel PGNSP PGUID 12 1 0 0 0 f f f t f s s 5 0 701 "2281 26 2281 21 2281" _null_ _null_ _null_ _null_ _null_ prefixjoinsel _null_ _null_ _null_ ));
|
||||
DESCR("join selectivity of exact prefix");
|
||||
|
||||
/* Aggregate-related functions */
|
||||
DATA(insert OID = 1830 ( float8_avg PGNSP PGUID 12 1 0 0 0 f f f t f i s 1 0 701 "1022" _null_ _null_ _null_ _null_ _null_ float8_avg _null_ _null_ _null_ ));
|
||||
|
||||
@@ -87,8 +87,11 @@ typedef struct VariableStatData
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Pattern_Type_Like, Pattern_Type_Like_IC,
|
||||
Pattern_Type_Regex, Pattern_Type_Regex_IC
|
||||
Pattern_Type_Like,
|
||||
Pattern_Type_Like_IC,
|
||||
Pattern_Type_Regex,
|
||||
Pattern_Type_Regex_IC,
|
||||
Pattern_Type_Prefix
|
||||
} Pattern_Type;
|
||||
|
||||
typedef enum
|
||||
|
||||
Reference in New Issue
Block a user