souffle icon indicating copy to clipboard operation
souffle copied to clipboard

WIP Add support for recursive aggregate

Open remysucre opened this issue 2 years ago • 5 comments

remysucre avatar Apr 20 '22 03:04 remysucre

Codecov Report

Merging #2263 (917a36f) into master (bec3083) will decrease coverage by 0.22%. The diff coverage is 32.67%.

:exclamation: Current head 917a36f differs from pull request most recent head dd9c087. Consider uploading reports for the commit dd9c087 to get more accurate results

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2263      +/-   ##
==========================================
- Coverage   76.92%   76.69%   -0.23%     
==========================================
  Files         455      456       +1     
  Lines       28658    28638      -20     
==========================================
- Hits        22045    21964      -81     
- Misses       6613     6674      +61     
Impacted Files Coverage Δ
src/RelationTag.h 46.05% <0.00%> (-6.19%) :arrow_down:
src/parser/parser.yy 94.23% <0.00%> (-0.92%) :arrow_down:
src/ram/AggregateExistenceCheck.h 0.00% <0.00%> (ø)
src/ram/analysis/Complexity.cpp 90.90% <0.00%> (-9.10%) :arrow_down:
src/ram/analysis/Index.h 98.66% <ø> (ø)
src/ram/analysis/Level.cpp 59.16% <0.00%> (-2.58%) :arrow_down:
src/synthesiser/Synthesiser.cpp 81.78% <6.25%> (-1.35%) :arrow_down:
src/ram/analysis/Index.cpp 87.95% <7.69%> (-3.65%) :arrow_down:
src/ram/utility/Visitor.h 54.47% <50.00%> (-0.07%) :arrow_down:
src/synthesiser/Relation.cpp 95.17% <50.00%> (-3.04%) :arrow_down:
... and 15 more

codecov[bot] avatar Apr 21 '22 12:04 codecov[bot]

I looked at the WIP again. As discussed, we need a semantic check for recursive-aggregate relations. I would check the following:

  • [ ] The arity of recursive-aggregate relations must be greater than or equal to two.
  • [ ] The type of the last attribute cannot be of type symbol if the aggregation is a sum
  • [ ] If the type of the last attribute is symbol, and the aggregation is min/max perhaps a warning should be issued that this is not the usual lexorder.

b-scholz avatar Apr 27 '22 14:04 b-scholz

Please bring the source files into the right format using clang-format -i <file>. Following source files are not formatted:

src/RelationTag.h
src/synthesiser/Relation.h

b-scholz avatar Apr 28 '22 22:04 b-scholz

Please also check whether I/O is working. The auxiliary arity of one may hide the last column.

b-scholz avatar Apr 28 '22 22:04 b-scholz

Please also check whether I/O is working. The auxiliary arity of one may hide the last column.

I/O is working fine - all attributes are printed.

remysucre avatar May 05 '22 23:05 remysucre

The technical choice of introducing new btree representations does not ease adding other aggregation operators in the future.

quentin avatar Jan 09 '23 12:01 quentin