generated from oracle/template-repo
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
When defining a table with a constraint, double quotes are not added for the column name in the constraint.
For this table struct:
type LaxJSONRecord struct {
ID uint `gorm:"primaryKey;autoIncrement;column:record_id"`
Doc datatypes.JSON `gorm:"type:CLOB;column:doc;check:doc_is_json_lax, doc IS JSON(LAX)"`
}
DB.Migrator().DropTable(&LaxJSONRecord{})
if err := DB.Set("gorm:table_options", "TABLESPACE SYSAUX").AutoMigrate(&LaxJSONRecord{}); err != nil {
t.Fatalf("migrate failed: %v", err)
}
The generated SQL is:
CREATE TABLE "lax_json_records" ("record_id" NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,"doc" CLOB,PRIMARY KEY ("record_id"),CONSTRAINT "doc_is_json_lax" CHECK (doc IS JSON(LAX)))TABLESPACE SYSAUX
The expected SQL is:
CREATE TABLE "lax_json_records" ("record_id" NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,"doc" CLOB,PRIMARY KEY ("record_id"),CONSTRAINT "doc_is_json_lax" CHECK ("doc" IS JSON(LAX)))TABLESPACE SYSAUX
Double quotes should be added for the column name 'doc' in the constraint
===Test case: TestJSONLAX and TestJSONStrict in json_bulk_2_test.go
Metadata
Metadata
Assignees
Labels
No labels