drift/sqlparser/test/parser/select/nested_query_test.dart

43 lines
1.1 KiB
Dart

import 'package:sqlparser/sqlparser.dart';
import 'package:sqlparser/src/utils/ast_equality.dart';
import 'package:test/test.dart';
import '../utils.dart';
void main() {
test('parses nested query statements', () {
final stmt = SqlEngine(EngineOptions(useMoorExtensions: true))
.parse('SELECT LIST(SELECT * FROM test) FROM test')
.rootNode as SelectStatement;
enforceHasSpan(stmt);
return enforceEqual(
stmt.columns[0],
NestedQueryColumn(
select: SelectStatement(
columns: [StarResultColumn(null)],
from: TableReference('test'),
),
),
);
});
test('parses nested query statements with as', () {
final stmt = SqlEngine(EngineOptions(useMoorExtensions: true))
.parse('SELECT LIST(SELECT * FROM test) AS newname FROM test')
.rootNode as SelectStatement;
enforceHasSpan(stmt);
return enforceEqual(
stmt.columns[0],
NestedQueryColumn(
as: 'newname',
select: SelectStatement(
columns: [StarResultColumn(null)],
from: TableReference('test'),
),
),
);
});
}