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]);
|
[BasicType.int, BasicType.real, BasicType.text, BasicType.blob]);
|
||||||
return ResolveResult(type);
|
return ResolveResult(type);
|
||||||
}
|
}
|
||||||
|
} else if (expr is BetweenExpression) {
|
||||||
|
return const ResolveResult(ResolvedType.bool());
|
||||||
} else if (expr is SubQuery) {
|
} else if (expr is SubQuery) {
|
||||||
// todo
|
// todo
|
||||||
}
|
}
|
||||||
|
@ -243,7 +245,9 @@ class TypeResolver {
|
||||||
}
|
}
|
||||||
|
|
||||||
ResolveResult _argumentType(Expression parent, Expression argument) {
|
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
|
final relevant = parent.childNodes
|
||||||
.lastWhere((node) => node is Expression && node != argument);
|
.lastWhere((node) => node is Expression && node != argument);
|
||||||
return resolveExpression(relevant as Expression);
|
return resolveExpression(relevant as Expression);
|
||||||
|
|
|
@ -12,6 +12,8 @@ Map<String, ResolveResult> _types = {
|
||||||
const ResolveResult(ResolvedType(type: BasicType.int)),
|
const ResolveResult(ResolvedType(type: BasicType.int)),
|
||||||
'SELECT 1 FROM demo GROUP BY id HAVING COUNT(*) = ?':
|
'SELECT 1 FROM demo GROUP BY id HAVING COUNT(*) = ?':
|
||||||
const ResolveResult(ResolvedType(type: BasicType.int)),
|
const ResolveResult(ResolvedType(type: BasicType.int)),
|
||||||
|
'SELECT 1 FROM demo WHERE id BETWEEN 3 AND ?':
|
||||||
|
const ResolveResult(ResolvedType(type: BasicType.int)),
|
||||||
};
|
};
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
|
Loading…
Reference in New Issue