Skip to content

Commit 1e5ab99

Browse files
committed
update
1 parent 7296adb commit 1e5ab99

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

pkg/sink/cloudstorage/table_definition.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,16 @@ func (t *TableDefinition) GenerateSchemaFilePath(useTableIDAsPath bool, tableID
337337
return "", err
338338
}
339339
if !t.IsTableSchema() && t.Table != "" {
340-
log.Panic("invalid table definition", zap.Any("tableDef", t))
340+
return "", errors.ErrInternalCheckFailed.GenWithStackByArgs(
341+
"invalid table definition",
342+
)
343+
}
344+
if useTableIDAsPath && t.Table != "" {
345+
if tableID <= 0 {
346+
return "", errors.ErrInternalCheckFailed.GenWithStackByArgs(
347+
"invalid table id for table-id path",
348+
)
349+
}
341350
}
342351
table := generateTablePath(t.Table, tableID, useTableIDAsPath)
343352
return generateSchemaFilePath(t.Schema, table, t.TableVersion, checksum), nil

pkg/sink/cloudstorage/table_definition_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,33 @@ func TestTableDefinitionGenFilePath(t *testing.T) {
502502
require.Equal(t, "schema1/12345/meta/schema_100_3752767265.json", tablePath)
503503
}
504504

505+
func TestGenerateSchemaFilePathValidation(t *testing.T) {
506+
t.Parallel()
507+
508+
def, _ := generateTableDef()
509+
510+
// nil receiver - would panic before entering, skip as Go handles this
511+
// empty schema
512+
emptySchemaDef := &TableDefinition{Schema: "", Table: "t1", TableVersion: 100, TotalColumns: 1, Columns: []TableCol{{}}}
513+
_, err := emptySchemaDef.GenerateSchemaFilePath(false, 0)
514+
require.Error(t, err)
515+
require.Contains(t, err.Error(), "schema cannot be empty")
516+
517+
// zero table version
518+
zeroVersionDef := &TableDefinition{Schema: "s1", Table: "t1", TableVersion: 0, TotalColumns: 1, Columns: []TableCol{{}}}
519+
_, err = zeroVersionDef.GenerateSchemaFilePath(false, 0)
520+
require.Error(t, err)
521+
require.Contains(t, err.Error(), "table version cannot be zero")
522+
523+
// use-table-id-as-path with invalid tableID
524+
_, err = def.GenerateSchemaFilePath(true, 0)
525+
require.Error(t, err)
526+
require.Contains(t, err.Error(), "tableID must be positive")
527+
_, err = def.GenerateSchemaFilePath(true, -1)
528+
require.Error(t, err)
529+
require.Contains(t, err.Error(), "tableID must be positive")
530+
}
531+
505532
func TestTableDefinitionSum32(t *testing.T) {
506533
t.Parallel()
507534

0 commit comments

Comments
 (0)