Search Postgresql Archives

range of composite types!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



range of composite types. I found this would be a great idea!!!
Question on stackoverflow
DB Fiddle

 source code regress test ranges of composite types code part:

 504 --
 505 -- Ranges of composites
 506 --
 507
 508 create type two_ints as (a int, b int);
 509 create type two_ints_range as range (subtype = two_ints);
 510
 511 -- with force_parallel_mode on, this exercises tqueue.c's range remapping
 512 select *, row_to_json(upper(t)) as u from
 513   (values (two_ints_range(row(1,2), row(3,4))),
 514           (two_ints_range(row(5,6), row(7,8)))) v(t);

-- composite type range.
create type mytype as (t1 int, t2 date);
-- create type my_interval as (t1 int, t2 interval);
select (2,'2022-01-02')::mytype ;
create type mytyperange as range(subtype = mytype);
 
I am thinking construct a composite type range that would be equivalent as:
select a, b::date
from generate_series(1,8) a,
generate_series('2022-01-01'::timestamp,
    '2022-01-31'::timestamp, interval '1 day') b;
for that means the following sql queries should return false:

select mytyperange (
    (1,'2022-01-01')::mytype,
    (8, '2022-01-31')::mytype, '[]') @> (2, '2020-01-19')::mytype;
 
 select
    (2, '2020-01-19')::mytype <@
    mytyperange(
    (1,'2022-01-01')::mytype,
    (8, '2022-01-31')::mytype, '[]') ;
 
--does the range overlaps, that is, have any common element.
select
    mytyperange ((2,'2020-12-30')::mytype,
                (2, '2020-12-31')::mytype)
    &&
    mytyperange(
    (1,'2022-01-01')::mytype,
    (8, '2022-01-31')::mytype) ;

from the db fiddle link, so far I failed.
If this is possible then we may need a subtype_diff function and canonical function.






[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux