Commit e13637d7 authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Specify UTC timezone in all statements that use the '1970-01-01 00:00:00' constant.

parent e94f916e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr
- Improved parsing of client IP and port for incoming requests and socket connections.
- WebSocket sessions no longer log the client IP and port number in error messages.
- Made Go and Lua runtime startup log messages consistent.
- All schema and query statements that use the '1970-01-01 00:00:00' constant now specify UTC timezone.

### Fixed
- CRON expressions for leaderboard and tournament resets now allow concurrent processing.
+2 −2
Original line number Diff line number Diff line
@@ -7,6 +7,6 @@ import "github.com/gobuffalo/packr"
// You can use the "packr clean" command to clean up this,
// and any other packr generated files.
func init() {
	packr.PackJSONBytes("./sql", "20180103142001_initial_schema.sql", "\"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\"")
	packr.PackJSONBytes("./sql", "20180805174141-tournaments.sql", "\"H4sIAAAAAAAA/7RVzW7bOBfd6ykuvGncz38JUHwzNaaAYisTobJUWHLazsagqRuLE4lUSaq25+kHlG39pJGbLkbwhtY5h+fee0iN31rwFmYiP0i2TTTcTK5/gyhB8MkTyQjYhU6EVBaUOI9R5ApjKHiMEnSCYOeEJnh+M4AHlIoJDjejCVwZQO/0qtefGomDKCAjB+BCQ6EQdMIUPLIUAfcUcw2MAxVZnjLCKcKO6aTc56QyMhpfTxpiownjQICK/ADisQkEok+mE63z9+PxbrcbkdLsSMjtOD3C1NhzZ44fOsOb0eREWPEUlQKJ3womMYbNAUiep4ySTYqQkh0ICWQrEWPQwhjeSaYZ3w5AiUe9IxKNTMyUlmxT6Fa/zvaYagEEB8KhZ4fghj24tUM3HBiRz250H6wi+Gwvl7YfuU4IwRJmgT93IzfwQwjuwPa/wkfXnw8AmU5QAu5zaSoQEpjpJMZl20LEloVHcbSkcqTskVFICd8WZIuwFd9Rcsa3kKPMmDITVUB4bGRSljFNdPnXD3WZjcaWNRyCH0TOe4jMeDO2lSUBMsILkqYHM+KMaWWapzAnkmgELQlXhB6VtQDkqpBotEqXNMGMQJHHRKMCIhEUfiuQUzMipMSkiQr6JAWhSbyBWKAqY6aKPBdSGyESx6aq2b0z+whUcKUlYVwr+M4I9GwvcpYQ2beeA6PRCOz5HGaBt1r4PVCaaMyQazUqy/vfsSiEVW42qa1bt86frj+1mmIpkhjlRhAZW9CQBUo0boU8QPmEC9vzXD8qF3Pnzl55EUxMJ8Ffed6gzY1RUcnysq8AD/Zydm8vr27evetX3DdvOsnFaSLlc96za2MYDo+TooLHatSWQh6vNcvwyI7chRNG9uJT9Fct9eb69/9PhpPr4eQaJpP35a/T2t+C8XV1+G6DwHNsv23tzvZCp4ufkf1asX/wQmnXk9NzSYMX2VpRIfGiRrtJGdkDSVOxwxiOXKI1Zrl+3jTNdIqV5i8Or67uNcN7xtVE6mpeL06Li91Vv+JPra4oryVS8TzRP3auq2FTaxYsFm40tV57ZPwwWtpGkiZIn9bV4Tke56tq/eEPmPQHXbQq+idatb5Mq2J1olXrDz9j1e1oUOs/z/wH23PnduR0F3oZda7jMups++eoyuHUsmZLx+Bcf+58AfeunKHzxQ2jsLpJ1nWy1ucroXK+ZvEeAr851brxg0YoB/V1MnfC2aC6IfuXXYgdR7lm8Rr3OZOH4+7NrLL4BQ+nBMPVmT6ABn8AbYH+64/Cf5GCZzOpDk/zYzQXO97y6N6dO9Q+UPNl8Ol8ZGtMM2gvIxofnQugRhJfRpyH3I1ofQW6Yc04dyOqtnXDygu5+/XlPer8Ti2rhFQZ/bV8PkvYi9Ors/aKgqfWvwEAAP//bZ8RWeILAAA=\"")
	packr.PackJSONBytes("./sql", "20180103142001_initial_schema.sql", "\"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\"")
	packr.PackJSONBytes("./sql", "20180805174141-tournaments.sql", "\"H4sIAAAAAAAA/7RVzW7bOBfd6ykuvGncz38JUHwzNaaAYisTobJUWHLazsagqRuLE4lUSaq25+kHlG39pJGbLkbwhtY5h+fee0iN31rwFmYiP0i2TTTcTK5/gyhB8MkTyQjYhU6EVBaUOI9R5ApjKHiMEnSCYOeEJnh+M4AHlIoJDjejCVwZQO/0qtefGomDKCAjB+BCQ6EQdMIUPLIUAfcUcw2MAxVZnjLCKcKO6aTc56QyMhpfTxpiownjQICK/ADisQkEok+mE63z9+PxbrcbkdLsSMjtOD3C1NhzZ44fOsOb0eREWPEUlQKJ3womMYbNAUiep4ySTYqQkh0ICWQrEWPQwhjeSaYZ3w5AiUe9IxKNTMyUlmxT6Fa/zvaYagEEB8KhZ4fghj24tUM3HBiRz250H6wi+Gwvl7YfuU4IwRJmgT93IzfwQwjuwPa/wkfXnw8AmU5QAu5zaSoQEpjpJMZl20LEloVHcbSkcqTskVFICd8WZIuwFd9Rcsa3kKPMmDITVUB4bGRSljFNdPnXD3WZjcaWNRyCH0TOe4jMeDO2lSUBMsILkqYHM+KMaWWapzAnkmgELQlXhB6VtQDkqpBotEqXNMGMQJHHRKMCIhEUfiuQUzMipMSkiQr6JAWhSbyBWKAqY6aKPBdSGyESx6aq2b0z+whUcKUlYVwr+M4I9GwvcpYQ2beeA6PRCOz5HGaBt1r4PVCaaMyQazUqy/vfsSiEVW42qa1bt86frj+1mmIpkhjlRhAZW9CQBUo0boU8QPmEC9vzXD8qF3Pnzl55EUxMJ8Ffed6gzY1RUcnysq8AD/Zydm8vr27evetX3DdvOsnFaSLlc96za2MYDo+TooLHatSWQh6vNcvwyI7chRNG9uJT9Fct9eb69/9PhpPr4eQaJpP35Q9W0azT3t+C8XV1AG+DwHNsv23vzvZCp4ufkf1asX/wQnnXk9NzSYMX2VpRIfGiRrtRGdkDSVOxwxiOXKI1Zrl+3jjNdIqV5i8OsK7uNQN8xtVE6mpmL06Mi91Vv+JPra44ryVS8TzVP3auq2FTaxYsFm40tV57bPwwWtpGkiZIn9bVAToe6atq/eEPmPQHXbQq/idatb5Mq2J1olXrDz9j1e1oUOs/z/wH23PnduR0F3oZda7jMups++eoyuHUsmZLx+Bcf+58AfeunKHzxQ2jsLpN1nWy1udroXK+ZvEeAr851brxg0YoB/WVMnfC2aC6JfuXXYgdR7lm8Rr3OZOH4+7NrLL4BQ+nBMPVmT6ABn8AbYH+64/Cf5GCZzOpDk/zgzQXO97y6N6dO9Q+UPNl8Ol8ZGtMM2gvIxofngugRhJfRpyH3I1ofQW6Yc04dyOqtnXDygu5+/XlPer8Ti2rhFQZ/bV8PkvYi9Ors/aKgqfWvwEAAP//B0qo3OYLAAA=\"")
}
+4 −4
Original line number Diff line number Diff line
@@ -38,8 +38,8 @@ CREATE TABLE IF NOT EXISTS users (
    edge_count    INT           DEFAULT 0 CHECK (edge_count >= 0) NOT NULL,
    create_time   TIMESTAMPTZ   DEFAULT now() NOT NULL,
    update_time   TIMESTAMPTZ   DEFAULT now() NOT NULL,
    verify_time   TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00' NOT NULL,
    disable_time  TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00' NOT NULL
    verify_time   TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00 UTC' NOT NULL,
    disable_time  TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00 UTC' NOT NULL
);

