Merge pull request #10383 from appwrite/copilot/fix-e24d8527-9979-4c83-bbee-437ac6c4d440

Apply sequence integer casting and attribute cleanup fixes to Row model, TablesDB tests, and document processing
This commit is contained in:
Jake Barnby 2025-08-27 14:22:54 +12:00 committed by GitHub
commit e71beeee51
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 14 additions and 2 deletions

View file

@ -29,7 +29,7 @@ abstract class Action extends AppwriteAction
// Use the same helper method to ensure consistency
$contextId = '$' . $this->getCollectionsEventsContext() . 'Id';
$this->removableAttributes = ['$databaseId', $contextId];
$this->removableAttributes = ['$databaseId', $contextId, '$sequence'];
return parent::setHttpPath($path);
}

View file

@ -127,6 +127,9 @@ class Update extends Action
}
}
// Remove sequence if set
unset($document['$sequence']);
$documents = [];
try {

View file

@ -351,6 +351,9 @@ class Create extends Action
}
}
// Remove sequence if set
unset($document['$sequence']);
// Assign a unique ID if needed, otherwise use the provided ID.
$document['$id'] = $sourceId === 'unique()' ? ID::unique() : $sourceId;

View file

@ -159,6 +159,9 @@ class Update extends Action
$permissions = $document->getPermissions() ?? [];
}
// Remove sequence if set
unset($document['$sequence']);
$data['$id'] = $documentId;
$data['$permissions'] = $permissions;
$newDocument = new Document($data);

View file

@ -52,7 +52,7 @@ class V20 extends Filter
if (empty($selections)) {
$hasWildcard = true;
$parsed[] = Query::select(['*']);
} else if (!$hasWildcard) {
} elseif (!$hasWildcard) {
// check if any select includes a wildcard as we added one above
foreach ($selections as $select) {
if (\in_array('*', $select->getValues(), true)) {

View file

@ -79,6 +79,7 @@ class Row extends Any
{
$document->removeAttribute('$collection');
$document->removeAttribute('$tenant');
$document->setAttribute('$sequence', (int)$document->getAttribute('$sequence', 0));
foreach ($document->getAttributes() as $column) {
if (\is_array($column)) {

View file

@ -1625,6 +1625,8 @@ trait DatabasesBase
$this->assertEquals($row1['body']['actors'][0], 'Chris Evans');
$this->assertEquals($row1['body']['actors'][1], 'Samuel Jackson');
$this->assertEquals($row1['body']['birthDay'], '1975-06-12T12:12:55.000+00:00');
$this->assertTrue(array_key_exists('$sequence', $row1['body']));
$this->assertIsInt($row1['body']['$sequence']);
$this->assertEquals(201, $row2['headers']['status-code']);
$this->assertEquals($data['moviesId'], $row2['body']['$tableId']);