Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add replace, trim to Column. Better number parsing. #6253

Merged
merged 22 commits into from
Apr 20, 2023

Conversation

jdunkerley
Copy link
Member

@jdunkerley jdunkerley commented Apr 12, 2023

Pull Request Description

  • Add replace with same syntax as on Text to an in-memory Column.
  • Add trim with same syntax as on Text to an in-memory Column.
  • Add trim to in-database Column.
  • Added is_supported to dialects and exposed the dialect consistently on the Connection.
  • Add write_table support to JSON_File allowing Table.write to write JSON.
  • Updated the parsing for integers and decimals:
    • Support for currency symbols.
    • Support for brackets for negative numbers.
    • Automatic detection of decimal points and thousand separators.
    • Tighter rules for scientific and thousand separated numbers.
  • Remove replace_text from Table.
  • Remove write_json from Table.

Checklist

Please ensure that the following checklist has been satisfied before submitting the PR:

  • The documentation has been updated, if necessary.
  • Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
  • All code follows the
    Scala,
    Java,
    and
    Rust
    style guides. In case you are using a language not listed above, follow the Rust style guide.
  • All code has been tested:
    • Unit tests have been written where possible.
    • If GUI codebase was changed, the GUI was tested when built using ./run ide build.

@jdunkerley jdunkerley force-pushed the wip/jd/decimal_parse branch 3 times, most recently from 10124ba to fbd9653 Compare April 19, 2023 21:14
@jdunkerley jdunkerley marked this pull request as ready for review April 19, 2023 21:17
@jdunkerley jdunkerley requested a review from radeusgd as a code owner April 19, 2023 21:17
@jdunkerley jdunkerley changed the title Add replace, trim to Column. Add replace, trim to Column. Better number parsing. Apr 19, 2023
Comment on lines +50 to +51
formatter.parse "100_0_0_0" . should_equal "100_0_0_0"
formatter.parse "1__00_000,0" . should_equal "1__00_000,0"
Copy link
Member

Choose a reason for hiding this comment

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

Yeah that looks much better!

Copy link
Member

@radeusgd radeusgd left a comment

Choose a reason for hiding this comment

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

Looks really great.

The NumberParser looks really cool - it does do some neat magic. I think it could benefit from a bit more description of how it's supposed to work with the pattern-indices and format detection - as this is a non-trivial mechanism and one that can potentially lead to subtle issues - so it will be good to have a clear understanding of what are it's expected behaviours.

The tests are awesome! Just I think we should have tests for decimals analogous to the ones for integers - as unless I skipped something I did not see such tests and I think they are just as important as once we go into decimal territory the . vs , logic gets even more convoluted.

@jdunkerley jdunkerley force-pushed the wip/jd/decimal_parse branch from 8abc09c to a665654 Compare April 20, 2023 14:28
@jdunkerley jdunkerley added the CI: Ready to merge This PR is eligible for automatic merge label Apr 20, 2023
@mergify mergify bot merged commit 0350762 into develop Apr 20, 2023
@mergify mergify bot deleted the wip/jd/decimal_parse branch April 20, 2023 16:05
Procrat added a commit that referenced this pull request Apr 25, 2023
* develop:
  Turn null into UnexpectedExpression when Union type is incomplete (#6415)
  Ensure that IO.println does not fail if `to_text` returned a non-Text value. (#6223)
  Improve inlining of `<|` on (GraalVM EE) (#6384)
  Feat: update templates styles and feature (#6071)
  5127 Add Table.parse_to_columns to parse a single column to a set of columns. (#6383)
  URL handling (#6243)
  Exclude comparison operators from modifier logic (#6370)
  Better cleanup of project management test suite (#6392)
  Fix all eslint errors (#6267)
  Infer SQLite types locally (#6381)
  Vector Editor with List Editor and adding elements. (#6363)
  Add typechecks to Aggregate and Cross Tab (#6380)
  Forbid edits in read-only mode (#6342)
  Add Table.parse_text_to_table to convert Text to a Table. (#6294)
  Adding typechecks to Column Operations (#6298)
  Rollback cloud options groups (#6331)
  Project folder not renamed after project name change (#6369)
  Add `replace`, `trim` to Column. Better number parsing. (#6253)
  Read-only mode for controllers (#6259)
  Prevent default for all events, fixing multiple IDE bugs (#6364)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: Ready to merge This PR is eligible for automatic merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Table.replace_text to Column.replace and align API with new replace methods.
3 participants