Skip to content

Conversation

florent-martineau
Copy link

The goal of this PR is:

Please note that it's my first PR on an open source repository, plus I had never seen a line of Rust until yesterday, so please be indulgent 😅

@@ -293,6 +293,11 @@ impl Display for Item {
UnOp::Not => write!(f, "not {}", expr.item)?,
},
Item::FuncCall(func_call) => {
match func_call.name.as_str() {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When generating a group, we would have had something like:

group [foo, bar]
aggregate [baz = sum foobar]

There were missing parentheses around aggregate, which led to invalid PRQL. With this code, we write an opening parenthesis before aggregate.

Another block of code writes the closing parenthesis, so that we get:

group [foo, bar] (
  aggregate [baz = sum foobar]
)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually this is wrong, as groups do not only have aggregates, eg.:

group employee_id (
  sort month
  window rolling:12 (
    derive [trail_12_m_comp = sum paycheck]
  )
)

We should really put parentheses around the group's "content" and not around aggregate.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

And it's fine to leave a comment in the code for something that's not quite there yet!

@@ -7,13 +7,16 @@ mod semantic;
mod sql;
mod utils;

use crate::{ast::Item};
Copy link
Author

@florent-martineau florent-martineau Jul 9, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if you have a conventions (eg. should you put imports in alphabetical order, separate blocks of imports by line breaks, etc.)

Plus, I didn't research the difference between use and pub use.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cargo fmt will organize these!

@florent-martineau florent-martineau marked this pull request as draft July 9, 2022 17:49
@max-sixty
Copy link
Member

@florent-martineau this is really good. Congratulations on your first PR!

As discussed on Discord, I'm happy to help finish this off — your call on how much you want to do yourself vs ask for help.

To merge, we need a couple of additions:

  • Run cargo fmt.
  • Add a couple of tests. Would it be helpful for me to add an initial test to this module to show how we generally do tests?

@max-sixty
Copy link
Member

@florent-martineau FYI I merged the latest main into your branch, so run git pull to get the latest

@max-sixty
Copy link
Member

@florent-martineau thanks for kicking this off! We merged #829 so I'll close this. But congrats on your first open-source PR, and we'd be happy to work together on another.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants