Skip to content

Commit

Permalink
Added ::text
Browse files Browse the repository at this point in the history
  • Loading branch information
HaseProgram committed Jan 13, 2018
1 parent 0f8b460 commit f61d954
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 44 deletions.
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ RUN go build
ENV PGDATABASE dbproj
ENV PGUSER hasep
ENV PGPASSWORD 126126
EXPOSE 5000

RUN /etc/init.d/postgresql start && cd $WORKP/ && psql -h localhost -f db.sql
RUN /etc/init.d/postgresql stop
#RUN /etc/init.d/postgresql start && cd $WORKP/ && psql -h localhost -f db.sql
#RUN /etc/init.d/postgresql stop
EXPOSE 5000

CMD /etc/init.d/postgresql start && ./technoparkdb
12 changes: 1 addition & 11 deletions database/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,7 @@ func Connect() {
panic(err)
}


rows, qerr := DB.Query("select indexname from pg_indexes")
if qerr != nil {
panic(qerr)
}
for rows.Next() {
var idx string
err = rows.Scan(&idx)
fmt.Println(idx)
}
//err = createShema()
err = createShema()
if err != nil {
panic(err)
}
Expand Down
12 changes: 6 additions & 6 deletions db.sql
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ CREATE TABLE IF NOT EXISTS posts (
rootidx INTEGER
);

CREATE INDEX IF NOT EXISTS posts_forum_slug_index ON posts (id, forum_slug);
CREATE INDEX IF NOT EXISTS posts_forum_id_index ON posts (id, forum_id);
CREATE INDEX IF NOT EXISTS posts_parent_id_index ON posts (parent_id);
--CREATE INDEX IF NOT EXISTS posts_forum_slug_index ON posts (id, forum_slug);
--CREATE INDEX IF NOT EXISTS posts_forum_id_index ON posts (id, forum_id);
--CREATE INDEX IF NOT EXISTS posts_parent_id_index ON posts (parent_id);
CREATE INDEX IF NOT EXISTS posts_thread_id_index ON posts (thread_id);
CREATE INDEX IF NOT EXISTS posts_thread_id_id_index ON posts (thread_id, id);
CREATE INDEX IF NOT EXISTS posts_thread_id_path_index ON posts (thread_id, id DESC);
CREATE INDEX IF NOT EXISTS posts_root_index ON posts (rootidx);
CREATE INDEX IF NOT EXISTS posts_thread_id_path_index ON posts (thread_id, path_to_post);
CREATE INDEX IF NOT EXISTS posts_thread_id_path_index ON posts (thread_id, path_to_post DESC);
CREATE INDEX IF NOT EXISTS posts_thread_id_parent_id_index ON posts (thread_id, parent_id);
CREATE INDEX IF NOT EXISTS posts_thread_id_parent_id_path_index ON posts (thread_id, parent_id, path_to_post);
--CREATE INDEX IF NOT EXISTS posts_thread_id_parent_id_path_index ON posts (thread_id, parent_id, path_to_post DESC);

