Documentation ¶
Index ¶
- Variables
- func CreateDatabase(ctx context.Context, opt types.PostgresOpt) (err error)
- func OpenDB(ctx context.Context, host, port, user, password, database string) (*sqlx.DB, error)
- type DB
- func (db *DB) Close() error
- func (db *DB) CreateEntity(ctx context.Context, opt metadata.CreateEntityOpt) (int, error)
- func (db *DB) CreateFeature(ctx context.Context, opt metadata.CreateFeatureOpt) (int, error)
- func (db *DB) CreateGroup(ctx context.Context, opt metadata.CreateGroupOpt) (int, error)
- func (db *DB) CreateRevision(ctx context.Context, opt metadata.CreateRevisionOpt) (int, string, error)
- func (db *DB) UpdateEntity(ctx context.Context, opt metadata.UpdateEntityOpt) error
- func (db *DB) UpdateFeature(ctx context.Context, opt metadata.UpdateFeatureOpt) error
- func (db *DB) UpdateGroup(ctx context.Context, opt metadata.UpdateGroupOpt) error
- func (db *DB) UpdateRevision(ctx context.Context, opt metadata.UpdateRevisionOpt) error
- func (db *DB) WithTransaction(ctx context.Context, fn func(context.Context, metadata.WriteStore) error) (err error)
- type Tx
- func (tx *Tx) CreateEntity(ctx context.Context, opt metadata.CreateEntityOpt) (int, error)
- func (tx *Tx) CreateFeature(ctx context.Context, opt metadata.CreateFeatureOpt) (int, error)
- func (tx *Tx) CreateGroup(ctx context.Context, opt metadata.CreateGroupOpt) (int, error)
- func (tx *Tx) CreateRevision(ctx context.Context, opt metadata.CreateRevisionOpt) (int, string, error)
- func (tx *Tx) UpdateEntity(ctx context.Context, opt metadata.UpdateEntityOpt) error
- func (tx *Tx) UpdateFeature(ctx context.Context, opt metadata.UpdateFeatureOpt) error
- func (tx *Tx) UpdateGroup(ctx context.Context, opt metadata.UpdateGroupOpt) error
- func (tx *Tx) UpdateRevision(ctx context.Context, opt metadata.UpdateRevisionOpt) error
- func (tx *Tx) WithTransaction(ctx context.Context, fn func(context.Context, metadata.WriteStore) error) (err error)
Constants ¶
This section is empty.
Variables ¶
View Source
var DB_FUNCTIONS = []string{
`
CREATE OR REPLACE FUNCTION update_modify_time() RETURNS trigger AS $$
BEGIN
NEW.modify_time = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
`,
}
View Source
var META_TABLE_FOREIGN_KEYS = map[string]string{
"feature": `
ALTER TABLE feature
ADD CONSTRAINT fk_group
FOREIGN KEY(group_id)
REFERENCES feature_group(id)
`,
"feature_group": `
ALTER TABLE feature_group
ADD CONSTRAINT fk_entity
FOREIGN KEY(entity_id)
REFERENCES entity(id),
ADD CONSTRAINT fk_online_revision
FOREIGN KEY(online_revision_id)
REFERENCES feature_group_revision(id)
`,
"feature_group_revision": `
ALTER TABLE feature_group_revision
ADD CONSTRAINT fk_group
FOREIGN KEY(group_id)
REFERENCES feature_group(id)
`,
}
View Source
var META_TABLE_SCHEMAS = map[string]string{
"feature": `
CREATE TABLE feature (
id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
name VARCHAR(32) NOT NULL,
group_id INT NOT NULL,
db_value_type VARCHAR(32) NOT NULL,
value_type VARCHAR(16) NOT NULL,
description VARCHAR(128) DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
modify_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (name)
);
COMMENT ON COLUMN feature.value_type IS 'data type of feature value';
COMMENT ON COLUMN feature.db_value_type IS 'database data type of feature value';
`,
"feature_group": `
CREATE TABLE feature_group (
id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
name VARCHAR(32) NOT NULL,
category VARCHAR(16) NOT NULL,
entity_id INT NOT NULL,
online_revision_id INT DEFAULT NULL,
description VARCHAR(64) DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
modify_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (name)
);
COMMENT ON COLUMN feature_group.category IS 'group category: batch, stream ...';
`,
"entity": `
CREATE TABLE entity (
id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
name VARCHAR(32) NOT NULL,
length SMALLINT NOT NULL,
description VARCHAR(64) DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
modify_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (name)
);
COMMENT ON COLUMN entity.length IS 'feature entity value max length';
`,
"feature_group_revision": `
CREATE TABLE feature_group_revision (
id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
group_id INT NOT NULL,
revision BIGINT NOT NULL,
data_table VARCHAR(64) NOT NULL,
anchored BOOLEAN NOT NULL,
description VARCHAR(64) DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
modify_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (group_id, revision)
);
COMMENT ON COLUMN feature_group_revision.revision IS 'group data point-in-time epoch seconds';
COMMENT ON COLUMN feature_group_revision.data_table IS 'feature data table name';
`,
}
View Source
var META_VIEW_SCHEMAS = map[string]string{}
View Source
var TRIGGER_TEMPLATE = `` /* 139-byte string literal not displayed */
Functions ¶
func CreateDatabase ¶
func CreateDatabase(ctx context.Context, opt types.PostgresOpt) (err error)
Types ¶
type DB ¶
func (*DB) CreateEntity ¶
func (*DB) CreateFeature ¶
func (*DB) CreateGroup ¶ added in v0.0.3
func (*DB) CreateRevision ¶
func (*DB) UpdateEntity ¶
func (*DB) UpdateFeature ¶
func (*DB) UpdateGroup ¶ added in v0.0.3
func (*DB) UpdateRevision ¶ added in v0.0.2
type Tx ¶ added in v0.0.2
func (*Tx) CreateEntity ¶ added in v0.0.2
func (*Tx) CreateFeature ¶ added in v0.0.2
func (*Tx) CreateGroup ¶ added in v0.0.3
func (*Tx) CreateRevision ¶ added in v0.0.2
func (*Tx) UpdateEntity ¶ added in v0.0.2
func (*Tx) UpdateFeature ¶ added in v0.0.2
func (*Tx) UpdateGroup ¶ added in v0.0.3
func (*Tx) UpdateRevision ¶ added in v0.0.2
Click to show internal directories.
Click to hide internal directories.