Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita61742c

Browse files
author
Vladlen Popolitov
committed
Anyarray support for uuid type added in GIST, GIN, RUM
1 parentacff257 commita61742c

File tree

6 files changed

+863
-6
lines changed

6 files changed

+863
-6
lines changed

‎Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ REGRESS = security init anyarray \
1313
text varchar char varbit bit bytea\
1414
interval money oid\
1515
timestamp timestamptz time timetz date\
16-
macaddr inet cidr anyarrayrum
16+
macaddr inet cidr anyarrayrum uuid
1717

1818
ifdefUSE_PGXS
1919
PG_CONFIG = pg_config

‎anyarray--1.2.sql

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1487,4 +1487,54 @@ AS
14871487
FUNCTION7 rumanyarray_preconsistent(internal,smallint,anyarray,integer,internal,internal,internal,internal),
14881488
FUNCTION8 rumanyarray_ordering(internal,smallint,anyarray,int,internal,internal,internal,internal,internal),
14891489
STORAGEvarchar;
1490-
1490+
1491+
CREATEOPERATOR CLASS_uuid_aa_ops
1492+
FOR TYPE _uuid USING gist
1493+
AS
1494+
OPERATOR3&&(anyarray, anyarray),
1495+
OPERATOR6=(anyarray, anyarray),
1496+
OPERATOR7@>(anyarray, anyarray),
1497+
OPERATOR8<@(anyarray, anyarray),
1498+
OPERATOR16%(anyarray, anyarray),
1499+
FUNCTION1ganyarray_consistent(internal,internal,int,oid,internal),
1500+
FUNCTION2ganyarray_union (bytea, internal),
1501+
FUNCTION3ganyarray_compress (internal),
1502+
FUNCTION4ganyarray_decompress (internal),
1503+
FUNCTION5ganyarray_penalty (internal, internal, internal),
1504+
FUNCTION6ganyarray_picksplit (internal, internal),
1505+
FUNCTION7ganyarray_same (ganyarray, ganyarray, internal),
1506+
STORAGE ganyarray;
1507+
1508+
CREATEOPERATOR CLASS_uuid_aa_ops
1509+
FOR TYPE _uuid USING gin
1510+
AS
1511+
OPERATOR3&&(anyarray, anyarray),
1512+
OPERATOR6=(anyarray, anyarray),
1513+
OPERATOR7@>(anyarray, anyarray),
1514+
OPERATOR8<@(anyarray, anyarray),
1515+
OPERATOR16%(anyarray, anyarray),
1516+
FUNCTION1 uuid_cmp(uuid,uuid),
1517+
FUNCTION2 ginanyarray_extract(anyarray, internal),
1518+
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
1519+
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
1520+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
1521+
STORAGE uuid;
1522+
1523+
CREATEOPERATOR CLASS_uuid_aa_ops
1524+
FOR TYPE _uuid USING rum
1525+
AS
1526+
OPERATOR1 && (anyarray, anyarray),
1527+
OPERATOR2 @> (anyarray, anyarray),
1528+
OPERATOR3<@ (anyarray, anyarray),
1529+
OPERATOR4= (anyarray, anyarray),
1530+
OPERATOR5 % (anyarray, anyarray),
1531+
OPERATOR20<=> (anyarray, anyarray) FORORDER BYpg_catalog.float_ops,
1532+
--dispatch function 1 for concrete type
1533+
FUNCTION1 uuid_cmp(uuid,uuid),
1534+
FUNCTION2 rumextract_anyarray(anyarray,internal,internal,internal,internal),
1535+
FUNCTION3 rumextract_anyarray_query(anyarray,internal,smallint,internal,internal,internal,internal),
1536+
FUNCTION4 rumanyarray_consistent(internal,smallint,anyarray,integer,internal,internal,internal,internal),
1537+
FUNCTION6 rumanyarray_config(internal),
1538+
FUNCTION7 rumanyarray_preconsistent(internal,smallint,anyarray,integer,internal,internal,internal,internal),
1539+
FUNCTION8 rumanyarray_ordering(internal,smallint,anyarray,int,internal,internal,internal,internal,internal),
1540+
STORAGE uuid;

‎expected/init.out

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ ORDER BY opc.opcname;
3838
_timestamp_aa_ops | _timestamp | f
3939
_timestamptz_aa_ops | _timestamptz | f
4040
_timetz_aa_ops | _timetz | f
41+
_uuid_aa_ops | _uuid | f
4142
_varchar_aa_ops | _varchar | f
42-
(20 rows)
43+
(21 rows)
4344