-- Setup System user.
@@ -148,7 +148,7 @@ CREATE TABLE IF NOT EXISTS leaderboard_record (
  metadata       JSONB         DEFAULT '{}' NOT NULL,
  create_time    TIMESTAMPTZ   DEFAULT now() NOT NULL,
  update_time    TIMESTAMPTZ   DEFAULT now() NOT NULL,
  expiry_time    TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00' NOT NULL,
  expiry_time    TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00 UTC' NOT NULL,

  UNIQUE (owner_id, leaderboard_id, expiry_time)
);
@@ -188,7 +188,7 @@ CREATE TABLE IF NOT EXISTS groups (
  max_count    INT           DEFAULT 100 CHECK (max_count >= 1) NOT NULL,
  create_time  TIMESTAMPTZ   DEFAULT now() NOT NULL,
  update_time  TIMESTAMPTZ   DEFAULT now() NOT NULL,
  disable_time TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00' NOT NULL
  disable_time TIMESTAMPTZ   DEFAULT '1970-01-01 00:00:00 UTC' NOT NULL
);
CREATE INDEX IF NOT EXISTS edge_count_update_time_id_idx ON groups (disable_time, edge_count, update_time, id);
CREATE INDEX IF NOT EXISTS update_time_edge_count_id_idx ON groups (disable_time, update_time, edge_count, id);
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ ALTER TABLE leaderboard
  ADD COLUMN category      SMALLINT     DEFAULT 0 NOT NULL,
  ADD COLUMN description   VARCHAR(255) DEFAULT '' NOT NULL,
  ADD COLUMN duration      INT          DEFAULT 0 NOT NULL, -- in seconds.
  ADD COLUMN end_time      TIMESTAMPTZ  DEFAULT '1970-01-01 00:00:00' NOT NULL,
  ADD COLUMN end_time      TIMESTAMPTZ  DEFAULT '1970-01-01 00:00:00 UTC' NOT NULL,
  ADD COLUMN join_required BOOLEAN      DEFAULT FALSE NOT NULL,
  ADD COLUMN max_size      INT          DEFAULT 100000000 NOT NULL,
  ADD COLUMN max_num_score INT          DEFAULT 1000000 NOT NULL, -- max allowed score attempts.
