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

Commit5361ee6

Browse files
author
Vladlen Popolitov
committed
PGPRO-9410 New GIN interface added to CREATE OPERATOR CLASS
1 parent7bfb490 commit5361ee6

File tree

2 files changed

+31
-34
lines changed

2 files changed

+31
-34
lines changed

‎anyarray--1.0.sql

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,7 @@ AS
590590
FUNCTION2ginanyarray_extract(anyarray, internal),
591591
FUNCTION3ginanyarray_queryextract(anyarray, internal, internal),
592592
FUNCTION4ginanyarray_consistent(internal, internal, anyarray),
593+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
593594
STORAGEint2;
594595
CREATEOPERATOR CLASS_int4_aa_ops
595596
FOR TYPE _int4 USING gin
@@ -603,40 +604,11 @@ AS
603604
FUNCTION2 ginanyarray_extract(anyarray, internal),
604605
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
605606
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
607+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
606608
STORAGE int4;
607609

608610
CREATEOPERATOR CLASS_int8_aa_ops
609611
FOR TYPE _int8 USING gin
610-
AS
611-
OPERATOR3&&(anyarray, anyarray),
612-
OPERATOR6=(anyarray, anyarray),
613-
OPERATOR7@>(anyarray, anyarray),
614-
OPERATOR8<@(anyarray, anyarray),
615-
OPERATOR16%(anyarray, anyarray),
616-
FUNCTION1 btint8cmp(int8,int8),
617-
FUNCTION2 ginanyarray_extract(anyarray, internal),
618-
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
619-
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
620-
--FUNCTION 6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
621-
STORAGE int8;
622-
623-
CREATEOPERATOR CLASS_int8_aa_ops_beta
624-
FOR TYPE _int8 USING gin
625-
AS
626-
OPERATOR3&&(anyarray, anyarray),
627-
OPERATOR6=(anyarray, anyarray),
628-
OPERATOR7@>(anyarray, anyarray),
629-
OPERATOR8<@(anyarray, anyarray),
630-
OPERATOR16%(anyarray, anyarray),
631-
FUNCTION1 btint8cmp(int8,int8),
632-
FUNCTION2 ginanyarray_extract(anyarray, internal),
633-
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
634-
-- FUNCTION 4 ginanyarray_consistent(internal, internal, anyarray),
635-
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
636-
STORAGE int8;
637-
638-
CREATEOPERATOR CLASS_int8_aa_ops_beta2
639-
FOR TYPE _int8 USING gin
640612
AS
641613
OPERATOR3&&(anyarray, anyarray),
642614
OPERATOR6=(anyarray, anyarray),
@@ -662,6 +634,7 @@ AS
662634
FUNCTION2 ginanyarray_extract(anyarray, internal),
663635
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
664636
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
637+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
665638
STORAGE float4;
666639

667640
CREATEOPERATOR CLASS_float8_aa_ops
@@ -676,6 +649,7 @@ AS
676649
FUNCTION2 ginanyarray_extract(anyarray, internal),
677650
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
678651
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
652+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
679653
STORAGE float8;
680654

681655
CREATEOPERATOR CLASS_money_aa_ops
@@ -690,6 +664,7 @@ AS
690664
FUNCTION2 ginanyarray_extract(anyarray, internal),
691665
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
692666
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
667+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
693668
STORAGEmoney;
694669

695670
CREATEOPERATOR CLASS_oid_aa_ops
@@ -704,6 +679,7 @@ AS
704679
FUNCTION2 ginanyarray_extract(anyarray, internal),
705680
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
706681
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
682+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
707683
STORAGEoid;
708684

709685
CREATEOPERATOR CLASS_timestamp_aa_ops
@@ -718,6 +694,7 @@ AS
718694
FUNCTION2 ginanyarray_extract(anyarray, internal),
719695
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
720696
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
697+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
721698
STORAGEtimestamp;
722699

723700
CREATEOPERATOR CLASS_timestamptz_aa_ops
@@ -732,6 +709,7 @@ AS
732709
FUNCTION2 ginanyarray_extract(anyarray, internal),
733710
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
734711
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
712+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
735713
STORAGEtimestamptz;
736714

737715
CREATEOPERATOR CLASS_time_aa_ops
@@ -746,6 +724,7 @@ AS
746724
FUNCTION2 ginanyarray_extract(anyarray, internal),
747725
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
748726
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
727+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
749728
STORAGEtime;
750729

751730
CREATEOPERATOR CLASS_timetz_aa_ops
@@ -760,6 +739,7 @@ AS
760739
FUNCTION2 ginanyarray_extract(anyarray, internal),
761740
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
762741
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
742+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
763743
STORAGE timetz;
764744

