fix: drop the inert K prefix from the spending flow prefixes

K matches zero rows corpus-wide (audited pipeline-side). Numerically inert;
removed so the code stops implying a prefix the data never had.
This commit is contained in:
2026-07-27 09:16:41 -04:00
parent 9240a18ea3
commit 7ed1da9b79
4 changed files with 17 additions and 3 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ cog_spending <- function(govid, years, category = NULL,
verb = "cog_spending", verb = "cog_spending",
view_base = "spending_annotated", view_base = "spending_annotated",
subtype_col = "spend_subtype", subtype_col = "spend_subtype",
flow_prefixes = c("E", "F", "G", "K"), flow_prefixes = c("E", "F", "G"),
call = match.call(), call = match.call(),
govid = govid, govid = govid,
years = years, years = years,
+1 -1
View File
@@ -1,5 +1,5 @@
CREATE OR REPLACE VIEW spending_long AS CREATE OR REPLACE VIEW spending_long AS
SELECT * SELECT *
FROM long FROM long
WHERE LEFT(item_code, 1) IN ('E', 'F', 'G', 'K') WHERE LEFT(item_code, 1) IN ('E', 'F', 'G')
AND NOT is_aggregate; AND NOT is_aggregate;
+1 -1
View File
@@ -3,4 +3,4 @@ SELECT * REPLACE (harmonized_code AS item_code)
FROM long FROM long
WHERE NOT is_aggregate WHERE NOT is_aggregate
AND harmonized_code IS NOT NULL AND harmonized_code IS NOT NULL
AND LEFT(harmonized_code, 1) IN ('E', 'F', 'G', 'K'); AND LEFT(harmonized_code, 1) IN ('E', 'F', 'G');
+14
View File
@@ -0,0 +1,14 @@
test_that("the corpus contains no K-prefix rows, so the Direct leg omits K", {
con <- .ensure_session()
n <- DBI::dbGetQuery(con,
"SELECT COUNT(*) AS n FROM long WHERE LEFT(item_code, 1) = 'K'")$n
expect_equal(n, 0)
sql_files <- c("20-spending_long.sql", "22-spending_long_harmonized.sql")
for (f in sql_files) {
txt <- paste(readLines(system.file("sql", f, package = "uscogdata")),
collapse = " ")
expect_false(grepl("'K'", txt, fixed = TRUE),
label = paste(f, "must not reference the inert K prefix"))
}
})