Skip to content

DEV: Remove redundant newlines in generated indexes #34344

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

s3lase
Copy link
Contributor

@s3lase s3lase commented Aug 14, 2025

Before:

CREATE TABLE muted_users
(
    created_at    DATETIME,
    muted_user_id NUMERIC  NOT NULL,
    user_id       NUMERIC  NOT NULL
);

CREATE TABLE user_custom_fields
(
    created_at           DATETIME,
    field_id             NUMERIC,
    is_multiselect_field BOOLEAN,
    name                 TEXT     NOT NULL,
    user_id              NUMERIC  NOT NULL,
    value                TEXT
);

CREATE UNIQUE INDEX ucf_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id, value) WHERE is_multiselect_field = TRUE AND field_id IS NOT NULL;

CREATE UNIQUE INDEX ucf_not_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id) WHERE is_multiselect_field = FALSE AND field_id IS NOT NULL;

CREATE UNIQUE INDEX ucf_multiselect_by_name_index ON user_custom_fields (user_id, name, value) WHERE is_multiselect_field = TRUE;

CREATE UNIQUE INDEX ucf_not_multiselect_by_name_index ON user_custom_fields (user_id, name) WHERE is_multiselect_field = FALSE;

CREATE TABLE user_emails
(
    email      TEXT     NOT NULL,
    user_id    NUMERIC  NOT NULL,
    created_at DATETIME,
    "primary"  BOOLEAN,
    PRIMARY KEY (user_id, email)
);

After:

CREATE TABLE muted_users
(
    created_at    DATETIME,
    muted_user_id NUMERIC  NOT NULL,
    user_id       NUMERIC  NOT NULL
);

CREATE TABLE user_custom_fields
(
    created_at           DATETIME,
    field_id             NUMERIC,
    is_multiselect_field BOOLEAN,
    name                 TEXT     NOT NULL,
    user_id              NUMERIC  NOT NULL,
    value                TEXT
);

CREATE UNIQUE INDEX ucf_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id, value) WHERE is_multiselect_field = TRUE AND field_id IS NOT NULL; 
CREATE UNIQUE INDEX ucf_not_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id) WHERE is_multiselect_field = FALSE AND field_id IS NOT NULL; 
CREATE UNIQUE INDEX ucf_multiselect_by_name_index ON user_custom_fields (user_id, name, value) WHERE is_multiselect_field = TRUE; 
CREATE UNIQUE INDEX ucf_not_multiselect_by_name_index ON user_custom_fields (user_id, name) WHERE is_multiselect_field = FALSE;

CREATE TABLE user_emails
(
    email      TEXT     NOT NULL,
    user_id    NUMERIC  NOT NULL,
    created_at DATETIME,
    "primary"  BOOLEAN,
    PRIMARY KEY (user_id, email)
);

Before:
```
CREATE TABLE muted_users
(
    created_at    DATETIME,
    muted_user_id NUMERIC  NOT NULL,
    user_id       NUMERIC  NOT NULL
);

CREATE TABLE user_custom_fields
(
    created_at           DATETIME,
    field_id             NUMERIC,
    is_multiselect_field BOOLEAN,
    name                 TEXT     NOT NULL,
    user_id              NUMERIC  NOT NULL,
    value                TEXT
);

CREATE UNIQUE INDEX ucf_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id, value) WHERE is_multiselect_field = TRUE AND field_id IS NOT NULL;

CREATE UNIQUE INDEX ucf_not_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id) WHERE is_multiselect_field = FALSE AND field_id IS NOT NULL;

CREATE UNIQUE INDEX ucf_multiselect_by_name_index ON user_custom_fields (user_id, name, value) WHERE is_multiselect_field = TRUE;

CREATE UNIQUE INDEX ucf_not_multiselect_by_name_index ON user_custom_fields (user_id, name) WHERE is_multiselect_field = FALSE;

CREATE TABLE user_emails
(
    email      TEXT     NOT NULL,
    user_id    NUMERIC  NOT NULL,
    created_at DATETIME,
    "primary"  BOOLEAN,
    PRIMARY KEY (user_id, email)
);
``

```
CREATE TABLE muted_users
(
    created_at    DATETIME,
    muted_user_id NUMERIC  NOT NULL,
    user_id       NUMERIC  NOT NULL
);

CREATE TABLE user_custom_fields
(
    created_at           DATETIME,
    field_id             NUMERIC,
    is_multiselect_field BOOLEAN,
    name                 TEXT     NOT NULL,
    user_id              NUMERIC  NOT NULL,
    value                TEXT
);

CREATE UNIQUE INDEX ucf_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id, value) WHERE is_multiselect_field = TRUE AND field_id IS NOT NULL;
CREATE UNIQUE INDEX ucf_not_multiselect_by_field_id_index ON user_custom_fields (user_id, field_id) WHERE is_multiselect_field = FALSE AND field_id IS NOT NULL;
CREATE UNIQUE INDEX ucf_multiselect_by_name_index ON user_custom_fields (user_id, name, value) WHERE is_multiselect_field = TRUE;
CREATE UNIQUE INDEX ucf_not_multiselect_by_name_index ON user_custom_fields (user_id, name) WHERE is_multiselect_field = FALSE;

CREATE TABLE user_emails
(
    email      TEXT     NOT NULL,
    user_id    NUMERIC  NOT NULL,
    created_at DATETIME,
    "primary"  BOOLEAN,
    PRIMARY KEY (user_id, email)
);
```
@github-actions github-actions bot added the migrations-tooling PR which includes changes to migrations tooling label Aug 14, 2025
Copy link
Member

@gschlager gschlager left a comment

Choose a reason for hiding this comment

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

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
migrations-tooling PR which includes changes to migrations tooling
Development

Successfully merging this pull request may close these issues.

2 participants