mirror of
https://github.com/dolthub/dolt.git
synced 2026-03-13 11:09:10 -05:00
update sql/schema_table tests
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user