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

[EPIC] Automatically generate all function content from code #12740

Open
alamb opened this issue Oct 3, 2024 · 4 comments
Open

[EPIC] Automatically generate all function content from code #12740

alamb opened this issue Oct 3, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@alamb
Copy link
Contributor

alamb commented Oct 3, 2024

Is your feature request related to a problem or challenge?

Currently, when we add a new function to DataFusion library we have to remember to document that function in the documentation, but currently we have to remember this during code review.

This has a few downsides:

  1. we have forgotten to document some functions
  2. the documentation has drifted over time,
  3. help text for various functions can only be found on the DataFusion website, and not, for example within the function itself.

@Omega359 has created the basic framework for automatically generating content in #12668

This ticket tracks the work required to port the rest of the documentation to programatic form

Tasks

Aggregate Function Documentation Migration

Scalar Function Documentation Migration

  • [EPIC] Improve examples to make them easier to navigate #11172
  • Migrate documentation for all string functions from scalar_functions.md to code  #12775
  • Migrate documentation for all array functions from scalar_functions.md to code
  • Migrate documentation for all crypto functions from scalar_functions.md to code #12828
  • Migrate documentation for all datetime functions from scalar_functions.md to code #12859
  • Migrate documentation for all encoding functions from scalar_functions.md to code #12858
  • Migrate documentation for all math functions from scalar_functions.md to code
  • Migrate documentation for all regex functions from scalar_functions.md to code
  • Migrate documentation for all string functions from scalar_functions.md to code
  • Migrate documentation for all unicode functions from scalar_functions.md to code
  • Port / Add Documentation for ArrayToString
  • Port / Add Documentation for ArrayHasAll
  • Port / Add Documentation for MapExtract
  • Port / Add Documentation for ArrayResize
  • Port / Add Documentation for MapValuesFunc
  • Port / Add Documentation for ArrayReplaceAll
  • Port / Add Documentation for ArrayReplace
  • Port / Add Documentation for ArrayRemoveN
  • Port / Add Documentation for ArrayRemove
  • Port / Add Documentation for GenSeries
  • Port / Add Documentation for ArrayLength
  • Port / Add Documentation for ArrayDistinct
  • Port / Add Documentation for ArrayUnion
  • Port / Add Documentation for ArrayRepeat
  • Port / Add Documentation for ArrayPopFront
  • Port / Add Documentation for ArrayElement
  • Port / Add Documentation for ArrayConcat
  • Port / Add Documentation for ArrayPrepend
  • Port / Add Documentation for ArrayDims
  • Port / Add Documentation for MakeArray
  • Port / Add Documentation for ArrayReverse
  • Port / Add Documentation for ArraySort
  • Port / Add Documentation for ArrayAppend
  • Port / Add Documentation for ArrayEmpty
  • Port / Add Documentation for ArrayNdims
  • Port / Add Documentation for ArrayDistance
  • Port / Add Documentation for MapFunc
  • Port / Add Documentation for ArraySlice
  • Port / Add Documentation for ArrayPopBack
  • Port / Add Documentation for ArrayAnyValue
  • Port / Add Documentation for ArrayIntersect
  • Port / Add Documentation for Flatten
  • Port / Add Documentation for Range
  • Port / Add Documentation for ArrayPosition
  • Port / Add Documentation for ArrayPositions
  • Port / Add Documentation for ArrayRemoveAll
  • Port / Add Documentation for ArrayReplaceN
  • Port / Add Documentation for MapKeysFunc
  • Port / Add Documentation for ArrayExcept
  • Port / Add Documentation for Cardinality
  • Port / Add Documentation for ArrayHas
  • Port / Add Documentation for ArrayHasAny
  • Port / Add Documentation for StringToArray
  • Port / Add Documentation for NVL2Func
  • Port / Add Documentation for ArrowTypeOfFunc
  • Port / Add Documentation for VersionFunc
  • Port / Add Documentation for NullIfFunc
  • Port / Add Documentation for ArrowCastFunc
  • Port / Add Documentation for NVLFunc
  • Port / Add Documentation for GetFieldFunc
  • Port / Add Documentation for StructFunc
  • Port / Add Documentation for NamedStructFunc
  • Port / Add Documentation for CoalesceFunc
  • Port / Add Documentation for MakeDateFunc
  • Port / Add Documentation for ToTimestampMillisFunc
  • Port / Add Documentation for ToTimestampFunc
  • Port / Add Documentation for FromUnixtimeFunc
  • Port / Add Documentation for CurrentDateFunc
  • Port / Add Documentation for ToUnixtimeFunc
  • Port / Add Documentation for ToCharFunc
  • Port / Add Documentation for DatePartFunc
  • Port / Add Documentation for ToLocalTimeFunc
  • Port / Add Documentation for DateBinFunc
  • Port / Add Documentation for CurrentTimeFunc
  • Port / Add Documentation for NowFunc
  • Port / Add Documentation for ToDateFunc
  • Port / Add Documentation for ToTimestampSecondsFunc
  • Port / Add Documentation for ToTimestampMicrosFunc
  • Port / Add Documentation for ToTimestampNanosFunc
  • Port / Add Documentation for DateTruncFunc
  • Port / Add Documentation for EncodeFunc
  • Port / Add Documentation for DecodeFunc
  • Port / Add Documentation for NanvlFunc
  • Port / Add Documentation for GcdFunc
  • Port / Add Documentation for LogFunc
  • Port / Add Documentation for IsZeroFunc
  • Port / Add Documentation for LcmFunc
  • Port / Add Documentation for AbsFunc
  • Port / Add Documentation for PiFunc
  • Port / Add Documentation for SignumFunc
  • Port / Add Documentation for FactorialFunc
  • Port / Add Documentation for RoundFunc
  • Port / Add Documentation for IsNanFunc
  • Port / Add Documentation for TruncFunc
  • Port / Add Documentation for RandomFunc
  • Port / Add Documentation for CotFunc
  • Port / Add Documentation for PowerFunc
  • Port / Add Documentation for RegexpMatchFunc
  • Port / Add Documentation for RegexpLikeFunc
  • Port / Add Documentation for RegexpReplaceFunc
  • Port / Add Documentation for OverlayFunc
  • Port / Add Documentation for SplitPartFunc
  • Port / Add Documentation for RtrimFunc
  • Port / Add Documentation for UpperFunc
  • Port / Add Documentation for UuidFunc
  • Port / Add Documentation for LtrimFunc
  • Port / Add Documentation for EndsWithFunc
  • Port / Add Documentation for InitcapFunc
  • Port / Add Documentation for ToHexFunc
  • Port / Add Documentation for ConcatWsFunc
  • Port / Add Documentation for ContainsFunc
  • Port / Add Documentation for RepeatFunc
  • Port / Add Documentation for ConcatFunc
  • Port / Add Documentation for LowerFunc
  • Port / Add Documentation for BTrimFunc
  • Port / Add Documentation for StartsWithFunc
  • Port / Add Documentation for ReplaceFunc
  • Port / Add Documentation for BitLengthFunc
  • Port / Add Documentation for ChrFunc
  • Port / Add Documentation for OctetLengthFunc
  • Port / Add Documentation for LevenshteinFunc
  • Port / Add Documentation for AsciiFunc
  • Port / Add Documentation for CharacterLengthFunc
  • Port / Add Documentation for RPadFunc
  • Port / Add Documentation for LPadFunc
  • Port / Add Documentation for StrposFunc
  • Port / Add Documentation for RightFunc
  • Port / Add Documentation for ReverseFunc
  • Port / Add Documentation for SubstrFunc
  • Port / Add Documentation for SubstrIndexFunc
  • Port / Add Documentation for FindInSetFunc
  • Port / Add Documentation for LeftFunc
  • Port / Add Documentation for TranslateFunc

Window Function Documentation Migration

  • Port / Add Documentation for Lead
  • Port / Add Documentation for RowNumber
@alamb
Copy link
Contributor Author

alamb commented Oct 3, 2024

Update is I have a few follow on PRs

Then I figure I will file one or two other tickets to see how easy it is to port other functions

And if all goes well I'll make a ticket storm to port the docs

@Omega359
Copy link
Contributor

Omega359 commented Oct 4, 2024

FYI I've finished up the string expression migration locally - just waiting on the updated code from #12742 to land before pushing a PR.

@alamb
Copy link
Contributor Author

alamb commented Oct 4, 2024

FYI I've finished up the string expression migration locally - just waiting on the updated code from #12742 to land before pushing a PR.

Thanks, I'll merge those as soon as they get a review (I can't merge them until they get an approval from another committer)

@Omega359
Copy link
Contributor

Omega359 commented Oct 5, 2024

No rush I just wanted to make sure no one was duplicating work needlessly

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

No branches or pull requests

2 participants