Improve Testing for Insert, add a query function
This commit is contained in:
parent
73f46a59ef
commit
ce66532fcf
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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(),
|
||||
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)`
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user