\set ECHO none 1..384 ok 1 - Type semver should exist ok 2 - semvers should be NULLable ok 3 - "1.2.2" is a valid semver ok 4 - "0.2.2" is a valid semver ok 5 - "0.0.0" is a valid semver ok 6 - "0.1.999" is a valid semver ok 7 - "9999.9999999.823823" is a valid semver ok 8 - "1.0.0-beta1" is a valid semver ok 9 - "1.0.0-beta2" is a valid semver ok 10 - "1.0.0" is a valid semver ok 11 - "1.0.0-1" is a valid semver ok 12 - "1.0.0-alpha+d34dm34t" is a valid semver ok 13 - "1.0.0+d34dm34t" is a valid semver ok 14 - "20110204.0.0" is a valid semver ok 15 - "1.0.0-alpha.0a" is a valid semver ok 16 - "1.0.0+010" is a valid semver ok 17 - "1.0.0+alpha.010" is a valid semver ok 18 - "1.0.0-0AEF" is a valid semver ok 19 - "1.2" is not a valid semver ok 20 - "1.2.02" is not a valid semver ok 21 - "1.2.2-" is not a valid semver ok 22 - "1.2.3b#5" is not a valid semver ok 23 - "03.3.3" is not a valid semver ok 24 - "v1.2.2" is not a valid semver ok 25 - "1.3b" is not a valid semver ok 26 - "1.4b.0" is not a valid semver ok 27 - "1v" is not a valid semver ok 28 - "1v.2.2v" is not a valid semver ok 29 - "1.2.4b.5" is not a valid semver ok 30 - "1.0.0-alpha.010" is not a valid semver ok 31 - "1.0.0-02799" is not a valid semver ok 32 - "1.1.2+.123" is not a valid semver ok 33 - "1.1.2-.123" is not a valid semver ok 34 - "1.2.3-ñø" is not a valid semver ok 35 - "1.2.3+ñø1" is not a valid semver ok 36 - semver(1.2.2, 1.2.2) should = 0 ok 37 - v1.2.2 should = v1.2.2 ok 38 - v1.2.2 should be <= v1.2.2 ok 39 - v1.2.2 should be >= v1.2.2 ok 40 - semver(1.2.23, 1.2.23) should = 0 ok 41 - v1.2.23 should = v1.2.23 ok 42 - v1.2.23 should be <= v1.2.23 ok 43 - v1.2.23 should be >= v1.2.23 ok 44 - semver(0.0.0, 0.0.0) should = 0 ok 45 - v0.0.0 should = v0.0.0 ok 46 - v0.0.0 should be <= v0.0.0 ok 47 - v0.0.0 should be >= v0.0.0 ok 48 - semver(999.888.7777, 999.888.7777) should = 0 ok 49 - v999.888.7777 should = v999.888.7777 ok 50 - v999.888.7777 should be <= v999.888.7777 ok 51 - v999.888.7777 should be >= v999.888.7777 ok 52 - semver(0.1.2-beta3, 0.1.2-beta3) should = 0 ok 53 - v0.1.2-beta3 should = v0.1.2-beta3 ok 54 - v0.1.2-beta3 should be <= v0.1.2-beta3 ok 55 - v0.1.2-beta3 should be >= v0.1.2-beta3 ok 56 - semver(1.2.2, 1.2.3) should <> 0 ok 57 - v1.2.2 should not equal v1.2.3 ok 58 - semver(0.0.1, 1.0.0) should <> 0 ok 59 - v0.0.1 should not equal v1.0.0 ok 60 - semver(1.0.1, 1.1.0) should <> 0 ok 61 - v1.0.1 should not equal v1.1.0 ok 62 - semver(1.1.1, 1.1.0) should <> 0 ok 63 - v1.1.1 should not equal v1.1.0 ok 64 - semver(1.2.3-b, 1.2.3) should <> 0 ok 65 - v1.2.3-b should not equal v1.2.3 ok 66 - semver(1.2.3, 1.2.3-b) should <> 0 ok 67 - v1.2.3 should not equal v1.2.3-b ok 68 - semver(1.2.3-a, 1.2.3-b) should <> 0 ok 69 - v1.2.3-a should not equal v1.2.3-b ok 70 - semver(1.2.3-aaaaaaa1, 1.2.3-aaaaaaa2) should <> 0 ok 71 - v1.2.3-aaaaaaa1 should not equal v1.2.3-aaaaaaa2 ok 72 - semver(1.2.3-1.2.3, 1.2.3-1.2.3.4) should <> 0 ok 73 - v1.2.3-1.2.3 should not equal v1.2.3-1.2.3.4 ok 74 - semver(2.2.2, 1.1.1) should > 0 ok 75 - semver(1.1.1, 2.2.2) should < 0 ok 76 - v2.2.2 should be > v1.1.1 ok 77 - v2.2.2 should be >= v1.1.1 ok 78 - v1.1.1 should be < v2.2.2 ok 79 - v1.1.1 should be <= v2.2.2 ok 80 - semver(2.2.2, 2.1.1) should > 0 ok 81 - semver(2.1.1, 2.2.2) should < 0 ok 82 - v2.2.2 should be > v2.1.1 ok 83 - v2.2.2 should be >= v2.1.1 ok 84 - v2.1.1 should be < v2.2.2 ok 85 - v2.1.1 should be <= v2.2.2 ok 86 - semver(2.2.2, 2.2.1) should > 0 ok 87 - semver(2.2.1, 2.2.2) should < 0 ok 88 - v2.2.2 should be > v2.2.1 ok 89 - v2.2.2 should be >= v2.2.1 ok 90 - v2.2.1 should be < v2.2.2 ok 91 - v2.2.1 should be <= v2.2.2 ok 92 - semver(2.2.2-b, 2.2.1) should > 0 ok 93 - semver(2.2.1, 2.2.2-b) should < 0 ok 94 - v2.2.2-b should be > v2.2.1 ok 95 - v2.2.2-b should be >= v2.2.1 ok 96 - v2.2.1 should be < v2.2.2-b ok 97 - v2.2.1 should be <= v2.2.2-b ok 98 - semver(2.2.2, 2.2.2-b) should > 0 ok 99 - semver(2.2.2-b, 2.2.2) should < 0 ok 100 - v2.2.2 should be > v2.2.2-b ok 101 - v2.2.2 should be >= v2.2.2-b ok 102 - v2.2.2-b should be < v2.2.2 ok 103 - v2.2.2-b should be <= v2.2.2 ok 104 - semver(2.2.2-c, 2.2.2-b) should > 0 ok 105 - semver(2.2.2-b, 2.2.2-c) should < 0 ok 106 - v2.2.2-c should be > v2.2.2-b ok 107 - v2.2.2-c should be >= v2.2.2-b ok 108 - v2.2.2-b should be < v2.2.2-c ok 109 - v2.2.2-b should be <= v2.2.2-c ok 110 - semver(2.2.2-rc-2, 2.2.2-RC-1) should > 0 ok 111 - semver(2.2.2-RC-1, 2.2.2-rc-2) should < 0 ok 112 - v2.2.2-rc-2 should be > v2.2.2-RC-1 ok 113 - v2.2.2-rc-2 should be >= v2.2.2-RC-1 ok 114 - v2.2.2-RC-1 should be < v2.2.2-rc-2 ok 115 - v2.2.2-RC-1 should be <= v2.2.2-rc-2 ok 116 - semver(2.2.2-rc-1, 2.2.2-RC-1) should > 0 ok 117 - semver(2.2.2-RC-1, 2.2.2-rc-1) should < 0 ok 118 - v2.2.2-rc-1 should be > v2.2.2-RC-1 ok 119 - v2.2.2-rc-1 should be >= v2.2.2-RC-1 ok 120 - v2.2.2-RC-1 should be < v2.2.2-rc-1 ok 121 - v2.2.2-RC-1 should be <= v2.2.2-rc-1 ok 122 - semver(0.9.10, 0.9.9) should > 0 ok 123 - semver(0.9.9, 0.9.10) should < 0 ok 124 - v0.9.10 should be > v0.9.9 ok 125 - v0.9.10 should be >= v0.9.9 ok 126 - v0.9.9 should be < v0.9.10 ok 127 - v0.9.9 should be <= v0.9.10 ok 128 - semver(1.0.1-1.2.3, 1.0.1-0.9.9.9) should > 0 ok 129 - semver(1.0.1-0.9.9.9, 1.0.1-1.2.3) should < 0 ok 130 - v1.0.1-1.2.3 should be > v1.0.1-0.9.9.9 ok 131 - v1.0.1-1.2.3 should be >= v1.0.1-0.9.9.9 ok 132 - v1.0.1-0.9.9.9 should be < v1.0.1-1.2.3 ok 133 - v1.0.1-0.9.9.9 should be <= v1.0.1-1.2.3 ok 134 - Function to_semver() should exist ok 135 - Function to_semver(text) should exist ok 136 - Function to_semver() should return semver ok 137 - to_semver(1.2.2) should return 1.2.2 ok 138 - to_semver(01.2.2) should return 1.2.2 ok 139 - to_semver(1.02.2) should return 1.2.2 ok 140 - to_semver(1.2.02) should return 1.2.2 ok 141 - to_semver(1.2.02b) should return 1.2.2-b ok 142 - to_semver(1.2.02beta-3 ) should return 1.2.2-beta-3 ok 143 - to_semver(1.02.02rc1) should return 1.2.2-rc1 ok 144 - to_semver(1.0) should return 1.0.0 ok 145 - to_semver(1) should return 1.0.0 ok 146 - to_semver(.0.02) should return 0.0.2 ok 147 - to_semver(1..02) should return 1.0.2 ok 148 - to_semver(1..) should return 1.0.0 ok 149 - to_semver(1.1) should return 1.1.0 ok 150 - to_semver(1.2.b1) should return 1.2.0-b1 ok 151 - to_semver(9.0beta4) should return 9.0.0-beta4 ok 152 - to_semver(9b) should return 9.0.0-b ok 153 - to_semver(rc1) should return 0.0.0-rc1 ok 154 - to_semver() should return 0.0.0 ok 155 - to_semver(..2) should return 0.0.2 ok 156 - to_semver(1.2.3 a) should return 1.2.3-a ok 157 - to_semver(..2 b) should return 0.0.2-b ok 158 - to_semver( 012.2.2) should return 12.2.2 ok 159 - to_semver(20110204) should return 20110204.0.0 ok 160 - to_semver(1.0.0-alpha) should return incoming text ok 161 - to_semver(1.0.0-alpha.1) should return incoming text ok 162 - to_semver(1.0.0-0.3.7) should return incoming text ok 163 - to_semver(1.0.0-x.7.z.92) should return incoming text ok 164 - to_semver(1.0.0-alpha+001) should return incoming text ok 165 - to_semver(1.0.0+20130313144700) should return incoming text ok 166 - to_semver(1.0.0-beta+exp.sha.5114f85) should return incoming text ok 167 - to_semver('1.2.2-') should fail ok 168 - to_semver('1.2.3b#5') should fail ok 169 - to_semver('1.2.3.4') should fail ok 170 - to_semver('1.2000000000000000.3.4') should fail ok 171 - to_semver('1.2.3-café') should fail ok 172 - "1.2.0 beta 4" is not a valid semver ok 173 - "1.2.2-" is not a valid semver ok 174 - "1.2.3b#5" is not a valid semver ok 175 - "v1.2.2" is not a valid semver ok 176 - "1.4b.0" is not a valid semver ok 177 - "1v.2.2v" is not a valid semver ok 178 - "1.2.4b.5" is not a valid semver ok 179 - "1.2.3.4" is not a valid semver ok 180 - "1.2.3 4" is not a valid semver ok 181 - "1.2000000000000000.3.4" is not a valid semver ok 182 - "1.2.3-café" is not a valid semver ok 183 - max(semver) should work ok 184 - min(semver) should work ok 185 - ORDER BY semver USING < should work ok 186 - ORDER BY semver USING > should work ok 187 - construct to text ok 188 - construct from text ok 189 - construct from bare number ok 190 - construct from numeric ok 191 - construct from bare integer ok 192 - construct from integer ok 193 - construct from bigint ok 194 - construct from smallint ok 195 - construct from decimal ok 196 - construct from real ok 197 - construct from real with leading 0s ok 198 - construct from double ok 199 - construct from double with leading 0s ok 200 - construct from float ok 201 - construct from float with leading 0s ok 202 - cannot convert "infinity" to semver ok 203 - cannot convert "-infinity" to semver ok 204 - cannot convert "+infinity" to semver ok 205 - cannot convert "nan" to semver ok 206 - cannot convert "infinity" to semver ok 207 - cannot convert "-infinity" to semver ok 208 - cannot convert "+infinity" to semver ok 209 - cannot convert "nan" to semver ok 210 - Should catch exception for semver('infinity'::numeric) ok 211 - Should catch exception for semver('-infinity'::numeric) ok 212 - Should catch exception for semver('+infinity'::numeric) ok 213 - Should catch exception for semver('nan'::numeric) ok 214 - cast to text ok 215 - cast from text ok 216 - Cast from bare integer ok 217 - Cast from bare number ok 218 - Cast from numeric ok 219 - Cast from integer ok 220 - Cast from bigint ok 221 - Cast from smallint ok 222 - Cast from decimal ok 223 - Cast from decimal ok 224 - Cast from real ok 225 - Cast from double precision ok 226 - Cast from float ok 227 - cannot convert "infinity" to semver ok 228 - cannot convert "-infinity" to semver ok 229 - cannot convert "+infinity" to semver ok 230 - cannot convert "nan" to semver ok 231 - cannot convert "infinity" to semver ok 232 - cannot convert "-infinity" to semver ok 233 - cannot convert "+infinity" to semver ok 234 - cannot convert "nan" to semver ok 235 - Should catch exception for 'infinity'::numeric::semver ok 236 - Should catch exception for '-infinity'::numeric::semver ok 237 - Should catch exception for '+infinity'::numeric::semver ok 238 - Should catch exception for 'nan'::numeric::semver ok 239 - Should correctly cast "1.0.0-beta" to text ok 240 - Should correctly cast "1.0.0-beta1" to text ok 241 - Should correctly cast "1.0.0-alpha" to text ok 242 - Should correctly cast "1.0.0-alph" to text ok 243 - Should correctly cast "1.0.0-food" to text ok 244 - Should correctly cast "1.0.0-f111" to text ok 245 - Should correctly cast "1.0.0-f111asbcdasdfasdfasdfasdfasdfasdffasdfadsf" to text ok 246 - "1.0.0+1" is a valid 2.0.0 semver ok 247 - "1.0.0-1+1" is a valid 2.0.0 semver ok 248 - "1.0.0-1.1+1" is a valid 2.0.0 semver ok 249 - "1.0.0-1.1.1.1.1.1.1.1.1.1.1+1.1.1.1.1.1.1.1" is a valid 2.0.0 semver ok 250 - "1.0.0-1.2" is a valid 2.0.0 semver ok 251 - "1.0.0-1.0.2" is a valid 2.0.0 semver ok 252 - "1.0.0-alpha" is a valid 2.0.0 semver ok 253 - "1.0.0-alpha.1" is a valid 2.0.0 semver ok 254 - "1.0.0-0.3.7" is a valid 2.0.0 semver ok 255 - "1.0.0-x.7.z.92" is a valid 2.0.0 semver ok 256 - "0.2.13+1583426134.07de632" is a valid 2.0.0 semver ok 257 - "1.0.0-a.." is not a valid 2.0.0 semver ok 258 - "1.0.0-a.1." is not a valid 2.0.0 semver ok 259 - "1.0.0+1_1" is not a valid 2.0.0 semver ok 260 - "1.0.0-1...." is not a valid 2.0.0 semver ok 261 - "1.0.0-1_2" is not a valid 2.0.0 semver ok 262 - "1.0.0-1.02" is not a valid 2.0.0 semver ok 263 - ORDER BY semver (2.0.0) USING < should work ok 264 - ORDER BY semver (2.0.0) USING > should work ok 265 - semver(1.0.0-1+1, 1.0.0-1+5) should = 0 ok 266 - v1.0.0-1+1 should = v1.0.0-1+5 ok 267 - v1.0.0-1+1 should be <= v1.0.0-1+5 ok 268 - v1.0.0-1+1 should be >= v1.0.0-1+5 ok 269 - semver(1.0.0-1.1+1, 1.0.0-1.1+5) should = 0 ok 270 - v1.0.0-1.1+1 should = v1.0.0-1.1+5 ok 271 - v1.0.0-1.1+1 should be <= v1.0.0-1.1+5 ok 272 - v1.0.0-1.1+1 should be >= v1.0.0-1.1+5 ok 273 - Should correctly represent "0.5.0-release1" as "0.5.0-release1" ok 274 - Should correctly represent "0.5.0release1" as "0.5.0-release1" ok 275 - Should correctly represent "0.5-release1" as "0.5.0-release1" ok 276 - Should correctly represent "0.5release1" as "0.5.0-release1" ok 277 - Should correctly represent "0.5-1" as "0.5.0-1" ok 278 - Should correctly represent "1.2.3-1.02" as "1.2.3-1.2" ok 279 - Function is_semver() should exist ok 280 - Function is_semver(text) should exist ok 281 - Function is_semver() should return boolean ok 282 - is_semver(1.2.2) should return true ok 283 - is_semver(0.2.2) should return true ok 284 - is_semver(0.0.0) should return true ok 285 - is_semver(0.1.999) should return true ok 286 - is_semver(9999.9999999.823823) should return true ok 287 - is_semver(1.0.0-beta1) should return true ok 288 - is_semver(1.0.0-beta2) should return true ok 289 - is_semver(1.0.0) should return true ok 290 - is_semver(1.0.0-1) should return true ok 291 - is_semver(1.0.0-alpha+d34dm34t) should return true ok 292 - is_semver(1.0.0+d34dm34t) should return true ok 293 - is_semver(20110204.0.0) should return true ok 294 - is_semver(1.2) should return false ok 295 - is_semver(1.2.02) should return false ok 296 - is_semver(1.2.2-) should return false ok 297 - is_semver(1.2.3b#5) should return false ok 298 - is_semver(03.3.3) should return false ok 299 - is_semver(v1.2.2) should return false ok 300 - is_semver(1.3b) should return false ok 301 - is_semver(1.4b.0) should return false ok 302 - is_semver(1v) should return false ok 303 - is_semver(1v.2.2v) should return false ok 304 - is_semver(1.2.4b.5) should return false ok 305 - is_semver(1.2.3+a+b) should return false ok 306 - is_semver(1.2.3-x@) should return false ok 307 - is_semver(2016.5.18-MYW-600) should return true ok 308 - is_semver(1010.5.0+2016-05-27-1832) should return true ok 309 - is_semver(0.2.13+1583426134.07de632) should return true ok 310 - "2.3.0+80" is a valid semver ok 311 - to_semver(2.3.0+80) should return 2.3.0+80 ok 312 - Should correctly cast "2.3.0+80" to text ok 313 - "2.3.0+80" > "2.3.0+110" (NOT!) ok 314 - "2.3.0+80" > "2.3.0-alpha+110" ok 315 - ORDER BY semver USING < should work (section 11) ok 316 - ORDER BY semver USING > should work (section 11) ok 317 - "1.0.0" = "1.0.0+535" ok 318 - "1.0.0" < "1.0.0+535" (NOT!) ok 319 - "1.0.0" > "1.0.0+535" (NOT!) ok 320 - "1.0.0-a.2147483649" > "1.0.0-a.2147483649" (NOT!) ok 321 - "1.0.0-a.99999999999999999999" > "1.0.0-a.99999999999999999999" (NOT!) ok 322 - "1.0.0-a.99999999999999999999k" > "1.0.0-a.99999999999999999999k" (NOT!) ok 323 - "1.0.0-a.2147483649" = "1.0.0-a.2147483650" ok 324 - "1.0.0-a.99999999999999999998" = "1.0.0-a.99999999999999999999" ok 325 - "1.0.0-a.99999999999999999999k" = "1.0.0-a.99999999999999999999j" ok 326 - Function get_semver_major() should exist ok 327 - semver ok 328 - Function get_semver_major() should return integer ok 329 - major version check ok 330 - Function get_semver_minor() should exist ok 331 - semver ok 332 - Function get_semver_minor() should return integer ok 333 - minor version check ok 334 - Function get_semver_patch() should exist ok 335 - semver ok 336 - Function get_semver_patch() should return integer ok 337 - patch version check ok 338 - Function get_semver_prerelease() should exist ok 339 - semver ok 340 - Function get_semver_prerelease() should return text ok 341 - prerelease label check ok 342 - prerelease label check. must return prerelease only ok 343 - prerelease label check. must return empty string ok 344 - 1.0.0 should be in range [1.0.0, 2.0.0] ok 345 - 1.0.0 should not be in range [1.0.1, 2.0.0] ok 346 - 2.0.0 should not be in range [1.0.1, 2.0.0) ok 347 - 1.9999.9999 should be in range [1.0.1, 2.0.0) ok 348 - 1000.0.0 should be in range [1.0.0,) ok 349 - Should be able to work with arrays of semverranges ok 350 - Should properly format a 32 character semver ok 351 - Should properly format a 33 character semver ok 352 - Should properly format a prerelease with a hyphen ok 353 - Should get distinct values via hash aggregation ok 354 - hash_semver should generate different hashes for different prereleases ok 355 - hash_semver should match for version with and without build metadata ok 356 - hash_semver should match for version with and without build metadata ok 357 - hash_semver should match for prereleases with different build metadata ok 358 - Function semver_send() should exist ok 359 - Function semver_send(semver) should exist ok 360 - Function semver_send() should return bytea ok 361 - Function semver_recv() should exist ok 362 - Function semver_recv(internal) should exist ok 363 - Function semver_recv() should return semver ok 364 - semver_send('0.9.9-a1.1+1234') ok 365 - semver_send('0.9.9-a1.2.3') ok 366 - semver_send('0.9.9-a1.2') ok 367 - semver_send('0.9.9-a1.2222222222222222222222222222222222222222') ok 368 - semver_send('0.9.9-01ab') ok 369 - semver_send('0.9.9-01ba') ok 370 - semver_send('0.9.9') ok 371 - semver_send('1.0.0+99') ok 372 - semver_send('1.0.0-1') ok 373 - semver_send('1.2.2') ok 374 - semver_send('9999.9999999.823823') ok 375 - semver_send('1.0.0-beta1') ok 376 - semver_send('1.0.0-1') ok 377 - semver_send('1.0.0-alpha+d34dm34t') ok 378 - semver_send('1.0.0+d34dm34t') ok 379 - semver_send('20110204.0.0') ok 380 - semver_send('1.0.0-0AEF') ok 381 - semver_send(NULL) ok 382 - Should have binary copied all of the semvers ok 383 - Should get invalid input syntax error with nul byte ok 384 - column data type semver can only have storage PLAIN