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