+14 −14
Original line number Diff line number Diff line
@@ -217,7 +217,7 @@ func UpdateGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, groupID uu
		return ErrGroupNoUpdateOps
	}

	query := "UPDATE groups SET update_time = now(), " + strings.Join(statements, ", ") + " WHERE (id = $1) AND (disable_time = '1970-01-01 00:00:00')"
	query := "UPDATE groups SET update_time = now(), " + strings.Join(statements, ", ") + " WHERE (id = $1) AND (disable_time = '1970-01-01 00:00:00 UTC')"
	res, err := db.ExecContext(ctx, query, params...)
	if err != nil {
		if e, ok := err.(*pq.Error); ok && e.Code == dbErrorUniqueViolation {
@@ -274,7 +274,7 @@ func JoinGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, router Messa
	query := `
SELECT id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time
FROM groups 
WHERE (id = $1) AND (disable_time = '1970-01-01 00:00:00')`
WHERE (id = $1) AND (disable_time = '1970-01-01 00:00:00 UTC')`
	rows, err := db.QueryContext(ctx, query, groupID)
	if err != nil {
		logger.Error("Could not look up group while trying to join it.", zap.Error(err))
@@ -440,7 +440,7 @@ func LeaveGroup(ctx context.Context, logger *zap.Logger, db *sql.DB, groupID uui

		// check to ensure we are not decrementing the count when the relationship was an invite.
		if myState.Int64 < 3 {
			query = "UPDATE groups SET edge_count = edge_count - 1, update_time = now() WHERE (id = $1::UUID) AND (disable_time = '1970-01-01 00:00:00')"
			query = "UPDATE groups SET edge_count = edge_count - 1, update_time = now() WHERE (id = $1::UUID) AND (disable_time = '1970-01-01 00:00:00 UTC')"
			res, err := tx.ExecContext(ctx, query, groupID)
			if err != nil {
				logger.Debug("Could not update group edge_count.", zap.String("group_id", groupID.String()), zap.String("user_id", userID.String()))
@@ -488,7 +488,7 @@ func AddGroupUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, router M
	}

	var groupName sql.NullString
	query := "SELECT name FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00'"
	query := "SELECT name FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00 UTC'"
	if err := db.QueryRowContext(ctx, query, groupID).Scan(&groupName); err != nil {
		if err == sql.ErrNoRows {
			logger.Info("Cannot add users to disabled group.", zap.String("group_id", groupID.String()))
@@ -636,7 +636,7 @@ WHERE
		(source_id = $2::UUID AND destination_id = $1::UUID)
	)
AND
	EXISTS (SELECT id FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00')
	EXISTS (SELECT id FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00 UTC')
AND
	NOT (
		(EXISTS (SELECT 1 FROM group_edge WHERE source_id = $1::UUID AND destination_id = $2::UUID AND state = 0))
@@ -655,7 +655,7 @@ WHERE
		(source_id = $2::UUID AND destination_id = $1::UUID AND state > 1)
	)
AND
	EXISTS (SELECT id FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00')
	EXISTS (SELECT id FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00 UTC')
RETURNING state`
			}

@@ -712,7 +712,7 @@ func PromoteGroupUsers(ctx context.Context, logger *zap.Logger, db *sql.DB, call
	}

	var groupExists sql.NullBool
	query := "SELECT EXISTS (SELECT id FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00')"
	query := "SELECT EXISTS (SELECT id FROM groups WHERE id = $1 AND disable_time = '1970-01-01 00:00:00 UTC')"
	err := db.QueryRowContext(ctx, query, groupID).Scan(&groupExists)
	if err != nil {
		logger.Error("Could not look up group when promoting users.", zap.Error(err), zap.String("group_id", groupID.String()))
@@ -785,7 +785,7 @@ SELECT u.id, u.username, u.display_name, u.avatar_url,
	u.facebook_id, u.google_id, u.gamecenter_id, u.steam_id, u.edge_count,
	u.create_time, u.update_time, ge.state
FROM users u, group_edge ge
WHERE u.id = ge.source_id AND ge.destination_id = $1 AND u.disable_time = '1970-01-01 00:00:00'`
WHERE u.id = ge.source_id AND ge.destination_id = $1 AND u.disable_time = '1970-01-01 00:00:00 UTC'`

	rows, err := db.QueryContext(ctx, query, groupID)
	if err != nil {
@@ -866,7 +866,7 @@ lang_tag, metadata, groups.state, edge_count, max_count,
create_time, groups.update_time, group_edge.state
FROM groups 
JOIN group_edge ON (group_edge.source_id = id)
WHERE group_edge.destination_id = $1 AND disable_time = '1970-01-01 00:00:00'`
WHERE group_edge.destination_id = $1 AND disable_time = '1970-01-01 00:00:00 UTC'`

	rows, err := db.QueryContext(ctx, query, userID)
	if err != nil {
@@ -951,7 +951,7 @@ func GetGroups(ctx context.Context, logger *zap.Logger, db *sql.DB, ids []string

	query := `SELECT id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time
FROM groups
WHERE disable_time = '1970-01-01 00:00:00'
WHERE disable_time = '1970-01-01 00:00:00 UTC'
AND id IN (` + strings.Join(statements, ",") + `)`
	rows, err := db.QueryContext(ctx, query, params...)
	if err != nil {
@@ -996,7 +996,7 @@ func ListGroups(ctx context.Context, logger *zap.Logger, db *sql.DB, name string
		query = `
SELECT id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time
FROM groups
WHERE disable_time = '1970-01-01 00:00:00'
WHERE disable_time = '1970-01-01 00:00:00 UTC'
LIMIT $1`
		if cursor != nil {
			params = append(params, cursor.Lang, cursor.EdgeCount, cursor.ID)
@@ -1004,7 +1004,7 @@ LIMIT $1`
SELECT id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time
FROM groups
WHERE
	(disable_time = '1970-01-01 00:00:00')
	(disable_time = '1970-01-01 00:00:00 UTC')
AND
	((lang_tag, edge_count, id) > ($2, $3, $4))
LIMIT $1`
@@ -1015,7 +1015,7 @@ LIMIT $1`
SELECT id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time
FROM groups
WHERE
	(disable_time = '1970-01-01 00:00:00')
	(disable_time = '1970-01-01 00:00:00 UTC')
AND
	(name LIKE $2)
LIMIT $1`
@@ -1025,7 +1025,7 @@ LIMIT $1`
SELECT id, creator_id, name, description, avatar_url, state, edge_count, lang_tag, max_count, metadata, create_time, update_time
FROM groups
WHERE
	(disable_time = '1970-01-01 00:00:00')
	(disable_time = '1970-01-01 00:00:00 UTC')
AND
	(name LIKE $2)
AND
Loading