Re: pg_stats and range statistics - Mailing list pgsql-hackers

From jian he
Subject Re: pg_stats and range statistics
Date
Msg-id CACJufxG2Lhzt-dqah0zROu8yVGjg_0e+imuO+kZiu0dtxgY_qg@mail.gmail.com
Whole thread Raw
In response to Re: pg_stats and range statistics  ("Gregory Stark (as CFM)" <stark.cfm@gmail.com>)
Responses Re: pg_stats and range statistics  (Alexander Korotkov <aekorotkov@gmail.com>)
List pgsql-hackers
hi. I played around with the 2023-Apr 4 latest patch.

+        <literal>lower(ARRAY[numrange(1.1,2.2),numrange(3.3,4.4)])</literal>
should be
+        <literal>ranges_lower(ARRAY[numrange(1.1,2.2),numrange(3.3,4.4)])</literal>

+        <literal>upper(ARRAY[numrange(1.1,2.2),numrange(3.3,4.4)])</literal>
should be
+        <literal>ranges_upper(ARRAY[numrange(1.1,2.2),numrange(3.3,4.4)])</literal>

https://www.postgresql.org/docs/current/catalog-pg-type.html
there is no association between numrange and their base type numeric.
so for template: anyarray ranges_lower(anyarray). I don't think we can
input numrange array and return a numeric array.

https://www.postgresql.org/docs/current/extend-type-system.html#EXTEND-TYPES-POLYMORPHIC
>> When the return value of a function is declared as a polymorphic type, there must be at least one argument position
thatis also >> polymorphic, and the actual data type(s) supplied for the polymorphic arguments determine the actual
resulttype for that call. 


regression=# select
ranges_lower(ARRAY[numrange(1.1,2.2),numrange(3.3,4.4),
numrange(5.5,6.6)]);
 ranges_lower
---------------
 {1.1,3.3,5.5}
(1 row)
regression=# \gdesc
    Column    |    Type
--------------+------------
 ranges_lower | numrange[]
(1 row)

I don't think you can cast literal ' {1.1,3.3,5.5}' to numrange[].



pgsql-hackers by date:

Previous
From: Quan Zongliang
Date:
Subject: Re: Improving the heapgetpage function improves performance in common scenarios
Next
From: Suraj Kharage
Date:
Subject: Re: [Regression] Incorrect filename in test case comment