update sql/schema_table tests

This commit is contained in:
Andy Arthur
2022-09-28 16:17:19 -07:00
parent 0f750b4aa1
commit 919f3dfbb6
2 changed files with 37 additions and 39 deletions

View File

@@ -701,6 +701,23 @@ var DoltScripts = []queries.ScriptTest{
},
},
},
{
Name: "dolt_schemas schema",
SetUpScript: []string{
"CREATE TABLE viewtest(v1 int, v2 int)",
"CREATE VIEW view1 AS SELECT v1 FROM viewtest",
"CREATE VIEW view2 AS SELECT v2 FROM viewtest",
},
Assertions: []queries.ScriptTestAssertion{
{
Query: "SELECT type, name, fragment, id FROM dolt_schemas ORDER BY 1, 2",
Expected: []sql.Row{
{"view", "view1", "SELECT v1 FROM viewtest", int64(1)},
{"view", "view2", "SELECT v2 FROM viewtest", int64(2)},
},
},
},
},
}
func makeLargeInsert(sz int) string {

View File

@@ -32,6 +32,9 @@ import (
)
func TestSchemaTableRecreationOlder(t *testing.T) {
if types.Format_Default != types.Format_LD_1 {
t.Skip()
}
ctx := NewTestSQLCtx(context.Background())
dEnv := dtestutils.CreateTestEnv()
tmpDir, err := dEnv.TempTableFilesDir()
@@ -51,59 +54,34 @@ func TestSchemaTableRecreationOlder(t *testing.T) {
{Name: doltdb.SchemasTablesFragmentCol, Type: sql.Text, Source: doltdb.SchemasTableName, PrimaryKey: false},
}), sql.Collation_Default)
require.NoError(t, err)
sqlTbl, found, err := db.GetTableInsensitive(ctx, doltdb.SchemasTableName)
root, err := db.GetRoot(ctx)
require.NoError(t, err)
require.True(t, found)
inserter := sqlTbl.(*WritableDoltTable).Inserter(ctx)
err = inserter.Insert(ctx, sql.Row{"view", "view1", "SELECT v1 FROM test;"})
require.NoError(t, err)
err = inserter.Insert(ctx, sql.Row{"view", "view2", "SELECT v2 FROM test;"})
require.NoError(t, err)
err = inserter.Close(ctx)
err = dEnv.UpdateWorkingRoot(ctx, root)
require.NoError(t, err)
table, err := sqlTbl.(*WritableDoltTable).DoltTable.DoltTable(ctx)
require.NoError(t, err)
rowData, err := table.GetNomsRowData(ctx)
require.NoError(t, err)
expectedVals := []sql.Row{
expected := []sql.Row{
{"view", "view1", "SELECT v1 FROM test;"},
{"view", "view2", "SELECT v2 FROM test;"},
}
index := 0
_ = rowData.IterAll(ctx, func(keyTpl, valTpl types.Value) error {
dRow, err := row.FromNoms(sqlTbl.(*WritableDoltTable).sch, keyTpl.(types.Tuple), valTpl.(types.Tuple))
require.NoError(t, err)
sqlRow, err := sqlutil.DoltRowToSqlRow(dRow, sqlTbl.(*WritableDoltTable).sch)
require.NoError(t, err)
assert.Equal(t, expectedVals[index], sqlRow)
index++
return nil
})
actual, err := ExecuteSelect(t, dEnv, root, "SELECT * FROM "+doltdb.SchemasTableName)
require.NoError(t, err)
assert.Equal(t, expected, actual)
tbl, err := GetOrCreateDoltSchemasTable(ctx, db) // removes the old table and recreates it with the new schema
// removes the old table and recreates it with the new schema
tbl, err := GetOrCreateDoltSchemasTable(ctx, db)
require.NoError(t, err)
table, err = tbl.DoltTable.DoltTable(ctx)
root, err = db.GetRoot(ctx)
require.NoError(t, err)
err = dEnv.UpdateWorkingRoot(ctx, root)
require.NoError(t, err)
rowData, err = table.GetNomsRowData(ctx)
require.NoError(t, err)
expectedVals = []sql.Row{
expected = []sql.Row{
{"view", "view1", "SELECT v1 FROM test;", int64(1), nil},
{"view", "view2", "SELECT v2 FROM test;", int64(2), nil},
}
index = 0
_ = rowData.IterAll(ctx, func(keyTpl, valTpl types.Value) error {
dRow, err := row.FromNoms(tbl.sch, keyTpl.(types.Tuple), valTpl.(types.Tuple))
require.NoError(t, err)
sqlRow, err := sqlutil.DoltRowToSqlRow(dRow, tbl.sch)
require.NoError(t, err)
assert.Equal(t, expectedVals[index], sqlRow)
index++
return nil
})
actual, err = ExecuteSelect(t, dEnv, root, "SELECT * FROM "+doltdb.SchemasTableName)
require.NoError(t, err)
indexes := tbl.sch.Indexes().AllIndexes()
require.Len(t, indexes, 1)
@@ -112,6 +90,9 @@ func TestSchemaTableRecreationOlder(t *testing.T) {
}
func TestSchemaTableRecreation(t *testing.T) {
if types.Format_Default != types.Format_LD_1 {
t.Skip()
}
ctx := NewTestSQLCtx(context.Background())
dEnv := dtestutils.CreateTestEnv()
tmpDir, err := dEnv.TempTableFilesDir()