diff --git a/.sqlx/query-43d0bb3b88356af3abdae506b7699ec762a6f1debbbda49a3479fddaa8917e17.json b/.sqlx/query-43d0bb3b88356af3abdae506b7699ec762a6f1debbbda49a3479fddaa8917e17.json index 05248d822..688a8d82a 100644 --- a/.sqlx/query-43d0bb3b88356af3abdae506b7699ec762a6f1debbbda49a3479fddaa8917e17.json +++ b/.sqlx/query-43d0bb3b88356af3abdae506b7699ec762a6f1debbbda49a3479fddaa8917e17.json @@ -11,12 +11,12 @@ { "ordinal": 1, "name": "name", - "type_info": "Varchar" + "type_info": "Text" }, { "ordinal": 2, "name": "version", - "type_info": "Varchar" + "type_info": "Text" }, { "ordinal": 3, diff --git a/.sqlx/query-b2266a1d32ffedec1b35d94404d3747632ee3144ebe16cfa11d852f73a4ebbff.json b/.sqlx/query-b2266a1d32ffedec1b35d94404d3747632ee3144ebe16cfa11d852f73a4ebbff.json index 0d8bcf59d..d26a5fc1c 100644 --- a/.sqlx/query-b2266a1d32ffedec1b35d94404d3747632ee3144ebe16cfa11d852f73a4ebbff.json +++ b/.sqlx/query-b2266a1d32ffedec1b35d94404d3747632ee3144ebe16cfa11d852f73a4ebbff.json @@ -5,8 +5,8 @@ "columns": [], "parameters": { "Left": [ - "Varchar", - "Varchar", + "Text", + "Text", "Int4", "Text" ] diff --git a/.sqlx/query-ebb47544b1090567139f3bdf2c22993c3a3aaef41c6520095a2c3bfaf6035da6.json b/.sqlx/query-ebb47544b1090567139f3bdf2c22993c3a3aaef41c6520095a2c3bfaf6035da6.json index 66da4f42e..c7e4786cc 100644 --- a/.sqlx/query-ebb47544b1090567139f3bdf2c22993c3a3aaef41c6520095a2c3bfaf6035da6.json +++ b/.sqlx/query-ebb47544b1090567139f3bdf2c22993c3a3aaef41c6520095a2c3bfaf6035da6.json @@ -11,12 +11,12 @@ { "ordinal": 1, "name": "name", - "type_info": "Varchar" + "type_info": "Text" }, { "ordinal": 2, "name": "version", - "type_info": "Varchar" + "type_info": "Text" }, { "ordinal": 3, diff --git a/migrations/20241015054153_buildqueue-queue-crate-version-name-field-length.down.sql b/migrations/20241015054153_buildqueue-queue-crate-version-name-field-length.down.sql new file mode 100644 index 000000000..93f5cc4c6 --- /dev/null +++ b/migrations/20241015054153_buildqueue-queue-crate-version-name-field-length.down.sql @@ -0,0 +1,5 @@ +DELETE FROM queue WHERE LENGTH(name) > 255 OR LENGTH(version) > 100; + +ALTER TABLE queue + ALTER COLUMN name TYPE VARCHAR(255), + ALTER COLUMN version TYPE VARCHAR(100); diff --git a/migrations/20241015054153_buildqueue-queue-crate-version-name-field-length.up.sql b/migrations/20241015054153_buildqueue-queue-crate-version-name-field-length.up.sql new file mode 100644 index 000000000..038b7430a --- /dev/null +++ b/migrations/20241015054153_buildqueue-queue-crate-version-name-field-length.up.sql @@ -0,0 +1,3 @@ +ALTER TABLE queue + ALTER COLUMN name TYPE TEXT, + ALTER COLUMN version TYPE TEXT; diff --git a/src/build_queue.rs b/src/build_queue.rs index 8a6d4b07a..8a0187c98 100644 --- a/src/build_queue.rs +++ b/src/build_queue.rs @@ -1155,4 +1155,40 @@ mod tests { Ok(()) }); } + + #[test] + fn test_add_long_name() { + crate::test::wrapper(|env| { + let queue = env.build_queue(); + + let name: String = "krate".repeat(100); + + queue.add_crate(&name, "0.0.1", 0, None)?; + + queue.process_next_crate(|krate| { + assert_eq!(name, krate.name); + Ok(BuildPackageSummary::default()) + })?; + + Ok(()) + }) + } + + #[test] + fn test_add_long_version() { + crate::test::wrapper(|env| { + let queue = env.build_queue(); + + let version: String = "version".repeat(100); + + queue.add_crate("krate", &version, 0, None)?; + + queue.process_next_crate(|krate| { + assert_eq!(version, krate.version); + Ok(BuildPackageSummary::default()) + })?; + + Ok(()) + }) + } }