CREATE TABLE IF NOT EXISTS forum_users (
user_id INTEGER NOT NULL,
Expand Down
6 changes: 3 additions & 3 deletions forum/forum.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ type ForumStruct struct {
}

const insertStatement = "INSERT INTO forums (owner_id, owner_nickname, title, slug) VALUES ($1,$2,$3,$4)"
const selectStatementSlug = "SELECT slug, title FROM forums WHERE slug=$1"
const selectStatementSlugAll = "SELECT slug, title, owner_nickname, posts_count, threads_count FROM forums WHERE slug=$1"
const selectStatementSlug = "SELECT slug::text, title::text FROM forums WHERE slug=$1"
const selectStatementSlugAll = "SELECT slug::text, title::text, owner_nickname::text, posts_count, threads_count FROM forums WHERE slug=$1"

func getPost(c *routing.Context) ForumStruct {
var POST ForumStruct
Expand Down Expand Up @@ -114,7 +114,7 @@ func GetUsers(c *routing.Context) (string, int) {
forumId, forumSlug := thread.GetForumSlugId(forumSlug)
if forumId >= 0 {
//selectStatement := "SELECT about, email, fullname, nickname FROM users u JOIN forum_users fu ON (u.id = fu.user_id) WHERE fu.forum_id=$1"
selectStatement := "SELECT about, email, fullname, nickname FROM users u WHERE u.id IN (SELECT user_id FROM forum_users WHERE forum_id=$1)"
selectStatement := "SELECT about::text, email::text, fullname::text, nickname::text FROM users u WHERE u.id IN (SELECT user_id FROM forum_users WHERE forum_id=$1)"

desc := c.Query("desc")
since := c.Query("since")
Expand Down
18 changes: 9 additions & 9 deletions post/post.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func Create(c *routing.Context) (string, int) {
threadSlugId := c.Param("slugid")
_, err := strconv.Atoi(threadSlugId)

selectThreadStatement := "SELECT id, forum_id, forum_slug, slug from threads WHERE"
selectThreadStatement := "SELECT id, forum_id, forum_slug::text, slug::text from threads WHERE"
if err == nil {
selectThreadStatement += " id=" + threadSlugId
} else {
Expand All @@ -103,7 +103,7 @@ func Create(c *routing.Context) (string, int) {
}

var CheckPostArr []CheckPost
transaction.Prepare("select_user", "SELECT id, nickname FROM users WHERE nickname=$1")
transaction.Prepare("select_user", "SELECT id, nickname::text FROM users WHERE nickname=$1")
transaction.Prepare("get_parent","SELECT thread_id FROM posts WHERE id=$1")

//batch := db.BeginBatch()
Expand Down Expand Up @@ -182,7 +182,7 @@ func Update(c *routing.Context) (string, int) {
var res PostStruct
var statement string
var err error
statement = "SELECT message, author_name, created, forum_slug, id, thread_id FROM posts WHERE id=$1"
statement = "SELECT message::text, author_name::text, created, forum_slug::text, id, thread_id FROM posts WHERE id=$1"
row := db.QueryRow(statement, postID)
err = row.Scan(&res.Message, &res.AuthorName, &res.Created, &res.ForumSlug, &res.Id, &res.ThreadId)
switch err {
Expand Down Expand Up @@ -243,7 +243,7 @@ func Details(c *routing.Context) (string, int) {
Thread *ThreadStruct `json:"thread,omitempty"`
}

selectStatement := `SELECT author_id, author_name, created, forum_slug, thread_id, is_edited, message, id, parent_id FROM posts WHERE id=$1`
selectStatement := `SELECT author_id, author_name::text, created, forum_slug::text, thread_id, is_edited, message::text, id, parent_id FROM posts WHERE id=$1`
row := db.QueryRow(selectStatement, postID)
err := row.Scan(&result.Post.AuthorId, &result.Post.AuthorName, &result.Post.Created, &result.Post.ForumSlug, &result.Post.ThreadId, &result.Post.Edited, &result.Post.Message, &result.Post.Id, &result.Post.ParentId)

Expand All @@ -257,7 +257,7 @@ func Details(c *routing.Context) (string, int) {
return string(content), 404
case nil:
if _, ok := related["user"]; ok {
selectStatement = `SELECT about, email, fullname, nickname FROM users WHERE id=$1`
selectStatement = `SELECT about::text, email::text, fullname::text, nickname::text FROM users WHERE id=$1`
row := db.QueryRow(selectStatement, result.Post.AuthorId)
var tAuthor user.UserStruct
err := row.Scan(&tAuthor.About, &tAuthor.Email, &tAuthor.Fullname, &tAuthor.Nickname)
Expand All @@ -276,7 +276,7 @@ func Details(c *routing.Context) (string, int) {
}
}
if _, ok := related["forum"]; ok {
selectStatement = `SELECT owner_nickname, title, slug, posts_count, threads_count FROM forums WHERE slug=$1`
selectStatement = `SELECT owner_nickname::text, title::text, slug::text, posts_count, threads_count FROM forums WHERE slug=$1`
row := db.QueryRow(selectStatement, result.Post.ForumSlug)
var tForum ForumStruct
err := row.Scan(&tForum.User, &tForum.Title, &tForum.Slug, &tForum.Posts, &tForum.Threads)
Expand All @@ -295,7 +295,7 @@ func Details(c *routing.Context) (string, int) {
}
}
if _, ok := related["thread"]; ok {
selectStatement = `SELECT author_name, forum_slug, title, created, message, id, slug, votes FROM threads WHERE id=$1`
selectStatement = `SELECT author_name::text, forum_slug::text, title::text, created, message::text, id, slug::text, votes FROM threads WHERE id=$1`
row := db.QueryRow(selectStatement, result.Post.ThreadId)
var tThread ThreadStruct
err := row.Scan(&tThread.Author, &tThread.ForumSlug, &tThread.Title, &tThread.Created, &tThread.Message, &tThread.Id, &tThread.Slug, &tThread.Votes)
Expand Down Expand Up @@ -325,7 +325,7 @@ func GetPosts(c *routing.Context) (string, int) {
threadSlugId := c.Param("slugid")
_, err := strconv.Atoi(threadSlugId)

selectThreadStatement := "SELECT id, slug FROM threads WHERE"
selectThreadStatement := "SELECT id, slug::text FROM threads WHERE"
if err == nil {
selectThreadStatement += " id=" + threadSlugId
} else {
Expand All @@ -349,7 +349,7 @@ func GetPosts(c *routing.Context) (string, int) {
sort := c.Query("sort")
desc := c.Query("desc")

selectStatement := "SELECT created, id, is_edited, message, parent_id, author_id, thread_id, forum_slug, forum_id, author_name FROM posts WHERE"
selectStatement := "SELECT created, id, is_edited, message::text, parent_id, author_id, thread_id, forum_slug::text, forum_id, author_name::text FROM posts WHERE"

switch sort {
case "tree":
Expand Down
14 changes: 7 additions & 7 deletions thread/thread.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ type VoteStruct struct {
}

const insertStatement = "INSERT INTO threads (author_id, author_name, forum_id, forum_slug, title, created, message, slug) VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING id"
const selectStatementSlug = "SELECT id, slug, created, message, title, author_name, forum_slug, votes FROM threads WHERE slug=$1"
const selectStatementID = "SELECT id, slug, created, message, title, author_name, forum_slug, votes FROM threads WHERE id=$1"
const selectStatementForumSlugId = "SELECT id, slug FROM forums WHERE slug=$1"
const selectStatementSlug = "SELECT id, slug::text, created, message::text, title::text, author_name::text, forum_slug::text, votes FROM threads WHERE slug=$1"
const selectStatementID = "SELECT id, slug::text, created, message::text, title::text, author_name::text, forum_slug::text, votes FROM threads WHERE id=$1"
const selectStatementForumSlugId = "SELECT id, slug::text FROM forums WHERE slug=$1"

func getPost(c *routing.Context) ThreadStruct {
var POST ThreadStruct
Expand All @@ -52,7 +52,7 @@ func getVotePost(c *routing.Context) VoteStruct {

func GetForumSlugId(slug string) (int, string){
db := database.DB
row := db.QueryRow("SELECT id, slug FROM forums WHERE slug=$1", slug)
row := db.QueryRow("SELECT id, slug::text FROM forums WHERE slug=$1", slug)
var id int
err := row.Scan(&id, &slug)
switch err {
Expand All @@ -67,7 +67,7 @@ func GetForumSlugId(slug string) (int, string){

func getForumAuthorsInfo(author, slug string) (int, string, int, string){
db := database.DB
selectStatement :="SELECT forum.*, author.* FROM (SELECT id, slug FROM forums WHERE slug=$1) as forum, (SELECT id, nickname FROM users WHERE nickname=$2) as author"
selectStatement :="SELECT forum.*, author.* FROM (SELECT id, slug::text FROM forums WHERE slug=$1) as forum, (SELECT id, nickname::text FROM users WHERE nickname=$2) as author"
row := db.QueryRow(selectStatement, slug, author)
var forumID int
var authorID int
Expand Down Expand Up @@ -206,7 +206,7 @@ func Update(c *routing.Context) (string, int) {
orstate = " slug='" + slug + "'"
}
if UPD {
updateStatement += "' WHERE" + orstate + " RETURNING author_name, created, forum_slug, id, message, title, slug"
updateStatement += "' WHERE" + orstate + " RETURNING author_name::text, created, forum_slug::text, id, message::text, title::text, slug::text"
var resOk ThreadStruct
err := db.QueryRow(updateStatement).Scan(&resOk.Author, &resOk.Created, &resOk.ForumSlug, &resOk.Id, &resOk.Message, &resOk.Title, &resOk.Slug)
switch err {
Expand Down Expand Up @@ -249,7 +249,7 @@ func GetThreads(c *routing.Context) (string, int) {
forumSlug := c.Param("slug")
forumId, forumSlug := GetForumSlugId(forumSlug)
if forumId >= 0 {
selectStatementThreads := "SELECT id, author_name, title, created, message, votes, slug FROM threads WHERE forum_slug='" + forumSlug + "'"
selectStatementThreads := "SELECT id, author_name::text, title::text, created, message::text, votes, slug::text FROM threads WHERE forum_slug='" + forumSlug + "'"

desc := c.Query("desc")
since := c.Query("since")
Expand Down
10 changes: 5 additions & 5 deletions user/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ type UserStruct struct {
}

const insertStatement = "INSERT INTO users (about, email, fullname, nickname) VALUES ($1,$2,$3,$4)"
const selectStatement = "SELECT about, email, fullname, nickname FROM users WHERE email=$1 OR nickname=$2"
const selectStatementNickname = "SELECT about, email, fullname, nickname FROM users WHERE nickname=$1"
const selectStatementNicknameId = "SELECT id, nickname FROM users WHERE nickname=$1"
const selectStatement = "SELECT about::text, email::text, fullname::text, nickname::text FROM users WHERE email=$1 OR nickname=$2"
const selectStatementNickname = "SELECT about::text, email::text, fullname::text, nickname::text FROM users WHERE nickname=$1"
const selectStatementNicknameId = "SELECT id, nickname::text FROM users WHERE nickname=$1"

func getPost(c *routing.Context) UserStruct {
var POST UserStruct
Expand Down Expand Up @@ -57,7 +57,7 @@ func Create(c *routing.Context) (string, int) {
row := db.QueryRow(insertStatement, about, email, fullname, nickname)
err := row.Scan()
if err != nil && err != pgx.ErrNoRows {
rows, selerr := db.Query("SELECT about, email, fullname, nickname FROM users WHERE email='" + email + "' OR nickname='" + nickname + "'")
rows, selerr := db.Query("SELECT about::text, email::text, fullname::text, nickname::text FROM users WHERE email='" + email + "' OR nickname='" + nickname + "'")
common.Check(selerr)

var res []UserStruct
Expand Down Expand Up @@ -141,7 +141,7 @@ func Update(c *routing.Context) (string, int) {
nickname := c.Param("nickname")

if UPD {
updateStatement += "' WHERE nickname='" + nickname + "' RETURNING about, email, fullname, nickname"
updateStatement += "' WHERE nickname='" + nickname + "' RETURNING about::text, email::text, fullname::text, nickname::text"
var resOk UserStruct
err := db.QueryRow(updateStatement).Scan(&resOk.About, &resOk.Email, &resOk.Fullname, &resOk.Nickname)
switch err {
Expand Down

0 comments on commit f61d954

Please sign in to comment.