Skip to content

Commit 71f573d

Browse files
staabmclxmstaab
andauthored
Unsigned bigint cannot be smaller than 0 (#134)
Co-authored-by: Markus Staab <[email protected]>
1 parent a9dc4a4 commit 71f573d

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

.phpstan-dba.cache

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,9 @@
655655
'max' => 16777215,
656656
)),
657657
34 =>
658-
PHPStan\Type\IntegerType::__set_state(array(
658+
PHPStan\Type\IntegerRangeType::__set_state(array(
659+
'min' => 0,
660+
'max' => NULL,
659661
)),
660662
),
661663
'nextAutoIndex' => 0,

.phpunit-phpstan-dba.cache

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,9 @@
759759
'max' => 16777215,
760760
)),
761761
34 =>
762-
PHPStan\Type\IntegerType::__set_state(array(
762+
PHPStan\Type\IntegerRangeType::__set_state(array(
763+
'min' => 0,
764+
'max' => NULL,
763765
)),
764766
),
765767
'nextAutoIndex' => 0,

src/Types/MysqlIntegerRanges.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,6 @@ public function unsignedInt(): Type
6060
public function unsignedBigInt(): Type
6161
{
6262
// the range is so big, we just assume its int
63-
return new IntegerType();
63+
return IntegerRangeType::fromInterval(0, null);
6464
}
6565
}

tests/data/pdo.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,6 @@ public function unionParam(PDO $pdo, $adaid, $email)
135135
public function mysqlTypes(PDO $pdo)
136136
{
137137
$stmt = $pdo->query('SELECT * FROM typemix', PDO::FETCH_ASSOC);
138-
assertType('PDOStatement<array{pid: int<0, 4294967295>, c_char5: string, c_varchar255: string, c_varchar25: string|null, c_varbinary255: string, c_varbinary25: string|null, c_date: string|null, c_time: string|null, c_datetime: string|null, c_timestamp: string|null, c_year: int<0, 255>|null, c_tiny_text: string|null, c_medium_text: string|null, c_text: string|null, c_long_text: string|null, c_enum: string, c_set: string, c_bit: int|null, c_int: int<-2147483648, 2147483647>, c_tinyint: int<-128, 127>, c_smallint: int<-32768, 32767>, c_mediumint: int<-8388608, 8388607>, c_bigint: int, c_double: int, c_real: int, c_boolean: int<-128, 127>, c_blob: string, c_tinyblob: string, c_mediumblog: string, c_longblob: string, c_unsigned_tinyint: int<0, 255>, c_unsigned_int: int<0, 4294967295>, c_unsigned_smallint: int<0, 65535>, c_unsigned_mediumint: int<0, 16777215>, c_unsigned_bigint: int}>', $stmt);
138+
assertType('PDOStatement<array{pid: int<0, 4294967295>, c_char5: string, c_varchar255: string, c_varchar25: string|null, c_varbinary255: string, c_varbinary25: string|null, c_date: string|null, c_time: string|null, c_datetime: string|null, c_timestamp: string|null, c_year: int<0, 255>|null, c_tiny_text: string|null, c_medium_text: string|null, c_text: string|null, c_long_text: string|null, c_enum: string, c_set: string, c_bit: int|null, c_int: int<-2147483648, 2147483647>, c_tinyint: int<-128, 127>, c_smallint: int<-32768, 32767>, c_mediumint: int<-8388608, 8388607>, c_bigint: int, c_double: int, c_real: int, c_boolean: int<-128, 127>, c_blob: string, c_tinyblob: string, c_mediumblog: string, c_longblob: string, c_unsigned_tinyint: int<0, 255>, c_unsigned_int: int<0, 4294967295>, c_unsigned_smallint: int<0, 65535>, c_unsigned_mediumint: int<0, 16777215>, c_unsigned_bigint: int<0, max>}>', $stmt);
139139
}
140140
}

0 commit comments

Comments
 (0)