765745
CREATEOPERATOR CLASS_date_aa_ops
@@ -774,6 +754,7 @@ AS
774754
FUNCTION2 ginanyarray_extract(anyarray, internal),
775755
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
776756
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
757+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
777758
STORAGEdate;
778759

779760
CREATEOPERATOR CLASS_interval_aa_ops
@@ -788,6 +769,7 @@ AS
788769
FUNCTION2 ginanyarray_extract(anyarray, internal),
789770
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
790771
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
772+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
791773
STORAGE interval;
792774

793775
CREATEOPERATOR CLASS_macaddr_aa_ops
@@ -802,6 +784,7 @@ AS
802784
FUNCTION2 ginanyarray_extract(anyarray, internal),
803785
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
804786
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
787+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
805788
STORAGEmacaddr;
806789

807790
CREATEOPERATOR CLASS_inet_aa_ops
@@ -816,6 +799,7 @@ AS
816799
FUNCTION2 ginanyarray_extract(anyarray, internal),
817800
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
818801
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
802+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
819803
STORAGEinet;
820804

821805
CREATEOPERATOR CLASS_cidr_aa_ops
@@ -830,6 +814,7 @@ AS
830814
FUNCTION2 ginanyarray_extract(anyarray, internal),
831815
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
832816
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
817+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
833818
STORAGEcidr;
834819

835820
CREATEOPERATOR CLASS_text_aa_ops
@@ -844,6 +829,7 @@ AS
844829
FUNCTION2 ginanyarray_extract(anyarray, internal),
845830
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
846831
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
832+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
847833
STORAGEtext;
848834

849835
CREATEOPERATOR CLASS_varchar_aa_ops
@@ -858,6 +844,7 @@ AS
858844
FUNCTION2 ginanyarray_extract(anyarray, internal),
859845
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
860846
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
847+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
861848
STORAGEvarchar;
862849

863850
CREATEOPERATOR CLASS_char_aa_ops
@@ -872,6 +859,7 @@ AS
872859
FUNCTION2 ginanyarray_extract(anyarray, internal),
873860
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
874861
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
862+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
875863
STORAGE"char";
876864

877865
CREATEOPERATOR CLASS_bytea_aa_ops
@@ -886,6 +874,7 @@ AS
886874
FUNCTION2 ginanyarray_extract(anyarray, internal),
887875
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
888876
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
877+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
889878
STORAGEbytea;
890879

891880
CREATEOPERATOR CLASS_bit_aa_ops
@@ -900,6 +889,7 @@ AS
900889
FUNCTION2 ginanyarray_extract(anyarray, internal),
901890
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
902891
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
892+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
903893
STORAGEbit;
904894

905895
CREATEOPERATOR CLASS_varbit_aa_ops
@@ -914,6 +904,7 @@ AS
914904
FUNCTION2 ginanyarray_extract(anyarray, internal),
915905
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
916906
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
907+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
917908
STORAGE varbit;
918909

919910
CREATEOPERATOR CLASS_numeric_aa_ops
@@ -928,5 +919,5 @@ AS
928919
FUNCTION2 ginanyarray_extract(anyarray, internal),
929920
FUNCTION3 ginanyarray_queryextract(anyarray, internal, internal),
930921
FUNCTION4 ginanyarray_consistent(internal, internal, anyarray),
922+
FUNCTION6 ginanyarray_triconsistent(internal, internal, anyarray,internal,internal,internal,internal,internal),
931923
STORAGEnumeric;
932-

‎anyarray_gin.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,22 +299,28 @@ ginanyarray_triconsistent(PG_FUNCTION_ARGS)
299299
}
300300
break;
301301
caseAA_Overlap:
302-
/* if nIntersection >= SmlLimit, so result = GIN_TRUE
302+
/* nIntersectionMin - quantity of GIN_TRUE in check array
303+
* nIntersectionMax - quantity of GIN_TRUE and GIN_MAYBE in check array
304+
* if nIntersectionMin >= SmlLimit, so result = GIN_TRUE
305+
* if nIntersectionMax < SmlLimit, so result = GIN_FALSE
303306
* otherwise if at least one element in check[] is GIN_MAYBE, so result = GIN_MAYBE
304307
* otherwise result = GIN_FALSE
305308
*/
306309
if(((double)nIntersectionMin) >=SmlLimit)
307310
{
308311
res=GIN_TRUE;
309-
}
312+
}elseif(((double)nIntersectionMax)<SmlLimit)
313+
{
314+
res=GIN_FALSE;
315+
}
310316
break;
311317
default:
312318
elog(ERROR,"unknown similarity type");
313319
}
314320
}
315321
break;
316322
default:
317-
elog(ERROR,"ginanyarray_consistent: unknown strategy number: %d",
323+
elog(ERROR,"ginanyarray_triconsistent: unknown strategy number: %d",
318324
strategy);
319325
}
320326
PG_RETURN_GIN_TERNARY_VALUE(res);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp