Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
public class TestCompilerFromGrammar
{
@Test
public void testSimple()
public void testCSV()
{
testCompile("function pack::f():Boolean[1]\n" +
"{\n" +
Expand All @@ -34,6 +34,20 @@ public void testSimple()
"}");
}

@Test
public void testFunc()
{
testCompile("function pack::f2(): Relation<Any>[1]\n" +
"{\n" +
" #SQL{select a,b from csv('a,b\\n1,2')}#;\n" +
" '';\n" +
"}\n\n" + "function pack::f(): String[1]\n" +
"{\n" +
" #SQL{select * from func('pack::f2__Relation_1_')}#;\n" +
" '';\n" +
"}\n");
}

@Test
public void testSimpleWithError()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ function meta::external::query::sql::transformation::compile::utils::_extractDep
if (!$alreadyProcessed->contains($v),
| let newProcessedList = $v->match([p:PackageableElement[1]|$alreadyProcessed->concatenate($p),a:Any[1]|$alreadyProcessed]);
$v->match([
z:FunctionDefinition<Any>[1] |if($z->instanceOf(PackageableElement) && $z->elementToPath()->contains('::tests::'),|$z->cast(@PackageableElement),|[])->concatenate($z.expressionSequence->evaluateAndDeactivate()->map(x|$x->_extractDependencies($newProcessedList)));,
z:FunctionDefinition<Any>[1] |if($z->instanceOf(PackageableElement) && (!$z->isWithinPackage(meta) || $z->elementToPath()->contains('::tests::')),|$z->cast(@PackageableElement),|[])->concatenate($z.expressionSequence->evaluateAndDeactivate()->map(x|$x->_extractDependencies($newProcessedList)));,
x:SimpleFunctionExpression[1]|let res = $x.parametersValues->evaluateAndDeactivate()->map(p|$p->_extractDependencies($alreadyProcessed));
$res->concatenate($x.func->_extractDependencies($newProcessedList));,
i: InstanceValue[1] | $i.values->evaluateAndDeactivate()->map(p|$p->_extractDependencies($newProcessedList)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1544,7 +1544,8 @@ function <<access.private>> meta::external::query::sql::transformation::queryToP
let vs = evaluate($d.generationFunction, [list($tableFunc), list($_context)]);

let columns = $vs->match([
s:SimpleFunctionExpression[1] | $s->evaluateAndDeactivate().genericType.typeArguments.rawType->cast(@meta::pure::metamodel::relation::RelationType<Any>).columns,
s:SimpleFunctionExpression[1] | $s->evaluateAndDeactivate().func->cast(@FunctionDefinition<Any>).expressionSequence
->evaluateAndDeactivate()->last().genericType.typeArguments.rawType->cast(@meta::pure::metamodel::relation::RelationType<Any>).columns,
v:Any[1] | $vs->genericType().typeArguments->at(0).rawType->cast(@meta::pure::metamodel::relation::RelationType<Any>).columns
]);

Expand Down
Loading