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

Design for URI data type #236

Closed
Tracked by #246
kgodey opened this issue Jun 11, 2021 · 1 comment
Closed
Tracked by #246

Design for URI data type #236

kgodey opened this issue Jun 11, 2021 · 1 comment
Assignees
Labels
ready Ready for implementation type: enhancement New feature or request

Comments

@kgodey
Copy link
Contributor

kgodey commented Jun 11, 2021

Problem

Users will want to store URIs. We should allow them to do so and provide an intuitive user experience for them.

Proposed solution

We need a design for the following functionality for the URI data type:

  • Displaying columns of this type in tables (should be clickable)
  • Creating a new column with this data type
  • Changing an existing column to this data type (including error states)
  • Showing non-technical users a friendly name for this data type. (The underlying Postgres data type will be a custom URI type)

Options

Columns of this type will have the following options:

Common to all Columns

  • Default value (this will be the default value of the column if the user doesn't enter anything)
  • Allow empty values (whether the column is nullable)
  • Unique (whether the values in the column have to be unique, validated at the DB level)

Grouping

Columns of this type will be able to grouped by:

  • First letter of value
  • URI scheme (https, ftp, etc.)
  • URI host (the www.example.com part)

Note: URIs have a bunch of other parts, but they're not as commonly used. We can add grouping by them later if needed.

Filtering

Columns of this type will support the following filters:

  • contains
  • does not contain
  • is
  • is not
  • is empty
  • is not empty
  • host contains
  • host does not contain
  • scheme is
  • scheme is not

Question: should we support all the additional filters that the text data type supports or is that too many?

Additional Context

This data type may not be available to all users, since it's a custom type. We should not allow users to change data to this type if it is not available.

@ghislaineguerin
Copy link
Contributor

Specs for this issue can be found here: https://wiki.mathesar.org/en/design/specs/url-data-type

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready Ready for implementation type: enhancement New feature or request
Projects
No open projects
Development

No branches or pull requests

2 participants