postgres

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

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 feature_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 ...';
		`,
	"feature_entity": `
		CREATE TABLE feature_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 feature_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)

func OpenDB added in v0.0.2

func OpenDB(ctx context.Context, host, port, user, password, database string) (*sqlx.DB, error)

Types

type DB

type DB struct {
	*sqlx.DB
	*informer.Informer
}

func Open

func Open(ctx context.Context, option *types.PostgresOpt) (*DB, error)

func (*DB) Close added in v0.0.2

func (db *DB) Close() error

func (*DB) CreateEntity

func (db *DB) CreateEntity(ctx context.Context, opt metadata.CreateEntityOpt) (int, error)

func (*DB) CreateFeature

func (db *DB) CreateFeature(ctx context.Context, opt metadata.CreateFeatureOpt) (int, error)

func (*DB) CreateFeatureGroup

func (db *DB) CreateFeatureGroup(ctx context.Context, opt metadata.CreateFeatureGroupOpt) (int, error)

func (*DB) CreateRevision

func (db *DB) CreateRevision(ctx context.Context, opt metadata.CreateRevisionOpt) (int, string, error)

func (*DB) UpdateEntity

func (db *DB) UpdateEntity(ctx context.Context, opt metadata.UpdateEntityOpt) error

func (*DB) UpdateFeature

func (db *DB) UpdateFeature(ctx context.Context, opt metadata.UpdateFeatureOpt) error

func (*DB) UpdateFeatureGroup

func (db *DB) UpdateFeatureGroup(ctx context.Context, opt metadata.UpdateFeatureGroupOpt) error

func (*DB) UpdateRevision added in v0.0.2

func (db *DB) UpdateRevision(ctx context.Context, opt metadata.UpdateRevisionOpt) error

func (*DB) WithTransaction added in v0.0.2

func (db *DB) WithTransaction(ctx context.Context, fn func(context.Context, metadata.Store) error) (err error)

type Tx added in v0.0.2

type Tx struct {
	*sqlx.Tx
	*informer.Informer
}

func (*Tx) CreateEntity added in v0.0.2

func (tx *Tx) CreateEntity(ctx context.Context, opt metadata.CreateEntityOpt) (int, error)

func (*Tx) CreateFeature added in v0.0.2

func (tx *Tx) CreateFeature(ctx context.Context, opt metadata.CreateFeatureOpt) (int, error)

func (*Tx) CreateFeatureGroup added in v0.0.2

func (tx *Tx) CreateFeatureGroup(ctx context.Context, opt metadata.CreateFeatureGroupOpt) (int, error)

func (*Tx) CreateRevision added in v0.0.2

func (tx *Tx) CreateRevision(ctx context.Context, opt metadata.CreateRevisionOpt) (int, string, error)

func (*Tx) UpdateEntity added in v0.0.2

func (tx *Tx) UpdateEntity(ctx context.Context, opt metadata.UpdateEntityOpt) error

func (*Tx) UpdateFeature added in v0.0.2

func (tx *Tx) UpdateFeature(ctx context.Context, opt metadata.UpdateFeatureOpt) error

func (*Tx) UpdateFeatureGroup added in v0.0.2

func (tx *Tx) UpdateFeatureGroup(ctx context.Context, opt metadata.UpdateFeatureGroupOpt) error

func (*Tx) UpdateRevision added in v0.0.2

func (tx *Tx) UpdateRevision(ctx context.Context, opt metadata.UpdateRevisionOpt) error

func (*Tx) WithTransaction added in v0.0.2

func (tx *Tx) WithTransaction(ctx context.Context, fn func(context.Context, metadata.Store) error) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL