From a06cb1ca14f9261e4667621de90c33e37648934b Mon Sep 17 00:00:00 2001 From: Tet-9 Date: Sat, 30 May 2026 01:41:06 +0100 Subject: [PATCH] fix(schema): widen filename columns from VARCHAR(500) to TEXT pr_files.filename, pr_files.previous_filename, and pr_file_contents.filename were defined as VARCHAR(500). Valid Git file paths can exceed 500 characters, causing Postgres to reject PR file ingestion with 'value too long for type character varying(500)', leaving affected PRs without scoring data. Changes: - packages/db/08_pr_files.sql: filename and previous_filename -> TEXT - packages/db/09_pr_file_contents.sql: filename -> TEXT - packages/db/26_alter_filename_to_text.sql: migration for existing deployments - PrFile.entity.ts: @PrimaryColumn type explicitly set to 'text' - PrFileContent.entity.ts: @PrimaryColumn type explicitly set to 'text' Fixes #134 --- packages/das/src/entities/PrFile.entity.ts | 2 +- packages/das/src/entities/PrFileContent.entity.ts | 2 +- packages/db/08_pr_files.sql | 4 ++-- packages/db/09_pr_file_contents.sql | 2 +- packages/db/26_alter_filename_to_text.sql | 9 +++++++++ 5 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 packages/db/26_alter_filename_to_text.sql diff --git a/packages/das/src/entities/PrFile.entity.ts b/packages/das/src/entities/PrFile.entity.ts index ec69f2d..1ac6a23 100644 --- a/packages/das/src/entities/PrFile.entity.ts +++ b/packages/das/src/entities/PrFile.entity.ts @@ -8,7 +8,7 @@ export class PrFile { @PrimaryColumn({ name: "pr_number" }) prNumber: number; - @PrimaryColumn() + @PrimaryColumn({ type: "text" }) filename: string; @Column({ name: "previous_filename", nullable: true }) diff --git a/packages/das/src/entities/PrFileContent.entity.ts b/packages/das/src/entities/PrFileContent.entity.ts index d71e420..2190266 100644 --- a/packages/das/src/entities/PrFileContent.entity.ts +++ b/packages/das/src/entities/PrFileContent.entity.ts @@ -8,7 +8,7 @@ export class PrFileContent { @PrimaryColumn({ name: "pr_number" }) prNumber: number; - @PrimaryColumn() + @PrimaryColumn({ type: "text" }) filename: string; @Column({ name: "base_content", type: "text", nullable: true }) diff --git a/packages/db/08_pr_files.sql b/packages/db/08_pr_files.sql index a6c6dcf..e36221b 100644 --- a/packages/db/08_pr_files.sql +++ b/packages/db/08_pr_files.sql @@ -3,8 +3,8 @@ CREATE TABLE IF NOT EXISTS pr_files ( repo_full_name VARCHAR(255) NOT NULL, pr_number INTEGER NOT NULL, - filename VARCHAR(500) NOT NULL, - previous_filename VARCHAR(500), + filename TEXT NOT NULL, + previous_filename TEXT , status VARCHAR(20) NOT NULL, additions INTEGER NOT NULL DEFAULT 0, deletions INTEGER NOT NULL DEFAULT 0, diff --git a/packages/db/09_pr_file_contents.sql b/packages/db/09_pr_file_contents.sql index bb9acc3..ad3e8d8 100644 --- a/packages/db/09_pr_file_contents.sql +++ b/packages/db/09_pr_file_contents.sql @@ -4,7 +4,7 @@ CREATE TABLE IF NOT EXISTS pr_file_contents ( repo_full_name VARCHAR(255) NOT NULL, pr_number INTEGER NOT NULL, - filename VARCHAR(500) NOT NULL, + filename TEXT NOT NULL, base_content TEXT, head_content TEXT, is_binary BOOLEAN NOT NULL DEFAULT FALSE, diff --git a/packages/db/26_alter_filename_to_text.sql b/packages/db/26_alter_filename_to_text.sql new file mode 100644 index 0000000..c4a9fae --- /dev/null +++ b/packages/db/26_alter_filename_to_text.sql @@ -0,0 +1,9 @@ +-- Widen filename columns from VARCHAR(500) to TEXT so that valid Git file +-- paths longer than 500 characters do not cause PR file ingestion to fail. + +ALTER TABLE pr_files + ALTER COLUMN filename TYPE TEXT, + ALTER COLUMN previous_filename TYPE TEXT; + +ALTER TABLE pr_file_contents + ALTER COLUMN filename TYPE TEXT;