mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-28 08:06:24 -07:00
Refactored first sql command.
kill me
This commit is contained in:
parent
a51c8e049c
commit
89e299da78
7 changed files with 218 additions and 82 deletions
65
devtools/dummydata.sql
Normal file
65
devtools/dummydata.sql
Normal file
|
@ -0,0 +1,65 @@
|
|||
--dummy data for postgres
|
||||
|
||||
INSERT INTO public.dbprefixsections (
|
||||
name, abbreviation, "position", hidden) VALUES (
|
||||
'ssss'::text, 'sss'::text, '0'::smallint, false::boolean)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixboards (
|
||||
section_id, uri, dir, navbar_position, title, subtitle, description, max_file_size, max_threads, default_style, locked, force_anonymous, autosage_after, no_images_after, max_message_length, min_message_length, allow_embeds, redictect_to_thread, require_file, enable_catalog) VALUES (
|
||||
'1'::bigint, 'drrr'::text, 'dr'::character varying(45), '0'::smallint, 'title'::character varying(45), 'subtitle'::character varying(64), 'descr'::character varying(64), '456456'::integer, '444'::smallint, 'idk'::character varying(45), false::boolean, true::boolean, '33'::smallint, '44'::smallint, '4435'::smallint, '23'::smallint, true::boolean, true::boolean, true::boolean, true::boolean)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixthreads (
|
||||
board_id) VALUES (
|
||||
'1'::bigint)
|
||||
|
||||
returning id;INSERT INTO public.dbprefixthreads (
|
||||
board_id) VALUES (
|
||||
'1'::bigint)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixposts (
|
||||
thread_id, is_top_post, ip, message, message_raw, password, created_on) VALUES (
|
||||
'1'::bigint, true::boolean, '1'::integer, 'ffff'::text, 'ddddd'::text, 'ffff'::text, '2020-04-12 20:51:25.438903')
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixposts (
|
||||
thread_id, ip, message, message_raw, password, created_on) VALUES (
|
||||
'1'::bigint, '1'::integer, 'sss'::text, 'ssss'::text, 'ssss'::text, '2020-04-12 20:51:52.465178')
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixposts (
|
||||
thread_id, is_top_post, ip, message, message_raw, password, created_on) VALUES (
|
||||
'2'::bigint, true::boolean, '1'::integer, 'ffff'::text, 'ddddd'::text, 'ffff'::text, '2020-03-12 20:51:25.438903')
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixposts (
|
||||
thread_id, ip, message, message_raw, password, created_on) VALUES (
|
||||
'2'::bigint, '1'::integer, 'sss'::text, 'ssss'::text, 'ssss'::text, '2020-03-12 20:51:52.465178')
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixfiles (
|
||||
post_id, file_order, original_filename, filename, checksum, file_size, is_spoilered, thumbnail_width, thumbnail_height) VALUES (
|
||||
'2'::bigint, '0'::integer, '2a'::character varying(255), '2a'::character varying(45), '1'::integer, '1'::integer, false::boolean, '5'::integer, '5'::integer)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixfiles (
|
||||
post_id, file_order, original_filename, filename, checksum, file_size, is_spoilered, thumbnail_width, thumbnail_height) VALUES (
|
||||
'1'::bigint, '0'::integer, '1a'::character varying(255), '1a'::character varying(45), '2'::integer, '2'::integer, false::boolean, '5'::integer, '5'::integer)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixfiles (
|
||||
post_id, file_order, original_filename, filename, checksum, file_size, is_spoilered, thumbnail_width, thumbnail_height) VALUES (
|
||||
'3'::bigint, '0'::integer, '3a'::character varying(255), '3a'::character varying(45), '3'::integer, '3'::integer, false::boolean, '5'::integer, '5'::integer)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixfiles (
|
||||
post_id, file_order, original_filename, filename, checksum, file_size, is_spoilered, thumbnail_width, thumbnail_height) VALUES (
|
||||
'2'::bigint, '1'::integer, '2b'::character varying(255), '2b'::character varying(45), '4'::integer, '4'::integer, false::boolean, '5'::integer, '5'::integer)
|
||||
returning id;
|
||||
|
||||
INSERT INTO public.dbprefixfiles (
|
||||
post_id, file_order, original_filename, filename, checksum, file_size, is_spoilered, thumbnail_width, thumbnail_height) VALUES (
|
||||
'3'::bigint, '1'::integer, '3b'::character varying(255), '3b'::character varying(45), '5'::integer, '5'::integer, false::boolean, '55'::integer, '5'::integer)
|
||||
returning id;
|
20
devtools/sql cheatsheet.sql
Normal file
20
devtools/sql cheatsheet.sql
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*Gets post-id with thread top post id pairs*/
|
||||
select
|
||||
posts.id as selfid,
|
||||
topposts.id as toppostid
|
||||
from
|
||||
dbprefixposts as posts
|
||||
join dbprefixthreads as threads on threads.id = posts.thread_id
|
||||
join dbprefixposts as topposts on threads.id = topposts.thread_id
|
||||
where
|
||||
topposts.is_top_post = TRUE
|
||||
|
||||
/*The top level files per post*/
|
||||
|
||||
SELECT files.post_id, filename
|
||||
FROM dbprefixfiles as files
|
||||
JOIN
|
||||
(SELECT post_id, min(file_order) as file_order
|
||||
FROM dbprefixfiles
|
||||
GROUP BY post_id) as topfiles
|
||||
ON files.post_id = topfiles.post_id AND files.file_order = topfiles.file_order
|
|
@ -29,11 +29,11 @@ CREATE TABLE DBPREFIXboards(
|
|||
title VARCHAR(45) NOT NULL,
|
||||
subtitle VARCHAR(64) NOT NULL,
|
||||
description VARCHAR(64) NOT NULL,
|
||||
max_file_size SMALLINT NOT NULL,
|
||||
max_file_size INT NOT NULL,
|
||||
max_threads SMALLINT NOT NULL,
|
||||
default_style VARCHAR(45) NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
anonymous_name VARCHAR(45) NOT NULL DEFAULT 'Anonymous',
|
||||
force_anonymous BOOL NOT NULL,
|
||||
autosage_after SMALLINT NOT NULL,
|
||||
|
@ -53,13 +53,13 @@ CREATE TABLE DBPREFIXboards(
|
|||
CREATE TABLE DBPREFIXthreads(
|
||||
id {serial pk},
|
||||
board_id {fk to serial} NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
stickied BOOL NOT NULL,
|
||||
anchored BOOL NOT NULL,
|
||||
cyclical BOOL NOT NULL,
|
||||
last_bump TIMESTAMP NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
locked BOOL NOT NULL DEFAULT FALSE,
|
||||
stickied BOOL NOT NULL DEFAULT FALSE,
|
||||
anchored BOOL NOT NULL DEFAULT FALSE,
|
||||
cyclical BOOL NOT NULL DEFAULT FALSE,
|
||||
last_bump TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
FOREIGN KEY(board_id) REFERENCES DBPREFIXboards(id)
|
||||
);
|
||||
|
||||
|
@ -68,19 +68,19 @@ CREATE INDEX thread_deleted_index ON DBPREFIXthreads(is_deleted);
|
|||
CREATE TABLE DBPREFIXposts(
|
||||
id {serial pk},
|
||||
thread_id {fk to serial} NOT NULL,
|
||||
is_top_post BOOL NOT NULL,
|
||||
is_top_post BOOL NOT NULL DEFAULT FALSE,
|
||||
ip INT NOT NULL,
|
||||
created_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
tripcode VARCHAR(10) NOT NULL,
|
||||
name VARCHAR(50) NOT NULL DEFAULT '',
|
||||
tripcode VARCHAR(10) NOT NULL DEFAULT '',
|
||||
is_role_signature BOOL NOT NULL DEFAULT FALSE,
|
||||
email VARCHAR(50) NOT NULL,
|
||||
subject VARCHAR(100) NOT NULL,
|
||||
email VARCHAR(50) NOT NULL DEFAULT '',
|
||||
subject VARCHAR(100) NOT NULL DEFAULT '',
|
||||
message TEXT NOT NULL,
|
||||
message_raw TEXT NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
banned_message TEXT,
|
||||
FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id)
|
||||
);
|
||||
|
@ -96,6 +96,8 @@ CREATE TABLE DBPREFIXfiles(
|
|||
checksum INT NOT NULL,
|
||||
file_size INT NOT NULL,
|
||||
is_spoilered BOOL NOT NULL,
|
||||
thumbnail_width INT NOT NULL,
|
||||
thumbnail_height INT NOT NULL,
|
||||
FOREIGN KEY(post_id) REFERENCES DBPREFIXposts(id),
|
||||
UNIQUE(post_id, file_order)
|
||||
);
|
||||
|
|
|
@ -29,11 +29,11 @@ CREATE TABLE DBPREFIXboards(
|
|||
title VARCHAR(45) NOT NULL,
|
||||
subtitle VARCHAR(64) NOT NULL,
|
||||
description VARCHAR(64) NOT NULL,
|
||||
max_file_size SMALLINT NOT NULL,
|
||||
max_file_size INT NOT NULL,
|
||||
max_threads SMALLINT NOT NULL,
|
||||
default_style VARCHAR(45) NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
anonymous_name VARCHAR(45) NOT NULL DEFAULT 'Anonymous',
|
||||
force_anonymous BOOL NOT NULL,
|
||||
autosage_after SMALLINT NOT NULL,
|
||||
|
@ -53,13 +53,13 @@ CREATE TABLE DBPREFIXboards(
|
|||
CREATE TABLE DBPREFIXthreads(
|
||||
id BIGINT NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
|
||||
board_id BIGINT NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
stickied BOOL NOT NULL,
|
||||
anchored BOOL NOT NULL,
|
||||
cyclical BOOL NOT NULL,
|
||||
last_bump TIMESTAMP NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
locked BOOL NOT NULL DEFAULT FALSE,
|
||||
stickied BOOL NOT NULL DEFAULT FALSE,
|
||||
anchored BOOL NOT NULL DEFAULT FALSE,
|
||||
cyclical BOOL NOT NULL DEFAULT FALSE,
|
||||
last_bump TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
FOREIGN KEY(board_id) REFERENCES DBPREFIXboards(id)
|
||||
);
|
||||
|
||||
|
@ -68,19 +68,19 @@ CREATE INDEX thread_deleted_index ON DBPREFIXthreads(is_deleted);
|
|||
CREATE TABLE DBPREFIXposts(
|
||||
id BIGINT NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
|
||||
thread_id BIGINT NOT NULL,
|
||||
is_top_post BOOL NOT NULL,
|
||||
is_top_post BOOL NOT NULL DEFAULT FALSE,
|
||||
ip INT NOT NULL,
|
||||
created_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
tripcode VARCHAR(10) NOT NULL,
|
||||
name VARCHAR(50) NOT NULL DEFAULT '',
|
||||
tripcode VARCHAR(10) NOT NULL DEFAULT '',
|
||||
is_role_signature BOOL NOT NULL DEFAULT FALSE,
|
||||
email VARCHAR(50) NOT NULL,
|
||||
subject VARCHAR(100) NOT NULL,
|
||||
email VARCHAR(50) NOT NULL DEFAULT '',
|
||||
subject VARCHAR(100) NOT NULL DEFAULT '',
|
||||
message TEXT NOT NULL,
|
||||
message_raw TEXT NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
banned_message TEXT,
|
||||
FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id)
|
||||
);
|
||||
|
@ -96,6 +96,8 @@ CREATE TABLE DBPREFIXfiles(
|
|||
checksum INT NOT NULL,
|
||||
file_size INT NOT NULL,
|
||||
is_spoilered BOOL NOT NULL,
|
||||
thumbnail_width INT NOT NULL,
|
||||
thumbnail_height INT NOT NULL,
|
||||
FOREIGN KEY(post_id) REFERENCES DBPREFIXposts(id),
|
||||
UNIQUE(post_id, file_order)
|
||||
);
|
||||
|
|
|
@ -29,11 +29,11 @@ CREATE TABLE DBPREFIXboards(
|
|||
title VARCHAR(45) NOT NULL,
|
||||
subtitle VARCHAR(64) NOT NULL,
|
||||
description VARCHAR(64) NOT NULL,
|
||||
max_file_size SMALLINT NOT NULL,
|
||||
max_file_size INT NOT NULL,
|
||||
max_threads SMALLINT NOT NULL,
|
||||
default_style VARCHAR(45) NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
anonymous_name VARCHAR(45) NOT NULL DEFAULT 'Anonymous',
|
||||
force_anonymous BOOL NOT NULL,
|
||||
autosage_after SMALLINT NOT NULL,
|
||||
|
@ -53,13 +53,13 @@ CREATE TABLE DBPREFIXboards(
|
|||
CREATE TABLE DBPREFIXthreads(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
board_id BIGINT NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
stickied BOOL NOT NULL,
|
||||
anchored BOOL NOT NULL,
|
||||
cyclical BOOL NOT NULL,
|
||||
last_bump TIMESTAMP NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
locked BOOL NOT NULL DEFAULT FALSE,
|
||||
stickied BOOL NOT NULL DEFAULT FALSE,
|
||||
anchored BOOL NOT NULL DEFAULT FALSE,
|
||||
cyclical BOOL NOT NULL DEFAULT FALSE,
|
||||
last_bump TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
FOREIGN KEY(board_id) REFERENCES DBPREFIXboards(id)
|
||||
);
|
||||
|
||||
|
@ -68,19 +68,19 @@ CREATE INDEX thread_deleted_index ON DBPREFIXthreads(is_deleted);
|
|||
CREATE TABLE DBPREFIXposts(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
thread_id BIGINT NOT NULL,
|
||||
is_top_post BOOL NOT NULL,
|
||||
is_top_post BOOL NOT NULL DEFAULT FALSE,
|
||||
ip INT NOT NULL,
|
||||
created_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
tripcode VARCHAR(10) NOT NULL,
|
||||
name VARCHAR(50) NOT NULL DEFAULT '',
|
||||
tripcode VARCHAR(10) NOT NULL DEFAULT '',
|
||||
is_role_signature BOOL NOT NULL DEFAULT FALSE,
|
||||
email VARCHAR(50) NOT NULL,
|
||||
subject VARCHAR(100) NOT NULL,
|
||||
email VARCHAR(50) NOT NULL DEFAULT '',
|
||||
subject VARCHAR(100) NOT NULL DEFAULT '',
|
||||
message TEXT NOT NULL,
|
||||
message_raw TEXT NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
banned_message TEXT,
|
||||
FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id)
|
||||
);
|
||||
|
@ -96,6 +96,8 @@ CREATE TABLE DBPREFIXfiles(
|
|||
checksum INT NOT NULL,
|
||||
file_size INT NOT NULL,
|
||||
is_spoilered BOOL NOT NULL,
|
||||
thumbnail_width INT NOT NULL,
|
||||
thumbnail_height INT NOT NULL,
|
||||
FOREIGN KEY(post_id) REFERENCES DBPREFIXposts(id),
|
||||
UNIQUE(post_id, file_order)
|
||||
);
|
||||
|
|
|
@ -29,11 +29,11 @@ CREATE TABLE DBPREFIXboards(
|
|||
title VARCHAR(45) NOT NULL,
|
||||
subtitle VARCHAR(64) NOT NULL,
|
||||
description VARCHAR(64) NOT NULL,
|
||||
max_file_size SMALLINT NOT NULL,
|
||||
max_file_size INT NOT NULL,
|
||||
max_threads SMALLINT NOT NULL,
|
||||
default_style VARCHAR(45) NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
anonymous_name VARCHAR(45) NOT NULL DEFAULT 'Anonymous',
|
||||
force_anonymous BOOL NOT NULL,
|
||||
autosage_after SMALLINT NOT NULL,
|
||||
|
@ -53,13 +53,13 @@ CREATE TABLE DBPREFIXboards(
|
|||
CREATE TABLE DBPREFIXthreads(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
board_id INTEGER NOT NULL,
|
||||
locked BOOL NOT NULL,
|
||||
stickied BOOL NOT NULL,
|
||||
anchored BOOL NOT NULL,
|
||||
cyclical BOOL NOT NULL,
|
||||
last_bump TIMESTAMP NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
locked BOOL NOT NULL DEFAULT FALSE,
|
||||
stickied BOOL NOT NULL DEFAULT FALSE,
|
||||
anchored BOOL NOT NULL DEFAULT FALSE,
|
||||
cyclical BOOL NOT NULL DEFAULT FALSE,
|
||||
last_bump TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
FOREIGN KEY(board_id) REFERENCES DBPREFIXboards(id)
|
||||
);
|
||||
|
||||
|
@ -68,19 +68,19 @@ CREATE INDEX thread_deleted_index ON DBPREFIXthreads(is_deleted);
|
|||
CREATE TABLE DBPREFIXposts(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
thread_id INTEGER NOT NULL,
|
||||
is_top_post BOOL NOT NULL,
|
||||
is_top_post BOOL NOT NULL DEFAULT FALSE,
|
||||
ip INT NOT NULL,
|
||||
created_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
tripcode VARCHAR(10) NOT NULL,
|
||||
name VARCHAR(50) NOT NULL DEFAULT '',
|
||||
tripcode VARCHAR(10) NOT NULL DEFAULT '',
|
||||
is_role_signature BOOL NOT NULL DEFAULT FALSE,
|
||||
email VARCHAR(50) NOT NULL,
|
||||
subject VARCHAR(100) NOT NULL,
|
||||
email VARCHAR(50) NOT NULL DEFAULT '',
|
||||
subject VARCHAR(100) NOT NULL DEFAULT '',
|
||||
message TEXT NOT NULL,
|
||||
message_raw TEXT NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL,
|
||||
is_deleted BOOL NOT NULL,
|
||||
deleted_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted BOOL NOT NULL DEFAULT FALSE,
|
||||
banned_message TEXT,
|
||||
FOREIGN KEY(thread_id) REFERENCES DBPREFIXthreads(id)
|
||||
);
|
||||
|
@ -96,6 +96,8 @@ CREATE TABLE DBPREFIXfiles(
|
|||
checksum INT NOT NULL,
|
||||
file_size INT NOT NULL,
|
||||
is_spoilered BOOL NOT NULL,
|
||||
thumbnail_width INT NOT NULL,
|
||||
thumbnail_height INT NOT NULL,
|
||||
FOREIGN KEY(post_id) REFERENCES DBPREFIXposts(id),
|
||||
UNIQUE(post_id, file_order)
|
||||
);
|
||||
|
|
|
@ -73,27 +73,70 @@ func buildFrontPage() string {
|
|||
return gclog.Print(lErrorLog, "Failed opening front page for writing: ", err.Error()) + "<br />"
|
||||
}
|
||||
|
||||
// get recent posts
|
||||
recentQueryStr := "SELECT " +
|
||||
"DBPREFIXposts.id, " +
|
||||
"DBPREFIXposts.parentid, " +
|
||||
"DBPREFIXboards.dir as boardname, " +
|
||||
"DBPREFIXposts.boardid as boardid, " +
|
||||
"DBPREFIXposts.name, " +
|
||||
"DBPREFIXposts.tripcode, " +
|
||||
"DBPREFIXposts.message, " +
|
||||
"DBPREFIXposts.filename, " +
|
||||
"DBPREFIXposts.thumb_w, " +
|
||||
"DBPREFIXposts.thumb_h " +
|
||||
"FROM DBPREFIXposts, DBPREFIXboards " +
|
||||
"WHERE DBPREFIXposts.deleted_timestamp = ? "
|
||||
|
||||
//TODO: rework so it uses all features/better sql
|
||||
//get recent posts
|
||||
recentQueryStr := `
|
||||
/*
|
||||
recentposts = join all non-deleted posts with the post id of their thread and the board it belongs on, sort by date and grab top x posts
|
||||
singlefiles = the top file per post id
|
||||
|
||||
Left join singlefiles on recentposts where recentposts.selfid = singlefiles.post_id
|
||||
Coalesce filenames to "" (if filename = null -> "" else filename)
|
||||
|
||||
Query might benefit from [filter on posts with at least one file -> ] filter N most recent -> manually loop N results for file/board/parentthreadid
|
||||
*/
|
||||
|
||||
Select
|
||||
recentposts.selfid AS id,
|
||||
recentposts.toppostid AS parentid,
|
||||
recentposts.boardid,
|
||||
recentposts.boardname,
|
||||
recentposts.name,
|
||||
recentposts.tripcode,
|
||||
recentposts.message,
|
||||
COALESCE(singlefiles.filename, '') as filename,
|
||||
singlefiles.thumbnail_width as thumb_w,
|
||||
singlefiles.thumbnail_height as thumb_h
|
||||
FROM
|
||||
(SELECT
|
||||
posts.id AS selfid,
|
||||
topposts.id AS toppostid,
|
||||
boards.dir AS boardname,
|
||||
boards.id AS boardid,
|
||||
posts.name,
|
||||
posts.tripcode,
|
||||
posts.message,
|
||||
posts.email,
|
||||
posts.created_on
|
||||
FROM
|
||||
DBPREFIXposts AS posts
|
||||
JOIN DBPREFIXthreads AS threads
|
||||
ON threads.id = posts.thread_id
|
||||
JOIN DBPREFIXposts AS topposts
|
||||
ON threads.id = topposts.thread_id
|
||||
JOIN DBPREFIXboards AS boards
|
||||
ON threads.board_id = boards.id
|
||||
WHERE
|
||||
topposts.is_top_post = TRUE AND posts.is_deleted = FALSE
|
||||
|
||||
) as recentposts
|
||||
LEFT JOIN
|
||||
(SELECT files.post_id, filename, files.thumbnail_width, files.thumbnail_height
|
||||
FROM DBPREFIXfiles as files
|
||||
JOIN
|
||||
(SELECT post_id, min(file_order) as file_order
|
||||
FROM DBPREFIXfiles
|
||||
GROUP BY post_id) as topfiles
|
||||
ON files.post_id = topfiles.post_id AND files.file_order = topfiles.file_order
|
||||
) AS singlefiles
|
||||
|
||||
ON recentposts.selfid = singlefiles.post_id`
|
||||
if !config.RecentPostsWithNoFile {
|
||||
recentQueryStr += "AND DBPREFIXposts.filename != '' AND DBPREFIXposts.filename != 'deleted' "
|
||||
recentQueryStr += "WHERE singlefiles.filename IS NOT NULL"
|
||||
}
|
||||
recentQueryStr += "AND boardid = DBPREFIXboards.id ORDER BY timestamp DESC LIMIT ?"
|
||||
recentQueryStr += "ORDER BY recentposts.created_on DESC LIMIT ?"
|
||||
|
||||
rows, err := querySQL(recentQueryStr, nilTimestamp, config.MaxRecentPosts)
|
||||
rows, err := querySQL(recentQueryStr, config.MaxRecentPosts)
|
||||
defer closeHandle(rows)
|
||||
if err != nil {
|
||||
return gclog.Print(lErrorLog, err.Error())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue