Skip to content

Conversation

@dolmen
Copy link
Contributor

@dolmendolmen commented Jun 2, 2020

Description

Refactor textRows.readRow to improve readability:

  • simplified flow:
    • reduced maximum indent level
    • return error early
    • remove 3 'continue'
  • remove one type cast
  • remove one obsolete comment about readLengthEncodedString
  • -8 lines of code (not counting the 2 added empty lines)

Checklist

  • Code compiles correctly
  • Created tests which fail without the change (if possible)
  • All tests passing
  • Extended the README / documentation, if necessary
  • Added myself / the copyright holder to the AUTHORS file

Refactor textRows.readRow to improve readability: * simplified flow: * reduced maximum indent level * return error early * remove 3 'continue' * remove one type cast * remove one obsolete comment about readLengthEncodedString * -6 lines of code
@dolmendolmenforce-pushed the simplify-readRow branch from 19a00e3 to d4d83ccCompareJune 2, 2020 10:01
}
// If parseDateTime failed, leave as []byte
}
returnerr// err != nil
Copy link
Member

Choose a reason for hiding this comment

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

isn't err ignored now?
Seems like this should also have a test case.

Copy link
Member

Choose a reason for hiding this comment

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

Okay, I just saw the comment above.
This is a semantic change, which I disagree with. We should not introduce any silent fallback behavior. The user requested a parsed time and should receive an error, not something unexpected.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

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

Well, it looks like I misunderstood the original code. And this shows that it must be refactored to make it easier to follow 😉 .

I will fix my code once the test suite is extended to cover that case.

Copy link
Member

Choose a reason for hiding this comment

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

This still must be changed before I can approve this change.

Copy link
Member

@methanemethane left a comment

Choose a reason for hiding this comment

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

I prefer one more indent (e.g. put switch statement inside if mc.parseTime{, instead of duplicated dest[i] = b.
But this is matter of taste. The current PR code is OK too.

}
// If parseDateTime failed, leave as []byte
}
returnerr// err != nil
Copy link
Member

Choose a reason for hiding this comment

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

This still must be changed before I can approve this change.

@julienschmidtjulienschmidt added this to the v1.6.0 milestone Jun 9, 2020
@julienschmidtjulienschmidt modified the milestones: v1.6.0, v1.7.0Apr 1, 2021
@dolmen
Copy link
ContributorAuthor

Refactor finally happened in 75d09ac. See #1230.

So closing.

@dolmendolmen closed this Jan 18, 2023
@dolmendolmen deleted the simplify-readRow branch January 18, 2023 13:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dolmen@methane@julienschmidt