[go: up one dir, main page]

Inconsistent schema of `push_rules` table

Problem

Staging database defines a limit for regex fields. character varying(255)

                                                                      Table "public.push_rules"
            Column             |            Type             | Collation | Nullable |                Default                 | Storage  | Stats target | Description
-------------------------------+-----------------------------+-----------+----------+----------------------------------------+----------+--------------+-------------
 id                            | integer                     |           | not null | nextval('push_rules_id_seq'::regclass) | plain    |              |
 force_push_regex              | character varying(255)      |           |          |                                        | extended |              |
 delete_branch_regex           | character varying(255)      |           |          |                                        | extended |              |
 commit_message_regex          | character varying(255)      |           |          |                                        | extended |              |
 deny_delete_tag               | boolean                     |           |          |                                        | plain    |              |
 project_id                    | integer                     |           |          |                                        | plain    |              |
 created_at                    | timestamp without time zone |           |          |                                        | plain    |              |
 updated_at                    | timestamp without time zone |           |          |                                        | plain    |              |
 author_email_regex            | character varying(255)      |           |          |                                        | extended |              |
 member_check                  | boolean                     |           | not null | false                                  | plain    |              |
 file_name_regex               | character varying(255)      |           |          |                                        | extended |              |
 is_sample                     | boolean                     |           |          | false                                  | plain    |              |
 max_file_size                 | integer                     |           | not null | 0                                      | plain    |              |
 prevent_secrets               | boolean                     |           | not null | false                                  | plain    |              |
 branch_name_regex             | character varying           |           |          |                                        | extended |              |
 reject_unsigned_commits       | boolean                     |           |          |                                        | plain    |              |
 commit_committer_check        | boolean                     |           |          |                                        | plain    |              |
 regexp_uses_re2               | boolean                     |           |          | true                                   | plain    |              |
 commit_message_negative_regex | character varying           |           |          |                                        | extended |              |
 reject_non_dco_commits        | boolean                     |           |          |                                        | plain    |              |
 commit_committer_name_check   | boolean                     |           | not null | false                                  | plain    |              |

However, in our schema https://gitlab.com/gitlab-org/gitlab/-/blob/f6a0b6bc461d2d3ca885e3ea280abe45487f9ced/db/init_structure.sql#L20650-20670. The same fields don't have a limitation (character varying):

CREATE TABLE push_rules (
    id integer NOT NULL,
    force_push_regex character varying,
    delete_branch_regex character varying,
    commit_message_regex character varying,
    deny_delete_tag boolean,
    project_id integer,
    created_at timestamp without time zone,
    updated_at timestamp without time zone,
    author_email_regex character varying,
    member_check boolean DEFAULT false NOT NULL,
    file_name_regex character varying,
    is_sample boolean DEFAULT false,
    max_file_size integer DEFAULT 0 NOT NULL,
    prevent_secrets boolean DEFAULT false NOT NULL,
    branch_name_regex character varying,
    reject_unsigned_commits boolean,
    commit_committer_check boolean,
    regexp_uses_re2 boolean DEFAULT true,
    commit_message_negative_regex character varying
);