mirror of https://github.com/AMT-Cheif/drift.git
Resolve types for between expression
This commit is contained in:
parent
7ef904d053
commit
5e1ec15caa
|
@ -89,6 +89,8 @@ class TypeResolver {
|
|||
[BasicType.int, BasicType.real, BasicType.text, BasicType.blob]);
|
||||
return ResolveResult(type);
|
||||
}
|
||||
} else if (expr is BetweenExpression) {
|
||||
return const ResolveResult(ResolvedType.bool());
|
||||
} else if (expr is SubQuery) {
|
||||
// todo
|
||||
}
|
||||
|
@ -243,7 +245,9 @@ class TypeResolver {
|
|||
}
|
||||
|
||||
ResolveResult _argumentType(Expression parent, Expression argument) {
|
||||
if (parent is IsExpression || parent is BinaryExpression) {
|
||||
if (parent is IsExpression ||
|
||||
parent is BinaryExpression ||
|
||||
parent is BetweenExpression) {
|
||||
final relevant = parent.childNodes
|
||||
.lastWhere((node) => node is Expression && node != argument);
|
||||
return resolveExpression(relevant as Expression);
|
||||
|
|
|
@ -12,6 +12,8 @@ Map<String, ResolveResult> _types = {
|
|||
const ResolveResult(ResolvedType(type: BasicType.int)),
|
||||
'SELECT 1 FROM demo GROUP BY id HAVING COUNT(*) = ?':
|
||||
const ResolveResult(ResolvedType(type: BasicType.int)),
|
||||
'SELECT 1 FROM demo WHERE id BETWEEN 3 AND ?':
|
||||
const ResolveResult(ResolvedType(type: BasicType.int)),
|
||||
};
|
||||
|
||||
void main() {
|
||||
|
|
Loading…
Reference in New Issue