Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion gittensor/validator/merge_predictions/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,21 @@ def _reject(reason: str) -> PredictionSynapse:
github_id=github_id,
issue_id=synapse.issue_id,
repository=synapse.repository,
issue_number=issue.issue_number,
pr_number=pr_number,
prediction=pred_value,
variance_at_prediction=variance,
)

# Mirror to Postgres
# Save to Postgres if enabled
if validator.db_storage:
validator.db_storage.store_prediction(
uid=uid,
hotkey=miner_hotkey,
github_id=github_id,
issue_id=synapse.issue_id,
repository=synapse.repository,
issue_number=issue.issue_number,
pr_number=pr_number,
prediction=pred_value,
variance_at_prediction=variance,
Expand Down
26 changes: 23 additions & 3 deletions gittensor/validator/merge_predictions/mp_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ def _init_db(self):
github_id TEXT NOT NULL,
issue_id INTEGER NOT NULL,
repository TEXT NOT NULL,
issue_number INTEGER NOT NULL,
pr_number INTEGER NOT NULL,
prediction REAL NOT NULL,
timestamp TEXT NOT NULL,
Expand All @@ -67,6 +68,13 @@ def _init_db(self):
settled_at TEXT NOT NULL
)
""")

# Migrations
try:
conn.execute('ALTER TABLE predictions ADD COLUMN issue_number INTEGER NOT NULL DEFAULT 0')
except sqlite3.OperationalError:
pass

conn.execute("""
CREATE INDEX IF NOT EXISTS idx_predictions_issue
ON predictions (issue_id)
Expand Down Expand Up @@ -154,6 +162,7 @@ def store_prediction(
github_id: str,
issue_id: int,
repository: str,
issue_number: int,
pr_number: int,
prediction: float,
variance_at_prediction: float,
Expand All @@ -165,14 +174,25 @@ def store_prediction(
with self._get_connection() as conn:
conn.execute(
"""
INSERT INTO predictions (uid, hotkey, github_id, issue_id, repository, pr_number, prediction, timestamp, variance_at_prediction)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
INSERT INTO predictions (uid, hotkey, github_id, issue_id, repository, issue_number, pr_number, prediction, timestamp, variance_at_prediction)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ON CONFLICT (uid, hotkey, github_id, issue_id, pr_number)
DO UPDATE SET prediction = excluded.prediction,
timestamp = excluded.timestamp,
variance_at_prediction = excluded.variance_at_prediction
""",
(uid, hotkey, github_id, issue_id, repository, pr_number, prediction, now, variance_at_prediction),
(
uid,
hotkey,
github_id,
issue_id,
repository,
issue_number,
pr_number,
prediction,
now,
variance_at_prediction,
),
)
conn.commit()

Expand Down
4 changes: 2 additions & 2 deletions gittensor/validator/storage/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,8 @@
UPSERT_PREDICTION = """
INSERT INTO predictions (
uid, hotkey, github_id, issue_id, repository,
pr_number, prediction, variance_at_prediction, timestamp
) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
issue_number, pr_number, prediction, variance_at_prediction, timestamp
) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
ON CONFLICT (uid, hotkey, github_id, issue_id, pr_number)
DO UPDATE SET
prediction = EXCLUDED.prediction,
Expand Down
2 changes: 2 additions & 0 deletions gittensor/validator/storage/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,7 @@ def store_prediction(
github_id: str,
issue_id: int,
repository: str,
issue_number: int,
pr_number: int,
prediction: float,
variance_at_prediction: float,
Expand All @@ -445,6 +446,7 @@ def store_prediction(
github_id,
issue_id,
repository,
issue_number,
pr_number,
prediction,
variance_at_prediction,
Expand Down
Loading
Loading