-- Table: primitive_instance
CREATE TABLE [primitive_instance] (
    [gobject_id] int NOT NULL,
    [package_id] int NOT NULL,
    [mx_primitive_id] smallint NOT NULL,
    [primitive_definition_id] int NOT NULL,
    [primitive_name] nvarchar(329) NOT NULL,
    [parent_mx_primitive_id] smallint NOT NULL,
    [execution_group] int NOT NULL,
    [execution_order] int NOT NULL DEFAULT ((-1)),
    [owned_by_gobject_id] int NOT NULL DEFAULT ((0)),
    [timestamp_of_last_change] bigint NULL DEFAULT ((0)),
    [max_child_timestamp] bigint NULL DEFAULT ((0)),
    [extension_type] nvarchar(329) NULL,
    [is_object_extension] bit NULL DEFAULT ((0)),
    [checked_in_primitive_version] int NOT NULL DEFAULT ((1)),
    [checked_out_primitive_version] int NOT NULL DEFAULT ((1)),
    [entity_change_type] int NOT NULL DEFAULT ((1)),
    [operation_on_primitive_mask] int NOT NULL DEFAULT ((0)),
    [created_by_parent] smallint NOT NULL DEFAULT ((0)),
    [status_id] smallint NOT NULL DEFAULT ((0)),
    [ref_status_id] smallint NOT NULL DEFAULT ((0)),
    [primitive_attributes] image(2147483647) NULL,
    [mx_value_errors] text(2147483647) NOT NULL,
    [mx_value_warnings] text(2147483647) NOT NULL,
    [mx_value_reference_warnings] text(2147483647) NOT NULL,
    [property_bitmask] smallint NOT NULL DEFAULT ((0)),
    CONSTRAINT [PK_primitive_instance] PRIMARY KEY ([gobject_id], [package_id], [mx_primitive_id], [gobject_id], [package_id], [gobject_id], [package_id])
);
GO

ALTER TABLE [primitive_instance] ADD FOREIGN KEY ([package_id]) REFERENCES [package] ([package_id]);
GO

