@@ -68,7 +68,7 @@ func ThreadPosts(w http.ResponseWriter, r *http.Request, p map[string]string) {
68
68
P.thread_id,
69
69
P.parent AS parentId,
70
70
P.id,
71
- P.id::text AS path
71
+ intset( P.id) AS path
72
72
FROM Post P
73
73
JOIN Forum_User U on P.user_id = U.id
74
74
JOIN Thread T on P.thread_id = T.id
@@ -89,7 +89,7 @@ func ThreadPosts(w http.ResponseWriter, r *http.Request, p map[string]string) {
89
89
P.thread_id,
90
90
P.parent,
91
91
P.id,
92
- CONCAT_WS('.', PT.path, P.id::text)
92
+ PT.path + P.id
93
93
FROM Post P
94
94
INNER JOIN PostParentTree PT ON P.parent = PT.id
95
95
JOIN Forum_User U on P.user_id = U.id
@@ -113,9 +113,9 @@ func ThreadPosts(w http.ResponseWriter, r *http.Request, p map[string]string) {
113
113
}
114
114
115
115
if desc == "true" {
116
- queryBuilder .WriteString (`ORDER BY substring (path from '^\d+' ) DESC, substring (path from '\..*$' ) DESC NULLS LAST, path COLLATE "C" DESC ` )
116
+ queryBuilder .WriteString (`ORDER BY subarray (path, 1, 1 ) DESC, subarray (path, 2 ) DESC NULLS LAST, path DESC ` )
117
117
} else {
118
- queryBuilder .WriteString (`ORDER BY path COLLATE "C" ASC, created ASC, id ASC ` )
118
+ queryBuilder .WriteString (`ORDER BY path ASC, created ASC, id ASC ` )
119
119
}
120
120
121
121
if len (limit ) > 0 {
@@ -195,7 +195,7 @@ func ThreadPosts(w http.ResponseWriter, r *http.Request, p map[string]string) {
195
195
if desc == "true" {
196
196
queryBuilder .WriteString (`ORDER BY substring(path from '^\d+') DESC, substring(path from '\..*$') ASC NULLS FIRST, path COLLATE "C" DESC ` )
197
197
} else {
198
- queryBuilder .WriteString (" ORDER BY path ASC, created ASC, id ASC " )
198
+ queryBuilder .WriteString (` ORDER BY path COLLATE "C" ASC, created ASC, id ASC ` )
199
199
}
200
200
201
201
}
0 commit comments