Skip to content
This repository was archived by the owner on Apr 21, 2026. It is now read-only.

Commit 39c75b2

Browse files
committed
wip
1 parent 58a378b commit 39c75b2

1 file changed

Lines changed: 101 additions & 0 deletions

File tree

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<cfscript>
2+
// Quick diagnostic for blog loading issue
3+
TARGET_DS = {
4+
class: "org.postgresql.Driver",
5+
bundleName: "org.postgresql.jdbc",
6+
bundleVersion: "42.7.7",
7+
connectionString: "jdbc:postgresql://10.100.10.230:26257/wheels_db?sslmode=require",
8+
username: "wheels_user",
9+
password: "x5N6kR62ArF58zetwMSZ"
10+
};
11+
12+
writeOutput("<pre>");
13+
14+
// 1. Check if the blog post exists at all
15+
slug = "cleaner-configuration-in-wheels-3-0-less-magic-more-clarity";
16+
writeOutput("=== Looking for blog with slug: #slug# ===" & chr(10) & chr(10));
17+
18+
q = queryExecute("
19+
SELECT id, slug, status, is_published, is_deleted, deletedat, status_id
20+
FROM blog_posts
21+
WHERE slug = :slug
22+
", { slug: slug }, { datasource: TARGET_DS });
23+
24+
writeOutput("Found #q.recordCount# rows" & chr(10));
25+
if (q.recordCount > 0) {
26+
writeOutput(" id: #q.id#" & chr(10));
27+
writeOutput(" slug: #q.slug#" & chr(10));
28+
writeOutput(" status: [#q.status#]" & chr(10));
29+
writeOutput(" is_published: #q.is_published#" & chr(10));
30+
writeOutput(" is_deleted: #q.is_deleted#" & chr(10));
31+
writeOutput(" deletedat: [#isNull(q.deletedat) ? 'NULL' : q.deletedat#]" & chr(10));
32+
writeOutput(" status_id: #q.status_id#" & chr(10));
33+
}
34+
35+
// 2. Check what the full query with joins would return
36+
writeOutput(chr(10) & "=== Simulating getBlogBySlug query ===" & chr(10));
37+
q2 = queryExecute("
38+
SELECT bp.id, bp.slug, bp.status, bp.is_published, bp.deletedat as bp_deleted,
39+
u.id as user_id, u.first_name,
40+
ps.id as ps_id, ps.name as ps_name, ps.deletedat as ps_deleted
41+
FROM blog_posts bp
42+
LEFT JOIN users u ON bp.created_by = u.id
43+
LEFT JOIN post_statuses ps ON bp.status_id = ps.id
44+
WHERE bp.slug = :slug
45+
", { slug: slug }, { datasource: TARGET_DS });
46+
47+
writeOutput("Found #q2.recordCount# rows" & chr(10));
48+
if (q2.recordCount > 0) {
49+
writeOutput(" blog id: #q2.id#" & chr(10));
50+
writeOutput(" status: [#q2.status#]" & chr(10));
51+
writeOutput(" is_published: #q2.is_published#" & chr(10));
52+
writeOutput(" bp.deletedat: [#isNull(q2.bp_deleted) ? 'NULL' : q2.bp_deleted#]" & chr(10));
53+
writeOutput(" user_id: #q2.user_id#, name: #q2.first_name#" & chr(10));
54+
writeOutput(" user.deletedat: checking..." & chr(10));
55+
writeOutput(" ps_id: #q2.ps_id#, ps_name: [#q2.ps_name#]" & chr(10));
56+
writeOutput(" ps.deletedat: [#isNull(q2.ps_deleted) ? 'NULL' : q2.ps_deleted#]" & chr(10));
57+
}
58+
59+
// 3. Test the WHERE conditions separately
60+
writeOutput(chr(10) & "=== Testing WHERE conditions ===" & chr(10));
61+
q3 = queryExecute("
62+
SELECT bp.id, bp.slug
63+
FROM blog_posts bp
64+
LEFT JOIN users u ON bp.created_by = u.id
65+
LEFT JOIN post_statuses ps ON bp.status_id = ps.id
66+
WHERE bp.slug = :slug
67+
AND bp.status = 'Approved'
68+
AND bp.is_published = true
69+
AND bp.deletedat IS NULL
70+
AND u.deletedat IS NULL
71+
AND ps.deletedat IS NULL
72+
", { slug: slug }, { datasource: TARGET_DS });
73+
writeOutput("With all soft-delete + conditions: #q3.recordCount# rows" & chr(10));
74+
75+
// 4. Check users table for the author
76+
writeOutput(chr(10) & "=== Checking user deletedat values ===" & chr(10));
77+
q4 = queryExecute("
78+
SELECT u.id, u.first_name, u.deletedat
79+
FROM users u
80+
JOIN blog_posts bp ON bp.created_by = u.id
81+
WHERE bp.slug = :slug
82+
", { slug: slug }, { datasource: TARGET_DS });
83+
if (q4.recordCount > 0) {
84+
writeOutput(" user #q4.id# (#q4.first_name#) deletedat: [#isNull(q4.deletedat) ? 'NULL' : q4.deletedat#]" & chr(10));
85+
}
86+
87+
// 5. Sample of deletedat values across blog_posts
88+
writeOutput(chr(10) & "=== Sample deletedat values in blog_posts ===" & chr(10));
89+
q5 = queryExecute("
90+
SELECT deletedat, count(*) as cnt
91+
FROM blog_posts
92+
GROUP BY deletedat
93+
ORDER BY cnt DESC
94+
LIMIT 10
95+
", {}, { datasource: TARGET_DS });
96+
for (var i = 1; i <= q5.recordCount; i++) {
97+
writeOutput(" deletedat=[#isNull(q5.deletedat[i]) ? 'NULL' : q5.deletedat[i]#] count=#q5.cnt[i]#" & chr(10));
98+
}
99+
100+
writeOutput("</pre>");
101+
</cfscript>

0 commit comments

Comments
 (0)