-
-
Notifications
You must be signed in to change notification settings - Fork 117
Open
Labels
as designedI think this is how it is supposed to work...I think this is how it is supposed to work...more info requiredCould you answer a few extra questions to clarify?Could you answer a few extra questions to clarify?
Description
Describe the bug
In a pretty specific situation, a query result will return BLANK during a transaction. You can see it in the code below (and in the linked stackblitz).
To reproduce:
- define a first query with a group keyword.
- start a transaction
- define another query (on the same table) with a group keyword (can be a different column!)
- call
getResultTableand see that it's blank - finish the transaction
- call
getResultTableand see that it does return a value
See the following code (and linked reproduction).
const store = createMergeableStore().setSchema(
{
records: {
account: { type: 'string' },
amount: { type: 'number' },
decimals: { type: 'number' },
},
},
{}
);
store.setTables({
records: generateDummyData(),
});
const queries = createQueries(store);
queries.setQueryDefinition('budgetTotal', 'records', (keywords) => {
keywords.select('account');
keywords.select('amount');
// if you comment out the group line here, the second query will work correctly.
keywords.group('amount', 'avg');
});
if (enableTransaction) {
store.startTransaction();
}
const queryId = `otherQuery`;
queries.setQueryDefinition(queryId, 'records', (keywords) => {
keywords.select('amount');
keywords.where('account', '1');
// or if you remove group here, this query will work correctly.
// also has issues if you group by a completely different column
keywords.group('amount', 'sum');
});
console.log('first', JSON.stringify(queries.getResultTable(queryId))); // BLANK!
console.log('second', JSON.stringify(queries.getResultTable(queryId))); // BLANK!
if (enableTransaction) {
store.finishTransaction();
console.log(
'after transaction',
JSON.stringify(queries.getResultTable(queryId))
);
}Your Example Website or App
https://stackblitz.com/edit/vitejs-vite-jec8c4bm?file=src%2Fcounter.ts
Expected behavior
I would expect the query to return correct data, even mid-transaction.
Platform
- OS: macOS
- Browser: Brave
- Version: 6.3
Metadata
Metadata
Assignees
Labels
as designedI think this is how it is supposed to work...I think this is how it is supposed to work...more info requiredCould you answer a few extra questions to clarify?Could you answer a few extra questions to clarify?