Skip to content

Commit

Permalink
Improve Testing for Insert, add a query function
Browse files Browse the repository at this point in the history
  • Loading branch information
Abdul Rabbani committed Mar 22, 2022
1 parent 73f46a5 commit ce66532
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 9 deletions.
4 changes: 4 additions & 0 deletions statediff/indexer/database/dump/indexer.go
Original file line number Diff line number Diff line change
Expand Up @@ -500,3 +500,7 @@ func (sdi *StateDiffIndexer) Close() error {
func (sdi *StateDiffIndexer) PushKnownGaps(startingBlockNumber *big.Int, endingBlockNumber *big.Int, checkedOut bool, processingKey int64) error {
return nil
}

func (sdi *StateDiffIndexer) QueryDb(queryString string) (string, error) {
return "", nil
}
4 changes: 4 additions & 0 deletions statediff/indexer/database/file/indexer.go
Original file line number Diff line number Diff line change
Expand Up @@ -482,3 +482,7 @@ func (sdi *StateDiffIndexer) Close() error {
func (sdi *StateDiffIndexer) PushKnownGaps(startingBlockNumber *big.Int, endingBlockNumber *big.Int, checkedOut bool, processingKey int64) error {
return nil
}

func (sdi *StateDiffIndexer) QueryDb(queryString string) (string, error) {
return "", nil
}
15 changes: 14 additions & 1 deletion statediff/indexer/database/sql/indexer.go
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ func (sdi *StateDiffIndexer) Close() error {
return sdi.dbWriter.Close()
}

// CLEAN UP!!
// Update the known gaps table with the gap information.
func (sdi *StateDiffIndexer) PushKnownGaps(startingBlockNumber *big.Int, endingBlockNumber *big.Int, checkedOut bool, processingKey int64) error {
knownGap := models.KnownGapsModel{
StartingBlockNumber: startingBlockNumber.String(),
Expand All @@ -567,3 +567,16 @@ func (sdi *StateDiffIndexer) PushKnownGaps(startingBlockNumber *big.Int, endingB
}
return nil
}

// This is a simple wrapper function which will run QueryRow on the DB
func (sdi *StateDiffIndexer) QueryDb(queryString string) (string, error) {
var name string
err := sdi.dbWriter.db.QueryRow(context.Background(), queryString).Scan(&name)
// err := sdi.dbWriter.db.QueryRow(context.Background(), "SELECT ename FROM emp ORDER BY sal DESC LIMIT 1;").Scan(&name)
if err != nil {
return "", err
}
fmt.Println(name)

return name, nil
}
20 changes: 13 additions & 7 deletions statediff/indexer/database/sql/mainnet_tests/indexer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,22 +118,28 @@ func tearDown(t *testing.T) {
}

func TestKnownGapsUpsert(t *testing.T) {
var blockNumber int64 = 111
startBlock := big.NewInt(blockNumber)
endBlock := big.NewInt(blockNumber + 10)

var startBlockNumber int64 = 111
var endBlockNumber int64 = 121
ind, err := setupDb(t)
if err != nil {
t.Fatal(err)
}
require.NoError(t, err)

testKnownGapsUpsert(t, startBlockNumber, endBlockNumber, ind)
//str, err := ind.QueryDb("SELECT MAX(block_number) FROM eth.header_cids") // Figure out the string.
queryString := fmt.Sprintf("SELECT starting_block_number from eth.known_gaps WHERE starting_block_number = %d AND ending_block_number = %d", startBlockNumber, endBlockNumber)
_, queryErr := ind.QueryDb(queryString) // Figure out the string.
require.NoError(t, queryErr)

}
func testKnownGapsUpsert(t *testing.T, startBlockNumber int64, endBlockNumber int64, ind interfaces.StateDiffIndexer) {
startBlock := big.NewInt(startBlockNumber)
endBlock := big.NewInt(endBlockNumber)

processGapError := ind.PushKnownGaps(startBlock, endBlock, false, 1)
if processGapError != nil {
t.Fatal(processGapError)
}

// Read data from the database!
// And compare
require.NoError(t, processGapError)
}
3 changes: 2 additions & 1 deletion statediff/indexer/database/sql/postgres/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ func (db *DB) InsertIPLDsStm() string {
return `INSERT INTO public.blocks (key, data) VALUES (unnest($1::TEXT[]), unnest($2::BYTEA[])) ON CONFLICT (key) DO NOTHING`
}

// InsertKnownGapsStm satisfies the sql.Statements interface
func (db *DB) InsertKnownGapsStm() string {
return `INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES ($1, $2, $3, $4)`
return `INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES ($1, $2, $3, $4) ON CONFLICT (starting_block_number) DO NOTHING`
//return `INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES (1, 2, true, 1)`
}
2 changes: 2 additions & 0 deletions statediff/indexer/database/sql/writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,8 @@ func (w *Writer) upsertStorageCID(tx Tx, storageCID models.StorageNodeModel) err
return nil
}

// Upserts known gaps to the DB.
// INSERT INTO eth.known_gaps (starting_block_number, ending_block_number, checked_out, processing_key) VALUES ($1, $2, $3, $4)
func (w *Writer) upsertKnownGaps(knownGaps models.KnownGapsModel) error {
_, err := w.db.Exec(context.Background(), w.db.InsertKnownGapsStm(),
knownGaps.StartingBlockNumber, knownGaps.EndingBlockNumber, knownGaps.CheckedOut, knownGaps.ProcessingKey)
Expand Down
1 change: 1 addition & 0 deletions statediff/indexer/interfaces/interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ type StateDiffIndexer interface {
PushCodeAndCodeHash(tx Batch, codeAndCodeHash sdtypes.CodeAndCodeHash) error
ReportDBMetrics(delay time.Duration, quit <-chan bool)
PushKnownGaps(startingBlockNumber *big.Int, endingBlockNumber *big.Int, checkedOut bool, processingKey int64) error
QueryDb(queryString string) (string, error)
io.Closer
}

Expand Down

0 comments on commit ce66532

Please # to comment.