4445
SELECT
4546
opc.opcname,
@@ -78,9 +79,10 @@ ORDER BY opc.opcname;
7879
_timestamp_aa_ops | _timestamp | f
7980
_timestamptz_aa_ops | _timestamptz | f
8081
_timetz_aa_ops | _timetz | f
82+
_uuid_aa_ops | _uuid | f
8183
_varbit_aa_ops | _varbit | f
8284
_varchar_aa_ops | _varchar | f
83-
(23 rows)
85+
(24 rows)
8486

8587
SELECT
8688
am.amname,
@@ -206,6 +208,11 @@ ORDER BY
206208
gin | _timetz_aa_ops | <@ | 5
207209
gin | _timetz_aa_ops | = | 5
208210
gin | _timetz_aa_ops | @> | 5
211+
gin | _uuid_aa_ops | % | 5
212+
gin | _uuid_aa_ops | && | 5
213+
gin | _uuid_aa_ops | <@ | 5
214+
gin | _uuid_aa_ops | = | 5
215+
gin | _uuid_aa_ops | @> | 5
209216
gin | _varbit_aa_ops | % | 5
210217
gin | _varbit_aa_ops | && | 5
211218
gin | _varbit_aa_ops | <@ | 5
@@ -311,6 +318,11 @@ ORDER BY
311318
gist | _timetz_aa_ops | <@ | 5
312319
gist | _timetz_aa_ops | = | 5
313320
gist | _timetz_aa_ops | @> | 5
321+
gist | _uuid_aa_ops | % | 5
322+
gist | _uuid_aa_ops | && | 5
323+
gist | _uuid_aa_ops | <@ | 5
324+
gist | _uuid_aa_ops | = | 5
325+
gist | _uuid_aa_ops | @> | 5
314326
gist | _varchar_aa_ops | % | 5
315327
gist | _varchar_aa_ops | && | 5
316328
gist | _varchar_aa_ops | <@ | 5
@@ -442,6 +454,12 @@ ORDER BY
442454
rum | _timetz_aa_ops | <@ | 6
443455
rum | _timetz_aa_ops | = | 6
444456
rum | _timetz_aa_ops | @> | 6
457+
rum | _uuid_aa_ops | % | 6
458+
rum | _uuid_aa_ops | && | 6
459+
rum | _uuid_aa_ops | <=> | 6
460+
rum | _uuid_aa_ops | <@ | 6
461+
rum | _uuid_aa_ops | = | 6
462+
rum | _uuid_aa_ops | @> | 6
445463
rum | _varbit_aa_ops | % | 6
446464
rum | _varbit_aa_ops | && | 6
447465
rum | _varbit_aa_ops | <=> | 6
@@ -454,7 +472,7 @@ ORDER BY
454472
rum | _varchar_aa_ops | <@ | 6
455473
rum | _varchar_aa_ops | = | 6
456474
rum | _varchar_aa_ops | @> | 6
457-
(353 rows)
475+
(369 rows)
458476

459477
SELECT
460478
trim( leading '_' from t.typname ) || '[]' AS "Array Type",
@@ -516,9 +534,10 @@ ORDER BY
516534
timestamp[] | _timestamp_aa_ops | _timestamp_aa_ops
517535
timestamptz[] | _timestamptz_aa_ops | _timestamptz_aa_ops
518536
timetz[] | _timetz_aa_ops | _timetz_aa_ops
537+
uuid[] | _uuid_aa_ops | _uuid_aa_ops
519538
varbit[] | _varbit_aa_ops |
520539
varchar[] | _varchar_aa_ops | _varchar_aa_ops
521-
(23 rows)
540+
(24 rows)
522541

523542
--testing function
524543
CREATE OR REPLACE FUNCTION epoch2timestamp(int8)
@@ -543,6 +562,15 @@ RETURNS _macaddr AS $$
543562
generate_series( 1, array_upper( $1, 1) - array_lower( $1, 1 ) + 1 ) AS n
544563
);
545564
$$ LANGUAGE SQL RETURNS NULL ON NULL INPUT IMMUTABLE;
565+
CREATE OR REPLACE FUNCTION to_uuid_array(_int8)
566+
RETURNS _uuid AS $$
567+
SELECT ARRAY(
568+
SELECT
569+
('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a' || RIGHT('00' || to_hex($1[n] % 256),2))::uuid
570+
FROM
571+
generate_series( 1, array_upper( $1, 1) - array_lower( $1, 1 ) + 1 ) AS n
572+
);
573+
$$ LANGUAGE SQL RETURNS NULL ON NULL INPUT IMMUTABLE;
546574
CREATE OR REPLACE FUNCTION to_inetp_array(_int8)
547575
RETURNS _inet AS $$
548576
SELECT ARRAY(

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp