MCPcopy Index your code
hub / github.com/bytebase/bytebase / TestTableMetadata_CreateColumn

Function TestTableMetadata_CreateColumn

backend/store/model/database_test.go:227–264  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

225}
226
227func TestTableMetadata_CreateColumn(t *testing.T) {
228 metadata := &storepb.DatabaseSchemaMetadata{
229 Name: "testdb",
230 Schemas: []*storepb.SchemaMetadata{
231 {
232 Name: "public",
233 Tables: []*storepb.TableMetadata{
234 {
235 Name: "users",
236 Columns: []*storepb.ColumnMetadata{
237 {Name: "id", Type: "int"},
238 },
239 },
240 },
241 },
242 },
243 }
244
245 schema := NewDatabaseMetadata(metadata, nil, nil, storepb.Engine_POSTGRES, true)
246 schemaMeta := schema.GetSchemaMetadata("public")
247 tableMeta := schemaMeta.GetTable("users")
248
249 // Create a new column
250 columnProto := &storepb.ColumnMetadata{
251 Name: "email",
252 Type: "varchar",
253 Nullable: true,
254 }
255 err := tableMeta.CreateColumn(columnProto, nil /* columnCatalog */)
256
257 require.Nil(t, err)
258
259 // Verify column is now accessible
260 retrieved := tableMeta.GetColumn("email")
261 require.NotNil(t, retrieved)
262 require.Equal(t, "email", retrieved.GetProto().Name)
263 require.Equal(t, "varchar", retrieved.GetProto().Type)
264}
265
266func TestTableMetadata_CreateColumn_AlreadyExists(t *testing.T) {
267 metadata := &storepb.DatabaseSchemaMetadata{

Callers

nothing calls this directly

Calls 7

GetSchemaMetadataMethod · 0.95
NewDatabaseMetadataFunction · 0.85
CreateColumnMethod · 0.80
EqualMethod · 0.65
GetTableMethod · 0.45
GetColumnMethod · 0.45
GetProtoMethod · 0.45

Tested by

no test coverage detected