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: pk_only_tables.rs
    path of file: ./repos/libsql/libsql-sqlite3/ext/crr/rs/integration_check/src/t
    
    the code of the file until where you have to start completion: extern crate crsql_bundle;
use sqlite::ColumnType;
use sqlite::Destructor;
use sqlite::ManagedConnection;
use sqlite::{Connection, ResultCode};
use sqlite_nostd as sqlite;

fn sync_left_to_right(l: &dyn Connection, r: &dyn Connection, since: sqlite::int64) {
    let siteid_stmt = r.prepare_v2("SELECT crsql_site_id()").expect("prepared");
    siteid_stmt.step().expect("stepped");
    let siteid = siteid_stmt.column_blob(0).expect("got site id");

    let stmt_l = l
        .prepare_v2("SELECT * FROM crsql_changes WHERE db_version > ? AND site_id IS NOT ?")
        .expect("prepared select changes");
    stmt_l.bind_int64(1, since).expect("bound db versi
    
fn insert_pkonly_row() {
    let db_a = crate::opendb().expect("open db a");
    let db_b = crate::opendb().expect("open db b");

    fn setup_schema(db: &ManagedConnection) {
        db.exec_safe("CREATE TABLE foo (id INTEGER PRIMARY KEY NOT NULL);")
            .expect("created foo");
        db.exec_safe("SELECT crsql_as_crr('foo');")
            .expect("upgraded to crr");
    }

    setup_schema(&db_a.db);
    setup_schema(&db_b.db);

    let stmt = db_a
        .db
        .prepare_v2("INSERT INTO foo (id) VALUES (?);")
        .expect("prepared insert to foo");
    stmt.bind_int(1, 1).expect("bound values");
    stmt.step().expect("inserted");

    let stmt = db_a
        .db
        .prepare_v2("SELECT * FROM crsql_changes;")
        .expect("prepared select changes");
    let result = stmt.step().expect("stepped");
    assert_eq!(result, ResultCode::ROW);

    sync_left_to_right(&db_a.db, &db_b.db, -1);

    let stmt = db_b
        .db
        .prepare_v2("SELECT * FROM foo;")
        .expect("prepared select foo");
    let result = stmt.step().expect("stepped");
    assert_eq!(result, ResultCode::ROW);
    let id = stmt.column_int(0);
    assert_eq!(id, 1);
    let result = stmt.step().expect("stepped");
    assert_eq!(result, ResultCode::DONE);
}