Skip to content

Commit

Permalink
Fixed tests to include new field type
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosdelest committed Dec 4, 2024
1 parent d8f5e0b commit fa14ff5
Show file tree
Hide file tree
Showing 4 changed files with 207 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,23 @@ public void testProjectIncludeMultiStarPattern() {
}

public void testProjectStar() {
assertProjection("""
from test
| keep *
""", "_meta_field", "emp_no", "first_name", "gender", "job", "job.raw", "languages", "last_name", "long_noidx", "salary");
assertProjection(
"""
from test
| keep *
""",
"_meta_field",
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"last_name",
"long_noidx",
"salary"
);
}

public void testEscapedStar() {
Expand Down Expand Up @@ -293,9 +306,22 @@ public void testRenameBacktickPlusPattern() {
}

public void testNoProjection() {
assertProjection("""
from test
""", "_meta_field", "emp_no", "first_name", "gender", "job", "job.raw", "languages", "last_name", "long_noidx", "salary");
assertProjection(
"""
from test
""",
"_meta_field",
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"last_name",
"long_noidx",
"salary"
);
assertProjectionTypes(
"""
from test
Expand All @@ -304,6 +330,7 @@ public void testNoProjection() {
DataType.INTEGER,
DataType.KEYWORD,
DataType.TEXT,
DataType.DATETIME,
DataType.TEXT,
DataType.KEYWORD,
DataType.INTEGER,
Expand All @@ -325,18 +352,57 @@ public void testDuplicateProjections() {
}

public void testProjectWildcard() {
assertProjection("""
from test
| keep first_name, *, last_name
""", "first_name", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary", "last_name");
assertProjection("""
from test
| keep first_name, last_name, *
""", "first_name", "last_name", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary");
assertProjection("""
from test
| keep *, first_name, last_name
""", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary", "first_name", "last_name");
assertProjection(
"""
from test
| keep first_name, *, last_name
""",
"first_name",
"_meta_field",
"emp_no",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary",
"last_name"
);
assertProjection(
"""
from test
| keep first_name, last_name, *
""",
"first_name",
"last_name",
"_meta_field",
"emp_no",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary"
);
assertProjection(
"""
from test
| keep *, first_name, last_name
""",
"_meta_field",
"emp_no",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary",
"first_name",
"last_name"
);

var e = expectThrows(ParsingException.class, () -> analyze("""
from test
Expand All @@ -359,22 +425,74 @@ public void testProjectMixedWildcard() {
from test
| keep *ob*, first_name, *name, first*
""", "job", "job.raw", "first_name", "last_name");
assertProjection("""
from test
| keep first_name, *, *name
""", "first_name", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary", "last_name");
assertProjection("""
from test
| keep first*, *, last_name, first_name
""", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary", "last_name", "first_name");
assertProjection("""
from test
| keep first*, *, last_name, fir*
""", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary", "last_name", "first_name");
assertProjection("""
from test
| keep *, job*
""", "_meta_field", "emp_no", "first_name", "gender", "languages", "last_name", "long_noidx", "salary", "job", "job.raw");
assertProjection(
"""
from test
| keep first_name, *, *name
""",
"first_name",
"_meta_field",
"emp_no",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary",
"last_name"
);
assertProjection(
"""
from test
| keep first*, *, last_name, first_name
""",
"_meta_field",
"emp_no",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary",
"last_name",
"first_name"
);
assertProjection(
"""
from test
| keep first*, *, last_name, fir*
""",
"_meta_field",
"emp_no",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary",
"last_name",
"first_name"
);
assertProjection(
"""
from test
| keep *, job*
""",
"_meta_field",
"emp_no",
"first_name",
"gender",
"hire_date",
"languages",
"last_name",
"long_noidx",
"salary",
"job",
"job.raw"
);
}

public void testProjectThenDropName() {
Expand Down Expand Up @@ -406,21 +524,34 @@ public void testProjectDropPattern() {
from test
| keep *
| drop *_name
""", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary");
""", "_meta_field", "emp_no", "gender", "hire_date", "job", "job.raw", "languages", "long_noidx", "salary");
}

public void testProjectDropNoStarPattern() {
assertProjection("""
from test
| drop *_name
""", "_meta_field", "emp_no", "gender", "job", "job.raw", "languages", "long_noidx", "salary");
""", "_meta_field", "emp_no", "gender", "hire_date", "job", "job.raw", "languages", "long_noidx", "salary");
}

public void testProjectOrderPatternWithRest() {
assertProjection("""
from test
| keep *name, *, emp_no
""", "first_name", "last_name", "_meta_field", "gender", "job", "job.raw", "languages", "long_noidx", "salary", "emp_no");
assertProjection(
"""
from test
| keep *name, *, emp_no
""",
"first_name",
"last_name",
"_meta_field",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"long_noidx",
"salary",
"emp_no"
);
}

public void testProjectDropPatternAndKeepOthers() {
Expand Down Expand Up @@ -559,7 +690,7 @@ public void testDropPatternUnsupportedFields() {
assertProjection("""
from test
| drop *ala*
""", "_meta_field", "emp_no", "first_name", "gender", "job", "job.raw", "languages", "last_name", "long_noidx");
""", "_meta_field", "emp_no", "first_name", "gender", "hire_date", "job", "job.raw", "languages", "last_name", "long_noidx");
}

public void testDropUnsupportedPattern() {
Expand Down Expand Up @@ -629,7 +760,7 @@ public void testRenameReuseAlias() {
assertProjection("""
from test
| rename emp_no as e, first_name as e
""", "_meta_field", "e", "gender", "job", "job.raw", "languages", "last_name", "long_noidx", "salary");
""", "_meta_field", "e", "gender", "hire_date", "job", "job.raw", "languages", "last_name", "long_noidx", "salary");
}

public void testRenameUnsupportedSubFieldAndResolved() {
Expand Down Expand Up @@ -1942,6 +2073,7 @@ public void testLookup() {
.item(startsWith("emp_no{f}"))
.item(startsWith("first_name{f}"))
.item(startsWith("gender{f}"))
.item(startsWith("hire_date{f}"))
.item(startsWith("job{f}"))
.item(startsWith("job.raw{f}"))
/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,7 @@ public void testMissingFieldInFilterNoProjection() {
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1323,23 +1323,35 @@ public void testMissingFieldsDoNotGetExtracted() {
var projections = project.projections();
assertThat(
Expressions.names(projections),
contains("_meta_field", "emp_no", "first_name", "gender", "job", "job.raw", "languages", "last_name", "long_noidx", "salary")
contains(
"_meta_field",
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"last_name",
"long_noidx",
"salary"
)
);
// emp_no
assertThat(projections.get(1), instanceOf(ReferenceAttribute.class));
// first_name
assertThat(projections.get(2), instanceOf(ReferenceAttribute.class));

// last_name --> first_name
var nullAlias = Alias.unwrap(projections.get(7));
var nullAlias = Alias.unwrap(projections.get(8));
assertThat(Expressions.name(nullAlias), is("first_name"));
// salary --> emp_no
nullAlias = Alias.unwrap(projections.get(9));
nullAlias = Alias.unwrap(projections.get(10));
assertThat(Expressions.name(nullAlias), is("emp_no"));
// check field extraction is skipped and that evaled fields are not extracted anymore
var field = as(project.child(), FieldExtractExec.class);
var fields = field.attributesToExtract();
assertThat(Expressions.names(fields), contains("_meta_field", "gender", "job", "job.raw", "languages", "long_noidx"));
assertThat(Expressions.names(fields), contains("_meta_field", "gender", "hire_date", "job", "job.raw", "languages", "long_noidx"));
}

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,7 @@ public void testExtractorMultiEvalWithDifferentNames() {
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
Expand Down Expand Up @@ -652,6 +653,7 @@ public void testExtractorMultiEvalWithSameName() {
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
Expand Down Expand Up @@ -1172,7 +1174,19 @@ public void testPushLimitAndFilterToSource() {

assertThat(
names(extract.attributesToExtract()),
contains("_meta_field", "emp_no", "first_name", "gender", "job", "job.raw", "languages", "last_name", "long_noidx", "salary")
contains(
"_meta_field",
"emp_no",
"first_name",
"gender",
"hire_date",
"job",
"job.raw",
"languages",
"last_name",
"long_noidx",
"salary"
)
);

var source = source(extract.child());
Expand Down

0 comments on commit fa14ff5

Please sign in to comment.