Details

    Description

      Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

      Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

      The new data type name will be INET4.

      Under terms of this task, INET4 and INET6 won't support mutual explicit or implicit CAST. That will be done separately when needed.

      But INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so later INET4 and INET6 "know" each other, to implement mutual cast.

      Attachments

        Issue Links

          Activity

            bar Alexander Barkov created issue -
            bar Alexander Barkov made changes -
            Field Original Value New Value
            bar Alexander Barkov made changes -
            Description Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 4 byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so INET4 and INET6 "know" each other:
            - They should support explicit CAST between each other
            - INET6 should be a super type for INET4.
            {code:sql}
            SELECT COALEACE(inet4_expr,inet6_expr)
            {code}
            will implicitly cast inet4_expr to INET6 and return a result of the INET6 data type.
            {code:sql}
            SELECT inet4_expr=inet6_expr)
            {code}
            will implicitly cast inet4_expr to INET6, then compare in INET6 format.
            - They should possibly support implicit CAST between each other in some other cases. The exact list is to be defined.
            Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so INET4 and INET6 "know" each other:
            - They should support explicit CAST between each other
            - INET6 should be a super type for INET4.
            {code:sql}
            SELECT COALEACE(inet4_expr,inet6_expr)
            {code}
            will implicitly cast inet4_expr to INET6 and return a result of the INET6 data type.
            {code:sql}
            SELECT inet4_expr=inet6_expr)
            {code}
            will implicitly cast inet4_expr to INET6, then compare in INET6 format.
            - They should possibly support implicit CAST between each other in some other cases. The exact list is to be defined.
            serg Sergei Golubchik made changes -
            Rank Ranked higher
            julien.fritsch Julien Fritsch made changes -
            Assignee Alexander Barkov [ bar ] Oleksandr Byelkin [ sanja ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.7 [ 24805 ]
            Fix Version/s 10.6 [ 24028 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.7 [ 24805 ]
            bar Alexander Barkov made changes -
            Assignee Oleksandr Byelkin [ sanja ] Alexander Barkov [ bar ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 111695 ] MariaDB v4 [ 131338 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.9 [ 26905 ]
            Fix Version/s 10.8 [ 26121 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.10 [ 27530 ]
            Fix Version/s 10.9 [ 26905 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            bar Alexander Barkov made changes -
            Description Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so INET4 and INET6 "know" each other:
            - They should support explicit CAST between each other
            - INET6 should be a super type for INET4.
            {code:sql}
            SELECT COALEACE(inet4_expr,inet6_expr)
            {code}
            will implicitly cast inet4_expr to INET6 and return a result of the INET6 data type.
            {code:sql}
            SELECT inet4_expr=inet6_expr)
            {code}
            will implicitly cast inet4_expr to INET6, then compare in INET6 format.
            - They should possibly support implicit CAST between each other in some other cases. The exact list is to be defined.
            Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            Under terms of this task, INET4 and INET6 won't support mutual explicit or implicit CAST. That will be done separately when needed.

            But INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so later INET4 and INET6 "know" each other.

            bar Alexander Barkov made changes -
            Description Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            Under terms of this task, INET4 and INET6 won't support mutual explicit or implicit CAST. That will be done separately when needed.

            But INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so later INET4 and INET6 "know" each other.

            Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            Under terms of this task, INET4 and INET6 won't support mutual explicit or implicit CAST. That will be done separately when needed.

            But INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so later INET4 and INET6 "know" each other, to implement mutual cast.

            bar Alexander Barkov added a comment - serg , please review a patch in: https://github.com/MariaDB/server/tree/bb-10.10-bar-inet4
            bar Alexander Barkov made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            bar Alexander Barkov made changes -
            Status In Progress [ 3 ] In Testing [ 10301 ]
            bar Alexander Barkov made changes -
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            bar Alexander Barkov made changes -
            Assignee Alexander Barkov [ bar ] Sergei Golubchik [ serg ]
            Status Stalled [ 10000 ] In Review [ 10002 ]

            commit 1f897b447ec is good, thanks.

            Typo: in a couple of places you say "10.0 tests".

            Do we want inet4->inet6 conversion to work? I think it's what users might expect. But let's have it as a separate task.

            serg Sergei Golubchik added a comment - commit 1f897b447ec is good, thanks. Typo: in a couple of places you say "10.0 tests". Do we want inet4->inet6 conversion to work? I think it's what users might expect. But let's have it as a separate task.
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Alexander Barkov [ bar ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            bar Alexander Barkov made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            bar Alexander Barkov made changes -
            Assignee Alexander Barkov [ bar ] Elena Stepanova [ elenst ]
            bar Alexander Barkov added a comment - - edited

            elenst, please find a preview branch preview-10.10-misc for testing. Thanks.

            bar Alexander Barkov added a comment - - edited elenst , please find a preview branch preview-10.10-misc for testing. Thanks.
            alice Alice Sherepa made changes -
            Assignee Elena Stepanova [ elenst ] Alice Sherepa [ alice ]

            The feature is also in bb-10.10-MDEV-23287 without other misc features

            serg Sergei Golubchik added a comment - The feature is also in bb-10.10- MDEV-23287 without other misc features
            bar Alexander Barkov added a comment - - edited

            Please find an updated version in bb-10.10-bar-MDEV-23287-inet4.
            It was rebased to the latest 10.10 and now returns errors when mixing INET4 with non-compatible types at the preparation time (i.e. before iterating rows) rather than at the execution time (during iterating rows). Also, more MTR tests were added.

            bar Alexander Barkov added a comment - - edited Please find an updated version in bb-10.10-bar- MDEV-23287 -inet4. It was rebased to the latest 10.10 and now returns errors when mixing INET4 with non-compatible types at the preparation time (i.e. before iterating rows) rather than at the execution time (during iterating rows). Also, more MTR tests were added.
            alice Alice Sherepa added a comment - - edited

            it is ok to push it into 10.10. Thanks!

            alice Alice Sherepa added a comment - - edited it is ok to push it into 10.10. Thanks!
            alice Alice Sherepa made changes -
            Assignee Alice Sherepa [ alice ] Alexander Barkov [ bar ]
            alice Alice Sherepa made changes -
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            bar Alexander Barkov made changes -
            Fix Version/s 10.10.0 [ 27912 ]
            Fix Version/s 10.10 [ 27530 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Summary The INET4 data type INET4 data type
            AirFocus AirFocus made changes -
            Description Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4-byte binary strings.

            The new data type name will be INET4.

            Under terms of this task, INET4 and INET6 won't support mutual explicit or implicit CAST. That will be done separately when needed.

            But INET4 should be implemented in the same directory with INET6: plugin/type_inet/, so later INET4 and INET6 "know" each other, to implement mutual cast.

            Under terms of MDEV-274 we added the INET6 data type, to store IPv6 addresses as 16-byte binary strings.

            Let's also add a data type to store IPv4 addresses, as 4\-byte binary strings.

            The new data type name will be INET4.

            Under terms of this task, INET4 and INET6 won't support mutual explicit or implicit CAST. That will be done separately when needed.

            But INET4 should be implemented in the same directory with INET6: plugin/type\_inet/, so later INET4 and INET6 "know" each other, to implement mutual cast.
            ralf.gebhardt Ralf Gebhardt made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Labels Preview_10.10
            greenman Ian Gilfillan made changes -

            People

              bar Alexander Barkov
              bar Alexander Barkov
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.