Skip to content

Implement current_date Function #3981

Closed

Description

@alamb

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
As we add more full featured date/time support for DataFusion users need to be able to use the current date to calculate things like "all data in the last 30 days"

Describe the solution you'd like
Support the current_date postgres function https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
This is a feature request we got from an early (internal) user of InfluxDB IOx

I believe this is a good first issue as you can follow the existing implementation of now()

It would be a good exercise to add a new build in scalar function, physical planing support, and then tests

Activity

  1. comphead commented on Oct 28, 2022

    @comphead
    Contributor

    @alamb please assign the task to me.

    And let me know how to regenerate prost.rs locally to reflect latest changes for Scalar types?

  2. alamb commented on Oct 29, 2022

    @alamb
    ContributorAuthor

    Thanks @comphead

    @alamb please assign the task to me.

    Done

    And let me know how to regenerate prost.rs locally to reflect latest changes for Scalar types?

    It may be related to #3947 / #3979 . Maybe @avantgardnerio or @tustvold have some ideas or a doc pointer

  3. avantgardnerio commented on Oct 29, 2022

    @avantgardnerio
    Contributor

    @tustvold I see you added instructions for installing protoc... would you mind adding the bash command you use to run it? 🙌

  4. tustvold commented on Oct 29, 2022

    @tustvold
    Contributor

    There is no command, just build the project as normal, the build script does the rest

  5. comphead commented on Oct 29, 2022

    @comphead
    Contributor

    Hi @tustvold

    I have tried to build it first

    $ cargo build
    Compiling datafusion-proto v13.0.0 (arrow-datafusion/datafusion/proto)
    error[E0599]: no variant or associated item named `CurrentDate` found for enum `datafusion::ScalarFunction` in the current scope
        --> datafusion/proto/src/to_proto.rs:1181:57
         |
    1181 |             BuiltinScalarFunction::CurrentDate => Self::CurrentDate,
         |                                                         ^^^^^^^^^^^ variant or associated item not found in `datafusion::ScalarFunction`
         |
        ::: datafusion/proto/src/generated/prost.rs:1154:1
    

    If I go to prost.rs I dont see CurrentDate generated. I suppose BuiltinScalarFunction enum is the driver to generate new code?

  6. comphead commented on Oct 29, 2022

    @comphead
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions