add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
SELECT *
, part[1] AS p1, part[2] AS p2, part[3] AS p3, part[4] AS p4
, part[5] AS p5, part[6] AS p6, part[7] AS p7
FROM (
SELECT test_id, version
, regexp_match(version
, '^(?:(\d+)(\w*)\.?(\d*)(\w*)\.?(\d*)(\w*))?(?:\-*(\w+))?') AS part
FROM (
VALUES
(1, '1.2.3-SNAPSHOT')
, (2, '2-FOO')
, (3, '2')
, (4, '2-BAR')
, (5, '2.1-BAR')
, (6, '13.5.6-SNAPSHOT')
, (7, '13.11.11-SNAPSHOT')
, (8, '13.11a.11-SNAPSHOT')
, (9, '13.11b.11')
, (10, 'Test')
, (11, 'TEST2')
, (12, '1a')
, (13, '1a.1a.1a-foo')
, (14, '1a.1a.1a-')
, (15, '1a.1a.1b-foo')
, (16, 'sp9d8hgf')
, (17, '2a-BAR')
, (18, '2.1a-BAR')
, (19, '2.1ab-BAR')
, (20, 'incorrect1.2-foo')
) x(test_id, version)
) sub
ORDER BY NULLIF(part[1], '')::int NULLS FIRST
, NULLIF(part[2], '') NULLS FIRST
, NULLIF(part[3], '')::int NULLS FIRST
, NULLIF(part[4], '') NULLS FIRST
, NULLIF(part[5], '')::int NULLS FIRST
test_id version part p1 p2 p3 p4 p5 p6 p7
20 incorrect1.2-foo {NULL,NULL,NULL,NULL,NULL,NULL,incorrect1} null null null null null null incorrect1
16 sp9d8hgf {NULL,NULL,NULL,NULL,NULL,NULL,sp9d8hgf} null null null null null null sp9d8hgf
10 Test {NULL,NULL,NULL,NULL,NULL,NULL,Test} null null null null null null Test
11 TEST2 {NULL,NULL,NULL,NULL,NULL,NULL,TEST2} null null null null null null TEST2
1 1.2.3-SNAPSHOT {1,"",2,"",3,"",SNAPSHOT} 1 2 3 SNAPSHOT
12 1a {1,a,"","","","",NULL} 1 a null
14 1a.1a.1a- {1,a,1,a,1,a,NULL} 1 a 1 a 1 a null
13 1a.1a.1a-foo {1,a,1,a,1,a,foo} 1 a 1 a 1 a foo
15 1a.1a.1b-foo {1,a,1,a,1,b,foo} 1 a 1 a 1 b foo
3 2 {2,"","","","","",NULL} 2 null
4 2-BAR {2,"","","","","",BAR} 2 BAR
2 2-FOO {2,"","","","","",FOO} 2 FOO
5 2.1-BAR {2,"",1,"","","",BAR} 2 1 BAR
18 2.1a-BAR {2,"",1,a,"","",BAR} 2 1 a BAR
19 2.1ab-BAR {2,"",1,ab,"","",BAR} 2 1 ab BAR
17 2a-BAR {2,a,"","","","",BAR} 2 a BAR
6 13.5.6-SNAPSHOT {13,"",5,"",6,"",SNAPSHOT} 13 5 6 SNAPSHOT
7 13.11.11-SNAPSHOT {13,"",11,"",11,"",SNAPSHOT} 13 11 11 SNAPSHOT
8 13.11a.11-SNAPSHOT {13,"",11,a,11,"",SNAPSHOT} 13 11 a 11 SNAPSHOT
9 13.11b.11 {13,"",11,b,11,"",NULL} 13 11 b 11 null