Skip to content

Commit 6ee59bd

Browse files
committed
fix: SQLite3 getFieldData() returns incorrect primary_key values
The return type is integer, not boolean.
1 parent ffb2027 commit 6ee59bd

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

system/Database/SQLite3/Connection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ protected function _fieldData(string $table): array
273273
$retVal[$i]->type = $query[$i]->type;
274274
$retVal[$i]->max_length = null;
275275
$retVal[$i]->default = $query[$i]->dflt_value;
276-
$retVal[$i]->primary_key = isset($query[$i]->pk) && (bool) $query[$i]->pk;
276+
$retVal[$i]->primary_key = $query[$i]->pk ?? false;
277277
$retVal[$i]->nullable = isset($query[$i]->notnull) && ! (bool) $query[$i]->notnull;
278278
}
279279

tests/system/Database/Live/ForgeTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -986,31 +986,31 @@ public function testAddFields(): void
986986
'type' => 'INTEGER',
987987
'max_length' => null,
988988
'default' => null,
989-
'primary_key' => true,
989+
'primary_key' => 1,
990990
'nullable' => true,
991991
],
992992
1 => [
993993
'name' => 'username',
994994
'type' => 'VARCHAR',
995995
'max_length' => null,
996996
'default' => null,
997-
'primary_key' => false,
997+
'primary_key' => 0,
998998
'nullable' => false,
999999
],
10001000
2 => [
10011001
'name' => 'name',
10021002
'type' => 'VARCHAR',
10031003
'max_length' => null,
10041004
'default' => null,
1005-
'primary_key' => false,
1005+
'primary_key' => 0,
10061006
'nullable' => true,
10071007
],
10081008
3 => [
10091009
'name' => 'active',
10101010
'type' => 'INTEGER',
10111011
'max_length' => null,
10121012
'default' => '0',
1013-
'primary_key' => false,
1013+
'primary_key' => 0,
10141014
'nullable' => false,
10151015
],
10161016
];

tests/system/Database/Live/SQLite3/GetFieldDataTest.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,55 +47,55 @@ public function testGetFieldData(): void
4747
'type' => 'INTEGER',
4848
'max_length' => null,
4949
'default' => null, // The default value is not defined.
50-
'primary_key' => true,
50+
'primary_key' => 1,
5151
'nullable' => true,
5252
],
5353
(object) [
5454
'name' => 'text_not_null',
5555
'type' => 'VARCHAR',
5656
'max_length' => null,
5757
'default' => null, // The default value is not defined.
58-
'primary_key' => false,
58+
'primary_key' => 0,
5959
'nullable' => false,
6060
],
6161
(object) [
6262
'name' => 'text_null',
6363
'type' => 'VARCHAR',
6464
'max_length' => null,
6565
'default' => null, // The default value is not defined.
66-
'primary_key' => false,
66+
'primary_key' => 0,
6767
'nullable' => true,
6868
],
6969
(object) [
7070
'name' => 'int_default_0',
7171
'type' => 'INT',
7272
'max_length' => null,
7373
'default' => '0', // int 0
74-
'primary_key' => false,
74+
'primary_key' => 0,
7575
'nullable' => false,
7676
],
7777
(object) [
7878
'name' => 'text_default_null',
7979
'type' => 'VARCHAR',
8080
'max_length' => null,
8181
'default' => 'NULL', // NULL value
82-
'primary_key' => false,
82+
'primary_key' => 0,
8383
'nullable' => true,
8484
],
8585
(object) [
8686
'name' => 'text_default_text_null',
8787
'type' => 'VARCHAR',
8888
'max_length' => null,
8989
'default' => "'null'", // string "null"
90-
'primary_key' => false,
90+
'primary_key' => 0,
9191
'nullable' => false,
9292
],
9393
(object) [
9494
'name' => 'text_default_abc',
9595
'type' => 'VARCHAR',
9696
'max_length' => null,
9797
'default' => "'abc'", // string "abc"
98-
'primary_key' => false,
98+
'primary_key' => 0,
9999
'nullable' => false,
100100
],
101101
]),

0 commit comments

Comments
 (0)