-- Table: attribute_reference
CREATE TABLE [attribute_reference] (
    [gobject_id] int NOT NULL,
    [package_id] int NOT NULL,
    [referring_mx_primitive_id] smallint NOT NULL DEFAULT ((0)),
    [referring_mx_attribute_id] smallint NOT NULL DEFAULT ((0)),
    [element_index] smallint NOT NULL DEFAULT ((0)),
    [resolved_gobject_id] int NOT NULL DEFAULT ((0)),
    [reference_string] nvarchar(700) NOT NULL DEFAULT (''),
    [context_string] nvarchar(329) NOT NULL DEFAULT (''),
    [object_signature] int NOT NULL DEFAULT ((0)),
    [resolved_mx_primitive_id] smallint NOT NULL DEFAULT ((0)),
    [resolved_mx_attribute_id] smallint NOT NULL DEFAULT ((0)),
    [resolved_mx_property_id] smallint NOT NULL DEFAULT ((0)),
    [attribute_signature] int NOT NULL DEFAULT ((0)),
    [lock_type] int NOT NULL DEFAULT ((0)),
    [is_valid] bit NOT NULL DEFAULT ((0)),
    [attr_res_status] int NOT NULL DEFAULT ((0)),
    [attribute_index] smallint NULL DEFAULT ((-1)),
    CONSTRAINT [PK_attribute_reference] PRIMARY KEY ([gobject_id], [package_id], [referring_mx_primitive_id], [referring_mx_attribute_id], [element_index], [gobject_id], [package_id], [referring_mx_primitive_id], [gobject_id], [package_id], [referring_mx_primitive_id], [gobject_id], [package_id], [referring_mx_primitive_id])
);
GO

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

