PG: Fix updating numeric array (#5251)

* PG: Fix updating numeric array

* lint
This commit is contained in:
Diamond Lewis
2018-12-18 12:11:24 -06:00
committed by GitHub
parent c762ee4b43
commit 7b3da8b744
2 changed files with 27 additions and 0 deletions

View File

@@ -4566,4 +4566,27 @@ describe('Parse.Query testing', () => {
result = await query.get(object.id);
equal(result.get('objectField'), { bar: true, baz: 50 });
});
it('can update numeric array', async () => {
const data1 = [0, 1.1, 1, -2, 3];
const data2 = [0, 1.1, 1, -2, 3, 4];
const obj1 = new TestObject();
obj1.set('array', data1);
await obj1.save();
equal(obj1.get('array'), data1);
const query = new Parse.Query(TestObject);
query.equalTo('objectId', obj1.id);
const result = await query.first();
equal(result.get('array'), data1);
result.set('array', data2);
equal(result.get('array'), data2);
await result.save();
equal(result.get('array'), data2);
const results = await query.find();
equal(results[0].get('array'), data2);
});
});

View File

@@ -1657,6 +1657,10 @@ export class PostgresStorageAdapter implements StorageAdapter {
type = 'json';
break;
}
if (typeof elt == 'number') {
type = 'numeric';
break;
}
}
updatePatterns.push(
`$${index}:name = array_to_json($${index + 1}::${type}[])::jsonb`