You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: simple_demo.go
    path of file: ./repos/occlum/demos/golang/go_sqlite
    
    the code of the file until where you have to start completion: package main

import (
        "database/sql"
        "fmt"
        _ "github.com/mattn/go-sqlite3"
        "os"
        "time"
)

type GolangDbDriver struct {
        dbName          string
        pkgLink         string
        testSuite       string
}

var DbDriverList = []GolangDbDriver {
        GolangDbDriver {
                dbName: "Apache Ignite/GridGain",
                pkgLink: "https://github.com/amsokol/ignite-go-client",
 
    
func main() {
        previousTime := time.Now()
        fmt.Printf("Starting the Golang SQLite demo: at %s\n", previousTime.Format("2006-01-02T15:04:05.999999999Z07:00"))

        dbSourceName := "golang_sql_driver.db"
        os.Remove(dbSourceName)

        dbDriverName := "sqlite3"
        db, err := sql.Open(dbDriverName, dbSourceName)
        if err != nil {
                fmt.Println("Failed to open the database:", err)
        }
        defer db.Close()

        if err = db.Ping(); err != nil {
                fmt.Println("Failed to establish a connection to the database:", err)
        }

        tx, err := db.Begin()
        if err != nil {
                fmt.Println("Failed to start a database transaction:", err)
        }

        sqlStatement := `
        create table if not exists SqlDrivers (dbName varchar(255), pkgLink varchar(255), testSuite varchar(255));
        delete from SqlDrivers;
        `
        _, err = db.Exec(sqlStatement)
        if err != nil {
                fmt.Println("Failed to create table:", sqlStatement, err)
                return
        }

        statement, err := tx.Prepare("insert into SqlDrivers(dbName, pkgLink, testSuite) values(?, ?, ?)")
        if err != nil {
                fmt.Println("Failed to prepare SQL statements:", err)
        }
        defer statement.Close()
        for _, entry := range DbDriverList {
                _, err = statement.Exec(entry.dbName, entry.pkgLink, entry.testSuite)
                if err != nil {
                        fmt.Println("Failed to prepare SQL statements:", err)
                }
        }

        tx.Commit()

        rows, err := db.Query("select dbName, pkgLink, testSuite from SqlDrivers")
        if err != nil {
                fmt.Println("Failed to query the database:", err)
        }
        defer rows.Close()
        for rows.Next() {
                var dbName sql.NullString
                var pkgLink sql.NullString
                var testSuite sql.NullString
                err = rows.Scan(&dbName, &pkgLink, &testSuite)
                if err != nil {
                        fmt.Println("Failed to Scan the query results:", err)
                }
                fmt.Printf("dbName=%v;\n  pkgLink=%v;\n  testSuite=%v\n", dbName.String, pkgLink.String, testSuite.String)
        }
        err = rows.Err()
        if err != nil {
                fmt.Println("Error was encountered during query result iteration:", err)
        }

        _, err = db.Exec("delete from SqlDrivers")
        if err != nil {
                fmt.Println("Failed to delete all records in the database:", err)
        }

        currentTime := time.Now()
        fmt.Printf("Total running time: %f Seconds\n", currentTime.Sub(previousTime).Seconds())

        os.Remove(dbSourceName)
}